Skip to content

Commit

Permalink
[Aftershock] Gene Clinics (#79197)
Browse files Browse the repository at this point in the history
* Implement Gene Clinic variant 1

* Renovate Clinic to Add service room. Add Murder Bots and Moxies. Implement powered down gene editor

* Add most of the item spawn groups

* Add item groups, Monster Spawns, and Mapgen Nests

* Add trash to the ground in looted variant. Adjust spawn rates of looted vrs unlooted to 60-40 in the players favor

* Geneclinics also spawn without the Exo-Planet

* Remove redudant spawn of the larger genetech disposable group, low tier already spawns worker and combat rarely

* Mapgen now correctly murders plants when power is out

* String fixes for test gods
  • Loading branch information
QuillInkwell authored Jan 17, 2025
1 parent acd0756 commit 9925761
Show file tree
Hide file tree
Showing 15 changed files with 670 additions and 6 deletions.
5 changes: 5 additions & 0 deletions data/mods/Aftershock/flags.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@
"type": "json_flag",
"info": "This item is an access card for ancient police locations."
},
{
"id": "OLD_MERCURIAL_CARD",
"type": "json_flag",
"info": "This item is an access card for ancient Mercurial locations."
},
{
"id": "HEAVY_TOOL",
"type": "json_flag"
Expand Down
7 changes: 7 additions & 0 deletions data/mods/Aftershock/itemgroups/clothing/winter_outfits.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,12 @@
"//": "The matching Magellan Exosuit set. Includes suit, mask and possible future accessories",
"subtype": "collection",
"entries": [ { "item": "afs_magellan_suit" }, { "item": "afs_magellan_suit_helmet", "prob": 90 } ]
},
{
"id": "afs_mutant_colonist_eva_g",
"type": "item_group",
"//": "Colonist grade EVA gear modified to accomadate mutant anatonmy. Should include suit and mask, and possible future accesories. TODO: this gear does not yet exist so spawn a bodyglove instead, remove this TODO when the group has been filled.",
"subtype": "collection",
"entries": [ { "item": "afs_cryopod_bodyglove" } ]
}
]
15 changes: 15 additions & 0 deletions data/mods/Aftershock/itemgroups/genetech.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[
{
"//": "For use in a commercial settings but secured such as in safes. Offers more reward for greater risk/effort involved in obtaining. Shouldn't give any super special or highly valuable genetech.",
"id": "afs_genetech_commerical_safe",
"type": "item_group",
"subtype": "collection",
"items": [ { "item": "afs_gene_disp", "count": [ 3, 7 ] }, { "item": "afs_gene_template", "prob": 80, "count": [ 1, 3 ] } ]
},
{
"id": "afs_genetech_commercial_shelf",
"type": "item_group",
"subtype": "collection",
"items": [ { "item": "afs_gene_disp_low_tier", "count": [ 1, 3 ] } ]
}
]
21 changes: 21 additions & 0 deletions data/mods/Aftershock/items/genetech.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,13 @@
"trait_group": "GENETECH_TRAITS",
"flags": [ "GENE_TECH" ]
},
{
"id": "afs_gene_disp_low_tier",
"name": "Mercurial Genetech",
"copy-from": "afs_gene_disp",
"type": "TOOL",
"trait_group": "GENETECH_TRAITS_LOW_TIER"
},
{
"type": "trait_group",
"id": "GENETECH_TRAITS",
Expand All @@ -46,6 +53,20 @@
{ "group": "GENETECH_WORKER", "prob": 100 }
]
},
{
"type": "trait_group",
"id": "GENETECH_TRAITS_LOW_TIER",
"subtype": "distribution",
"//": "Used in more accesible locations where Genetech can be found such as on shelves in Genetech-vaults. Weighted so that the most useful traits will spawn at a greatly reduced rate. Highly valuable or military grade traits should not end up in here.",
"traits": [
{ "group": "GENETECH_TAILS", "prob": 100 },
{ "group": "GENETECH_EARS", "prob": 100 },
{ "group": "GENETECH_LOOKS", "prob": 50 },
{ "group": "GENETECH_SKIN", "prob": 100 },
{ "group": "GENETECH_WORKER", "prob": 30 },
{ "group": "GENETECH_COMBAT", "prob": 10 }
]
},
{
"type": "trait_group",
"id": "GENETECH_TAILS",
Expand Down
16 changes: 16 additions & 0 deletions data/mods/Aftershock/items/id_cards.json
Original file line number Diff line number Diff line change
Expand Up @@ -92,5 +92,21 @@
"volume": "5 ml",
"category": "keys",
"to_hit": -3
},
{
"type": "GENERIC",
"id": "mercurial_master_keycard",
"symbol": ",",
"color": "green",
"name": { "str": "Mercurial master key" },
"description": "A master keycard for nearly all Mercurial corporate facilities and infrastructure built before the year 2152. Invaluable on Salus IV, this card will grant you entry to all but the most secure Mercurial facilities.",
"price": "8 kUSD",
"flags": [ "OLD_MERCURIAL_CARD" ],
"price_postapoc": "8 kUSD",
"material": [ "plastic" ],
"weight": "6 g",
"volume": "5 ml",
"category": "keys",
"to_hit": -3
}
]
11 changes: 11 additions & 0 deletions data/mods/Aftershock/maps/city_buildings.json
Original file line number Diff line number Diff line change
Expand Up @@ -254,5 +254,16 @@
{ "point": [ 0, 0, 1 ], "overmap": "afs_shuttle_pad_a2_roof_south" }
],
"locations": [ "land" ]
},
{
"id": "afs_gene_clinic_1",
"type": "city_building",
"overmaps": [
{ "point": [ 0, 0, 0 ], "overmap": "afs_gene_clinic_1_a1_north" },
{ "point": [ 0, 0, 1 ], "overmap": "afs_gene_clinic_1_a2_north" },
{ "point": [ 0, 0, 2 ], "overmap": "afs_gene_clinic_1_a3_north" },
{ "point": [ 0, 0, 3 ], "overmap": "afs_gene_clinic_1_a4_north" }
],
"locations": [ "land" ]
}
]
101 changes: 101 additions & 0 deletions data/mods/Aftershock/maps/furniture_and_terrain/furniture_habitat.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,86 @@
]
}
},
{
"type": "furniture",
"id": "f_gene_editor_inactive",
"name": "Deactivated Mercurial Resequencer",
"description": "A large bio-sarcophagus and accompanying control machinery. Used in gene editing and for general medical purposes, can impart or remove traits using a variety of gene templates. This one stands lifelessly, its screens black and the hum of machinery replaced by an eerie silence.",
"symbol": "O",
"color": "light_blue",
"move_cost_mod": 15,
"coverage": 80,
"comfort": 2,
"required_str": -1,
"looks_like": "t_vat",
"flags": [ "TRANSPARENT", "PLACE_ITEM", "MOUNTABLE", "CAN_SIT" ],
"deconstruct": {
"items": [
{ "item": "afs_energy_storage_2", "count": [ 2, 4 ] },
{ "item": "afs_heat_2_salvage", "count": [ 1, 2 ] },
{ "item": "steel_chunk", "count": [ 1, 2 ] },
{ "item": "reinforced_glass_pane", "count": [ 1, 2 ] },
{ "item": "plastic_sheet", "count": [ 10, 15 ] },
{ "item": "cotton_patchwork", "count": [ 20, 30 ] },
{ "item": "afs_material_1", "count": [ 10, 20 ] },
{ "item": "afs_magnet_2", "count": [ 1, 3 ] },
{ "item": "afs_circuitry_3", "count": [ 0, 1 ] }
]
},
"bash": {
"str_min": 18,
"str_max": 40,
"sound": "clang!",
"sound_fail": "whump.",
"items": [
{ "item": "afs_energy_storage_2", "count": [ 2, 4 ] },
{ "item": "afs_heat_2_salvage", "count": [ 0, 2 ] },
{ "item": "steel_chunk", "count": [ 3, 6 ] },
{ "item": "glass_shard", "count": [ 3, 6 ] },
{ "item": "plastic_chunk", "count": [ 20, 30 ] },
{ "item": "cotton_patchwork", "count": [ 20, 30 ] },
{ "item": "afs_material_1", "count": [ 10, 20 ] },
{ "item": "afs_magnet_2", "count": [ 1, 3 ] },
{ "item": "afs_circuitry_3", "count": [ 0, 1 ] }
]
}
},
{
"type": "furniture",
"id": "f_gene_editor_gutted",
"name": "Ravaged Mercurial Resequencer",
"description": "A large bio-sarcophagus and accompanying control machinery. Panels dangle loosely from their hinges revealing a rat's nest of wires and cabling ripped from the machine. Useless metal and electronics scraps are strewn about haphazardly on the floor. It's clear anything of value has long been taken from this machine.",
"symbol": "O",
"color": "light_blue",
"move_cost_mod": 15,
"coverage": 80,
"comfort": 2,
"required_str": -1,
"looks_like": "t_vat",
"flags": [ "TRANSPARENT", "PLACE_ITEM", "MOUNTABLE", "CAN_SIT" ],
"deconstruct": {
"items": [
{ "item": "steel_chunk", "count": [ 1, 2 ] },
{ "item": "reinforced_glass_pane", "count": [ 1, 2 ] },
{ "item": "plastic_sheet", "count": [ 10, 15 ] },
{ "item": "cotton_patchwork", "count": [ 20, 30 ] },
{ "item": "afs_material_1", "count": [ 5, 8 ] }
]
},
"bash": {
"str_min": 18,
"str_max": 40,
"sound": "clang!",
"sound_fail": "whump.",
"items": [
{ "item": "steel_chunk", "count": [ 3, 6 ] },
{ "item": "glass_shard", "count": [ 3, 6 ] },
{ "item": "plastic_chunk", "count": [ 20, 30 ] },
{ "item": "cotton_patchwork", "count": [ 20, 30 ] },
{ "item": "afs_material_1", "count": [ 5, 8 ] }
]
}
},
{
"type": "furniture",
"id": "f_habitat_kitchenette",
Expand Down Expand Up @@ -590,5 +670,26 @@
{ "item": "rock", "count": [ 1, 2 ] }
]
}
},
{
"type": "furniture",
"id": "f_genetech_mannequin",
"name": "Genetech display mannequin",
"description": "A life-size painted plastic figure of a person displaying prominent genetic alterations. Commonly used as part of Mercurial Ad campaigns intended to sell the public on Genetech treatments.",
"symbol": "@",
"color": "white",
"looks_like": "f_mannequin",
"move_cost_mod": 2,
"coverage": 40,
"required_str": 5,
"flags": [ "PLACE_ITEM", "TRANSPARENT" ],
"deconstruct": { "items": [ { "item": "plastic_chunk", "count": 15 } ] },
"bash": {
"str_min": 6,
"str_max": 40,
"sound": "smash!",
"sound_fail": "whump.",
"items": [ { "item": "plastic_chunk", "count": [ 9, 12 ] } ]
}
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,28 @@
"success_msg": "You opened the door!",
"redundant_msg": "The door is already open."
}
},
{
"type": "terrain",
"id": "t_afs_mercurial_card_reader",
"name": "Old Mercurial Card Reader",
"description": "A smartcard based lock system once fitted to corporate Mercurial prefab facilities. While an original key would be impossible to find, the machine is ancient and obsolete, and it can be hacked or masterkeys can be obtained to bypass it.",
"symbol": "6",
"color": "green",
"copy-from": "t_card_science_maintenance_green",
"looks_like": "t_card_science_maintenance_green",
"examine_action": {
"type": "cardreader",
"flags": [ "OLD_MERCURIAL_CARD" ],
"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."
}
}
]
Loading

0 comments on commit 9925761

Please sign in to comment.