From 0575c7a193def7a5437e9536fe79111a517fa2bc Mon Sep 17 00:00:00 2001 From: Chaosvolt Date: Tue, 26 Nov 2024 19:12:55 -0600 Subject: [PATCH] fix: internal-mag guns that lack `RELOAD_ONE` no longer massively inflate reload cost (#5769) * fix: internal-mag guns that lack `RELOAD_ONE` no longer massively inflate reload cost * style(autofix.ci): automated formatting --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- data/json/items/classes/gun.json | 2 +- data/json/items/gun/misc.json | 2 +- data/json/items/gun/nail.json | 2 +- data/json/items/gun/ups.json | 1 + data/json/items/magazine/chemical_spray.json | 2 +- data/json/items/magazine/liquid.json | 8 ++++---- data/json/items/ranged/pneumatic.json | 5 +++-- data/json/items/ranged/spearguns.json | 2 +- src/character.cpp | 4 +++- 9 files changed, 16 insertions(+), 12 deletions(-) diff --git a/data/json/items/classes/gun.json b/data/json/items/classes/gun.json index 0cc257229164..1ef0404ecf6f 100644 --- a/data/json/items/classes/gun.json +++ b/data/json/items/classes/gun.json @@ -23,7 +23,7 @@ "skill": "launcher", "ammo": "flammable", "ammo_effects": [ "FLARE" ], - "reload": 4, + "reload": 400, "flags": [ "FIRE_100", "NEVER_JAMS", "FIRESTARTER", "PYROMANIAC_WEAPON" ], "use_action": { "type": "firestarter", "moves": 200 }, "faults": [ ] diff --git a/data/json/items/gun/misc.json b/data/json/items/gun/misc.json index acf208dd0932..50ebe13226a7 100644 --- a/data/json/items/gun/misc.json +++ b/data/json/items/gun/misc.json @@ -45,7 +45,7 @@ "handling": 40, "modes": [ [ "DEFAULT", "burst", 4 ] ], "clip_size": 100, - "reload": 0, + "reload": 500, "loudness": 5, "valid_mod_locations": [ [ "sling", 1 ] ] } diff --git a/data/json/items/gun/nail.json b/data/json/items/gun/nail.json index 6116b737688d..4b677dbc2b47 100644 --- a/data/json/items/gun/nail.json +++ b/data/json/items/gun/nail.json @@ -19,7 +19,7 @@ "dispersion": 800, "loudness": 10, "clip_size": 20, - "reload": 50, + "reload": 200, "ranged_damage": { "damage_type": "stab", "amount": 1 }, "valid_mod_locations": [ [ "grip", 1 ], [ "rail", 1 ], [ "sights", 1 ], [ "stock", 1 ], [ "underbarrel", 1 ] ] }, diff --git a/data/json/items/gun/ups.json b/data/json/items/gun/ups.json index 83813d72d7a7..ac5d49260b8b 100644 --- a/data/json/items/gun/ups.json +++ b/data/json/items/gun/ups.json @@ -208,6 +208,7 @@ "modes": [ [ "DEFAULT", "semi", 1 ], [ "AUTO", "auto", 5 ] ], "ammo": "water", "clip_size": 80, + "reload": 300, "extend": { "flags": [ "MOUNTED_GUN", "NO_RECOVER_AMMO" ] }, "delete": { "flags": [ "NO_UNLOAD" ] } } diff --git a/data/json/items/magazine/chemical_spray.json b/data/json/items/magazine/chemical_spray.json index df15acd496c8..6e2017f86be5 100644 --- a/data/json/items/magazine/chemical_spray.json +++ b/data/json/items/magazine/chemical_spray.json @@ -15,7 +15,7 @@ "ammo_type": "chemical_spray", "capacity": 800, "reliability": 9, - "reload_time": 3, + "reload_time": 1, "flags": [ "MAG_BULKY" ] } ] diff --git a/data/json/items/magazine/liquid.json b/data/json/items/magazine/liquid.json index fc787608ea35..1a6797754fba 100644 --- a/data/json/items/magazine/liquid.json +++ b/data/json/items/magazine/liquid.json @@ -15,7 +15,7 @@ "ammo_type": "flammable", "capacity": 3000, "reliability": 9, - "reload_time": 3, + "reload_time": 1, "flags": [ "MAG_BULKY" ] }, { @@ -34,7 +34,7 @@ "ammo_type": "flammable", "capacity": 500, "reliability": 9, - "reload_time": 3, + "reload_time": 1, "flags": [ "MAG_BULKY" ] }, { @@ -53,7 +53,7 @@ "ammo_type": "flammable", "capacity": 2000, "reliability": 10, - "reload_time": 3, + "reload_time": 1, "flags": [ "MAG_BULKY" ] }, { @@ -72,7 +72,7 @@ "ammo_type": "flammable", "capacity": 4000, "reliability": 10, - "reload_time": 3, + "reload_time": 1, "flags": [ "MAG_BULKY" ] } ] diff --git a/data/json/items/ranged/pneumatic.json b/data/json/items/ranged/pneumatic.json index 3d3dbc3e97dd..1ccca4386bba 100644 --- a/data/json/items/ranged/pneumatic.json +++ b/data/json/items/ranged/pneumatic.json @@ -53,7 +53,8 @@ "recoil": 350, "durability": 7, "clip_size": 10, - "loudness": 16 + "loudness": 16, + "extend": { "flags": [ "RELOAD_ONE" ] } }, { "id": "tihar", @@ -104,7 +105,7 @@ "durability": 7, "modes": [ [ "DEFAULT", "single", 1 ], [ "DOUBLE", "double", 2 ] ], "clip_size": 2, - "reload": 6000, + "reload": 1000, "loudness": 22, "valid_mod_locations": [ [ "accessories", 4 ], diff --git a/data/json/items/ranged/spearguns.json b/data/json/items/ranged/spearguns.json index c7e2ac005424..4dece1647ba4 100644 --- a/data/json/items/ranged/spearguns.json +++ b/data/json/items/ranged/spearguns.json @@ -87,7 +87,7 @@ "dispersion": 105, "durability": 8, "clip_size": 4, - "reload": 6000, + "reload": 1000, "loudness": 11, "valid_mod_locations": [ [ "accessories", 4 ], diff --git a/src/character.cpp b/src/character.cpp index 8be7ec3b6f10..68ad2ec6c4f2 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -11534,7 +11534,9 @@ int Character::item_reload_cost( const item &it, item &ammo, int qty ) const /** @EFFECT_SHOTGUN decreases time taken to reload a shotgun */ /** @EFFECT_LAUNCHER decreases time taken to reload a launcher */ - int cost = ( it.is_gun() ? it.get_reload_time() : it.type->magazine->reload_time ) * qty; + // If we're topping off an internal magazine in a gun, only use base reload time, magazines use time per round. + int cost = ( it.is_gun() ? it.get_reload_time() : it.type->magazine->reload_time ) * + ( it.is_gun() ? 1 : qty ); skill_id sk = it.is_gun() ? it.type->gun->skill_used : skill_gun; mv += cost / ( 1.0f + std::min( get_skill_level( sk ) * 0.1f, 1.0f ) );