diff --git a/data/json/flags.json b/data/json/flags.json index 1f627691f0cc9..a3d0cf620fa93 100644 --- a/data/json/flags.json +++ b/data/json/flags.json @@ -1988,5 +1988,77 @@ "id": "HARD", "type": "json_flag", "context": [ ] + }, + { + "id": "SCIENCE_CARD_VISITOR", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a science facility." + }, + { + "id": "SCIENCE_CARD_MAINTENANCE_GREEN", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a science facility." + }, + { + "id": "SCIENCE_CARD_MAINTENANCE_YELLOW", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a secured maintence area." + }, + { + "id": "SCIENCE_CARD_MAINTENANCE_BLUE", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a secured maintence area." + }, + { + "id": "SCIENCE_CARD_TRANSPORT_1", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a science facility." + }, + { + "id": "SCIENCE_CARD_SECURITY_YELLOW", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a secured law enforcement area." + }, + { + "id": "SCIENCE_CARD_SECURITY_MAGENTA", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a secured law enforcement area." + }, + { + "id": "SCIENCE_CARD_SECURITY_BLACK", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to get into a secured area." + }, + { + "id": "SCIENCE_CARD_MUTAGEN_GREEN", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to access a secure zone of a facility." + }, + { + "id": "SCIENCE_CARD_MUTAGEN_PINK", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to access a secure zone of a facility." + }, + { + "id": "SCIENCE_CARD_MUTAGEN_CYAN", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to access a secure zone of a facility." + }, + { + "id": "SCIENCE_CARD_MEDICAL_RED", + "type": "json_flag", + "context": [ "GENERIC" ], + "info": "You could probably use this to access a secure zone of a facility." } ] diff --git a/data/json/furniture_and_terrain/terrain-floors-indoor.json b/data/json/furniture_and_terrain/terrain-floors-indoor.json index ecdd6572804a8..c2d2c4c64c57e 100644 --- a/data/json/furniture_and_terrain/terrain-floors-indoor.json +++ b/data/json/furniture_and_terrain/terrain-floors-indoor.json @@ -131,6 +131,75 @@ ] } }, + { + "type": "terrain", + "id": "t_strconc_floor_olight", + "name": "strong concrete floor, overhead light", + "description": "Extremely resilient floor made from carefully placed rebar and poured concrete with a still-functioning light attached to the ceiling above.", + "symbol": ".", + "color": "white", + "move_cost": 2, + "light_emitted": 120, + "roof": "t_flat_roof", + "looks_like": "t_thconc_floor_olight", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_strconc_floor", + "items": [ { "item": "glass_shard", "count": [ 8, 16 ] } ] + } + }, + { + "type": "terrain", + "id": "t_linoleum_gray_floor_olight", + "name": "gray linoleum floor, overhead light", + "description": "Linoleum flooring with a still-functioning light attached to the ceiling above.", + "symbol": ".", + "color": "white", + "move_cost": 2, + "light_emitted": 120, + "roof": "t_flat_roof", + "looks_like": "t_thconc_floor_olight", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_linoleum_gray", + "items": [ { "item": "glass_shard", "count": [ 8, 16 ] } ] + } + }, + { + "type": "terrain", + "id": "t_linoleum_whitefloor_olight", + "name": "white linoleum floor, overhead light", + "description": "Linoleum flooring with a still-functioning light attached to the ceiling above.", + "symbol": ".", + "color": "white", + "move_cost": 2, + "light_emitted": 120, + "roof": "t_flat_roof", + "looks_like": "t_thconc_floor_olight", + "flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "INDOORS", "FLAT", "ROAD" ], + "bash": { + "str_min": 4, + "str_max": 12, + "sound": "glass breaking!", + "sound_fail": "whack!", + "sound_vol": 16, + "sound_fail_vol": 10, + "ter_set": "t_linoleum_white", + "items": [ { "item": "glass_shard", "count": [ 8, 16 ] } ] + } + }, { "type": "terrain", "id": "t_ov_smreb_cage", diff --git a/data/json/furniture_and_terrain/terrain-mechanisms.json b/data/json/furniture_and_terrain/terrain-mechanisms.json index 57c9c988205bb..d4edb55099992 100644 --- a/data/json/furniture_and_terrain/terrain-mechanisms.json +++ b/data/json/furniture_and_terrain/terrain-mechanisms.json @@ -342,6 +342,294 @@ "items": [ { "item": "plastic_chunk", "count": [ 0, 2 ] }, { "item": "scrap", "prob": 50 } ] } }, + { + "type": "terrain", + "id": "t_card_science_visitor", + "name": "Facility entrance card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom inside a flask that is universally known to indicate SCIENCE. You could swipe a Visitor's Pass near it to unlock the gates.", + "//": "Entrance card for a lab. Low security access.", + "symbol": "6", + "color": "cyan", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_VISITOR" ], + "consume_card": true, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_maintenance_green", + "name": "Maintenance: green zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a wrench on a green background. You could swipe a maintenance employee badge near it to unlock the gates.", + "//": "Entrance card for a lab. Low security access.", + "symbol": "6", + "color": "green", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_MAINTENANCE_GREEN" ], + "consume_card": false, + "allow_hacking": false, + "despawn_monsters": true, + "radius": 7, + "terrain_changes": { "t_door_metal_locked": "t_thconc_floor" }, + "query": true, + "query_msg": "Are you sure you want to open this gate?", + "success_msg": "You opened the gate!", + "redundant_msg": "The gate is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_maintenance_yellow", + "name": "Maintenance: yellow zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a wrench on a yellow background. You could swipe a maintenance employee badge near it to unlock the gates.", + "//": "Tier 2 card for a lab. Medium security access.", + "symbol": "6", + "color": "yellow", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_MAINTENANCE_YELLOW" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": false, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_maintenance_blue", + "name": "Maintenance: blue zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a wrench on a blue background. You could swipe a maintenance employee badge near it to unlock the gates.", + "//": "Tier 3 card for a lab. High security access.", + "symbol": "6", + "color": "blue", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_MAINTENANCE_BLUE" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": false, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_transport_1", + "name": "Freight hauler access card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a truck. You could swipe a transporter's badge near it to unlock the gates.", + "//": "Entrance card for a lab. Low security access.", + "symbol": "6", + "color": "cyan", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_TRANSPORT_1" ], + "consume_card": true, + "allow_hacking": false, + "despawn_monsters": false, + "radius": 7, + "terrain_changes": { "t_door_metal_locked": "t_thconc_floor" }, + "query": true, + "query_msg": "Are you sure you want to open this gate?", + "success_msg": "You opened the gate!", + "redundant_msg": "The gate is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_security_yellow", + "name": "Security: yellow zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a taser on a yellow background. You could swipe a security employee badge near it to unlock the gates.", + "//": "Tier 1 card for a lab. Medium security access.", + "symbol": "6", + "color": "yellow", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_SECURITY_YELLOW" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 2, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_security_magenta", + "name": "Security: magenta zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a pistol on a magenta background. You could swipe a security employee badge near it to unlock the gates.", + "//": "Tier 2 card for a lab. Medium security access.", + "symbol": "6", + "color": "magenta", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_SECURITY_MAGENTA" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 4, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_security_black", + "name": "Security: black zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a rifle on a black background. You could swipe a security employee badge near it to unlock the gates.", + "//": "Tier 3 card for a lab. High security access.", + "symbol": "6", + "color": "black", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_SECURITY_BLACK" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_mutagen_green", + "name": "Researcher: green zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a flask on a green background. You could swipe a researcher scientist badge near it to unlock the gates.", + "//": "Entrance card for a lab research areas.", + "symbol": "6", + "color": "green", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_MUTAGEN_GREEN" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_mutagen_pink", + "name": "Researcher: pink zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a flask on a pink background. You could swipe a researcher scientist badge near it to unlock the gates.", + "//": "Entrance card for a lab research areas.", + "symbol": "6", + "color": "light_red", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_MUTAGEN_PINK" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_mutagen_cyan", + "name": "Researcher: cyan zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a flask on a cyan background. You could swipe a researcher scientist badge near it to unlock the gates.", + "//": "Entrance card for a lab research areas.", + "symbol": "6", + "color": "cyan", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_MUTAGEN_CYAN" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, + { + "type": "terrain", + "id": "t_card_science_medical_red", + "name": "Medical: Red zone card reader", + "description": "This is a smartcard reader. It sports the stylized symbol of an atom and a syringe on a red background. You could swipe a researcher scientist badge near it to unlock the gates.", + "//": "Entrance card for a lab medical areas.", + "symbol": "6", + "color": "cyan", + "copy-from": "t_card_science", + "looks_like": "t_card_science", + "examine_action": { + "type": "cardreader", + "flags": [ "SCIENCE_CARD_MEDICAL_RED" ], + "consume_card": false, + "allow_hacking": true, + "despawn_monsters": true, + "radius": 3, + "terrain_changes": { "t_door_metal_locked": "t_door_metal_c" }, + "query": true, + "query_msg": "Are you sure you want to open this door?", + "success_msg": "You opened the door!", + "redundant_msg": "The door is already open." + } + }, { "type": "terrain", "id": "t_card_reader_broken", diff --git a/data/json/itemgroups/Labs/labs_common.json b/data/json/itemgroups/Labs/labs_common.json index 99165c90b48b9..b53f3a114edb4 100644 --- a/data/json/itemgroups/Labs/labs_common.json +++ b/data/json/itemgroups/Labs/labs_common.json @@ -27,15 +27,27 @@ }, { "item": "mobile_memory_card", "prob": 50, "count": [ 2, 6 ] }, { "item": "mobile_memory_card_encrypted", "prob": 5, "count": [ 1, 3 ] }, - { "item": "id_science", "prob": 5, "count": [ 1, 3 ] }, - { "item": "badge_doctor", "prob": 5, "count": [ 1, 3 ] }, + { "item": "badge_doctor", "prob": 5, "count": [ 1, 2 ] }, { "item": "wrapped_rad_badge", "prob": 7, "count": [ 1, 3 ] }, { "item": "plastic_chunk", "prob": 30, "count": [ 1, 3 ] }, { "item": "vac_sealer", "prob": 20 }, + { "item": "id_science", "prob": 5, "count": [ 1, 3 ] }, + { "item": "id_science_visitor_1", "prob": 10 }, + { "item": "id_science_transport_1", "prob": 10 }, + { "item": "id_science_maintenance_green", "prob": 10 }, + { "item": "id_science_maintenance_yellow", "prob": 5 }, + { "item": "id_science_maintenance_blue", "prob": 1 }, + { "item": "id_science_security_yellow", "prob": 3 }, + { "item": "id_science_security_magenta", "prob": 2 }, + { "item": "id_science_security_black", "prob": 1 }, + { "item": "id_science_mutagen_green", "prob": 3 }, + { "item": "id_science_mutagen_pink", "prob": 2 }, + { "item": "id_science_mutagen_cyan", "prob": 1 }, + { "item": "id_science_medical_red", "prob": 7 }, { "item": "id_military", "prob": 1 }, { "item": "lanyard", "prob": 100, "count": [ 1, 6 ] }, { "item": "canister_empty", "prob": 30, "count": [ 1, 6 ] }, - { "item": "string_36", "prob": 60, "count": [ 1, 3 ] } + { "item": "string_36", "prob": 60, "count": [ 2, 8 ] } ] } ] diff --git a/data/json/itemgroups/electronics.json b/data/json/itemgroups/electronics.json index 8a3902bbd3fd5..067c020862bc0 100644 --- a/data/json/itemgroups/electronics.json +++ b/data/json/itemgroups/electronics.json @@ -145,5 +145,27 @@ { "item": "AID_bio_ups" }, { "item": "AID_bio_weight" } ] + }, + { + "id": "batteries", + "type": "item_group", + "subtype": "collection", + "items": [ + { "item": "light_minus_battery_cell", "prob": 30, "count": [ 2, 6 ] }, + { "item": "light_minus_atomic_battery_cell", "prob": 5, "count": [ 1, 3 ] }, + { "item": "light_minus_disposable_cell", "prob": 40, "count": [ 1, 3 ] }, + { "item": "light_battery_cell", "prob": 30, "count": [ 1, 3 ] }, + { "item": "light_plus_battery_cell", "prob": 15, "count": [ 1, 3 ] }, + { "item": "light_atomic_battery_cell", "prob": 3, "count": [ 1, 3 ] }, + { "item": "light_disposable_cell", "prob": 40, "count": [ 1, 3 ] }, + { "item": "medium_battery_cell", "prob": 10, "count": [ 1, 3 ] }, + { "item": "medium_plus_battery_cell", "prob": 5, "count": [ 1, 6 ] }, + { "item": "medium_atomic_battery_cell", "prob": 3, "count": [ 1, 6 ] }, + { "item": "medium_disposable_cell", "prob": 15, "count": [ 1, 3 ] }, + { "item": "heavy_battery_cell", "prob": 10, "count": [ 1, 3 ] }, + { "item": "heavy_plus_battery_cell", "prob": 5, "count": [ 1, 6 ] }, + { "item": "heavy_atomic_battery_cell", "prob": 3, "count": [ 1, 6 ] }, + { "item": "heavy_disposable_cell", "prob": 15, "count": [ 1, 3 ] } + ] } ] diff --git a/data/json/items/generic.json b/data/json/items/generic.json index 77d6d9076bcdb..668299f4948dd 100644 --- a/data/json/items/generic.json +++ b/data/json/items/generic.json @@ -2783,52 +2783,6 @@ "volume": "5 ml", "to_hit": -3 }, - { - "type": "GENERIC", - "id": "id_science", - "symbol": ",", - "color": "blue", - "name": { "str": "science ID card" }, - "description": "This ID card once belonged to a scientist. The reverse side describes protocol for using it; this could grant access at one control panel, if you can find one.", - "price": 60000, - "flags": [ "SCIENCE_CARD" ], - "price_postapoc": 250, - "material": [ "plastic" ], - "weight": "6 g", - "volume": "15 ml", - "to_hit": -3 - }, - { - "type": "GENERIC", - "id": "id_military", - "symbol": ",", - "color": "green", - "name": { "str": "military ID card" }, - "description": "This ID card once belonged to a military officer. The reverse side describes protocol for using it; this could grant access at one control panel, if you can find one.", - "price": 120000, - "flags": [ "MILITARY_CARD" ], - "price_postapoc": 500, - "material": [ "plastic" ], - "weight": "6 g", - "volume": "5 ml", - "to_hit": -3 - }, - { - "type": "GENERIC", - "id": "id_industrial", - "looks_like": "id_science", - "symbol": ",", - "color": "green", - "name": { "str": "industrial ID card" }, - "description": "This ID card once belonged to a high level technician. The reverse side describes protocol for using it; this could grant access at one control panel, if you can find one.", - "price": 120000, - "flags": [ "INDUSTRIAL_CARD" ], - "price_postapoc": 100, - "material": [ "plastic" ], - "weight": "6 g", - "volume": "5 ml", - "to_hit": -3 - }, { "type": "GENERIC", "id": "neoprene", @@ -3457,7 +3411,19 @@ "money_one", "money_ten", "money_twenty", - "condom" + "condom", + "id_science_visitor_1", + "id_science_transport_1", + "id_science_maintenance_green", + "id_science_maintenance_yellow", + "id_science_maintenance_blue", + "id_science_security_yellow", + "id_science_security_magenta", + "id_science_security_black", + "id_science_mutagen_green", + "id_science_mutagen_pink", + "id_science_mutagen_cyan", + "id_science_medical_red" ] } ], diff --git a/data/json/items/id_cards.json b/data/json/items/id_cards.json new file mode 100644 index 0000000000000..bd63f30f8e165 --- /dev/null +++ b/data/json/items/id_cards.json @@ -0,0 +1,162 @@ +[ + { + "type": "GENERIC", + "id": "id_science", + "symbol": ",", + "color": "blue", + "name": { "str": "science ID card" }, + "description": "This ID card once belonged to a scientist. The reverse side describes protocol for using it; this could grant access at one control panel, if you can find one.", + "price": 60000, + "flags": [ "SCIENCE_CARD" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "6 g", + "volume": "15 ml", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_military", + "symbol": ",", + "color": "green", + "name": { "str": "military ID card" }, + "description": "This ID card once belonged to a military officer. The reverse side describes protocol for using it; this could grant access at one control panel, if you can find one.", + "price": 120000, + "flags": [ "MILITARY_CARD" ], + "price_postapoc": 500, + "material": [ "plastic" ], + "weight": "6 g", + "volume": "5 ml", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_industrial", + "looks_like": "id_science", + "symbol": ",", + "color": "green", + "name": { "str": "industrial ID card" }, + "description": "This ID card once belonged to a high level technician. The reverse side describes protocol for using it; this could grant access at one control panel, if you can find one.", + "price": 120000, + "flags": [ "INDUSTRIAL_CARD" ], + "price_postapoc": 100, + "material": [ "plastic" ], + "weight": "6 g", + "volume": "5 ml", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_science_visitor_1", + "symbol": ",", + "color": "blue", + "name": { "str": "visitor's pass" }, + "description": "This is a visitor's pass. The reverse side describes protocol for using it; this could grant one-time access to a card reader, if you can find one.", + "price": 60000, + "flags": [ "SCIENCE_CARD_VISITOR" ], + "price_postapoc": 250, + "material": [ "plastic" ], + "weight": "6 g", + "volume": "15 ml", + "to_hit": -3 + }, + { + "type": "GENERIC", + "id": "id_science_maintenance_green", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Maintenance: green zone badge" }, + "description": "This is an employee badge for a maintence worker. The reverse side describes protocol for using it; this could grant access to green zone card readers.", + "flags": [ "SCIENCE_CARD_MAINTENANCE_GREEN" ] + }, + { + "type": "GENERIC", + "id": "id_science_maintenance_yellow", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Maintenance: yellow zone badge" }, + "description": "This is an employee badge for a maintence worker. The reverse side describes protocol for using it; this could grant access to yellow zone card readers.", + "flags": [ "SCIENCE_CARD_MAINTENANCE_YELLOW" ] + }, + { + "type": "GENERIC", + "id": "id_science_maintenance_blue", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Maintenance: blue zone badge" }, + "description": "This is an employee badge for a maintence worker. The reverse side describes protocol for using it; this could grant access to blue zone card readers.", + "flags": [ "SCIENCE_CARD_MAINTENANCE_BLUE" ] + }, + { + "type": "GENERIC", + "id": "id_science_transport_1", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "transport freight employee badge" }, + "description": "This is an employee badge for a freight hauler. The reverse side describes protocol for using it; this could grant one-time access to a transport freight card reader.", + "flags": [ "SCIENCE_CARD_TRANSPORT_1" ] + }, + { + "type": "GENERIC", + "id": "id_science_security_yellow", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Security: yellow zone badge" }, + "description": "This is an employee badge for a security professional. The reverse side describes protocol for using it; this could grant access to yellow zone card readers.", + "flags": [ "SCIENCE_CARD_SECURITY_YELLOW" ] + }, + { + "type": "GENERIC", + "id": "id_science_security_magenta", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Security: magenta zone badge" }, + "description": "This is an employee badge for a security professional. The reverse side describes protocol for using it; this could grant access to magenta zone card readers.", + "flags": [ "SCIENCE_CARD_SECURITY_MAGENTA" ] + }, + { + "type": "GENERIC", + "id": "id_science_security_black", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Security: black zone badge" }, + "description": "This is an employee badge for a security professional. The reverse side describes protocol for using it; this could grant access to black zone card readers.", + "flags": [ "SCIENCE_CARD_SECURITY_BLACK" ] + }, + { + "type": "GENERIC", + "id": "id_science_mutagen_green", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Researcher: green zone badge" }, + "description": "This is an employee badge for a research scientist. The reverse side describes protocol for using it; this could grant access to green zone card readers.", + "flags": [ "SCIENCE_CARD_MUTAGEN_GREEN" ] + }, + { + "type": "GENERIC", + "id": "id_science_mutagen_pink", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Researcher: pink zone badge" }, + "description": "This is an employee badge for a research scientist. The reverse side describes protocol for using it; this could grant access to pink zone card readers.", + "flags": [ "SCIENCE_CARD_MUTAGEN_PINK" ] + }, + { + "type": "GENERIC", + "id": "id_science_mutagen_cyan", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Researcher: cyan zone badge" }, + "description": "This is an employee badge for a research scientist. The reverse side describes protocol for using it; this could grant access to cyan zone card readers.", + "flags": [ "SCIENCE_CARD_MUTAGEN_CYAN" ] + }, + { + "type": "GENERIC", + "id": "id_science_medical_red", + "symbol": ",", + "copy-from": "id_science", + "name": { "str": "Doctor: red zone badge" }, + "description": "This is an employee badge for a medical doctor. The reverse side describes protocol for using it; this could grant access to red zone card readers.", + "flags": [ "SCIENCE_CARD_MEDICAL_RED" ] + } +] diff --git a/data/json/mapgen/lab/lab_modular/lab_1x1_security.json b/data/json/mapgen/lab/lab_modular/lab_1x1_security.json new file mode 100644 index 0000000000000..0da9e29815e62 --- /dev/null +++ b/data/json/mapgen/lab/lab_modular/lab_1x1_security.json @@ -0,0 +1,463 @@ +[ + { + "method": "json", + "om_terrain": [ "lab_security_z0N" ], + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "__||||||||||||||||||||||", + "__||||||||||||||||||||||", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__|;;;è;;;;;;è;;;;;;è;;|", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__|££££££££££££££££££££|", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__6££££££££££££££££££££¥", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__|;;;è;;;;;;è;;;;;;è;;|", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__||||||||||+|||||ɤJJJ||", + "__|......|H....H|;;;h;;|", + "``|......|H..s.H|;;;;;;|", + "``|......|..ë||||;;è;;;|", + "``|......|...+.S|;;;;;;|", + "``|......|+|||..|;;;;;;|", + "|||......|.@@|Yt|;;;;;;|" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { + "J": "t_thconc_floor", + "ɤ": "t_thconc_floor", + "h": "t_thconc_floor", + "`": "t_sidewalk", + "¥": "t_card_science_maintenance_green", + "6": "t_card_science_transport_1" + }, + "place_monsters": [ + { "monster": "GROUP_LAB_MAINTENANCE", "x": [ 5, 20 ], "y": [ 5, 14 ], "density": 0.2 }, + { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 5, 12 ], "y": 20, "density": 0.1 }, + { "monster": "GROUP_LAB_MAINTENANCE", "x": 20, "y": 20, "density": 0.1 } + ], + "place_nested": [ { "chunks": [ [ "lab_security_6x6_open", 50 ], [ "lab_generic_6x6_open", 50 ] ], "x": 3, "y": 18 } ], + "place_vehicles": [ { "vehicle": "semi_truck", "x": 16, "y": 10, "chance": 20, "rotation": 180 } ] + } + }, + { + "method": "json", + "om_terrain": [ "lab_security_z0" ], + "type": "mapgen", + "//": "TODO: trap the security hallway, fill out security area", + "weight": 200, + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "|||+||+||||||||||||==|||", + "|34.|P.P..+..h.|;;;;;;;;", + "X...|....h|III6:;;;;;;è;", + "XH..:J..II|::::|;;||||||", + "XH..:Jh...=;;;;;;;=;|PPT", + "-...:J..II|;è;;;;ɜ|;:.h.", + "XH..|Y..h.|;;;|||||;:.rr", + "XH..||:||||;;;|;;;|è|h.h", + "XH..=..ɛ|.|;;;|;è;+;||+|", + "|y..¥...|.|;è;|;;;|;;;;;", + "|||||..||||;;;|||||||;;;", + "|>..|..122|;;;+;Z|>;ƶ;;i", + "|...-..-22|;;;|WW|>;=;èi", + "|||||..||||;;;|||||||;;;", + "|y..¥...|.|;è;|;;;|;;;;;", + "XH..=..ɛ|.|;;;|;è;+;||+|", + "XH..||:||||;;;|;;;|è|h.h", + "XH..|Y...h|;;;|||||;:.rr", + "-...:J..II|;è;;;;ɜ|;:.h.", + "XH..:Jh...=;;;;;;;=;|yPP;", + "XH..:J..II|::::|;;||||||", + "X...|...h.|III6:;;;;;;è;", + "|34.|P.P..+..h.|;;;;;;;;", + "|||+||+||||||||||||==|||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { + "ɜ": "t_thconc_floor", + "¥": "t_card_science_visitor", + "ƶ": "t_card_science_security_yellow", + "i": "t_thconc_floor" + }, + "place_monsters": [ { "monster": "GROUP_LAB_BASIC_SECURITY", "x": [ 19, 23 ], "y": [ 5, 18 ], "density": 0.2 } ], + "place_nested": [ + { "chunks": [ [ "lab_security_3x3_EW", 50 ], [ "lab_generic_3x3_EW_open", 50 ] ], "x": 15, "y": 7 }, + { "chunks": [ [ "lab_security_3x3_EW", 50 ], [ "lab_generic_3x3_EW_open", 50 ] ], "x": 15, "y": 14 } + ], + "place_monster": [ + { "monster": "mon_skitterbot", "x": 9, "y": 8, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 9, "y": 9, "chance": 100 }, + { "monster": "mon_secubot", "x": 9, "y": 14, "chance": 100 }, + { "monster": "mon_secubot", "x": 9, "y": 15, "chance": 100 } + ], + "computers": { + "6": { + "name": "Security Public Relations Zone", + "security": 3, + "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock_disarm", "security": 6 } ], + "failures": [ { "action": "damage" }, { "action": "shutdown" }, { "action": "manhacks" } ] + } + } + } + }, + { + "method": "json", + "om_terrain": [ "lab_security_z0S" ], + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_linoleum_white", + "rows": [ + "|||......|tY|@@.|;;;;;;|", + "``|......|..|||+|;;;;;;|", + "``|......|S.+...|;;;;;;|", + "``|......||||ë..|;;;è;;|", + "``|......|H.s..H|;;;;;;|", + "__|......|H....H|;;;h;;|", + "__|||||||||||+||||ɤJJJ||", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__|;;;è;;;;;;è;;;;;;è;;|", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__6££££££££££££££££££££¥", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__=;;;;;;;;;;;;;;;;;;;;=", + "__|££££££££££££££££££££|", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__|;;;è;;;;;;è;;;;;;è;;|", + "__|;;;;;;;;;;;;;;;;;;;;|", + "__||||||||||||||||||||||", + "__||||||||||||||||||||||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { + "J": "t_thconc_floor", + "ɤ": "t_thconc_floor", + "h": "t_thconc_floor", + "`": "t_sidewalk", + "¥": "t_card_science_maintenance_green", + "6": "t_card_science_transport_1" + }, + "place_nested": [ { "chunks": [ [ "lab_security_6x6_open", 50 ], [ "lab_generic_6x6_open", 50 ] ], "x": 3, "y": 0 } ], + "place_vehicles": [ { "vehicle": "semi_truck", "x": 16, "y": 16, "chance": 20, "rotation": 180 } ], + "place_monster": [ + { "monster": "mon_skitterbot", "x": 12, "y": 3, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 12, "y": 4, "chance": 100 }, + { "monster": "mon_secubot", "x": 12, "y": 5, "chance": 100 }, + { "monster": "mon_secubot", "x": 12, "y": 6, "chance": 100 } + ] + } + }, + { + "method": "json", + "om_terrain": "lab_security_z-1", + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_linoleum_gray", + "rows": [ + "||||||||||||||||||||||||", + "|,,,,,,|;;;;;;;>;;;;;;;|", + "|,,,,,,|;;;;;;;;;;;;;;;|", + "|,,,ê,,|;;;è;;;;;;;è;;;|", + "|,,,,,,|;;;;;;;;;;;;;;;|", + "|,,,,,,|;;;;;;;;;;;;;;;|", + "|,,,,,,|;;;;;;;;;;;;;;;|", + "||||-X||||||||ƶ=||||||||", + "|,|,,,,,,¥,iii,,,,Y|;;;|", + "|,|,,,,,,=,,,,,ê,,,+;;;|", + "|||||,,||||JJJJ,h|||;;;|", + "|<,,|,,122|P,hJ,,+<|||||", + "|>,,-,,-22|P,,J,,+<|||||", + "|||||,,||||J,JJ,h|||;;;|", + "|,|,,,,,,=,,,,,ê,,,+;;;|", + "|,|,,,,,,¥,iii,,,,Y|;;;|", + "||||-X||||||||ƶ=||||||||", + "|,,,,,,|;;;;;;;;;;;;;;;|", + "|,,,,,,|;;;;;;;;;;;;;;;|", + "|,,,,,,|;;;è;;;;;;;è;;;|", + "|,,,ê,,|;;;;;;;;;;;;;;;|", + "|,,,,,,|;;;;;;;;;;;;;;;|", + "|,,,,,,|;;;;;;;>;;;;;;;|", + "||||||||||||||||||||||||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "¥": "t_card_science_security_yellow", "ƶ": "t_card_science_security_magenta" }, + "place_signs": [ + { "snippet": "lab_security_signage", "x": [ 10, 13 ], "y": 7 }, + { "snippet": "lab_security_signage", "x": [ 17, 18 ], "y": 7 }, + { "snippet": "lab_security_signage", "x": [ 10, 13 ], "y": 16 }, + { "snippet": "lab_security_signage", "x": [ 17, 18 ], "y": 16 } + ], + "place_nested": [ + { "chunks": [ [ "lab_security_3x3_EW", 50 ], [ "lab_generic_3x3_EW_open", 50 ] ], "x": 20, "y": 8 }, + { "chunks": [ [ "lab_security_3x3_EW", 50 ], [ "lab_generic_3x3_EW_open", 50 ] ], "x": 20, "y": 13 }, + { "chunks": [ [ "lab_security_prison_6x6_E", 100 ] ], "x": 8, "y": 1 }, + { "chunks": [ [ "lab_security_prison_6x6_W", 100 ] ], "x": 17, "y": 1 }, + { "chunks": [ [ "lab_security_prison_6x6_E", 100 ] ], "x": 8, "y": 17 }, + { "chunks": [ [ "lab_security_prison_6x6_W", 100 ] ], "x": 17, "y": 17 }, + { "chunks": [ [ "lab_security_6x6_open", 50 ], [ "lab_generic_6x6_open", 50 ] ], "x": 1, "y": 1 }, + { "chunks": [ [ "lab_security_6x6_open", 100 ] ], "x": 1, "y": 17 } + ] + } + }, + { + "method": "json", + "om_terrain": "lab_security_z-2", + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "|,,,,,,,,,ƶ,,,,,|⁴⁴⁴⁴⁴⁴⁴", + "|,,,,,,,,,=,,,,<|⁴⁴⁴⁴⁴⁴⁴", + "|,,,,,,,,,|,,,,,|⁴⁴⁴%%%%", + "|,,,,,,,,,|,,|#||⁴⁴%%~~~", + "|,,,,,,,,,|,,|>|⁴⁴%%~~~~", + "|,,,,ê,,,,|ƶ=|||⁴%%~~~~~", + "|,,,,,,,,,|⁴⁴⁴⁴⁴%%~~~~~~", + "|,,,,,,,,,|⁴⁴⁴⁴%%~~~~~~~", + "|,,,,,,,,,|⁴⁴⁴%%~~~~~~~~", + "|,,,,,,,,,|⁴⁴⁴%~~~~~~~~~", + "|||||,,||||⁴⁴⁴%~~~~~~~~~", + "|>..|,,122|⁴⁴⁴%~~~~~~~~~", + "|<..-,,-22|⁴⁴⁴%~~~~~~~~~", + "|||||,,||||⁴⁴⁴%~~~~~~~~~", + "|,,,,,,,,,|⁴⁴⁴%~~~~~~~~~", + "|,,,,,,,,,|⁴⁴⁴%%~~~~~~~~", + "|,,,,,,,,,|⁴⁴⁴⁴%%~~~~~~~", + "|,,,,,,,,,|⁴⁴⁴⁴⁴%%~~~~~~", + "|,,,,ê,,,,|ƶ=|||⁴%%~~~~~", + "|,,,,,,,,,|,,|>|⁴⁴%%~~~~", + "|,,,,,,,,,|,,|#||⁴⁴%%~~~", + "|,,,,,,,,,|,,,,,|⁴⁴⁴%%%%", + "|,,,,,,,,,=,,,,<|⁴⁴⁴⁴⁴⁴⁴", + "|,,,,,,,,,ƶ,,,,,|⁴⁴⁴⁴⁴⁴⁴" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "ƶ": "t_card_science_security_magenta" }, + "place_nested": [ + { "chunks": [ [ "lab_security_10x10_S", 100 ], [ "null", 0 ] ], "x": 1, "y": 0 }, + { "chunks": [ [ "lab_security_10x10_N", 100 ], [ "null", 0 ] ], "x": 1, "y": 14 } + ] + } + }, + { + "method": "json", + "om_terrain": "lab_security_z-3", + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "|,,,,,,,|;|;;;;;;;;;;|;|", + "|,,,,,,,|;|;;;;;;;;;;|;|", + "|,,,,,,,|;|;;|ƶ=||¥=||||", + "|,,,ê,,,|;|;;|```|;;;;££", + "|,,,,,,,||¥==|<>`|;;;££;", + "|,,,,,,,|3,.,|```|;;££;;", + "|,,,,,,,],.,.|||||;££;;;", + "||||-|]]|.,.,|;;;;££;;;;", + "|;;|.,.,.,.,.|;;;££;;;;;", + "|;;+,.,.,.,.,X;;££;;;;;;", + "|||||,.||||,.X;;££££££££", + "|<,.|.,122|.,-;;££``````", + "|,.,),.)22|,.-;;££``````", + "|||||.,||||.,X;;££££££££", + "|;;+.,.,.,.,.X;;££;;;;;;", + "|;;|,.,.,.,.,|;;;££;;;;;", + "||||-|]]|,.,.|;;;;££;;;;", + "|,,,,,,,].,.,|||||;££;;;", + "|,,,,,,,|4.,.|```|;;££;;", + "|,,,,,,,||¥==|<>`|;;;££;", + "|,,,ê,,,|;|;;|```|;;;;££", + "|,,,,,,,|;|;;|ƶ=||¥=||||", + "|,,,,,,,|;|;;;;;;;;;;|;|", + "|,,,,,,,|;|;;;;;;;;;;|;|" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "¥": "t_card_science_security_yellow", "ƶ": "t_card_science_security_magenta" }, + "place_monster": [ + { "monster": "mon_flashbang_hack", "x": 22, "y": 0, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 22, "y": 1, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 22, "y": 22, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 22, "y": 23, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 9, "y": 0, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 9, "y": 1, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 9, "y": 2, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 9, "y": 3, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 9, "y": 20, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 9, "y": 21, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 9, "y": 22, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 9, "y": 23, "chance": 100 } + ], + "place_nested": [ + { "chunks": [ [ "lab_generic_7x7_open", 50 ], [ "lab_generic_7x7_S", 50 ] ], "x": 1, "y": 0 }, + { "chunks": [ [ "lab_generic_7x7_open", 50 ], [ "lab_generic_7x7_N", 50 ] ], "x": 1, "y": 17 } + ] + } + }, + { + "method": "json", + "om_terrain": "lab_security_z-4", + "type": "mapgen", + "weight": 200, + "//": "TODO: possible mechanics area for trains.", + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "||||||||||||||||||||||||", + "|,,,,,,,,,|.,.,.|;;;;;;ն", + "|,,,,,,,,,|,.,.,|;;;;;;ն", + "|,,,,,,,,,|.,|##|;;;;;;ն", + "|,,,,,,,,,|,.|><|;;;;;;ն", + "|,,,,ê,,,,|=¥||||;;;;;;ն", + "|,,,,,,,,,|,.|;;|նննիննն", + "|,,,,,,,,,|.,||||;;;;;;;", + "|,,,,,,,,,|,.|;;;;;;;;;;", + "|,,,,,,,,,|.,|;;;;;;;;;;", + "|,,,,,,,,,|,.|;;;;;;;;;;", + "|||||,,,,,#.,=;;;;;;;;;;", + "|||||,,,,,#,.=;;;;;;;;;;", + "|,,,,,,,,,|.,ƶ;;;;;;;;;;", + "|,,,,,,,,,|,.|;;;;;;;;;;", + "|,,,,,,,,,|.,|;;;;;;;;;;", + "|,,,,,,,,,|,.||||;;;;;;;", + "|,,,,,,,,,|.,|;;|նննիննն", + "|,,,,ê,,,,|=¥||||;;;;;;ն", + "|,,,,,,,,,|.,|><|;;;;;;ն", + "|,,,,,,,,,|,.|##|;;;;;;ն", + "|,,,,,,,,,|.,.,.|;;;;;;ն", + "|,,,,,,,,,|,.,.,|;;;;;;ն", + "||||||||||||||||||||||||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "¥": "t_card_science_security_magenta", "ƶ": "t_card_science_maintenance_blue" }, + "place_nested": [ + { "chunks": [ [ "lab_security_10x10_S", 100 ], [ "null", 0 ] ], "x": 1, "y": 1 }, + { "chunks": [ [ "lab_security_10x10_N", 100 ], [ "null", 0 ] ], "x": 1, "y": 13 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 18, "y": 1 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 18, "y": 18 } + ], + "place_vehicles": [ + { "vehicle": "portable_generator", "x": [ 16, 21 ], "y": [ 14, 15 ], "chance": 30, "rotation": 90 }, + { "vehicle": "handjack", "x": [ 16, 22 ], "y": 16, "chance": 30, "rotation": 90 }, + { "vehicle": "forklift", "x": 18, "y": 9, "chance": 30, "rotation": 90 } + ] + } + }, + { + "method": "json", + "om_terrain": "lab_security_z-5", + "//": "TODO: add nested rooms to right side.", + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_metal_floor", + "rows": [ + "||||||||||||||||||||||||", + "|,,,,,,,,,|`````¥``````ɜ", + "|,,,,,,,,,|`````=```````", + "|,,,,,,,,,|``|##|```````", + "|,,,,,,,,,|``|><|`ɜ`````", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``||,,,,,,|||", + "|,,,,,,,,,|``||,,,,,,|||", + "|||||,,,,,=``=,,,,,,,|||", + "|||||,,,,,=``=,,,,,,,|||", + "|,,,,,,,,,|``ƶ|,,,,,,|||", + "|,,,,,,,,,|``||,,,,,,|||", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``|||||||||||", + "|,,,,,,,,,|``|><|`ɜ`````", + "|,,,,,,,,,|``|##|```````", + "|,,,,,,,,,|`````=```````", + "|,,,,,,,,,|`````¥``````ɜ", + "||||||||||||||||||||||||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "¥": "t_card_science_security_black", "ƶ": "t_card_science_security_magenta" }, + "place_nested": [ + { "chunks": [ [ "lab_security_10x10_S", 100 ], [ "null", 0 ] ], "x": 1, "y": 1 }, + { "chunks": [ [ "lab_security_10x10_N", 100 ], [ "null", 0 ] ], "x": 1, "y": 13 } + ] + } + }, + { + "method": "json", + "om_terrain": "lab_security_z-6_final_flr", + "//": "variant for a 6 floor lab (removed stairs down)", + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_linoleum_gray", + "rows": [ + "||||||||||||||||||||||||", + "|@@∞|,|∞@@|`````¥``````ɜ", + "|r,,+,+,hr|`````=```````", + "|rh,|,|,,r|``|##|```````", + "|||||,|||||``|><|`ɜ`````", + "|@@∞|,|∞@@|``|||||||||||", + "|r,,+,+,hr|``|||||||||||", + "|rh,|,|,,r|``||qqqqqqq||", + "|||||,|||||``||,,,,,,,||", + "|9,S|,,,,,|``||,,≠≠≠≠≠||", + "|9,,|,hfh,|``||,,,,,,,||", + "|||+|,hfh,#``=,,,≠≠≠≠≠||", + "|t+,#,hfh,#``=,,,,,,,,||", + "|||,|,hfh,|`6||qqq,,qq||", + "|t+,|,,,,,|``|||||=¥||||", + "|||||,|||||``||,$,,A,Q||", + "|@@∞|,|∞@@|``||,$,NN,Q||", + "|r,,+,+,,r|``|||||||||||", + "|rh,|,|,hr|``|||||||||||", + "|||||,|||||``|><|`ɜ`````", + "|@@∞|,|∞@@|``|##|```````", + "|r,,+,+,,r|`````=```````", + "|rh,|,|,hr|`````¥``````ɜ", + "||||||||||||||||||||||||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "ɜ": "t_metal_floor", "¥": "t_card_science_security_black", "ƶ": "t_card_science_security_magenta" }, + "place_loot": [ { "item": "huge_atomic_battery_cell", "x": 21, "y": [ 15, 16 ], "chance": 50 } ], + "place_monster": [ { "monster": [ "mon_mech_recon", "mon_mech_combat" ], "x": 15, "y": [ 15, 16 ], "chance": 30 } ], + "items": { + "q": { "item": "guns_milspec", "chance": 40, "repeat": [ 1, 2 ] }, + "r": { "item": "tools_gunsmith", "chance": 10 }, + "≠": [ + { "item": "ammo_milspec", "chance": 70, "repeat": [ 1, 2 ] }, + { "item": "mags_milspec", "chance": 40, "repeat": [ 1, 2 ] } + ] + }, + "computers": { + "6": { + "name": "Magazine Entrance", + "security": 6, + "options": [ { "name": "UNLOCK ENTRANCE", "action": "unlock", "security": 7 } ], + "failures": [ { "action": "damage" }, { "action": "shutdown" } ] + } + } + } + } +] diff --git a/data/json/mapgen/lab/lab_modular/lab_cargo_surface.json b/data/json/mapgen/lab/lab_modular/lab_cargo_surface.json new file mode 100644 index 0000000000000..3af469ed8a7f9 --- /dev/null +++ b/data/json/mapgen/lab/lab_modular/lab_cargo_surface.json @@ -0,0 +1,354 @@ +[ + { + "method": "json", + "om_terrain": [ [ "lab_res_8_SWD_ground", "lab_res_8_SED_ground" ] ], + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "|նննննն;;;;;;;;;;;;;;;;;;;;|||||||||||||||||||||", + "|;;;;;ն;££££££££££££££££££;|||;;;|;;;|;;;|;;;|||", + "|;;;;;ն;££;;;£;;;£;;;£;;;£;|||||||||||||||||||||", + "|;;è;;ի;£;£;;;£;;;£;;;£;;£;||£^££££££££££££££|||", + "|;;;;;ն;£;;£;;;£;;;£;;;£;£;||£♥♠;;;;;;;;;£;;0|||", + "|;;;;;ն;£;;;£;;;£;;;£;;;££;||£♥♠;;;;;;è;;££££|||", + "|նննննն;££;;;£;;;£;;;£;;;£;||£♥♠;;;;;;;;;£;;;|||", + "|;;;;;ն;£;£;;;£;;;£;;;£;;£;||£^££££££;;;;££££|||", + "|;;;;;ն;£;;£;;;£;;;£;;;£;£;||;;;;;;;£;;;;£;;;|||", + "|;;è;;ի;£;;;£;;;£;;;£;;;££;||0;;;;;;£;;;;££££|||", + "|;;;;;ն;££;;;£;;;£;;;£;;;£;|||||||||¥====|||||||", + "|;;;;;ն;£;£;;;£;;;£;;;£;;£;||||||||;£;;;;£||||||", + "|նննննն;££££££££££££££££££;;;;;;;;;;£;;;;£122|||", + "|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;;;;£-22|||", + "|;£££££££££££££££££££££££££££££££££££;;;;£-22|||", + "|;£;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£||||||", + "|;£;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£|Y>|||", + "|;£è;;;;;;è;;;;;;è;;;;;;è;;;;;;è;;;;;;è;;£|;;|||", + "|;£;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£|=6|||", + "|;££££££££££££££££££££££££££££££££££££££££;;;|||", + "|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||", + "||||||||||||||||||||||||||||||||||||||||||||||||", + "||||||||||||||||||||||||||||||||||||||||||||||||", + "||||||||||||||||||||||||||||||||||||||||||||||||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "¥": "t_card_science_maintenance_green", "6": "t_card_science_maintenance_yellow" }, + "place_nested": [ + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 1, "y": 1 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 1, "y": 7 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 1, "y": 0 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 1, "y": 6 } + ], + "place_monster": [ + { "monster": "mon_manhack", "x": 30, "y": 1, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 31, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 32, "y": 1, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 34, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 35, "y": 1, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 36, "y": 1, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 38, "y": 1, "chance": 100 }, + { "monster": "mon_secubot", "x": 39, "y": 1, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 40, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 42, "y": 1, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 43, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 44, "y": 1, "chance": 100 } + ] + } + }, + { + "method": "json", + "om_terrain": [ [ "lab_res_8_SWU_ground", "lab_res_8_SEU_ground" ] ], + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "|||նննննն;;;;;;;;;;;;;;;;;;|||||||||||||||||||||", + "|||;;;;;ն;££££££££££££££££;|||;;;|;;;|;;;|;;;|||", + "|||;;;;;ն;££;;;£;;;£;;;£;£;|||||||||||||||||||||", + "|||;;è;;ի;£;£;;;£;;;£;;;££;||£^££££££££££££££|||", + "|||;;;;;ն;£;;£;;;£;;;£;;;£;||£♥♠;;;;;;;;;£;;0|||", + "|||;;;;;ն;£;;;£;;;£;;;£;;£;||£♥♠;;;;;;è;;££££|||", + "|||նննննն;££;;;£;;;£;;;£;£;||£♥♠;;;;;;;;;£;;;|||", + "|||;;;;;ն;£;£;;;£;;;£;;;££;||£^££££££;;;;££££|||", + "|||;;;;;ն;£;;£;;;£;;;£;;;£;||;;;;;;;£;;;;£;;;|||", + "|||;;è;;ի;£;;;£;;;£;;;£;;£;||0;;;;;;£;;;;££££|||", + "|||;;;;;ն;££;;;£;;;£;;;£;£;|||||||||¥====|||||||", + "|||;;;;;ն;£;£;;;£;;;£;;;££;||||||||;£;;;;£||||||", + "|||նննննն;££££££££££££££££;;;;;;;;;;£;;;;£122|||", + "|||;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;;;;£-22|||", + "|||;£££££££££££££££££££££££££££££££££;;;;£-22|||", + "|||;£;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£||||||", + "|||;£;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£|>>|||", + "|||è£;;;;;è;;;;;;è;;;;;;è;;;;;;è;;;;;;è;;£|;;|||", + "|||;£;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£|=6|||", + "|||;££££££££££££££££££££££££££££££££££££££;;;|||", + "|||;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||", + "||||||||||||||||||||||||||||||||||||||||||||||||", + "||||||||||||||||||||||||||||||||||||||||||||||||", + "||||||||||||||||||||||||||||||||||||||||||||||||" + ], + "palettes": [ "lab_common_palette", "lab_security_palette" ], + "terrain": { "¥": "t_card_science_maintenance_green", "6": "t_card_science_maintenance_yellow" }, + "place_nested": [ + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 3, "y": 1 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 3, "y": 7 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 3, "y": 0 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 3, "y": 0 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 3, "y": 12 } + ], + "place_monster": [ + { "monster": "mon_manhack", "x": 30, "y": 1, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 31, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 32, "y": 1, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 34, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 35, "y": 1, "chance": 100 }, + { "monster": "mon_flashbang_hack", "x": 36, "y": 1, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 38, "y": 1, "chance": 100 }, + { "monster": "mon_secubot", "x": 39, "y": 1, "chance": 100 }, + { "monster": "mon_gasbomb_hack", "x": 40, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 42, "y": 1, "chance": 100 }, + { "monster": "mon_skitterbot", "x": 43, "y": 1, "chance": 100 }, + { "monster": "mon_manhack", "x": 44, "y": 1, "chance": 100 } + ], + "place_vehicles": [ { "vehicle": "golf_cart", "x": [ 8, 20 ], "y": [ 17, 18 ], "chance": 100, "rotation": 90 } ] + } + }, + { + "method": "json", + "om_terrain": [ [ "lab_CORE_2x1_SED_ground", "lab_CORE_2x1_SWD_ground" ] ], + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + ";QQJJ;;JJQQ;£;;;£;;;£|;;;;Z|;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£ʔr;;hrʔ;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£ʔr;;;rʔ;£;;;;;;;£;ի;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£|ʔʔʔʔʔ|;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;è;;£;;;£;;;£;;è;;;;;£;;;;;;;£;ն;;;;è|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;;|||", + ";;è;;;;;;è;;£;;;£;;;£;;è;;;;;£è;;;;è;£;ի;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;;|||", + "£££££££££££££;£;£;£;££££££££££;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;è|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ի;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;նննննն|||", + "££££££££££££££££££££££££££££££££££££££;;;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||", + ";;è;;;;;;è;;;;;;è;;;;;;è;;;;;;è;;;;;;è;;;;;;è|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||", + "|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||", + "|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||" + ], + "palettes": [ "lab_common_palette", "lab_maintenance_palette" ], + "place_nested": [ + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 0 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 6 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 12 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 18 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 24, "y": 5 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 5 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 11 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 17 } + ], + "place_vehicles": [ + { "vehicle": "golf_cart_4seat", "x": 2, "y": 6, "chance": 100, "rotation": 180 }, + { "vehicle": "forklift", "x": 8, "y": 3, "chance": 100, "rotation": 90 }, + { "vehicle": "truck_trailer", "x": 5, "y": 14, "chance": 30, "rotation": 180 }, + { "vehicle": "portable_generator", "x": 5, "y": [ 2, 8 ], "chance": 30, "rotation": 90 }, + { "vehicle": "handjack", "x": 1, "y": [ 2, 8 ], "chance": 30, "rotation": 90 }, + { "vehicle": "forklift", "x": [ 31, 35 ], "y": [ 14, 21 ], "chance": 30, "rotation": 90 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 1, 4 ], "chance": 10, "rotation": 0 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 8, 10 ], "chance": 10, "rotation": 0 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 14, 16 ], "chance": 10, "rotation": 0 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 20, 22 ], "chance": 10, "rotation": 0 } + ] + } + }, + { + "method": "json", + "om_terrain": [ [ "lab_CORE_2x1_NED_ground", "lab_CORE_2x1_NWD_ground" ] ], + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ն;;;;;|||", + "|;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ն;;;;;|||", + ";;è;;;;;;è;;;;;;è;;;;;;è;;;;;;è;;;;;;è;ի;;;;è|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ն;;;;;|||", + "££££££££££££££££££££££££££££££££££££££;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ի;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;è|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;£;ն;;;;;|||", + "£££££££££££££;£;£;£;££££££££££;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;;|||", + ";;è;;;;;;è;;£;;;£;;;£;;è;;;;;£è;;;;;è£;ի;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;è|||", + ";;;;;;;;;è;;£;;;£;;;£;;è;;;;;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£;;;;;;;;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£|ʔʔʔʔʔ|;£;;;;;;;£;ն;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£ʔr;;hrʔ;£;;;;;;;£;ի;;;;;|||", + ";;;;;;;;;;;;£;;;£;;;£ʔr;;;rʔ;£;;;;;;;£;ն;;;;;|||", + ";QQJJ;;JJQQ;£;;;£;;;£|;;;;Z|;£;;;;;;;£;ն;;;;;|||" + ], + "palettes": [ "lab_common_palette", "lab_maintenance_palette" ], + "place_nested": [ + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 0 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 6 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 12 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 18 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 24, "y": 14 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 5 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 11 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 17 } + ], + "place_vehicles": [ + { "vehicle": "truck_trailer", "x": 5, "y": 8, "chance": 30, "rotation": 180 }, + { "vehicle": "portable_generator", "x": 5, "y": [ 18, 21 ], "chance": 30, "rotation": 90 }, + { "vehicle": "handjack", "x": 1, "y": [ 18, 21 ], "chance": 30, "rotation": 90 }, + { "vehicle": "cart_animal_compartment", "x": 4, "y": 19, "chance": 30, "rotation": 0 }, + { "vehicle": "forklift", "x": 8, "y": 19, "chance": 30, "rotation": 0 }, + { "vehicle": "forklift", "x": [ 31, 35 ], "y": [ 14, 21 ], "chance": 30, "rotation": 90 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 1, 4 ], "chance": 10, "rotation": 0 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 8, 10 ], "chance": 10, "rotation": 0 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 14, 16 ], "chance": 10, "rotation": 0 }, + { "vehicle": "handjack", "x": [ 40, 44 ], "y": [ 20, 22 ], "chance": 10, "rotation": 0 } + ] + } + }, + { + "method": "json", + "om_terrain": [ [ "lab_CORE_2x1_WC_ground", "lab_CORE_2x1_EC_ground" ] ], + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "|||||||||||||===¥===||#|;hrʔ;£;;;;;;;£;նննննն|||", + "|;;;;;;;;;;;£;;;£;;;£;;|;;rʔ;£;;;;;;;£;ն;;;;è|||", + "|;;;;;;;;;;;£;;;£;;;£;;||ʔʔ|;£;;;;;;;£;ն;;;;;|||", + "|#||||;;;;;;£;;;£;;;£;;|;;;;;£;;;;;;;£;ի;;;;;|||", + "|;;QQ|Q;;;;;£;£;£;£;£;;|;;;;;£;;;;;;;£;ն;;;;;|||", + "|;;;J|;;;;;;;;;;;;;;;;;|;;;;;£;;;;;;;£;ն;;;;;|||", + "|;;QQ|||||;;;;;;;;;;;;;|;;;;;£;;;;;;;£;նննննն|||", + "||;|||P;rʔ;;;;;;;;;;;;q|;;;;;£;;;;;;;£;ն;;;;;|||", + "|R;;;+;hrʔ;;;;;;;;;;;;q|;;;;;£;;;;;;;£;ն;;;;è|||", + "|R;;;|y;;ʔ;;;;;;;;;;;;Q|;;;;;£;;;;;;;£;ն;;;;;|||", + "|;;;;|+|||ʋ;;ʍ;;;;;;;;J|;;;;;£;;;;;;;£;ն;;;;;|||", + "|3;;H|;;t|N;AN;;;;;;;;J|;;;;;£;;;;;;;£;ի;;;;;|||", + "|Y;;H|;SY|N;;N;;;;;;;;J|;;;;;£;;;;;;;£;ի;;;;;|||", + "|4;;H|+|||ã;;ʉ;;;;;;;;J|;;;;;£;;;;;;;£;ն;;;;;|||", + "|;;;;|;;;ʔ;;;A;;;;;;;;Q|;;;;;£;;;;;;;£;ն;;;;;|||", + "|y;E;+;r;ʔ;;;;;;;;;;;;q|;;;;;£;;;;;;;£;ն;;;;è|||", + "||;|||Prhʔ;;;;;;;;;;;;q|;;;;;£;;;;;;;£;ն;;;;;|||", + "|;;qq|||||;;;;;;;;;;;;;|;;;;;£;;;;;;;£;նննննն|||", + "|;;;J|;;;;;;;;;;;;;;;;;|;;;;;£;;;;;;;£;ն;;;;;|||", + "|;;qq|Q;;;;;£;£;£;£;£;;|;;;;;£;;;;;;;£;ն;;;;;|||", + "|#||||;;;;;;£;;;£;;;£;;|;;;;;£;;;;;;;£;ի;;;;;|||", + "|;;;;;;;;;;;£;;;£;;;£;;||ʔʔ|;£;;;;;;;£;ն;;;;;|||", + "|;;;;;;;;;;;£;;;£;;;£;;|;;rʔ;£;;;;;;;£;ն;;;;è|||", + "|||||||||||||===¥===||#|;hrʔ;£;;;;;;;£;նննննն|||" + ], + "palettes": [ "lab_common_palette", "lab_maintenance_palette" ], + "terrain": { "¥": "t_card_science_maintenance_green" }, + "place_nested": [ + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 1 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 7 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 12 }, + { "chunks": [ [ "lab_cargo_5x5", 100 ] ], "x": 40, "y": 18 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 1 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 6 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 17 }, + { "chunks": [ [ "lab_wall_chain_5x5", 50 ], [ "null", 50 ] ], "x": 40, "y": 23 } + ], + "items": { + "R": { "item": "SUS_engineering_bookcase", "chance": 30 }, + "Q": { "item": "gas_charging_rack", "chance": 30 }, + "J": [ { "item": "mechanics", "chance": 30 } ], + "N": [ { "item": "mechanics", "chance": 30 } ], + "q": [ { "item": "mechanics", "chance": 30 } ] + }, + "place_loot": [ + { "item": "hd_tow_cable", "x": 22, "y": [ 7, 8 ], "chance": 10 }, + { "item": "jumper_cable", "x": 22, "y": [ 7, 8 ], "chance": 10 }, + { "item": "jumper_cable_heavy", "x": 22, "y": [ 7, 8 ], "chance": 7 }, + { "item": "folding_basket", "x": 22, "y": [ 10, 13 ], "chance": 5 }, + { "item": "bike_basket", "x": 22, "y": [ 10, 13 ], "chance": 5 }, + { "item": "bike_rack", "x": 22, "y": [ 10, 13 ], "chance": 7 }, + { "item": "mounted_spare_tire", "x": 22, "y": [ 10, 13 ], "chance": 10 }, + { "item": "cargo_lock", "x": 22, "y": [ 10, 13 ], "chance": 25 }, + { "item": "cargo_rack", "x": 22, "y": [ 10, 13 ], "chance": 10 }, + { "item": "animal_locker", "x": 22, "y": [ 10, 13 ], "chance": 15 }, + { "item": "craftrig", "x": 22, "y": [ 10, 13 ], "chance": 5 }, + { "item": "forgerig", "x": 22, "y": [ 10, 13 ], "chance": 2 }, + { "item": "weldrig", "x": 22, "y": [ 10, 13 ], "chance": 5 }, + { "item": "v_table", "x": 22, "y": [ 10, 13 ], "chance": 7 }, + { "item": "towel_hanger", "x": 22, "y": [ 10, 13 ], "chance": 10 }, + { "item": "workbench", "x": 22, "y": [ 10, 13 ], "chance": 7 }, + { "item": "recharge_station", "x": 22, "y": [ 15, 16 ], "chance": 15 }, + { "item": "minifreezer", "x": 22, "y": [ 15, 16 ], "chance": 10 }, + { "item": "mountable_heater", "x": 22, "y": [ 15, 16 ], "chance": 10 }, + { "item": "mountable_cooler", "x": 22, "y": [ 15, 16 ], "chance": 10 } + ], + "place_vehicles": [ + { "vehicle": "cart_chassis_2", "x": 20, "y": 8, "chance": 30, "rotation": 90 }, + { "vehicle": "engine_crane", "x": 15, "y": 11, "chance": 30, "rotation": 0 }, + { "vehicle": "welding_cart", "x": 17, "y": [ 12, 14 ], "chance": 30, "rotation": 180 }, + { "vehicle": "cart_chassis", "x": 8, "y": 19, "chance": 30, "rotation": 180 } + ] + } + }, + { + "method": "json", + "om_terrain": [ [ "lab_2x1_CORE_-1W", "lab_2x1_CORE_-1E" ] ], + "//": "level -1 for cargo ramps. TODO: complete this level for maintence expansion.", + "type": "mapgen", + "weight": 200, + "object": { + "fill_ter": "t_thconc_floor", + "rows": [ + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||||", + "??????????||||;;♠♥;;;;;;;;;;;;♣♦;;;;;;;;;;;|||||", + "??????????||||;;♠♥;;;;;;;;;;;;♣♦;;;;;;;;;;;|||||", + "??????????||||;;♠♥;;;;;;;;;;;;♣♦;;;;;;;;;;;|||||", + "??????????||||;;;;;;;;;;;;;;;;;;;;;;;;;;;;;|||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????|||||||||||||||||||||||||||||;;;122|||", + "??????????|||||||||||||||||||||||||||||;;;-22|||", + "??????????|||||||||||||||||||||||||||||;;;-22|||", + "??????????|||||||||||||||||||||||||||||;;;||||||", + "??????????|||||||||||||||||||||||||||||;;;|><|||", + "??????????|||||||||||||||||||||||||||||;;;#;;|||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????||||||||||||||||||||||||||||||||||||||", + "??????????????????????????????????||||??????????" + ], + "palettes": [ "lab_common_palette", "lab_maintenance_palette" ], + "terrain": { "?": "t_soil" } + } + } +] diff --git a/data/json/mapgen_palettes/lab/lab_modular_palette.json b/data/json/mapgen_palettes/lab/lab_modular_palette.json index 1d432b3867241..2eceab97e6041 100644 --- a/data/json/mapgen_palettes/lab/lab_modular_palette.json +++ b/data/json/mapgen_palettes/lab/lab_modular_palette.json @@ -45,10 +45,16 @@ "¶": "t_carpet_concrete_yellow", "ꞝ": "t_carpet_concrete_green", "£": "t_thconc_y", + "ß": "t_thconc_r", "<": "t_stairs_up", ">": "t_stairs_down", "ի": "t_chaingate_c", "ն": "t_chainfence", + "è": "t_thconc_floor_olight", + "é": "t_strconc_floor_olight", + "ê": "t_linoleum_gray_floor_olight", + "ë": "t_linoleum_whitefloor_olight", + "î": "t_metal_floor_olight", "♥": "t_ramp_down_high", "♠": "t_ramp_down_low", "♦": "t_ramp_up_high", @@ -252,7 +258,7 @@ "id": "lab_maintenance_palette", "//": "for maintenance areas of labs.", "liquids": { "ɜ": { "liquid": "water_clean", "amount": [ 0, 100 ] } }, - "terrain": { ";": "t_thconc_floor", "1": "t_elevator_control", "2": "t_elevator", "7": "t_sewage_pump", "0": "t_sewage_pipe" }, + "terrain": { ";": "t_thconc_floor", "1": "t_elevator_control_off", "2": "t_elevator", "7": "t_sewage_pump", "0": "t_sewage_pipe" }, "furniture": { "ƃ": "f_warehouse_shelf", "W": "f_generator_broken", @@ -264,7 +270,7 @@ "Æ": "f_55gal_firebarrel", "ʉ": "f_arcfurnace_empty", "ʋ": "f_drill_press", - "ʌ": "f_hydraulic_press", + "ã": "f_hydraulic_press", "ʍ": "f_air_compressor", "ʭ": "f_ladder", "5": "f_water_purifier", @@ -290,7 +296,7 @@ "⁴": "t_strconc_floor", "_": "t_pavement", "7": "t_reinforced_glass_shutter", - "1": "t_elevator_control", + "1": "t_elevator_control_off", "2": "t_elevator" }, "furniture": { @@ -313,7 +319,15 @@ "ɜ": { "monster": "mon_turret_rifle" }, "ɛ": { "monster": "mon_turret_rifle" } }, - "items": { "3": { "item": "vending_food", "chance": 90 }, "4": { "item": "vending_drink", "chance": 90 } } + "items": { + "3": { "item": "vending_food", "chance": 90 }, + "4": { "item": "vending_drink", "chance": 90 }, + "∞": [ + { "item": "clothing_soldier_set", "chance": 100 }, + { "item": "gear_soldier_sidearm", "chance": 33 }, + { "item": "book_military", "chance": 33 } + ] + } }, { "type": "palette", @@ -437,7 +451,7 @@ "type": "palette", "id": "lab_medical_palette", "//": "for normal medical clinic areas of labs.", - "terrain": { "1": "t_elevator_control", "2": "t_elevator" }, + "terrain": { "1": "t_elevator_control_off", "2": "t_elevator" }, "furniture": { "W": "f_generator_broken", "ɔ": "f_autodoc", diff --git a/data/json/monstergroups/lab.json b/data/json/monstergroups/lab.json index 5875a65b99ba8..18895f01a2ee0 100644 --- a/data/json/monstergroups/lab.json +++ b/data/json/monstergroups/lab.json @@ -185,5 +185,56 @@ { "monster": "mon_zombie_brute_shocker", "freq": 1, "cost_multiplier": 5 }, { "monster": "mon_lab_rat", "freq": 20, "cost_multiplier": 20, "pack_size": [ 2, 8 ] } ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_BASIC_SECURITY", + "default": "mon_zombie_labsecurity", + "monsters": [ + { "monster": "mon_feral_labsecurity_9mm", "freq": 18, "cost_multiplier": 8 }, + { "monster": "mon_feral_labsecurity_flashlight", "freq": 18, "cost_multiplier": 2 }, + { "monster": "mon_zombie_labsecurity", "freq": 40, "cost_multiplier": 0, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zombie_hazmat", "freq": 10, "cost_multiplier": 1, "pack_size": [ 1, 2 ] }, + { "monster": "mon_zombie", "freq": 30, "cost_multiplier": 1, "pack_size": [ 2, 4 ] }, + { "monster": "mon_zombie_fat", "freq": 20, "cost_multiplier": 1, "pack_size": [ 1, 2 ] }, + { "monster": "mon_zombie_tough", "freq": 20, "cost_multiplier": 2 }, + { "monster": "mon_zombie_crawler", "freq": 10, "cost_multiplier": 1 }, + { "monster": "mon_zombie_technician", "freq": 3, "cost_multiplier": 2 }, + { "monster": "mon_zombie_necro", "freq": 1, "cost_multiplier": 15 }, + { "monster": "mon_eyebot", "freq": 10, "cost_multiplier": 10 } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_MILITARY", + "default": "mon_zombie_soldier", + "monsters": [ + { "monster": "mon_feral_labsecurity_9mm", "freq": 12, "cost_multiplier": 8 }, + { "monster": "mon_feral_labsecurity_flashlight", "freq": 12, "cost_multiplier": 2 }, + { "monster": "mon_zombie_labsecurity", "freq": 5, "cost_multiplier": 0, "pack_size": [ 2, 3 ] }, + { "monster": "mon_zombie_hazmat", "freq": 5, "cost_multiplier": 1, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_bio_op", "freq": 15, "cost_multiplier": 5 }, + { "monster": "mon_zombie_bio_op2", "freq": 10, "cost_multiplier": 10 }, + { "monster": "mon_zombie_armored", "freq": 3, "cost_multiplier": 15 }, + { "monster": "mon_zombie_soldier", "freq": 25, "cost_multiplier": 0, "pack_size": [ 1, 4 ] } + ] + }, + { + "type": "monstergroup", + "name": "GROUP_LAB_MAINTENANCE", + "default": "mon_zombie_technician", + "monsters": [ + { "monster": "mon_zombie_technician", "freq": 30, "cost_multiplier": 5 }, + { "monster": "mon_zombie_hazmat", "freq": 20, "cost_multiplier": 1, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_pipe", "freq": 18, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, + { "monster": "mon_feral_human_crowbar", "freq": 18, "cost_multiplier": 8, "pack_size": [ 1, 3 ] }, + { "monster": "mon_eyebot", "freq": 5, "cost_multiplier": 1 }, + { "monster": "mon_hazmatbot", "freq": 7, "cost_multiplier": 1, "pack_size": [ 1, 2 ] }, + { "monster": "mon_zombie", "freq": 30, "cost_multiplier": 1, "pack_size": [ 1, 3 ] }, + { "monster": "mon_zombie_fat", "freq": 30, "cost_multiplier": 1 }, + { "monster": "mon_zombie_tough", "freq": 20, "cost_multiplier": 2 }, + { "monster": "mon_zombie_crawler", "freq": 5, "cost_multiplier": 1 }, + { "monster": "mon_zombie_electric", "freq": 3, "cost_multiplier": 5 } + ] } ] diff --git a/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json b/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json index 0c7d69ff8c8ed..3d86131e81aea 100644 --- a/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json +++ b/data/json/overmap/overmap_special/lab_modular/lab_mini_specials.json @@ -21,5 +21,48 @@ "city_distance": [ 3, -1 ], "city_sizes": [ 1, 16 ], "occurrences": [ 0, 0 ] + }, + { + "type": "overmap_special", + "id": "Lab_SECURITY_1x1x6", + "//": "6 z-level security tower. This includes the main lab entrance and security themed floors.", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "lab_security_z0_north" }, + { "point": [ 0, 0, -1 ], "overmap": "lab_security_z-1_north" }, + { "point": [ 0, 0, -2 ], "overmap": "lab_security_z-2_north" }, + { "point": [ 0, 0, -3 ], "overmap": "lab_security_z-3_north" }, + { "point": [ 0, 0, -4 ], "overmap": "lab_security_z-4_north" }, + { "point": [ 0, 0, -5 ], "overmap": "lab_security_z-5_north" }, + { "point": [ 0, 0, -6 ], "overmap": "lab_security_z-6_final_flr_north" } + ], + "locations": [ "land" ], + "city_distance": [ 3, -1 ], + "city_sizes": [ 1, 16 ], + "occurrences": [ 0, 0 ] + }, + { + "type": "overmap_special", + "id": "Lab_CARGO_Surface", + "//": "Ground level for the freight/cargo company lab top and -1 connecting ramp/maintenance access.", + "overmaps": [ + { "point": [ 0, 0, 0 ], "overmap": "lab_CORE_2x1_WC_ground_north" }, + { "point": [ 0, -1, 0 ], "overmap": "lab_CORE_2x1_NED_ground_north" }, + { "point": [ -1, -1, 0 ], "overmap": "lab_security_z0N_north" }, + { "point": [ -1, 1, 0 ], "overmap": "lab_security_z0S_north" }, + { "point": [ 0, -2, 0 ], "overmap": "lab_res_8_SEU_ground_south", "locations": [ "land" ] }, + { "point": [ 0, 2, 0 ], "overmap": "lab_res_8_SWD_ground_north", "locations": [ "land" ] }, + { "point": [ 0, 1, 0 ], "overmap": "lab_CORE_2x1_SED_ground_north" }, + { "point": [ 1, -2, 0 ], "overmap": "lab_res_8_SWU_ground_south", "locations": [ "land" ] }, + { "point": [ 1, 2, 0 ], "overmap": "lab_res_8_SED_ground_north", "locations": [ "land" ] }, + { "point": [ 1, -1, 0 ], "overmap": "lab_CORE_2x1_NWD_ground_north" }, + { "point": [ 1, 0, 0 ], "overmap": "lab_CORE_2x1_EC_ground_north" }, + { "point": [ 1, 1, 0 ], "overmap": "lab_CORE_2x1_SWD_ground_north" }, + { "point": [ 0, 2, -1 ], "overmap": "lab_2x1_CORE_-1W_north" }, + { "point": [ 1, 2, -1 ], "overmap": "lab_2x1_CORE_-1E_north" } + ], + "locations": [ "land" ], + "city_distance": [ 3, -1 ], + "city_sizes": [ 1, 16 ], + "occurrences": [ 0, 0 ] } ] diff --git a/data/json/overmap/overmap_terrain/overmap_terrain_lab.json b/data/json/overmap/overmap_terrain/overmap_terrain_lab.json index 079ce64758d87..0dca32d24fd05 100644 --- a/data/json/overmap/overmap_terrain/overmap_terrain_lab.json +++ b/data/json/overmap/overmap_terrain/overmap_terrain_lab.json @@ -307,6 +307,7 @@ "lab_surface_brick_blockE1" ], "name": "parking lot", + "//": "parking lot attached to Research facility.", "sym": "_", "color": "dark_gray", "spawns": { "group": "GROUP_LAB_SURFACE", "population": [ 5, 20 ], "chance": 50 }, @@ -331,6 +332,7 @@ "lab_surface_parking_blockE1" ], "name": "parking lot", + "//": "parking lot attached to modular mutagen lab.", "sym": "_", "color": "dark_gray", "spawns": { "group": "GROUP_VANILLA", "population": [ 5, 20 ], "chance": 30 }, @@ -512,5 +514,57 @@ "sym": "l", "color": "dark_gray", "see_cost": 2 + }, + { + "type": "overmap_terrain", + "id": [ + "lab_security_z-1", + "lab_security_z-2", + "lab_security_z-3", + "lab_security_z-4", + "lab_security_z-5", + "lab_security_z-6_final_flr" + ], + "name": "Lab Security Zone", + "sym": "S", + "//": "6 underground levels for a modular security tower.", + "color": "yellow", + "see_cost": 5, + "spawns": { "group": "GROUP_VANILLA", "population": [ 1, 4 ], "chance": 30 }, + "flags": [ "RISK_HIGH" ] + }, + { + "type": "overmap_terrain", + "id": [ "lab_2x1_CORE_-1W", "lab_2x1_CORE_-1E" ], + "name": "Lab Cargo Zone", + "sym": "C", + "color": "white", + "see_cost": 5, + "flags": [ "RISK_HIGH" ] + }, + { + "type": "overmap_terrain", + "id": [ + "lab_res_8_SWD_ground", + "lab_res_8_SED_ground", + "lab_res_8_SWU_ground", + "lab_res_8_SEU_ground", + "lab_CORE_2x1_SED_ground", + "lab_CORE_2x1_SWD_ground", + "lab_CORE_2x1_NED_ground", + "lab_CORE_2x1_NWD_ground", + "lab_CORE_2x1_WC_ground", + "lab_CORE_2x1_EC_ground", + "lab_security_z0", + "lab_security_z0N", + "lab_security_z0S" + ], + "name": "Trans-Coast Logistics", + "sym": "F", + "//": "Front/Fake company entrance for a lab. Includes main and auxillary entrances including the start of the security tower.", + "color": "light_gray", + "see_cost": 5, + "spawns": { "group": "GROUP_VANILLA", "population": [ 5, 15 ], "chance": 30 }, + "flags": [ "RISK_HIGH" ] } ]