Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Aftershock] Add Habitat Block 1 to Exoplanet. Also adds Reinforced Glass Display cases and Electronic Lock doors. #74174

Merged
merged 14 commits into from
May 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions data/mods/Aftershock/itemgroups/robot_storage.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,12 @@
"//": "Old and mostly broken industrial bots, its meant to spawn in recharging stations, so it only places a single bot.",
"subtype": "distribution",
"items": [ [ "bot_light_hack", 10 ], [ "broken_hazmatbot", 60 ], [ "broken_utilibot_const", 120 ] ]
},
{
"id": "domestic_bot_storage",
"type": "item_group",
"//": "Small Consumer and commercial grade robots that can (probably) fit in the reinforced display cases.",
"subtype": "distribution",
"items": [ [ "bot_light_hack", 20 ], [ "bot_skitterbot_rat", 10 ], [ "bot_eyebot_heater", 5 ], [ "bot_skitterbot_hunter", 5 ] ]
}
]
13 changes: 13 additions & 0 deletions data/mods/Aftershock/maps/city_buildings.json
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,19 @@
],
"locations": [ "land" ]
},
{
"id": "afs_habitat_block_1",
"type": "city_building",
"overmaps": [
{ "point": [ 0, 0, 0 ], "overmap": "afs_habblock_1_a1_north" },
{ "point": [ 1, 0, 0 ], "overmap": "afs_hablock_1_a2_north" },
{ "point": [ 0, 0, 1 ], "overmap": "afs_habblock_1_floor2_a1_north" },
{ "point": [ 1, 0, 1 ], "overmap": "afs_hablock_1_floor2_a2_north" },
{ "point": [ 0, 0, 2 ], "overmap": "afs_habblock_1_roof_a1_north" },
{ "point": [ 1, 0, 2 ], "overmap": "afs_hablock_1_roof_a2_north" }
],
"locations": [ "land" ]
},
{
"id": "afs_shuttle_pad",
"type": "city_building",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,5 +248,97 @@
{ "item": "afs_circuitry_1", "count": [ 1, 2 ] }
]
}
},
{
"type": "furniture",
"id": "f_reinforced_displaycase",
"name": "reinforced display case",
"looks_like": "f_rack",
"description": "A secure metal case at about waist-height, with reinforced glass panelling on top. Useful for storing valuable things while still showing them off. Secured with an electronic lock.",
"symbol": "#",
"color": "light_cyan",
"move_cost_mod": 2,
"coverage": 80,
"required_str": 10,
"flags": [ "TRANSPARENT", "SEALED", "PLACE_ITEM" ],
"rotates_to": "INDOORFLOOR",
"examine_action": {
"type": "effect_on_condition",
"effect_on_conditions": [
{
"id": "EOC_unlock_afs_display_case",
"effect": [
{ "math": [ "_t_delay", "=", "time('20 m')" ] },
{
"run_eoc_with": "EOC_start_lock_hack",
"variables": { "furn_pos": { "context_val": "pos" }, "t_delay": { "context_val": "t_delay" }, "difficulty": "10" },
"alpha_talker": "avatar"
}
]
}
]
},
"bash": {
"str_min": 80,
"str_max": 180,
"sound": "glass breaking!",
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 12,
"furn_set": "f_displaycase_b",
"items": [ { "item": "glass_shard", "count": [ 25, 50 ] } ]
},
"shoot": { "reduce_damage": [ 2, 12 ], "reduce_damage_laser": [ 0, 7 ], "destroy_damage": [ 40, 120 ], "no_laser_destroy": true }
},
{
"type": "furniture",
"id": "f_reinforced_displaycase_o",
"name": "reinforced display case",
"looks_like": "f_rack",
"description": "A secure metal case at about waist-height, with reinforced glass panelling on top. Useful for storing valuable things while still showing them off. This one had its lock hacked and is open.",
"symbol": "#",
"color": "light_cyan",
"move_cost_mod": 2,
"coverage": 80,
"required_str": 10,
"flags": [ "TRANSPARENT", "PLACE_ITEM" ],
"rotates_to": "INDOORFLOOR",
"bash": {
"str_min": 80,
"str_max": 180,
"sound": "glass breaking!",
"sound_fail": "whack!",
"sound_vol": 16,
"sound_fail_vol": 12,
"furn_set": "f_displaycase_b",
"items": [ { "item": "glass_shard", "count": [ 25, 50 ] } ]
},
"shoot": { "reduce_damage": [ 2, 12 ], "reduce_damage_laser": [ 0, 7 ], "destroy_damage": [ 40, 120 ], "no_laser_destroy": true }
},
{
"type": "furniture",
"id": "f_reinforced_displaycase_b",
"name": "broken display case",
"looks_like": "f_rack",
"description": "A secure metal case at about waist-height, with reinforced glass panelling on top. Would be useful for storing valuable things while still showing them off, if the glass hadn't been shattered.",
"symbol": "#",
"color": "light_cyan",
"move_cost_mod": 2,
"coverage": 80,
"required_str": 10,
"flags": [ "TRANSPARENT", "PLACE_ITEM" ],
"rotates_to": "INDOORFLOOR",
"bash": {
"str_min": 30,
"str_max": 150,
"sound": "metal screeching!",
"sound_fail": "clang!",
"items": [
{ "item": "scrap", "count": [ 8, 12 ] },
{ "item": "pipe", "count": [ 0, 3 ] },
{ "item": "sheet_metal", "count": [ 0, 3 ] },
{ "item": "sheet_metal_small", "count": [ 2, 10 ] }
]
}
}
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
[
{
"type": "terrain",
"id": "t_afs_door_metal_elocked",
"name": "closed metal door",
"description": "A galvanized steel door, forged to withstand punishment and impede anyone or anything. This one is secured with an electronic lock.",
"symbol": "+",
"looks_like": "t_door_metal_c",
"color": "cyan",
"move_cost": 0,
"coverage": 95,
"roof": "t_metal_roof",
"connect_groups": "WALL",
"connects_to": "WALL",
"flags": [ "NOITEM", "REDUCE_SCENT", "LOCKED", "BLOCK_WIND", "SUPPORTS_ROOF" ],
"oxytorch": {
"result": "t_mdoor_frame",
"duration": "14 seconds",
"byproducts": [ { "item": "steel_plate", "count": [ 0, 1 ] }, { "item": "steel_chunk", "count": [ 3, 8 ] } ]
},
"examine_action": {
"type": "effect_on_condition",
"effect_on_conditions": [
{
"id": "EOC_unlock_afs_metal_door",
"effect": [
{ "math": [ "_t_delay", "=", "time('20 m')" ] },
{
"run_eoc_with": "EOC_start_lock_hack",
"variables": { "furn_pos": { "context_val": "pos" }, "t_delay": { "context_val": "t_delay" }, "difficulty": "9" },
"alpha_talker": "avatar"
}
]
}
]
},
"bash": {
"str_min": 80,
"str_max": 250,
"sound": "metal screeching!",
"sound_fail": "clang!",
"ter_set": "t_mdoor_frame",
"items": [
{ "item": "scrap", "count": [ 12, 24 ] },
{ "item": "steel_plate", "prob": 75 },
{ "item": "hinge", "count": [ 1, 3 ] }
]
}
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,29 @@
"items": [ { "item": "glass_shard", "count": [ 8, 16 ] } ]
},
"shoot": { "chance_to_hit": 0, "reduce_damage": [ 0, 0 ], "reduce_damage_laser": [ 0, 0 ], "destroy_damage": [ 2, 8 ] }
},
{
"type": "terrain",
"id": "t_linoleum_white_olight_inactive",
"name": "linoleum tile",
"description": "A section of flooring made out of a tough, rubbery material. Colored a simple white. There is a still-functioning inactive light attached to the ceiling above.",
"looks_like": "t_linoleum_whitefloor_olight",
"symbol": ".",
"color": "white",
"connect_groups": [ "INDOORFLOOR", "LINOLEUM" ],
"connects_to": "LINOLEUM",
"move_cost": 2,
"roof": "t_flat_roof",
"flags": [ "TRANSPARENT", "SUPPORTS_ROOF", "COLLAPSES", "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 ] } ]
}
}
]
Loading
Loading