diff --git a/data/item_stats/weapon_stats.toml b/data/item_stats/weapon_stats.toml new file mode 100644 index 0000000..8f95377 --- /dev/null +++ b/data/item_stats/weapon_stats.toml @@ -0,0 +1,2165 @@ +[Saber] +grind = 35 +atp_min = 40 +atp_max = 55 +shop_multiplier = 15.0 + +[Brand] +grind = 32 +atp_min = 80 +atp_max = 100 +shop_multiplier = 15.0 + +[Buster] +grind = 30 +atp_min = 120 +atp_max = 160 +shop_multiplier = 15.0 + +[Pallasch] +grind = 26 +atp_min = 170 +atp_max = 220 +shop_multiplier = 15.0 + +[Gladius] +grind = 18 +atp_min = 240 +atp_max = 280 +shop_multiplier = 15.0 + +[DbsSaber] +grind = 9 +atp_min = 140 +atp_max = 168 +shop_multiplier = 1.0 + +[Kaladbolg] +grind = 25 +atp_min = 260 +atp_max = 320 +shop_multiplier = 15.0 + +[Durandal] +grind = 37 +atp_min = 300 +atp_max = 376 +shop_multiplier = 15.0 + +[Galatine] +grind = 9 +atp_min = 330 +atp_max = 420 +shop_multiplier = 15.0 + +[Sword] +grind = 46 +atp_min = 25 +atp_max = 60 +shop_multiplier = 12.0 + +[Gigush] +grind = 32 +atp_min = 55 +atp_max = 100 +shop_multiplier = 12.0 + +[Breaker] +grind = 18 +atp_min = 100 +atp_max = 150 +shop_multiplier = 12.0 + +[Claymore] +grind = 16 +atp_min = 150 +atp_max = 200 +shop_multiplier = 12.0 + +[Calibur] +grind = 10 +atp_min = 210 +atp_max = 255 +shop_multiplier = 12.0 + +[FlowensSword] +grind = 21 +atp_min = 230 +atp_max = 300 +shop_multiplier = 12.0 + +[LastSurvivor] +grind = 31 +atp_min = 275 +atp_max = 321 +shop_multiplier = 12.0 + +[DragonSlayer] +grind = 34 +atp_min = 345 +atp_max = 352 +shop_multiplier = 12.0 + +[Dagger] +grind = 65 +atp_min = 25 +atp_max = 40 +shop_multiplier = 4.5 + +[Knife] +grind = 50 +atp_min = 50 +atp_max = 70 +shop_multiplier = 4.5 + +[Blade] +grind = 35 +atp_min = 80 +atp_max = 100 +shop_multiplier = 4.5 + +[Edge] +grind = 25 +atp_min = 105 +atp_max = 130 +shop_multiplier = 4.5 + +[Ripper] +grind = 15 +atp_min = 125 +atp_max = 160 +shop_multiplier = 4.5 + +[BladeDance] +grind = 30 +atp_min = 110 +atp_max = 180 +shop_multiplier = 4.5 + +[BloodyArt] +grind = 42 +atp_min = 120 +atp_max = 175 +shop_multiplier = 4.5 + +[CrossScar] +grind = 28 +atp_min = 135 +atp_max = 220 +shop_multiplier = 4.5 + +[ZeroDivide] +grind = 99 +atp_min = 200 +atp_max = 300 +shop_multiplier = 4.5 + +[TwoKamui] +grind = 0 +atp_min = 600 +atp_max = 650 +shop_multiplier = 4.5 + +[Partisan] +grind = 35 +atp_min = 30 +atp_max = 40 +shop_multiplier = 4.5 + +[Halbert] +grind = 30 +atp_min = 65 +atp_max = 75 +shop_multiplier = 4.5 + +[Glaive] +grind = 25 +atp_min = 95 +atp_max = 110 +shop_multiplier = 4.5 + +[Berdys] +grind = 20 +atp_min = 130 +atp_max = 145 +shop_multiplier = 4.5 + +[Gungnir] +grind = 10 +atp_min = 150 +atp_max = 180 +shop_multiplier = 4.5 + +[Brionac] +grind = 15 +atp_min = 150 +atp_max = 182 +shop_multiplier = 4.5 + +[Vjaya] +grind = 15 +atp_min = 160 +atp_max = 220 +shop_multiplier = 4.5 + +[GaeBolg] +grind = 30 +atp_min = 215 +atp_max = 220 +shop_multiplier = 4.5 + +[AsteronBelt] +grind = 9 +atp_min = 380 +atp_max = 400 +shop_multiplier = 4.5 + +[Slicer] +grind = 20 +atp_min = 5 +atp_max = 15 +shop_multiplier = 3.75 + +[Spinner] +grind = 20 +atp_min = 10 +atp_max = 30 +shop_multiplier = 3.75 + +[Cutter] +grind = 15 +atp_min = 35 +atp_max = 55 +shop_multiplier = 3.75 + +[Sawcer] +grind = 15 +atp_min = 60 +atp_max = 80 +shop_multiplier = 3.75 + +[Diska] +grind = 10 +atp_min = 85 +atp_max = 105 +shop_multiplier = 3.75 + +[SlicerOfAssassin] +grind = 12 +atp_min = 120 +atp_max = 125 +shop_multiplier = 3.75 + +[DiskaOfLiberator] +grind = 9 +atp_min = 120 +atp_max = 146 +shop_multiplier = 3.75 + +[DiskaOfBraveman] +grind = 9 +atp_min = 150 +atp_max = 167 +shop_multiplier = 3.75 + +[Izmaela] +grind = 0 +atp_min = 250 +atp_max = 250 +shop_multiplier = 3.75 + +[Handgun] +grind = 75 +atp_min = 20 +atp_max = 30 +shop_multiplier = 6.29999971 + +[Autogun] +grind = 50 +atp_min = 45 +atp_max = 65 +shop_multiplier = 6.29999971 + +[Lockgun] +grind = 35 +atp_min = 80 +atp_max = 100 +shop_multiplier = 6.29999971 + +[Railgun] +grind = 25 +atp_min = 120 +atp_max = 140 +shop_multiplier = 6.29999971 + +[Raygun] +grind = 15 +atp_min = 150 +atp_max = 180 +shop_multiplier = 6.29999971 + +[Varista] +grind = 25 +atp_min = 155 +atp_max = 210 +shop_multiplier = 6.29999971 + +[CustomRayVerOo] +grind = 20 +atp_min = 165 +atp_max = 195 +shop_multiplier = 6.29999971 + +[Bravace] +grind = 30 +atp_min = 190 +atp_max = 230 +shop_multiplier = 6.29999971 + +[TensionBlaster] +grind = 0 +atp_min = 280 +atp_max = 310 +shop_multiplier = 6.29999971 + +[Rifle] +grind = 65 +atp_min = 10 +atp_max = 50 +shop_multiplier = 9.0 + +[Sniper] +grind = 55 +atp_min = 50 +atp_max = 90 +shop_multiplier = 9.0 + +[Blaster] +grind = 45 +atp_min = 100 +atp_max = 130 +shop_multiplier = 9.0 + +[Beam] +grind = 35 +atp_min = 140 +atp_max = 170 +shop_multiplier = 9.0 + +[Laser] +grind = 25 +atp_min = 200 +atp_max = 210 +shop_multiplier = 9.0 + +[Visk235W] +grind = 15 +atp_min = 220 +atp_max = 250 +shop_multiplier = 9.0 + +[WalsMk2] +grind = 9 +atp_min = 260 +atp_max = 280 +shop_multiplier = 9.0 + +[Justy23St] +grind = 15 +atp_min = 290 +atp_max = 320 +shop_multiplier = 9.0 + +[Rianov303snr] +grind = 60 +atp_min = 300 +atp_max = 300 +shop_multiplier = 9.0 + +[Rianov303snr1] +grind = 50 +atp_min = 350 +atp_max = 400 +shop_multiplier = 9.0 + +[Rianov303snr2] +grind = 25 +atp_min = 150 +atp_max = 400 +shop_multiplier = 9.0 + +[Rianov303snr3] +grind = 15 +atp_min = 500 +atp_max = 500 +shop_multiplier = 9.0 + +[Rianov303snr4] +grind = 60 +atp_min = 350 +atp_max = 450 +shop_multiplier = 9.0 + +[Rianov303snr5] +grind = 0 +atp_min = 550 +atp_max = 550 +shop_multiplier = 9.0 + +[Mechgun] +grind = 9 +atp_min = 2 +atp_max = 4 +shop_multiplier = 0.12 + +[Assault] +grind = 9 +atp_min = 5 +atp_max = 8 +shop_multiplier = 0.12 + +[Repeater] +grind = 9 +atp_min = 5 +atp_max = 12 +shop_multiplier = 0.12 + +[Gatling] +grind = 9 +atp_min = 5 +atp_max = 16 +shop_multiplier = 0.12 + +[Vulcan] +grind = 9 +atp_min = 5 +atp_max = 20 +shop_multiplier = 0.12 + +[MA60Vise] +grind = 9 +atp_min = 15 +atp_max = 25 +shop_multiplier = 0.12 + +[HS25Justice] +grind = 9 +atp_min = 15 +atp_max = 30 +shop_multiplier = 0.12 + +[LK14Combat] +grind = 20 +atp_min = 15 +atp_max = 30 +shop_multiplier = 0.12 + +[Shot] +grind = 20 +atp_min = 20 +atp_max = 25 +shop_multiplier = 2.69999981 + +[Spread] +grind = 20 +atp_min = 30 +atp_max = 50 +shop_multiplier = 2.69999981 + +[Cannon] +grind = 15 +atp_min = 40 +atp_max = 80 +shop_multiplier = 2.69999981 + +[Launcher] +grind = 15 +atp_min = 50 +atp_max = 110 +shop_multiplier = 2.69999981 + +[Arms] +grind = 10 +atp_min = 60 +atp_max = 140 +shop_multiplier = 2.69999981 + +[CrushBullet] +grind = 25 +atp_min = 85 +atp_max = 133 +shop_multiplier = 2.69999981 + +[MeteorSmash] +grind = 25 +atp_min = 80 +atp_max = 160 +shop_multiplier = 2.69999981 + +[FinalImpact] +grind = 30 +atp_min = 95 +atp_max = 170 +shop_multiplier = 2.69999981 + +[Cane] +grind = 55 +atp_min = 25 +atp_max = 30 +shop_multiplier = 6.0 + +[Stick] +grind = 40 +atp_min = 50 +atp_max = 60 +shop_multiplier = 6.0 + +[Mace] +grind = 25 +atp_min = 90 +atp_max = 90 +shop_multiplier = 6.0 + +[Club] +grind = 10 +atp_min = 110 +atp_max = 120 +shop_multiplier = 6.0 + +[ClubOfLaconium] +grind = 9 +atp_min = 140 +atp_max = 150 +shop_multiplier = 6.0 + +[MaceOfAdaman] +grind = 9 +atp_min = 170 +atp_max = 170 +shop_multiplier = 6.0 + +[ClubOfZumiuran] +grind = 9 +atp_min = 178 +atp_max = 180 +shop_multiplier = 6.0 + +[Lollipop] +grind = 12 +atp_min = 150 +atp_max = 200 +shop_multiplier = 6.0 + +[Rod] +grind = 75 +atp_min = 25 +atp_max = 45 +shop_multiplier = 7.5 + +[Pole] +grind = 50 +atp_min = 55 +atp_max = 80 +shop_multiplier = 7.5 + +[Pillar] +grind = 30 +atp_min = 85 +atp_max = 115 +shop_multiplier = 7.5 + +[Striker] +grind = 20 +atp_min = 100 +atp_max = 150 +shop_multiplier = 7.5 + +[BattleVerge] +grind = 15 +atp_min = 130 +atp_max = 185 +shop_multiplier = 7.5 + +[BraveHammer] +grind = 15 +atp_min = 170 +atp_max = 220 +shop_multiplier = 7.5 + +[AliveAqhu] +grind = 15 +atp_min = 210 +atp_max = 230 +shop_multiplier = 7.5 + +[Valkyrie] +grind = 33 +atp_min = 600 +atp_max = 600 +shop_multiplier = 7.5 + +[Wand] +grind = 15 +atp_min = 3 +atp_max = 10 +shop_multiplier = 2.25 + +[Staff] +grind = 15 +atp_min = 10 +atp_max = 30 +shop_multiplier = 2.25 + +[Baton] +grind = 10 +atp_min = 35 +atp_max = 50 +shop_multiplier = 2.25 + +[Scepter] +grind = 10 +atp_min = 55 +atp_max = 75 +shop_multiplier = 2.25 + +[FireScepterAgni] +grind = 9 +atp_min = 70 +atp_max = 95 +shop_multiplier = 2.25 + +[IceStaffDagon] +grind = 9 +atp_min = 73 +atp_max = 105 +shop_multiplier = 2.25 + +[StormWandIndra] +grind = 9 +atp_min = 105 +atp_max = 120 +shop_multiplier = 2.25 + +[EarthWandBrownie] +grind = 20 +atp_min = 370 +atp_max = 670 +shop_multiplier = 2.25 + +[PhotonClaw] +grind = 20 +atp_min = 230 +atp_max = 300 +shop_multiplier = 5.0 + +[SilenceClaw] +grind = 15 +atp_min = 335 +atp_max = 345 +shop_multiplier = 5.0 + +[NeisClaw] +grind = 0 +atp_min = 756 +atp_max = 756 +shop_multiplier = 1.0 + +[PhoenixClaw] +grind = 15 +atp_min = 540 +atp_max = 570 +shop_multiplier = 5.0 + +[DoubleSaber] +grind = 35 +atp_min = 150 +atp_max = 152 +shop_multiplier = 3.0 + +[StagCutlery] +grind = 30 +atp_min = 230 +atp_max = 235 +shop_multiplier = 3.0 + +[TwinBrand] +grind = 60 +atp_min = 235 +atp_max = 240 +shop_multiplier = 3.0 + +[BraveKnuckle] +grind = 30 +atp_min = 380 +atp_max = 460 +shop_multiplier = 5.0 + +[AngryFist] +grind = 50 +atp_min = 460 +atp_max = 560 +shop_multiplier = 5.0 + +[GodHand] +grind = 30 +atp_min = 580 +atp_max = 700 +shop_multiplier = 5.0 + +[SonicKnuckle] +grind = 0 +atp_min = 250 +atp_max = 300 +shop_multiplier = 5.0 + +[Login] +grind = 0 +atp_min = 5 +atp_max = 5 +shop_multiplier = 10.0 + +[Orotiagito] +grind = 0 +atp_min = 750 +atp_max = 800 +shop_multiplier = 8.0 + +[Agito1975] +grind = 0 +atp_min = 460 +atp_max = 480 +shop_multiplier = 8.0 + +[Agito1983] +grind = 45 +atp_min = 200 +atp_max = 500 +shop_multiplier = 8.0 + +[Agito2001] +grind = 9 +atp_min = 400 +atp_max = 430 +shop_multiplier = 8.0 + +[Agito1991] +grind = 9 +atp_min = 400 +atp_max = 410 +shop_multiplier = 8.0 + +[Agito1977] +grind = 50 +atp_min = 450 +atp_max = 460 +shop_multiplier = 8.0 + +[Agito1980] +grind = 40 +atp_min = 455 +atp_max = 460 +shop_multiplier = 8.0 + +[Raikiri] +grind = 0 +atp_min = 560 +atp_max = 570 +shop_multiplier = 8.0 + +[SoulEater] +grind = 9 +atp_min = 180 +atp_max = 185 +shop_multiplier = 20.0 + +[SoulBanish] +grind = 9 +atp_min = 350 +atp_max = 370 +shop_multiplier = 20.0 + +[SpreadNeedle] +grind = 40 +atp_min = 1 +atp_max = 110 +shop_multiplier = 2.0 + +[HolyRay] +grind = 40 +atp_min = 290 +atp_max = 300 +shop_multiplier = 5.0 + +[InfernoBazooka] +grind = 9 +atp_min = 230 +atp_max = 410 +shop_multiplier = 4.0 + +[RamblingMay] +grind = 0 +atp_min = 360 +atp_max = 450 +shop_multiplier = 4.0 + +[LK38Combat] +grind = 25 +atp_min = 150 +atp_max = 250 +shop_multiplier = 4.0 + +[FlameVisit] +grind = 9 +atp_min = 300 +atp_max = 450 +shop_multiplier = 5.0 + +[AkikosFryingPan] +grind = 0 +atp_min = 230 +atp_max = 250 +shop_multiplier = 100.0 + +[SorcerersCane] +grind = 0 +atp_min = 360 +atp_max = 360 +shop_multiplier = 2.0 + +[SBeatsBlade] +grind = 15 +atp_min = 210 +atp_max = 220 +shop_multiplier = 0.7 + +[PArmssBlade] +grind = 25 +atp_min = 250 +atp_max = 270 +shop_multiplier = 1.5 + +[DelsabersBuster] +grind = 9 +atp_min = 340 +atp_max = 350 +shop_multiplier = 6.0 + +[BringersRifle] +grind = 9 +atp_min = 330 +atp_max = 370 +shop_multiplier = 3.5 + +[EggBlaster] +grind = 0 +atp_min = 300 +atp_max = 330 +shop_multiplier = 100.0 + +[PsychoWand] +grind = 0 +atp_min = 395 +atp_max = 400 +shop_multiplier = 1.8 + +[HeavenPunisher] +grind = 0 +atp_min = 300 +atp_max = 330 +shop_multiplier = 0.7 + +[LavisCannon] +grind = 0 +atp_min = 730 +atp_max = 750 +shop_multiplier = 2.89999986 + +[VictorAxe] +grind = 20 +atp_min = 300 +atp_max = 420 +shop_multiplier = 2.1 + +[LaconiumAxe] +grind = 25 +atp_min = 700 +atp_max = 750 +shop_multiplier = 2.1 + +[ChainSawd] +grind = 15 +atp_min = 500 +atp_max = 525 +shop_multiplier = 2.8 + +[Caduceus] +grind = 0 +atp_min = 360 +atp_max = 360 +shop_multiplier = 1.19999993 + +[MercuriusRod] +grind = 0 +atp_min = 390 +atp_max = 400 +shop_multiplier = 1.19999993 + +[StingTip] +grind = 30 +atp_min = 170 +atp_max = 170 +shop_multiplier = 1.8 + +[MagicalPiece] +grind = 0 +atp_min = 240 +atp_max = 240 +shop_multiplier = 1.19999993 + +[TechnicalCrozier] +grind = 0 +atp_min = 130 +atp_max = 135 +shop_multiplier = 2.0 + +[SuppressedGun] +grind = 9 +atp_min = 260 +atp_max = 270 +shop_multiplier = 0.9 + +[AncientSaber] +grind = 9 +atp_min = 531 +atp_max = 544 +shop_multiplier = 3.3 + +[HarisenBattleFan] +grind = 0 +atp_min = 310 +atp_max = 280 +shop_multiplier = 3.3 + +[Yamigarasu] +grind = 0 +atp_min = 580 +atp_max = 650 +shop_multiplier = 2.89999986 + +[AkikosWok] +grind = 0 +atp_min = 210 +atp_max = 250 +shop_multiplier = 3.19999981 + +[ToyHammer] +grind = 0 +atp_min = 1 +atp_max = 400 +shop_multiplier = 3.19999981 + +[Elysion] +grind = 9 +atp_min = 360 +atp_max = 368 +shop_multiplier = 3.19999981 + +[RedSaber] +grind = 78 +atp_min = 450 +atp_max = 489 +shop_multiplier = 3.3 + +[MeteorCudgel] +grind = 15 +atp_min = 300 +atp_max = 560 +shop_multiplier = 3.19999981 + +[MonkeyKingBar] +grind = 25 +atp_min = 380 +atp_max = 390 +shop_multiplier = 3.19999981 + +[BlackKingBar] +grind = 80 +atp_min = 590 +atp_max = 600 +shop_multiplier = 3.19999981 + +[DoubleCannon] +grind = 0 +atp_min = 620 +atp_max = 650 +shop_multiplier = 2.8 + +[Girasole] +grind = 0 +atp_min = 500 +atp_max = 550 +shop_multiplier = 2.8 + +[HugeBattleFan] +grind = 0 +atp_min = 10 +atp_max = 255 +shop_multiplier = 3.19999981 + +[TsumikiriJSword] +grind = 50 +atp_min = 700 +atp_max = 756 +shop_multiplier = 2.8 + +[SealedJSword] +grind = 0 +atp_min = 400 +atp_max = 525 +shop_multiplier = 3.3 + +[RedSword] +grind = 52 +atp_min = 400 +atp_max = 611 +shop_multiplier = 3.3 + +[CrazyTune] +grind = 0 +atp_min = 200 +atp_max = 255 +shop_multiplier = 3.19999981 + +[TwinChakram] +grind = 20 +atp_min = 245 +atp_max = 250 +shop_multiplier = 3.19999981 + +[WokOfAkikosShop] +grind = 0 +atp_min = 170 +atp_max = 160 +shop_multiplier = 3.19999981 + +[LavisBlade] +grind = 0 +atp_min = 380 +atp_max = 450 +shop_multiplier = 3.19999981 + +[RedDagger] +grind = 65 +atp_min = 245 +atp_max = 280 +shop_multiplier = 3.3 + +[MadamsParasol] +grind = 0 +atp_min = 215 +atp_max = 220 +shop_multiplier = 2.8 + +[MadamsUmbrella] +grind = 0 +atp_min = 210 +atp_max = 280 +shop_multiplier = 3.19999981 + +[ImperialPick] +grind = 9 +atp_min = 280 +atp_max = 300 +shop_multiplier = 3.19999981 + +[Berdysh] +grind = 25 +atp_min = 270 +atp_max = 290 +shop_multiplier = 3.19999981 + +[RedPartisan] +grind = 40 +atp_min = 290 +atp_max = 295 +shop_multiplier = 3.3 + +[FlightCutter] +grind = 9 +atp_min = 250 +atp_max = 260 +shop_multiplier = 3.19999981 + +[FlightFan] +grind = 15 +atp_min = 185 +atp_max = 200 +shop_multiplier = 3.19999981 + +[RedSlicer] +grind = 45 +atp_min = 190 +atp_max = 200 +shop_multiplier = 3.3 + +[HandgunGuld] +grind = 9 +atp_min = 370 +atp_max = 400 +shop_multiplier = 0.9 + +[MasterRaven] +grind = 9 +atp_min = 350 +atp_max = 380 +shop_multiplier = 0.9 + +[HandgunMilla] +grind = 9 +atp_min = 350 +atp_max = 360 +shop_multiplier = 0.9 + +[LastSwan] +grind = 9 +atp_min = 80 +atp_max = 90 +shop_multiplier = 0.9 + +[RedHandgun] +grind = 50 +atp_min = 300 +atp_max = 300 +shop_multiplier = 0.9 + +[FrozenShooter] +grind = 9 +atp_min = 240 +atp_max = 250 +shop_multiplier = 0.9 + +[AntiAndroidRifle] +grind = 9 +atp_min = 330 +atp_max = 350 +shop_multiplier = 0.9 + +[RocketPunch] +grind = 50 +atp_min = 50 +atp_max = 300 +shop_multiplier = 3.19999981 + +[SambaMaracas] +grind = 0 +atp_min = 5 +atp_max = 10 +shop_multiplier = 3.19999981 + +[TwinPsychogun] +grind = 0 +atp_min = 35 +atp_max = 40 +shop_multiplier = 0.9 + +[DrillLauncher] +grind = 0 +atp_min = 180 +atp_max = 200 +shop_multiplier = 0.9 + +[GuldMilla] +grind = 9 +atp_min = 180 +atp_max = 200 +shop_multiplier = 0.599999964 + +[DualBird] +grind = 21 +atp_min = 200 +atp_max = 210 +shop_multiplier = 0.599999964 + +[RedMechgun] +grind = 30 +atp_min = 50 +atp_max = 50 +shop_multiplier = 0.9 + +[BelraCannon] +grind = 20 +atp_min = 400 +atp_max = 500 +shop_multiplier = 0.9 + +[PanzerFaust] +grind = 9 +atp_min = 350 +atp_max = 500 +shop_multiplier = 0.9 + +[SummitMoon] +grind = 9 +atp_min = 270 +atp_max = 280 +shop_multiplier = 1.8 + +[Windmill] +grind = 9 +atp_min = 300 +atp_max = 310 +shop_multiplier = 1.8 + +[EvilCurst] +grind = 0 +atp_min = 444 +atp_max = 666 +shop_multiplier = 1.5999999 + +[FlowerCane] +grind = 0 +atp_min = 168 +atp_max = 180 +shop_multiplier = 1.8 + +[HildebearsCane] +grind = 9 +atp_min = 220 +atp_max = 230 +shop_multiplier = 1.8 + +[HildebluesCane] +grind = 9 +atp_min = 290 +atp_max = 300 +shop_multiplier = 1.5 + +[RabbitWand] +grind = 0 +atp_min = 120 +atp_max = 230 +shop_multiplier = 1.8 + +[PlantainLeaf] +grind = 0 +atp_min = 219 +atp_max = 280 +shop_multiplier = 30.0 + +[Fatsia] +grind = 0 +atp_min = 219 +atp_max = 280 +shop_multiplier = 30.0 + +[DemonicFork] +grind = 0 +atp_min = 325 +atp_max = 340 +shop_multiplier = 1.8 + +[StrikerOfChao] +grind = 0 +atp_min = 300 +atp_max = 325 +shop_multiplier = 1.3 + +[Broom] +grind = 0 +atp_min = 90 +atp_max = 230 +shop_multiplier = 1.8 + +[ProphetsOfMotav] +grind = 0 +atp_min = 90 +atp_max = 250 +shop_multiplier = 1.8 + +[TheSighOfAGod] +grind = 0 +atp_min = 175 +atp_max = 180 +shop_multiplier = 1.8 + +[TwinkleStar] +grind = 0 +atp_min = 175 +atp_max = 175 +shop_multiplier = 1.8 + +[PlantainFan] +grind = 40 +atp_min = 95 +atp_max = 150 +shop_multiplier = 1.8 + +[TwinBlaze] +grind = 9 +atp_min = 300 +atp_max = 520 +shop_multiplier = 3.3 + +[MarinasBag] +grind = 0 +atp_min = 10 +atp_max = 180 +shop_multiplier = 1.8 + +[DragonsClaw] +grind = 35 +atp_min = 550 +atp_max = 580 +shop_multiplier = 3.3 + +[PanthersClaw] +grind = 0 +atp_min = 180 +atp_max = 280 +shop_multiplier = 3.3 + +[SRedsBlade] +grind = 15 +atp_min = 340 +atp_max = 350 +shop_multiplier = 3.3 + +[PlantainHugeFan] +grind = 9 +atp_min = 265 +atp_max = 300 +shop_multiplier = 1.8 + +[ChameleonScythe] +grind = 0 +atp_min = 80 +atp_max = 180 +shop_multiplier = 3.3 + +[Yasminkov3000R] +grind = 60 +atp_min = 370 +atp_max = 400 +shop_multiplier = 0.9 + +[AnoRifle] +grind = 15 +atp_min = 350 +atp_max = 380 +shop_multiplier = 0.9 + +[BaranzLauncher] +grind = 30 +atp_min = 230 +atp_max = 240 +shop_multiplier = 0.9 + +[BranchOfPakupaku] +grind = 0 +atp_min = 240 +atp_max = 267 +shop_multiplier = 30.0 + +[HeartOfPoumn] +grind = 0 +atp_min = 680 +atp_max = 700 +shop_multiplier = 3.3 + +[Yasminkov2000H] +grind = 10 +atp_min = 340 +atp_max = 340 +shop_multiplier = 0.9 + +[Yasminkov7000V] +grind = 25 +atp_min = 370 +atp_max = 450 +shop_multiplier = 0.9 + +[Yasminkov9000M] +grind = 10 +atp_min = 40 +atp_max = 80 +shop_multiplier = 0.9 + +[MaserBeam] +grind = 20 +atp_min = 230 +atp_max = 230 +shop_multiplier = 0.9 + +[FlowerBouquet] +grind = 0 +atp_min = 1 +atp_max = 1 +shop_multiplier = 10.0 + +[Musashi] +grind = 40 +atp_min = 330 +atp_max = 350 +shop_multiplier = 1.0 + +[Yamato] +grind = 60 +atp_min = 380 +atp_max = 390 +shop_multiplier = 1.0 + +[Asuka] +grind = 30 +atp_min = 560 +atp_max = 570 +shop_multiplier = 1.0 + +[SangeYasha] +grind = 30 +atp_min = 640 +atp_max = 650 +shop_multiplier = 1.0 + +[Sange] +grind = 0 +atp_min = 500 +atp_max = 550 +shop_multiplier = 1.0 + +[Yasha] +grind = 0 +atp_min = 500 +atp_max = 550 +shop_multiplier = 1.0 + +[Kamui] +grind = 0 +atp_min = 650 +atp_max = 650 +shop_multiplier = 1.0 + +[PhotonLauncher] +grind = 9 +atp_min = 210 +atp_max = 220 +shop_multiplier = 1.0 + +[GuiltyLight] +grind = 18 +atp_min = 240 +atp_max = 250 +shop_multiplier = 1.0 + +[RedScorpio] +grind = 50 +atp_min = 280 +atp_max = 300 +shop_multiplier = 1.0 + +[PhononMaser] +grind = 36 +atp_min = 350 +atp_max = 360 +shop_multiplier = 1.0 + +[Talis] +grind = 9 +atp_min = 120 +atp_max = 180 +shop_multiplier = 1.0 + +[Mahu] +grind = 9 +atp_min = 120 +atp_max = 200 +shop_multiplier = 1.0 + +[Hitogata] +grind = 9 +atp_min = 150 +atp_max = 230 +shop_multiplier = 1.0 + +[DancingHitogata] +grind = 0 +atp_min = 350 +atp_max = 354 +shop_multiplier = 1.0 + +[Kunai] +grind = 0 +atp_min = 95 +atp_max = 175 +shop_multiplier = 1.0 + +[Nug2000Bazooka] +grind = 32 +atp_min = 400 +atp_max = 660 +shop_multiplier = 1.0 + +[SBerillsHands0] +grind = 35 +atp_min = 158 +atp_max = 197 +shop_multiplier = 1.0 + +[SBerillsHands1] +grind = 15 +atp_min = 320 +atp_max = 321 +shop_multiplier = 1.0 + +[FlowensSword3060] +grind = 12 +atp_min = 135 +atp_max = 243 +shop_multiplier = 1.0 + +[FlowensSword3064] +grind = 16 +atp_min = 164 +atp_max = 248 +shop_multiplier = 1.0 + +[FlowensSword3067] +grind = 21 +atp_min = 200 +atp_max = 256 +shop_multiplier = 1.0 + +[FlowensSword3073] +grind = 34 +atp_min = 197 +atp_max = 262 +shop_multiplier = 1.0 + +[FlowensSword3077] +grind = 32 +atp_min = 121 +atp_max = 255 +shop_multiplier = 1.0 + +[FlowensSword3082] +grind = 12 +atp_min = 211 +atp_max = 273 +shop_multiplier = 1.0 + +[FlowensSword3083] +grind = 11 +atp_min = 261 +atp_max = 283 +shop_multiplier = 1.0 + +[FlowensSword3084] +grind = 85 +atp_min = 300 +atp_max = 320 +shop_multiplier = 1.0 + +[FlowensSword3079] +grind = 9 +atp_min = 290 +atp_max = 300 +shop_multiplier = 1.0 + +[GiGueBazooka] +grind = 0 +atp_min = 520 +atp_max = 620 +shop_multiplier = 1.0 + +[Guardianna] +grind = 9 +atp_min = 200 +atp_max = 280 +shop_multiplier = 1.0 + +[MorningGlory] +grind = 0 +atp_min = 450 +atp_max = 500 +shop_multiplier = 1.0 + +[PartisanOfLightning] +grind = 60 +atp_min = 370 +atp_max = 410 +shop_multiplier = 1.0 + +[GalWind] +grind = 15 +atp_min = 270 +atp_max = 310 +shop_multiplier = 1.0 + +[Zanba] +grind = 38 +atp_min = 310 +atp_max = 438 +shop_multiplier = 1.0 + +[RikasClaw] +grind = 35 +atp_min = 590 +atp_max = 670 +shop_multiplier = 1.0 + +[AngelHarp] +grind = 0 +atp_min = 300 +atp_max = 320 +shop_multiplier = 1.0 + +[DemolitionComet] +grind = 25 +atp_min = 530 +atp_max = 530 +shop_multiplier = 1.0 + +[RainbowBaton] +grind = 24 +atp_min = 300 +atp_max = 320 +shop_multiplier = 1.0 + +[DarkFlow] +grind = 0 +atp_min = 756 +atp_max = 900 +shop_multiplier = 1.0 + +[DarkMeteor] +grind = 25 +atp_min = 150 +atp_max = 280 +shop_multiplier = 1.0 + +[DarkBridge] +grind = 0 +atp_min = 185 +atp_max = 400 +shop_multiplier = 1.0 + +[GAssassinsSabers] +grind = 25 +atp_min = 350 +atp_max = 360 +shop_multiplier = 1.0 + +[RappysFan] +grind = 32 +atp_min = 140 +atp_max = 146 +shop_multiplier = 1.0 + +[BoomasClaw] +grind = 15 +atp_min = 300 +atp_max = 315 +shop_multiplier = 1.0 + +[GoboomasClaw] +grind = 35 +atp_min = 330 +atp_max = 345 +shop_multiplier = 1.0 + +[GigoboomasClaw] +grind = 55 +atp_min = 450 +atp_max = 500 +shop_multiplier = 1.0 + +[RubyBullet] +grind = 0 +atp_min = 350 +atp_max = 350 +shop_multiplier = 1.0 + +[AmoreRose] +grind = 0 +atp_min = 5 +atp_max = 7 +shop_multiplier = 1.0 + +[SlicerOfFanatic] +grind = 30 +atp_min = 340 +atp_max = 360 +shop_multiplier = 1.0 + +[LameDArgent] +grind = 35 +atp_min = 430 +atp_max = 465 +shop_multiplier = 1.0 + +[Excalibur] +grind = 0 +atp_min = 900 +atp_max = 950 +shop_multiplier = 1.0 + +[RageDeFeu] +grind = 9 +atp_min = 175 +atp_max = 185 +shop_multiplier = 1.0 + +[DaisyChain] +grind = 0 +atp_min = 350 +atp_max = 410 +shop_multiplier = 1.0 + +[OphelieSeize] +grind = 9 +atp_min = 390 +atp_max = 420 +shop_multiplier = 1.0 + +[MilleMarteaux] +grind = 12 +atp_min = 200 +atp_max = 220 +shop_multiplier = 1.0 + +[LeCogneur] +grind = 0 +atp_min = 310 +atp_max = 330 +shop_multiplier = 1.0 + +[CommanderBlade] +grind = 0 +atp_min = 560 +atp_max = 585 +shop_multiplier = 1.0 + +[Vivienne] +grind = 50 +atp_min = 575 +atp_max = 590 +shop_multiplier = 1.0 + +[Kusanagi] +grind = 32 +atp_min = 560 +atp_max = 575 +shop_multiplier = 1.0 + +[SacredDuster] +grind = 25 +atp_min = 660 +atp_max = 730 +shop_multiplier = 1.0 + +[Guren] +grind = 0 +atp_min = 790 +atp_max = 840 +shop_multiplier = 1.0 + +[Shouren] +grind = 0 +atp_min = 820 +atp_max = 870 +shop_multiplier = 1.0 + +[Jizai] +grind = 40 +atp_min = 800 +atp_max = 810 +shop_multiplier = 1.0 + +[Flamberge] +grind = 30 +atp_min = 575 +atp_max = 590 +shop_multiplier = 1.0 + +[Yunchang] +grind = 25 +atp_min = 300 +atp_max = 350 +shop_multiplier = 1.0 + +[SnakeSpire] +grind = 15 +atp_min = 290 +atp_max = 310 +shop_multiplier = 1.0 + +[FlapjackFlapper] +grind = 25 +atp_min = 350 +atp_max = 400 +shop_multiplier = 1.0 + +[Getsugasan] +grind = 0 +atp_min = 190 +atp_max = 230 +shop_multiplier = 1.0 + +[Maguwa] +grind = 15 +atp_min = 230 +atp_max = 250 +shop_multiplier = 1.0 + +[HeavenStriker] +grind = 20 +atp_min = 550 +atp_max = 660 +shop_multiplier = 1.0 + +[CannonRouge] +grind = 30 +atp_min = 600 +atp_max = 750 +shop_multiplier = 1.0 + +[MeteorRouge] +grind = 0 +atp_min = 265 +atp_max = 315 +shop_multiplier = 1.0 + +[Solferino] +grind = 0 +atp_min = 250 +atp_max = 300 +shop_multiplier = 1.0 + +[Clio] +grind = 0 +atp_min = 660 +atp_max = 690 +shop_multiplier = 1.0 + +[SirenGlassHammer] +grind = 0 +atp_min = 390 +atp_max = 450 +shop_multiplier = 1.0 + +[GlideDivine] +grind = 0 +atp_min = 185 +atp_max = 400 +shop_multiplier = 1.0 + +[Shichishito] +grind = 0 +atp_min = 500 +atp_max = 560 +shop_multiplier = 1.0 + +[Murasame] +grind = 0 +atp_min = 420 +atp_max = 435 +shop_multiplier = 1.0 + +[DaylightScar] +grind = 25 +atp_min = 500 +atp_max = 550 +shop_multiplier = 1.0 + +[Decalog] +grind = 0 +atp_min = 150 +atp_max = 200 +shop_multiplier = 1.0 + +[TyrellsParasol] +grind = 0 +atp_min = 250 +atp_max = 300 +shop_multiplier = 1.0 + +[AkikosCleaver] +grind = 0 +atp_min = 1 +atp_max = 200 +shop_multiplier = 1.0 + +[Tanegashima] +grind = 0 +atp_min = 320 +atp_max = 410 +shop_multiplier = 1.0 + +[TreeClippers] +grind = 0 +atp_min = 1 +atp_max = 200 +shop_multiplier = 1.0 + +[NiceShot] +grind = 0 +atp_min = 180 +atp_max = 200 +shop_multiplier = 1.0 + +[Unknown3] +grind = 0 +atp_min = 200 +atp_max = 200 +shop_multiplier = 1.0 + +[Unknown4] +grind = 0 +atp_min = 200 +atp_max = 200 +shop_multiplier = 1.0 + +[AnoBazooka] +grind = 15 +atp_min = 350 +atp_max = 370 +shop_multiplier = 1.0 + +[Synthesizer] +grind = 0 +atp_min = 1 +atp_max = 1 +shop_multiplier = 1.0 + +[BambooSpear] +grind = 0 +atp_min = 2 +atp_max = 255 +shop_multiplier = 1.0 + +[KaneiTsuho] +grind = 0 +atp_min = 1 +atp_max = 1 +shop_multiplier = 1.0 + +[Jitte] +grind = 0 +atp_min = 100 +atp_max = 123 +shop_multiplier = 1.0 + +[ButterflyNet] +grind = 0 +atp_min = 1 +atp_max = 1 +shop_multiplier = 1.0 + +[Syringe] +grind = 0 +atp_min = 95 +atp_max = 175 +shop_multiplier = 1.0 + +[Battledore] +grind = 0 +atp_min = 1 +atp_max = 1 +shop_multiplier = 1.0 + +[Racket] +grind = 0 +atp_min = 1 +atp_max = 1 +shop_multiplier = 1.0 + +[Hammer] +grind = 0 +atp_min = 120 +atp_max = 185 +shop_multiplier = 1.0 + +[GreatBouquet] +grind = 0 +atp_min = 1 +atp_max = 1 +shop_multiplier = 1.0 + +[TypesaSaber] +grind = 125 +atp_min = 120 +atp_max = 120 +shop_multiplier = 1.0 + +[TypeslSaber] +grind = 125 +atp_min = 100 +atp_max = 130 +shop_multiplier = 1.0 + +[TypeslSlicer] +grind = 125 +atp_min = 140 +atp_max = 140 +shop_multiplier = 1.0 + +[TypeslClaw] +grind = 125 +atp_min = 100 +atp_max = 150 +shop_multiplier = 1.0 + +[TypeslKatana] +grind = 125 +atp_min = 100 +atp_max = 140 +shop_multiplier = 1.0 + +[TypejsSaber] +grind = 125 +atp_min = 100 +atp_max = 140 +shop_multiplier = 1.0 + +[TypejsSlicer] +grind = 125 +atp_min = 100 +atp_max = 130 +shop_multiplier = 1.0 + +[TypejsJSword] +grind = 125 +atp_min = 130 +atp_max = 130 +shop_multiplier = 1.0 + +[TypeswSword] +grind = 125 +atp_min = 150 +atp_max = 150 +shop_multiplier = 1.0 + +[TypeswSlicer] +grind = 125 +atp_min = 100 +atp_max = 140 +shop_multiplier = 1.0 + +[TypeswJSword] +grind = 125 +atp_min = 100 +atp_max = 150 +shop_multiplier = 1.0 + +[TyperoSword] +grind = 100 +atp_min = 10 +atp_max = 100 +shop_multiplier = 1.0 + +[TyperoHalbert] +grind = 100 +atp_min = 10 +atp_max = 80 +shop_multiplier = 1.0 + +[TyperoRod] +grind = 90 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypeblBlade] +grind = 90 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypeknBlade] +grind = 125 +atp_min = 180 +atp_max = 200 +shop_multiplier = 1.0 + +[TypeknClaw] +grind = 125 +atp_min = 180 +atp_max = 220 +shop_multiplier = 1.0 + +[TypehaHalbert] +grind = 90 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypehaRod] +grind = 80 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypedsDSaber] +grind = 125 +atp_min = 30 +atp_max = 30 +shop_multiplier = 1.0 + +[TypedsRod] +grind = 125 +atp_min = 10 +atp_max = 30 +shop_multiplier = 1.0 + +[Typeds] +grind = 125 +atp_min = 10 +atp_max = 30 +shop_multiplier = 1.0 + +[TypeclClaw] +grind = 125 +atp_min = 170 +atp_max = 170 +shop_multiplier = 1.0 + +[TypessSw] +grind = 125 +atp_min = 150 +atp_max = 150 +shop_multiplier = 1.0 + +[TypeguHand] +grind = 95 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypeguMechgun] +grind = 90 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TyperiRifle] +grind = 100 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypemeMechgun] +grind = 30 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypeshShot] +grind = 60 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 + +[TypewaWand] +grind = 60 +atp_min = 10 +atp_max = 10 +shop_multiplier = 1.0 diff --git a/src/ship/item_stats.rs b/src/ship/item_stats.rs index 998ff70..be39a90 100644 --- a/src/ship/item_stats.rs +++ b/src/ship/item_stats.rs @@ -4,6 +4,7 @@ use serde::{Serialize, Deserialize}; use std::fs::File; use std::io::Read; +use crate::entity::item::weapon::WeaponType; use crate::entity::item::armor::ArmorType; use crate::entity::item::shield::ShieldType; use crate::entity::item::unit::UnitType; @@ -11,6 +12,11 @@ use crate::entity::item::mag::MagType; use crate::entity::item::tool::ToolType; +lazy_static::lazy_static! { + pub static ref WEAPON_STATS: HashMap = weapon_stats(); +} + + fn load_data_file(path: &str) -> T { let mut f = File::open(path).unwrap(); let mut s = String::new(); @@ -20,8 +26,12 @@ fn load_data_file(path: &str) -> T { } -struct WeaponStats { - +#[derive(Debug, Copy, Clone, Serialize, Deserialize)] +pub struct WeaponStats { + pub grind: usize, + pub atp_min: usize, + pub atp_max: usize, + pub shop_multiplier: f32, } #[derive(Debug, Copy, Clone, Serialize, Deserialize)] @@ -86,6 +96,15 @@ pub struct MagFeedTable(HashMap); #[derive(Debug)] pub struct MagFeedTables(Vec); +pub fn weapon_stats() -> HashMap { + let weapon_stats: HashMap = load_data_file("data/item_stats/weapon_stats.toml"); + weapon_stats.iter() + .inspect(|k| println!("{:?}", k)) + .map(|(name, stats)| { + (name.parse().unwrap(), *stats) + }).collect() +} + pub fn armor_stats() -> HashMap { let armor_stats: HashMap = load_data_file("data/item_stats/armor_stats.toml"); armor_stats.iter() @@ -135,6 +154,12 @@ pub fn mag_feed_tables() -> MagFeedTables { mod test { use super::*; + #[test] + fn test_weapon_stats() { + let wstat = weapon_stats(); + assert!(wstat.get(&WeaponType::MadamsUmbrella).unwrap().atp_max == 280); + } + #[test] fn test_armor_stats() { let astat = armor_stats();