Skip to content

Commit

Permalink
[Aftershock] Add Habitat Block 1 to Exoplanet. Also adds Reinforced G…
Browse files Browse the repository at this point in the history
…lass Display cases and Electronic Lock doors. (CleverRaven#74174)

* Begin implementation. Add Reinforced Display Cases. Add Domestic Robot Itemgroup.  Start to Add Habblock palette and mapgen

* Fix Robotics Shops spawning broken lab defense bot. Hab Block 1 now spawns in Exoplanet. Complete Core implementation of Hab block 1.  Adjust Hacking difficulty on Reinforced Glass Case.  Lint Json.

* Add more variety to library books

* Implement hackable metal doors. Add Hackable to doors Pharmacy, Robotics, and Gunstore mapgen. The Life Support room is now locked by a hackable door.

* Implement Slot 1 to Hab Block 1. The resident meal service can now be either a cafe or a dinner.

* Add Inactive Linoleum overhead light. Add Lights to Habbitat Block 1 and nested map gen.

* Manually linting every file I edited so the tests don't yell at me. Probably

* Correct habbitat spelling to habitat

* Missed one

* I have no excuse only shame. Corrects one more spelling mistake

* Fix Gun store not spawning correct shelf

* Quick fix to community garden so water tank doesn't go past wall

* Correct PIN Pad spelling to appease the spellchecker.

* Fix last instance of spelling mistake

Co-authored-by: John Candlebury <[email protected]>

---------

Co-authored-by: John Candlebury <[email protected]>
  • Loading branch information
QuillInkwell and John-Candlebury authored May 30, 2024
1 parent bf2da9d commit 162c43b
Show file tree
Hide file tree
Showing 10 changed files with 1,262 additions and 3 deletions.
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

0 comments on commit 162c43b

Please sign in to comment.