Super position survival pod for Kassc

This commit is contained in:
Darlantan
2022-09-07 22:31:50 -04:00
parent 7580697dfd
commit 5e8b934cbf
3 changed files with 296 additions and 0 deletions
@@ -0,0 +1,125 @@
// Unique areas were requested for each superpose map for future use. The plain superpose area is for future varedits to all superpose submaps.
/area/survivalpod/superpose
/area/survivalpod/superpose/CrashedInfestedShip
/area/survivalpod/superpose/CrashedQurantineShip
/area/survivalpod/superpose/CultShip
/area/survivalpod/superpose/DemonPool
/area/survivalpod/superpose/Dinner
/area/survivalpod/superpose/ExplorerHome
/area/survivalpod/superpose/Farm
/area/survivalpod/superpose/FieldLab
/area/survivalpod/superpose/HellCave
/area/survivalpod/superpose/HydroCave
/area/survivalpod/superpose/LargeAlienShip
/area/survivalpod/superpose/LoneHome
/area/survivalpod/superpose/MechFabShip
/area/survivalpod/superpose/MechStorageFab
/area/survivalpod/superpose/MercShip
/area/survivalpod/superpose/MethLab
/area/survivalpod/superpose/OldHotel
/area/survivalpod/superpose/ScienceShip
/area/survivalpod/superpose/SmallCombatShip
/area/survivalpod/superpose/SurvivalBarracks
/area/survivalpod/superpose/SurvivalCargo
/area/survivalpod/superpose/SurvivalDIY_11x11
/area/survivalpod/superpose/SurvivalDIY_7x7
/area/survivalpod/superpose/SurvivalDIY_9x9
/area/survivalpod/superpose/SurvivalDinner
/area/survivalpod/superpose/SurvivalEngineering
/area/survivalpod/superpose/SurvivalHome
/area/survivalpod/superpose/SurvivalHydro
/area/survivalpod/superpose/SurvivalJanitor
/area/survivalpod/superpose/SurvivalLeisure
/area/survivalpod/superpose/SurvivalLuxuryBar
/area/survivalpod/superpose/SurvivalLuxuryHome
/area/survivalpod/superpose/SurvivalMedical
/area/survivalpod/superpose/SurvivalPool
/area/survivalpod/superpose/SurvivalQuarters
/area/survivalpod/superpose/SurvivalScience
/area/survivalpod/superpose/SurvivalSecurity
/area/survivalpod/superpose/TinyCombatShip
/area/survivalpod/superpose/TradingShip
/area/survivalpod/superpose/WoodenCamp
/obj/item/device/survivalcapsule/superpose
name = "superposed surfluid shelter capsule"
desc = "A proprietary hyperstructure of many three-dimensional spaces superposed around a supermatter nano crystal; use a pen to reach the reset button. There's a license for use printed on the bottom."
description_info = "The capsule contains pockets of compressed space in a super position stabilized by a miniscule supermatter crystal. \
NanoTrasen stresses the safety of this model over previous prototypes but assumes no liability for sub-kiloton explosions."
template_id = null
var/list/template_ids = list()
var/pod_initialized = FALSE
// Override since the parent proc has a sanity check to delete the capsule if no template is found, which doesn't exactly work with this item considering examining calls this proc.
/obj/item/device/survivalcapsule/superpose/get_template()
if(template)
return
template = SSmapping.shelter_templates[template_id]
if(!template)
template = null
/obj/item/device/survivalcapsule/superpose/attack_self()
if(!pod_initialized) // Populate list after round start as map templates might not exist when this item is created.
for(var/datum/map_template/shelter/superpose/shelter_type as anything in subtypesof(/datum/map_template/shelter))
if(!(initial(shelter_type.mappath)) || !(initial(shelter_type.superpose))) // Limits map templates to those marked for the superpose capsule.
continue
template_ids += initial(shelter_type.shelter_id)
pod_initialized = TRUE
if(!template_id)
var/answer = tgui_input_list(usr, "Which template would you like to load?","Available Templates", template_ids)
if(!answer)
return
else
src.template_id = answer
return // Return here or the pod will activate as soon as a selection is made.
// Now we call super to run the rest of the parent proc since the choice has been handled.
..()
// Allows resetting the capsule if the wrong template is chosen.
/obj/item/device/survivalcapsule/superpose/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/weapon/pen) && !used)
template_id = null
template = null // Important to reset both, otherwise the template cannot be reset once the pod has been deployed.
to_chat(user, "<span class='notice'>You reset the pod's selection.</span>")
..()
@@ -0,0 +1,169 @@
/datum/map_template/shelter
var/superpose = FALSE
// Subtype to mark maps for use with the superpose capsule. This is mostly to prevent automatic additions from upstream changes.
/datum/map_template/shelter/superpose
superpose = TRUE
name = "ERROR: string 'name' cannot be null!"
description = "ERROR: string 'description' cannot be null!"
mappath = null
/datum/map_template/shelter/superpose/CrashedInfestedShip
shelter_id = "CrashedInfestedShip"
mappath = "modular_chomp/maps/submaps/shelters/CrashedInfestedShip-60x29.dmm"
/datum/map_template/shelter/superpose/CrashedQurantineShip
shelter_id = "CrashedQurantineShip"
mappath = "modular_chomp/maps/submaps/shelters/CrashedQurantineShip-25x25.dmm"
/datum/map_template/shelter/superpose/CultShip
shelter_id = "CultShip"
mappath = "modular_chomp/maps/submaps/shelters/CultShip-28x17.dmm"
/datum/map_template/shelter/superpose/DemonPool
shelter_id = "DemonPool"
mappath = "modular_chomp/maps/submaps/shelters/DemonPool-21x21.dmm"
/datum/map_template/shelter/superpose/Dinner
shelter_id = "Dinner"
mappath = "modular_chomp/maps/submaps/shelters/Dinner-25x25.dmm"
/datum/map_template/shelter/superpose/ExplorerHome
shelter_id = "ExplorerHome"
mappath = "modular_chomp/maps/submaps/shelters/ExplorerHome-17x20.dmm"
/datum/map_template/shelter/superpose/Farm
shelter_id = "Farm"
mappath = "modular_chomp/maps/submaps/shelters/Farm-32x32.dmm"
/datum/map_template/shelter/superpose/FieldLab
shelter_id = "FieldLab"
mappath = "modular_chomp/maps/submaps/shelters/FieldLab-20x20.dmm"
/datum/map_template/shelter/superpose/HellCave
shelter_id = "HellCave"
mappath = "modular_chomp/maps/submaps/shelters/HellCave-40x25.dmm"
/datum/map_template/shelter/superpose/HydroCave
shelter_id = "HydroCave"
mappath = "modular_chomp/maps/submaps/shelters/HydroCave-40x40.dmm"
/datum/map_template/shelter/superpose/LargeAlienShip
shelter_id = "LargeAlienShip"
mappath = "modular_chomp/maps/submaps/shelters/LargeAlienShip-60x29.dmm"
/datum/map_template/shelter/superpose/LoneHome
shelter_id = "LoneHome"
mappath = "modular_chomp/maps/submaps/shelters/LoneHome-20x25.dmm"
/datum/map_template/shelter/superpose/MechFabShip
shelter_id = "MechFabShip"
mappath = "modular_chomp/maps/submaps/shelters/MechFabShip-27x24.dmm"
/datum/map_template/shelter/superpose/MechStorageFab
shelter_id = "MechStorageFab"
mappath = "modular_chomp/maps/submaps/shelters/MechStorageFab-32x24.dmm"
/datum/map_template/shelter/superpose/MercShip
shelter_id = "MercShip"
mappath = "modular_chomp/maps/submaps/shelters/MercShip-60x29.dmm"
/datum/map_template/shelter/superpose/MethLab
shelter_id = "MethLab"
mappath = "modular_chomp/maps/submaps/shelters/MethLab-20x20.dmm"
/datum/map_template/shelter/superpose/OldHotel
shelter_id = "OldHotel"
mappath = "modular_chomp/maps/submaps/shelters/OldHotel-25x25.dmm"
/datum/map_template/shelter/superpose/ScienceShip
shelter_id = "ScienceShip"
mappath = "modular_chomp/maps/submaps/shelters/ScienceShip-25x33.dmm"
/datum/map_template/shelter/superpose/SmallCombatShip
shelter_id = "SmallCombatShip"
mappath = "modular_chomp/maps/submaps/shelters/SmallCombatShip-9x11.dmm"
/datum/map_template/shelter/superpose/SurvivalBarracks
shelter_id = "SurvivalBarracks"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalBarracks-11x11.dmm"
/datum/map_template/shelter/superpose/SurvivalCargo
shelter_id = "SurvivalCargo"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalCargo-11x11.dmm"
/datum/map_template/shelter/superpose/SurvivalDIY_11x11
shelter_id = "SurvivalDIY_11x11"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDIY-11x11.dmm"
/datum/map_template/shelter/superpose/SurvivalDIY_7x7
shelter_id = "SurvivalDIY_7x7"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDIY-7x7.dmm"
/datum/map_template/shelter/superpose/SurvivalDIY_9x9
shelter_id = "SurvivalDIY_9x9"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDIY-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalDinner
shelter_id = "SurvivalDinner"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalDinner-11x11.dmm"
/datum/map_template/shelter/superpose/SurvivalEngineering
shelter_id = "SurvivalEngineering"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalEngineering-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalHome
shelter_id = "SurvivalHome"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalHome-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalHydro
shelter_id = "SurvivalHydro"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalHydro-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalJanitor
shelter_id = "SurvivalJanitor"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalJanitor-7x7.dmm"
/datum/map_template/shelter/superpose/SurvivalLeisure
shelter_id = "SurvivalLeisure"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalLeisure-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalLuxuryBar
shelter_id = "SurvivalLuxuryBar"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalLuxuryBar-11x11.dmm"
/datum/map_template/shelter/superpose/SurvivalLuxuryHome
shelter_id = "SurvivalLuxuryHome"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalLuxuryHome-11x11.dmm"
/datum/map_template/shelter/superpose/SurvivalMedical
shelter_id = "SurvivalMedical"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalMedical-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalPool
shelter_id = "SurvivalPool"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalPool-11x11.dmm"
/datum/map_template/shelter/superpose/SurvivalQuarters
shelter_id = "SurvivalQuarters"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalQuarters-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalScience
shelter_id = "SurvivalScience"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalScience-9x9.dmm"
/datum/map_template/shelter/superpose/SurvivalSecurity
shelter_id = "SurvivalSecurity"
mappath = "modular_chomp/maps/submaps/shelters/SurvivalSecurity-9x9.dmm"
/datum/map_template/shelter/superpose/TinyCombatShip
shelter_id = "TinyCombatShip"
mappath = "modular_chomp/maps/submaps/shelters/TinyCombatShip-9x7.dmm"
/datum/map_template/shelter/superpose/TradingShip
shelter_id = "TradingShip"
mappath = "modular_chomp/maps/submaps/shelters/TradingShip-40x22.dmm"
/datum/map_template/shelter/superpose/WoodenCamp
shelter_id = "WoodenCamp"
mappath = "modular_chomp/maps/submaps/shelters/WoodenCamp-10x10.dmm"