diff --git a/data/json/items/ammo/40x46mm.json b/data/json/items/ammo/40x46mm.json index b960c554a2ed4..964a7fc979085 100644 --- a/data/json/items/ammo/40x46mm.json +++ b/data/json/items/ammo/40x46mm.json @@ -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", diff --git a/data/json/items/corpses/inactive_bots.json b/data/json/items/corpses/inactive_bots.json index d3feaee1bf9e0..5cd3290d511f7 100644 --- a/data/json/items/corpses/inactive_bots.json +++ b/data/json/items/corpses/inactive_bots.json @@ -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", diff --git a/data/json/items/generic.json b/data/json/items/generic.json index af4fe82d2a0b5..2d53f6fd5c1da 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -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" }, { @@ -2994,7 +3003,7 @@ "symbol": ",", "color": "green", "name": "broken M240 autonomous CROWS II", - "weight": "70000 g", + "weight": "75 kg", "copy-from": "broken_turret" }, { @@ -3003,7 +3012,7 @@ "symbol": ",", "color": "green", "name": "broken M2 autonomous CROWS II", - "weight": "100000 g", + "weight": "100 kg", "copy-from": "broken_turret" }, { @@ -3012,7 +3021,7 @@ "symbol": ",", "color": "green", "name": "broken laser turret", - "weight": "110000 g", + "weight": "110 kg", "copy-from": "broken_turret" }, { @@ -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, @@ -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, diff --git a/data/json/items/gun/40x46mm.json b/data/json/items/gun/40x46mm.json index 719fdc01c7942..94faf1a491058 100644 --- a/data/json/items/gun/40x46mm.json +++ b/data/json/items/gun/40x46mm.json @@ -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" ] } ] diff --git a/data/json/mapgen/office_tower_2.json b/data/json/mapgen/office_tower_2.json index 326fd9515730f..1dfe16498d816 100644 --- a/data/json/mapgen/office_tower_2.json +++ b/data/json/mapgen/office_tower_2.json @@ -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" } } } }, { diff --git a/data/json/mapgen/prison_1.json b/data/json/mapgen/prison_1.json index eb91104628b0c..7f227c2e24a23 100644 --- a/data/json/mapgen/prison_1.json +++ b/data/json/mapgen/prison_1.json @@ -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 }, @@ -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" } } @@ -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 } ], diff --git a/data/json/monstergroups/monstergroups.json b/data/json/monstergroups/monstergroups.json index c6e8fed4a2478..4e1ab1dc23224 100644 --- a/data/json/monstergroups/monstergroups.json +++ b/data/json/monstergroups/monstergroups.json @@ -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 } ] @@ -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", @@ -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", @@ -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", diff --git a/data/json/monstergroups/robots.json b/data/json/monstergroups/robots.json new file mode 100644 index 0000000000000..d4cbf677275ba --- /dev/null +++ b/data/json/monstergroups/robots.json @@ -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 } ] + } +] diff --git a/data/json/monsters/turrets.json b/data/json/monsters/turrets.json index 53e1695944207..8f09ae297886f 100644 --- a/data/json/monsters/turrets.json +++ b/data/json/monsters/turrets.json @@ -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" ] } ] diff --git a/data/json/recipes/recipe_deconstruction.json b/data/json/recipes/recipe_deconstruction.json index b89569ee42f51..adc4107a8ccf1 100644 --- a/data/json/recipes/recipe_deconstruction.json +++ b/data/json/recipes/recipe_deconstruction.json @@ -731,7 +731,7 @@ "result": "broken_turret", "type": "uncraft", "skill_used": "electronics", - "difficulty": 3, + "difficulty": 4, "time": "1 h", "using": [ [ "soldering_standard", 10 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], @@ -752,7 +752,7 @@ "result": "broken_turret_rifle", "type": "uncraft", "skill_used": "electronics", - "difficulty": 3, + "difficulty": 4, "time": "1 h", "using": [ [ "soldering_standard", 10 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], @@ -773,7 +773,7 @@ "result": "broken_crows_m240", "type": "uncraft", "skill_used": "electronics", - "difficulty": 3, + "difficulty": 4, "time": "1 h", "using": [ [ "soldering_standard", 10 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], @@ -794,7 +794,7 @@ "result": "broken_turret_bmg", "type": "uncraft", "skill_used": "electronics", - "difficulty": 3, + "difficulty": 4, "time": "1 h", "using": [ [ "soldering_standard", 10 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], @@ -811,11 +811,34 @@ [ [ "turret_chassis", 1 ] ] ] }, + { + "result": "broken_turret_riot", + "type": "uncraft", + "skill_used": "electronics", + "difficulty": 4, + "time": "1 h", + "using": [ [ "soldering_standard", 10 ] ], + "qualities": [ { "id": "SCREW", "level": 1 } ], + "components": [ + [ [ "ai_module", 1 ] ], + [ [ "gun_module", 1 ] ], + [ [ "targeting_module", 1 ] ], + [ [ "identification_module", 1 ] ], + [ [ "sensor_module", 1 ] ], + [ [ "m203", 16 ] ], + [ [ "small_storage_battery", 1 ] ], + [ [ "power_supply", 3 ] ], + [ [ "antenna", 1 ] ], + [ [ "robot_controls", 1 ] ], + [ [ "omni_wheel", 1 ] ], + [ [ "copbot_chassis", 1 ] ] + ] + }, { "result": "broken_laserturret", "type": "uncraft", "skill_used": "electronics", - "difficulty": 3, + "difficulty": 4, "time": "1 h", "using": [ [ "soldering_standard", 10 ] ], "qualities": [ { "id": "SCREW", "level": 1 } ], diff --git a/src/map_extras.cpp b/src/map_extras.cpp index 3e9080f333793..7d0ebc50994a5 100644 --- a/src/map_extras.cpp +++ b/src/map_extras.cpp @@ -108,6 +108,7 @@ static const mtype_id mon_dispatch( "mon_dispatch" ); static const mtype_id mon_tankbot( "mon_tankbot" ); static const mtype_id mon_turret_bmg( "mon_turret_bmg" ); static const mtype_id mon_turret_rifle( "mon_turret_rifle" ); +static const mtype_id mon_turret_riot( "mon_turret_riot" ); static const mtype_id mon_zombie_spitter( "mon_zombie_spitter" ); static const mtype_id mon_zombie_soldier( "mon_zombie_soldier" ); static const mtype_id mon_zombie_military_pilot( "mon_zombie_military_pilot" ); @@ -525,14 +526,16 @@ static void mx_roadblock( map &m, const tripoint &abs_sub ) const bool road_at_east = is_ot_match( "road", east, ot_match_type::type ); const auto spawn_turret = [&]( int x, int y ) { - if( one_in( 2 ) ) { + if( one_in( 3 ) ) { m.add_spawn( mon_turret_bmg, 1, point( x, y ) ); - } else { + } else if( one_in( 2 ) ) { m.add_spawn( mon_turret_rifle, 1, point( x, y ) ); + } else { + m.add_spawn( mon_turret_riot, 1, point( x, y ) ); } }; bool mil = false; - if( one_in( 3 ) ) { + if( one_in( 6 ) ) { mil = true; } if( mil ) { //Military doesn't joke around with their barricades! @@ -573,14 +576,21 @@ static void mx_roadblock( map &m, const tripoint &abs_sub ) } } - if( one_in( 3 ) ) { // Chicken delivery - m.add_vehicle( vgroup_id( "military_vehicles" ), tripoint( 12, SEEY * 2 - 7, abs_sub.z ), 0, 70, - -1 ); - m.add_spawn( mon_chickenbot, 1, point( 12, 12 ) ); - } else if( one_in( 2 ) ) { // TAAANK + if( one_in( 2 ) ) { // The truck's wrecked...with fuel. Explosive barrel? - m.add_vehicle( vproto_id( "military_cargo_truck" ), point( 12, SEEY * 2 - 8 ), 0, 70, -1 ); - m.add_spawn( mon_tankbot, 1, point( 12, 12 ) ); + m.add_vehicle( vproto_id( "military_cargo_truck" ), point( 12, SEEY * 2 - 12 ), 0, 70, -1 ); + if( road_at_north ) { + spawn_turret( 12, 6 ); + } + if( road_at_east ) { + spawn_turret( 18, 12 ); + } + if( road_at_south ) { + spawn_turret( 12, 18 ); + } + if( road_at_west ) { + spawn_turret( 6, 12 ); + } } else { // Vehicle & turrets m.add_vehicle( vgroup_id( "military_vehicles" ), tripoint( 12, SEEY * 2 - 10, abs_sub.z ), 0, 70, -1 ); @@ -616,22 +626,22 @@ static void mx_roadblock( map &m, const tripoint &abs_sub ) if( road_at_north ) { line_furn( &m, f_barricade_road, 4, 3, 10, 3 ); line_furn( &m, f_barricade_road, 13, 3, 19, 3 ); - m.add_spawn( mon_turret_rifle, 1, point( 12, 1 ) ); + m.add_spawn( mon_turret_riot, 1, point( 12, 1 ) ); } if( road_at_east ) { line_furn( &m, f_barricade_road, SEEX * 2 - 3, 4, SEEX * 2 - 3, 10 ); line_furn( &m, f_barricade_road, SEEX * 2 - 3, 13, SEEX * 2 - 3, 19 ); - m.add_spawn( mon_turret_rifle, 1, point( SEEX * 2 - 1, 12 ) ); + m.add_spawn( mon_turret_riot, 1, point( SEEX * 2 - 1, 12 ) ); } if( road_at_south ) { line_furn( &m, f_barricade_road, 4, SEEY * 2 - 3, 10, SEEY * 2 - 3 ); line_furn( &m, f_barricade_road, 13, SEEY * 2 - 3, 19, SEEY * 2 - 3 ); - m.add_spawn( mon_turret_rifle, 1, point( 12, SEEY * 2 - 1 ) ); + m.add_spawn( mon_turret_riot, 1, point( 12, SEEY * 2 - 1 ) ); } if( road_at_west ) { line_furn( &m, f_barricade_road, 3, 4, 3, 10 ); line_furn( &m, f_barricade_road, 3, 13, 3, 19 ); - m.add_spawn( mon_turret_rifle, 1, point( 1, 12 ) ); + m.add_spawn( mon_turret_riot, 1, point( 1, 12 ) ); } m.add_vehicle( vproto_id( "policecar" ), point( 8, 6 ), 20 );