diff --git a/data/json/mapgen/map_extras/laststand.json b/data/json/mapgen/map_extras/laststand.json index 6952e46ad8043..b31f9ff584701 100644 --- a/data/json/mapgen/map_extras/laststand.json +++ b/data/json/mapgen/map_extras/laststand.json @@ -5,7 +5,9 @@ "default": "mon_null", "monsters": [ { "monster": "mon_civilian_police", "weight": 1, "cost_multiplier": 1, "ends": "5 days" }, - { "monster": "mon_civilian_zombiefighter", "weight": 4, "cost_multiplier": 1, "ends": "5 days" } + { "monster": "mon_civilian_police_rifle", "weight": 1, "cost_multiplier": 1, "ends": "5 days" }, + { "monster": "mon_civilian_zombiefighter", "weight": 4, "cost_multiplier": 1, "ends": "5 days" }, + { "monster": "mon_civilian_zombiegunner", "weight": 4, "cost_multiplier": 1, "ends": "5 days" } ] }, { diff --git a/data/json/monster_special_attacks/monster_gun.json b/data/json/monster_special_attacks/monster_gun.json index d70f95a2bd4c8..0fed116755673 100644 --- a/data/json/monster_special_attacks/monster_gun.json +++ b/data/json/monster_special_attacks/monster_gun.json @@ -205,6 +205,33 @@ "dispersion": 960, "durability": 5 }, + { + "id": "civilian_glock19", + "copy-from": "glock_19", + "looks_like": "glock_19", + "flags": [ "PSEUDO" ], + "type": "GUN", + "name": { "str_sp": "Fighters' Glock 19" }, + "description": { + "str": "A gun carried by civilian monsters, more inaccurate for balancing reasons. If you see this, it's a bug.", + "//~": "NO_I18N" + }, + "dispersion": 960, + "durability": 5 + }, + { + "id": "civilian_AR-15", + "copy-from": "modular_ar15", + "looks_like": "modular_ar15", + "flags": [ "PSEUDO" ], + "type": "GUN", + "ammo": [ "223" ], + "name": { "str_sp": "Cops' AR15" }, + "//": "A rifle carried by cop monsters, more inaccurate for balancing reasons.", + "dispersion": 960, + "durability": 5, + "pocket_data": [ { "magazine_well": "500 ml", "pocket_type": "MAGAZINE_WELL", "item_restriction": [ "stanag30" ] } ] + }, { "id": "acid_spit", "type": "GUN", diff --git a/data/json/monsters/civilians.json b/data/json/monsters/civilians.json index 6200bfa533672..cca140d5699e8 100644 --- a/data/json/monsters/civilians.json +++ b/data/json/monsters/civilians.json @@ -94,11 +94,61 @@ ], "armor": { "bash": 6, "cut": 6, "stab": 6, "bullet": 6, "electric": 2 } }, + { + "id": "mon_civilian_police_rifle", + "type": "MONSTER", + "name": { "str": "overconfident officer" }, + "description": "Rifle in hand, this police officer is determined to make a last stand against the horde.", + "copy-from": "mon_civilian_panic", + "diff": 5, + "aggro_character": false, + "aggression": 100, + "morale": 100, + "vision_day": 50, + "vision_night": 3, + "weakpoint_sets": [ "wps_humanoid_body", "wps_humanoid_body_armor" ], + "families": [ "prof_intro_biology", "prof_physiology", "prof_wp_syn_armored" ], + "chat_topics": [ "TALK_CIVILIAN_OFFICER" ], + "//": "Copied from zombie cop", + "melee_skill": 4, + "melee_dice": 2, + "melee_dice_sides": 4, + "//2": "Unwieldy rifle butt for melee", + "melee_damage": [ { "damage_type": "bash", "amount": 3 } ], + "death_drops": { + "subtype": "collection", + "items": [ + { "group": "mon_zombie_cop_death_drops", "prob": 100 }, + { "group": "modular_ar15", "prob": 100, "charges": [ 0, 6 ] } + ] + }, + "zombify_into": "mon_zombie_cop", + "extend": { "flags": [ "DROPS_AMMO", "WIELDED_WEAPON" ] }, + "starting_ammo": { "223": 20 }, + "//3": "Range starts from 0 to get some shots out", + "special_attacks": [ + { + "type": "gun", + "cooldown": 10, + "move_cost": 100, + "gun_type": "civilian_AR-15", + "ammo_type": "223", + "fake_skills": [ [ "gun", 2 ], [ "rifle", 3 ] ], + "fake_dex": 8, + "fake_per": 10, + "ranges": [ [ 0, 14, "DEFAULT" ] ], + "condition": { "test_eoc": "is_disarmed" }, + "require_targeting_player": false, + "description": "The officer fires their AR-15!" + } + ], + "armor": { "bash": 6, "cut": 6, "stab": 6, "bullet": 6, "electric": 2 } + }, { "id": "mon_civilian_zombiefighter", "type": "MONSTER", "name": { "str": "futile fighter" }, - "description": "Obviously, this aggravated yet rallied human has lost their wits and tries to fight the undead with just a stick in their hands.", + "description": "Obviously, this aggravated yet rallied person has lost their wits and tries to fight the undead with just a knife in their hands.", "copy-from": "mon_civilian_panic", "chat_topics": [ "TALK_CIVILIAN_FIGHTER" ], "diff": 3, @@ -106,15 +156,56 @@ "aggression": 100, "morale": 100, "melee_skill": 2, + "special_attacks": [ { "id": "feral_weapon_knife_combat_low_skill" } ], + "melee_dice": 2, + "melee_dice_sides": 3, + "death_drops": { + "subtype": "collection", + "items": [ { "group": "default_zombie_death_drops", "prob": 100 }, { "group": "survivor_knife", "prob": 100 } ] + } + }, + { + "id": "mon_civilian_zombiegunner", + "type": "MONSTER", + "name": { "str": "firearmed fighter" }, + "description": "Handgun in hand, this person is determined to make a last stand against the horde.", + "copy-from": "mon_civilian_panic", + "chat_topics": [ "TALK_CIVILIAN_GUNNER" ], + "diff": 3, + "aggro_character": false, + "aggression": 100, + "morale": 100, + "melee_skill": 2, "melee_dice": 2, "melee_dice_sides": 3, - "melee_damage": [ { "damage_type": "bash", "amount": 4 } ] + "death_drops": { + "subtype": "collection", + "items": [ { "group": "default_zombie_death_drops", "prob": 100 }, { "item": "glock_19", "prob": 100, "charges": [ 0, 6 ] } ] + }, + "starting_ammo": { "9mm": 10 }, + "//3": "Range starts from 0 to get some shots out", + "special_attacks": [ + { + "type": "gun", + "cooldown": 10, + "move_cost": 150, + "gun_type": "civilian_glock19", + "ammo_type": "9mm", + "fake_skills": [ [ "gun", 2 ], [ "pistol", 3 ] ], + "fake_dex": 8, + "fake_per": 10, + "ranges": [ [ 0, 14, "DEFAULT" ] ], + "condition": { "test_eoc": "is_disarmed" }, + "require_targeting_player": false, + "description": "The gunman fires their sidearm!" + } + ] }, { "id": "mon_civilian_icu", "type": "MONSTER", "name": { "str": "hospitalized human" }, - "description": "This being is severely ill in some form or another, requiring intensive care that is not available anymore after the Cataclysm. There is nothing you can do for them.", + "description": "This person is severely ill in some form or another, requiring intensive care that is not available anymore after the Cataclysm. There is nothing you can do for them.", "chat_topics": [ "TALK_CIVILIAN_ICU" ], "speed": 0, "//": "So they are not perpetually fleeing despite lying in a hospital bed", @@ -152,6 +243,8 @@ "monsters": [ { "monster": "mon_civilian_stationary", "weight": 30, "cost_multiplier": 0, "ends": "3 days" }, { "monster": "mon_civilian_zombiefighter", "weight": 16, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_zombiegunner", "weight": 12, "cost_multiplier": 0, "ends": "3 days" }, + { "monster": "mon_civilian_police_rifle", "weight": 4, "cost_multiplier": 3, "ends": "3 days" }, { "monster": "mon_civilian_police", "weight": 4, "cost_multiplier": 3, "ends": "3 days" }, { "monster": "mon_civilian_parent", diff --git a/data/json/npcs/civilians/civilians.json b/data/json/npcs/civilians/civilians.json index de2f4a3739b80..9ccd2c190d42e 100644 --- a/data/json/npcs/civilians/civilians.json +++ b/data/json/npcs/civilians/civilians.json @@ -19,7 +19,7 @@ "id": "TALK_CIVILIAN_FIGHTER", "dynamic_line": [ "I'm gonna kill all these things!", - "&They let out a bellowing warcry and wave their stick.", + "&They let out a bellowing warcry and wave their knife.", "I'M INVINCIBLE!" ], "responses": [ @@ -43,6 +43,19 @@ ], "responses": [ { "text": "[Back away.]", "topic": "TALK_DONE" } ] }, + { + "type": "talk_topic", + "id": "TALK_CIVILIAN_GUNNER", + "dynamic_line": [ + "I'm gonna kill all these things!", + "&They let out a bellowing warcry and wave their gun.", + "I'M INVINCIBLE!" + ], + "responses": [ + { "text": "Are you crazy? Get out of here!", "topic": "TALK_CIVILIAN_FIGHTER_EVAC" }, + { "text": "[Leave them to their futile fight.]", "topic": "TALK_DONE" } + ] + }, { "type": "talk_topic", "id": "TALK_CIVILIAN_ICU", diff --git a/data/mods/Generic_Guns/firearms/gg_firearms_migration.json b/data/mods/Generic_Guns/firearms/gg_firearms_migration.json index b193e455932e9..7b450560a28c5 100644 --- a/data/mods/Generic_Guns/firearms/gg_firearms_migration.json +++ b/data/mods/Generic_Guns/firearms/gg_firearms_migration.json @@ -124,6 +124,8 @@ "m1911a1_38super", "glock_22", "civilian_cop_glock22", + "civilian_glock19", + "civilian_AR-15", "hi_power_40", "tommygun", "usp_45",