Skip to content

Commit

Permalink
Adds riot control turrets and makes them more common than lethal types.
Browse files Browse the repository at this point in the history
  • Loading branch information
I-am-Erk authored and kevingranade committed Dec 24, 2019
1 parent f005f00 commit dbb1105
Show file tree
Hide file tree
Showing 11 changed files with 226 additions and 74 deletions.
11 changes: 11 additions & 0 deletions data/json/items/ammo/40x46mm.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,17 @@
"recoil": 1000,
"casing": "40x46mm_m118_casing"
},
{
"id": "40x46mm_sponge",
"copy-from": "40x46mm_grenade",
"type": "AMMO",
"name": "40x46mm sponge",
"description": "A 40mm sponge round that delivers strong impact on target, causing pain and disorientation. May still injure or kill.",
"price": 5000,
"price_postapoc": 10000,
"damage": 5,
"extend": { "effects": [ "BEANBAG" ] }
},
{
"id": "40x46mm_slug_m199",
"copy-from": "40x46mm_grenade",
Expand Down
22 changes: 22 additions & 0 deletions data/json/items/corpses/inactive_bots.json
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,28 @@
"skill2": "computer"
}
},
{
"id": "bot_turret_riot",
"type": "TOOL",
"name": "inactive riot control turret",
"description": "This is an inactive riot control turret. Using this item involves loading the unit with the factory-loaded beanbag rounds in your inventory (if you wish to divide your ammunition, set aside whatever beanbag rounds you do NOT want to give the turret) turning it on, and placing it on the ground, where it will attach itself. If programmed successfully the turret will then identify you as a friendly, and attack all enemies with its riot control gun.",
"weight": "125000 g",
"volume": "60 L",
"price": 200500,
"to_hit": -3,
"bashing": 8,
"material": [ "steel", "plastic" ],
"symbol": ";",
"color": "red",
"use_action": {
"type": "place_monster",
"monster_id": "mon_turret_riot",
"difficulty": 6,
"moves": 100,
"skill1": "electronics",
"skill2": "computer"
}
},
{
"id": "bot_turret",
"type": "TOOL",
Expand Down
27 changes: 18 additions & 9 deletions data/json/items/generic.json
Original file line number Diff line number Diff line change
Expand Up @@ -2972,20 +2972,29 @@
"description": "A broken turret. Much less threatening now that it's laid limp on solid ground. Could be gutted for parts.",
"price": 1000,
"material": [ "steel", "plastic" ],
"weight": "62650 g",
"weight": "72650 g",
"volume": "30 L",
"bashing": 4,
"cutting": 4,
"to_hit": -3,
"flags": [ "TRADER_AVOID", "NO_REPAIR" ]
},
{
"type": "GENERIC",
"id": "broken_turret_riot",
"symbol": ",",
"color": "blue",
"name": "broken riot control turret",
"description": "A broken riot control turret. Much less threatening now that it's laid limp on solid ground. Could be gutted for parts.",
"copy-from": "broken_turret"
},
{
"type": "GENERIC",
"id": "broken_turret_rifle",
"symbol": ",",
"color": "green",
"name": "broken M249 autonomous CROWS II",
"weight": "70000 g",
"weight": "75 kg",
"copy-from": "broken_turret"
},
{
Expand All @@ -2994,7 +3003,7 @@
"symbol": ",",
"color": "green",
"name": "broken M240 autonomous CROWS II",
"weight": "70000 g",
"weight": "75 kg",
"copy-from": "broken_turret"
},
{
Expand All @@ -3003,7 +3012,7 @@
"symbol": ",",
"color": "green",
"name": "broken M2 autonomous CROWS II",
"weight": "100000 g",
"weight": "100 kg",
"copy-from": "broken_turret"
},
{
Expand All @@ -3012,7 +3021,7 @@
"symbol": ",",
"color": "green",
"name": "broken laser turret",
"weight": "110000 g",
"weight": "110 kg",
"copy-from": "broken_turret"
},
{
Expand All @@ -3025,8 +3034,8 @@
"description": "A broken secubot, with its casing broken and fluid drained. Could be gutted for parts.",
"price": 1000,
"material": [ "steel", "plastic" ],
"weight": "100000 g",
"volume": "65000 ml",
"weight": "100 kg",
"volume": "65 L",
"bashing": 4,
"cutting": 4,
"to_hit": -3,
Expand All @@ -3042,8 +3051,8 @@
"description": "A broken TALON UGV, with its casing broken and fluid drained. Could be gutted for parts.",
"price": 1000,
"material": [ "steel", "plastic" ],
"weight": "100000 g",
"volume": "65000 ml",
"weight": "100 kg",
"volume": "65 L",
"bashing": 4,
"cutting": 4,
"to_hit": -3,
Expand Down
23 changes: 23 additions & 0 deletions data/json/items/gun/40x46mm.json
Original file line number Diff line number Diff line change
Expand Up @@ -148,5 +148,28 @@
"clip_size": 3,
"modes": [ [ "DEFAULT", "single", 1, "NPC_AVOID" ], [ "MULTI", "multi", 3, [ "NPC_AVOID", "SIMULTANEOUS" ] ] ],
"proportional": { "weight": 1.5, "volume": 1.8, "price": 2 }
},
{
"id": "pseudo_m203",
"copy-from": "launcher_base",
"looks_like": "m203",
"type": "GUN",
"name": "M203 array",
"description": "Six M203 grenade launchers for use on an automated 40mm turret.",
"weight": "8200 g",
"volume": "4 L",
"price": 250000,
"to_hit": -1,
"bashing": 14,
"material": "steel",
"ammo": "40x46mm",
"range": 30,
"ranged_damage": 1,
"dispersion": 300,
"durability": 10,
"reload": 400,
"modes": [ [ "DEFAULT", "semi-auto", 1, "NPC_AVOID" ] ],
"clip_size": 16,
"flags": [ "MOUNTED_GUN" ]
}
]
2 changes: 1 addition & 1 deletion data/json/mapgen/office_tower_2.json
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@
],
"place_monsters": [ { "monster": "GROUP_OFFICE_TOWER_2", "x": [ 7, 21 ], "y": [ 13, 21 ], "chance": 2, "repeat": [ 1 ] } ],
"place_monster": [ { "monster": "mon_zombie_scientist", "x": [ 7, 21 ], "y": [ 4, 10 ], "repeat": [ 1, 3 ] } ],
"monster": { "7": { "monster": "mon_turret_rifle" } }
"monster": { "7": { "monster": "mon_turret_riot" } }
}
},
{
Expand Down
10 changes: 5 additions & 5 deletions data/json/mapgen/prison_1.json
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,11 @@
"place_item": [ { "item": "visions_solitude", "x": 16, "y": 108, "amount": 1 } ],
"place_monsters": [
{ "monster": "GROUP_ZOMBIE_PRISON", "x": [ 15, 20 ], "y": [ 34, 37 ], "repeat": [ 1, 2 ], "density": 0.2 },
{ "monster": "GROUP_ROBOT_SECUBOT", "x": [ 15, 20 ], "y": [ 39, 42 ], "density": 0.1 },
{ "monster": "GROUP_TURRET_RIOT", "x": [ 15, 20 ], "y": [ 39, 42 ], "density": 0.1 },
{ "monster": "GROUP_ZOMBIE_PRISON", "x": [ 15, 20 ], "y": [ 44, 37 ], "repeat": [ 1, 2 ], "density": 0.2 },
{ "monster": "GROUP_ROBOT_SECUBOT", "x": [ 32, 39 ], "y": [ 39, 42 ], "density": 0.1 },
{ "monster": "GROUP_TURRET_RIOT", "x": [ 32, 39 ], "y": [ 39, 42 ], "density": 0.1 },
{ "monster": "GROUP_ZOMBIE_PRISON", "x": [ 51, 56 ], "y": [ 34, 37 ], "repeat": [ 1, 2 ], "density": 0.2 },
{ "monster": "GROUP_ROBOT_SECUBOT", "x": [ 51, 56 ], "y": [ 39, 42 ], "density": 0.1 },
{ "monster": "GROUP_TURRET_RIOT", "x": [ 51, 56 ], "y": [ 39, 42 ], "density": 0.1 },
{ "monster": "GROUP_ZOMBIE_PRISON", "x": [ 51, 56 ], "y": [ 44, 37 ], "repeat": [ 1, 2 ], "density": 0.2 },
{ "monster": "GROUP_ROBOT_EYEBOT", "x": [ 24, 47 ], "y": [ 0, 13 ], "density": 0.1 },
{ "monster": "GROUP_ROBOT_EYEBOT", "x": [ 27, 44 ], "y": [ 52, 60 ], "density": 0.1 },
Expand Down Expand Up @@ -253,7 +253,7 @@
},
"place_monsters": [ { "monster": "GROUP_ZOMBIE_COP", "x": [ 35, 38 ], "y": [ 2, 7 ], "density": 0.2 } ],
"monster": {
"7": { "monster": "mon_turret_rifle" },
"7": { "monster": "mon_turret_riot" },
"Z": { "monster": "mon_zombie_prisoner" },
"C": { "monster": "mon_broken_cyborg" }
}
Expand Down Expand Up @@ -474,7 +474,7 @@
},
"place_monster": [
{ "monster": "mon_zombie_hulk", "x": 45, "y": 3 },
{ "monster": "mon_secubot", "x": 90, "y": 37 },
{ "monster": "mon_turret_riot", "x": 90, "y": 37 },
{ "monster": "mon_zombie_brute", "x": 60, "y": 56 }
],
"place_graffiti": [ { "text": "Dufresne was here", "x": 19, "y": 22 } ],
Expand Down
40 changes: 0 additions & 40 deletions data/json/monstergroups/monstergroups.json
Original file line number Diff line number Diff line change
Expand Up @@ -4261,7 +4261,6 @@
{ "monster": "mon_zombie_technician", "freq": 50, "cost_multiplier": 3 },
{ "monster": "mon_zombie_static", "freq": 50, "cost_multiplier": 3 },
{ "monster": "mon_zombie_brute_shocker", "freq": 10, "cost_multiplier": 5 },
{ "monster": "mon_chickenbot", "freq": 1, "cost_multiplier": 50 },
{ "monster": "mon_zombie_hulk", "freq": 1, "cost_multiplier": 50 },
{ "monster": "mon_skeleton_hulk", "freq": 1, "cost_multiplier": 50 }
]
Expand Down Expand Up @@ -4351,27 +4350,6 @@
"default": "mon_spider_web",
"monsters": [ ]
},
{
"type": "monstergroup",
"name": "GROUP_ROBOT",
"default": "mon_manhack",
"monsters": [
{ "monster": "mon_skitterbot", "freq": 220, "cost_multiplier": 0 },
{ "monster": "mon_secubot", "freq": 150, "cost_multiplier": 0 },
{ "monster": "mon_talon_m202a1", "freq": 75, "cost_multiplier": 0 },
{ "monster": "mon_copbot", "freq": 0, "cost_multiplier": 0 },
{ "monster": "mon_molebot", "freq": 40, "cost_multiplier": 0 },
{ "monster": "mon_tripod", "freq": 110, "cost_multiplier": 0 },
{ "monster": "mon_chickenbot", "freq": 60, "cost_multiplier": 0 },
{ "monster": "mon_tankbot", "freq": 20, "cost_multiplier": 0 }
]
},
{
"type": "monstergroup",
"name": "GROUP_TURRET",
"default": "mon_turret_rifle",
"monsters": [ { "monster": "mon_turret_bmg", "freq": 50, "cost_multiplier": 2 } ]
},
{
"type": "monstergroup",
"name": "GROUP_POLICE",
Expand Down Expand Up @@ -5083,18 +5061,6 @@
{ "monster": "mon_dog_zombie_cop", "freq": 50, "cost_multiplier": 2, "pack_size": [ 1, 2 ] }
]
},
{
"type": "monstergroup",
"name": "GROUP_ROBOT_EYEBOT",
"default": "mon_eyebot",
"monsters": [ { "monster": "mon_eyebot", "freq": 100, "cost_multiplier": 0 } ]
},
{
"type": "monstergroup",
"name": "GROUP_ROBOT_SECUBOT",
"default": "mon_secubot",
"monsters": [ { "monster": "mon_secubot", "freq": 100, "cost_multiplier": 0 } ]
},
{
"type": "monstergroup",
"name": "GROUP_PARK_ANIMAL",
Expand Down Expand Up @@ -5318,12 +5284,6 @@
"default": "mon_dark_wyrm",
"monsters": [ { "monster": "mon_dark_wyrm", "freq": 40, "cost_multiplier": 1 } ]
},
{
"name": "GROUP_HAZMATBOT",
"type": "monstergroup",
"default": "mon_hazmatbot",
"monsters": [ { "monster": "mon_hazmatbot", "freq": 40, "cost_multiplier": 1 } ]
},
{
"name": "GROUP_STRAY_DOGS",
"type": "monstergroup",
Expand Down
44 changes: 44 additions & 0 deletions data/json/monstergroups/robots.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
[
{
"type": "monstergroup",
"name": "GROUP_ROBOT",
"default": "mon_manhack",
"monsters": [
{ "monster": "mon_skitterbot", "freq": 220, "cost_multiplier": 0 },
{ "monster": "mon_secubot", "freq": 150, "cost_multiplier": 0 },
{ "monster": "mon_talon_m202a1", "freq": 75, "cost_multiplier": 0 },
{ "monster": "mon_copbot", "freq": 0, "cost_multiplier": 0 },
{ "monster": "mon_molebot", "freq": 40, "cost_multiplier": 0 }
]
},
{
"type": "monstergroup",
"name": "GROUP_TURRET",
"default": "mon_turret_rifle",
"monsters": [ { "monster": "mon_turret_bmg", "freq": 50, "cost_multiplier": 2 } ]
},
{
"name": "GROUP_HAZMATBOT",
"type": "monstergroup",
"default": "mon_hazmatbot",
"monsters": [ { "monster": "mon_hazmatbot", "freq": 40, "cost_multiplier": 1 } ]
},
{
"type": "monstergroup",
"name": "GROUP_ROBOT_EYEBOT",
"default": "mon_eyebot",
"monsters": [ { "monster": "mon_eyebot", "freq": 100, "cost_multiplier": 0 } ]
},
{
"type": "monstergroup",
"name": "GROUP_ROBOT_SECUBOT",
"default": "mon_secubot",
"monsters": [ { "monster": "mon_secubot", "freq": 100, "cost_multiplier": 0 } ]
},
{
"type": "monstergroup",
"name": "GROUP_TURRET_RIOT",
"default": "mon_turret_riot",
"monsters": [ { "monster": "mon_turret_riot", "freq": 100, "cost_multiplier": 0 } ]
}
]
50 changes: 50 additions & 0 deletions data/json/monsters/turrets.json
Original file line number Diff line number Diff line change
Expand Up @@ -225,5 +225,55 @@
"death_drops": { },
"death_function": [ "BROKEN" ],
"flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ]
},
{
"id": "mon_turret_riot",
"type": "MONSTER",
"name": "riot control platform",
"description": "These six-wheeled riot control platforms were widely publicized a few years before the cataclysm as a new semi-autonomous device that could fire less-lethal rounds with far more accuracy than a human, ensuring safer hits against a target's limbs. They were quickly adopted by prisons and inner city police forces, where they demonstrated that 'less lethal' is not the same as 'non-lethal'. In the days before the cataclysm, massive stockrooms of the things were put into circulation. On the bright side, although it shoots autonomously, it requires a human operator to relocate, so it's not so mobile anymore.",
"default_faction": "cop_bot",
"looks_like": "mon_turret",
"species": [ "ROBOT" ],
"diff": 20,
"volume": "62500 ml",
"weight": 172000,
"hp": 30,
"speed": 100,
"material": [ "steel" ],
"symbol": "2",
"color": "blue",
"aggression": 50,
"morale": 100,
"anger_triggers": [ "PLAYER_CLOSE", "HURT", "FRIEND_ATTACKED", "FRIEND_DIED" ],
"armor_bash": 14,
"armor_cut": 16,
"vision_day": 50,
"vision_night": 3,
"revert_to_itype": "bot_turret_riot",
"starting_ammo": { "40x46mm_sponge": 100 },
"special_attacks": [
{
"//": "For later: needs the ability to preferentially target legs and arms",
"type": "gun",
"cooldown": 1,
"move_cost": 150,
"gun_type": "pseudo_m203",
"ammo_type": "40x46mm_sponge",
"fake_skills": [ [ "gun", 8 ], [ "rifle", 8 ] ],
"fake_dex": 12,
"ranges": [ [ 0, 30, "DEFAULT" ] ],
"require_targeting_npc": true,
"require_targeting_monster": true,
"laser_lock": false,
"targeting_cost": 200,
"targeting_timeout_extend": -10,
"targeting_sound": "\"Universal curfew is in effect. Please return to your home. This unit is authorized to open fire.\"",
"targeting_volume": 50,
"no_ammo_sound": "a chk!"
}
],
"death_drops": { },
"death_function": [ "BROKEN" ],
"flags": [ "SEES", "NOHEAD", "ELECTRONIC", "IMMOBILE", "NO_BREATHE", "DROPS_AMMO" ]
}
]
Loading

0 comments on commit dbb1105

Please sign in to comment.