mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-23 03:57:48 +01:00
Big fucking shelter capsule update (#18391)
* Adds rec room capsule and stupid dumb meme loss capsules
* Creates MANY new shelter capsules
* maybe this should be above the misc category
* Pretties up Christmas capsule
* makes more normal shelters more evenly likely
* Breaks up map slection into tables, adds blacksmith + meth lab
* adds a sentient prize handler to the rec room
* tweaks paintings in rec room capsule a lil more
* Fixes accidental stacked doors in dumb loss capsules
* Adds art gallery
* miscellaneous minor tweaks to shark pool/ rec room
* Adds garden shelter
* Makes "pool" shelter a bit more dangerous and vorny
* Adds mimic hell
* Minor tweaks
* adds AREA_BLOCK_INSTANT_BUILDING flag
* sleep cleanup of capsule code
* Adds off-color double-bedroom shelter
* Adds living room redspace shelter
* Flags a fuckton of areas with AREA_BLOCK_INSTANT_BUILDING
* NO LINTER YOU DIDN'T SEE THAT SHUT UP 😭
* Adds redspace capsule to recycler vendor shop
* Adds bluespace capsules to Research
* makes shelter capsules actually print their flavor text whoopsie
* On second thought how about durasteel instead of plasteel to print these
* capsule QoL + potential exploit removal
* Adds candlelit dinner redspace capsule
* Replaces a couple airlocks in two pre-existing shelters with vertical ones cause it looks nicer that way
* And maybe a privacy bolt button here in the bar bathroom
* Adds cafe capsule - dear god stop me PLEASE
* Decorates cafe pod a bit more
* some recroom tweaks to make it look even NICER and removes automated prize vendor to make room for fake casino chips SOON
* I should have done this ages ago to make things visually clearer for me when mapping...
* Adds ADMIN-SPAWN-ONLY tesla capsule
* Fixes mis-print of capsule template info
* oops messed up some things with the tesla capsule apparently :(
* Fixes redspace capsule flavor text
* adds capsules to explo vendor (will this ever even be used??)
* Makes dangerous capsules more dangerous
* Adds privacy features to rec room capsule
* Replaces chips in rec room capsule with fake ones
This commit is contained in:
@@ -83,7 +83,6 @@
|
||||
EQUIPMENT("Injector (L) - Trauma", /obj/item/reagent_containers/hypospray/autoinjector/biginjector/brute, 500),
|
||||
EQUIPMENT("Nanopaste Tube", /obj/item/stack/nanopaste, 1000),
|
||||
EQUIPMENT("Point Transfer Card", /obj/item/card/mining_point_card, 500),
|
||||
EQUIPMENT("Shelter Capsule", /obj/item/survivalcapsule, 500),
|
||||
EQUIPMENT("Burn Medipen", /obj/item/reagent_containers/hypospray/autoinjector/burn, 250),
|
||||
EQUIPMENT("Detox Medipen", /obj/item/reagent_containers/hypospray/autoinjector/detox, 250),
|
||||
EQUIPMENT("Oxy Medipen", /obj/item/reagent_containers/hypospray/autoinjector/oxy, 250),
|
||||
@@ -132,15 +131,22 @@
|
||||
EQUIPMENT("Hardsuit - Smoke Bomb Deployer", /obj/item/rig_module/grenade_launcher/smoke, 2000),
|
||||
EQUIPMENT("Hardsuit - Proto-Kinetic Gauntlets", /obj/item/rig_module/gauntlets, 2000),
|
||||
)
|
||||
prize_list["Shelter Capsules"] = list(
|
||||
EQUIPMENT("Shelter Capsule - Shelter (5x5)", /obj/item/survivalcapsule, 500),
|
||||
EQUIPMENT("Shelter Capsule - Luxury Shelter (7x7)", /obj/item/survivalcapsule/luxury, 3100),
|
||||
EQUIPMENT("Shelter Capsule - Redspace (7x7)", /obj/item/survivalcapsule/randomized, 5000),
|
||||
EQUIPMENT("Shelter Capsule - Sauna (7x7)", /obj/item/survivalcapsule/sauna, 5000),
|
||||
EQUIPMENT("Shelter Capsule - Rec Room + Cards Table (9x9)", /obj/item/survivalcapsule/recroom, 7500),
|
||||
EQUIPMENT("Shelter Capsule - Bar (11x11)", /obj/item/survivalcapsule/luxurybar, 10000),
|
||||
EQUIPMENT("Shelter Capsule - Deluxe Cabin (11x11)", /obj/item/survivalcapsule/luxurycabin, 10000),
|
||||
EQUIPMENT("Shelter Capsule - Cafe (11x11)", /obj/item/survivalcapsule/cafe, 10000),
|
||||
)
|
||||
prize_list["Miscellaneous"] = list(
|
||||
EQUIPMENT(REAGENT_ABSINTHE, /obj/item/reagent_containers/food/drinks/bottle/absinthe, 125),
|
||||
EQUIPMENT("Cigar", /obj/item/clothing/mask/smokable/cigarette/cigar/havana, 150),
|
||||
EQUIPMENT("Digital Tablet - Standard", /obj/item/modular_computer/tablet/preset/custom_loadout/standard, 500),
|
||||
EQUIPMENT("Digital Tablet - Advanced", /obj/item/modular_computer/tablet/preset/custom_loadout/advanced, 1000),
|
||||
EQUIPMENT("Laser Pointer", /obj/item/laser_pointer, 900),
|
||||
EQUIPMENT("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3100),
|
||||
EQUIPMENT("Bar Shelter Capsule", /obj/item/survivalcapsule/luxurybar, 10000),
|
||||
EQUIPMENT("Deluxe Cabin Shelter Capsule",/obj/item/survivalcapsule/luxurycabin, 10000),
|
||||
EQUIPMENT("Plush Toy", /obj/random/plushie, 300),
|
||||
EQUIPMENT("Soap", /obj/item/soap/nanotrasen, 200),
|
||||
EQUIPMENT("Thalers - 100", /obj/item/spacecash/c100, 1000),
|
||||
|
||||
@@ -71,6 +71,16 @@
|
||||
EQUIPMENT("Fine Excavation Kit - Measuring Tape", /obj/item/measuring_tape, 10),
|
||||
|
||||
)
|
||||
prize_list["Shelter Capsules"] = list(
|
||||
EQUIPMENT("Shelter Capsule - Shelter (5x5)", /obj/item/survivalcapsule, 50),
|
||||
EQUIPMENT("Shelter Capsule - Luxury Shelter (7x7)", /obj/item/survivalcapsule/luxury, 310),
|
||||
EQUIPMENT("Shelter Capsule - Redspace (7x7)", /obj/item/survivalcapsule/randomized, 500),
|
||||
EQUIPMENT("Shelter Capsule - Sauna (7x7)", /obj/item/survivalcapsule/sauna, 500),
|
||||
EQUIPMENT("Shelter Capsule - Rec Room + Cards Table (9x9)", /obj/item/survivalcapsule/recroom, 750),
|
||||
EQUIPMENT("Shelter Capsule - Bar (11x11)", /obj/item/survivalcapsule/luxurybar, 1000),
|
||||
EQUIPMENT("Shelter Capsule - Deluxe Cabin (11x11)", /obj/item/survivalcapsule/luxurycabin, 1000),
|
||||
EQUIPMENT("Shelter Capsule - Cafe (11x11)", /obj/item/survivalcapsule/cafe, 1000),
|
||||
)
|
||||
prize_list["Miscellaneous"] = list(
|
||||
EQUIPMENT(REAGENT_ABSINTHE, /obj/item/reagent_containers/food/drinks/bottle/absinthe, 10),
|
||||
EQUIPMENT(REAGENT_WHISKEY, /obj/item/reagent_containers/food/drinks/bottle/whiskey, 10),
|
||||
@@ -80,9 +90,6 @@
|
||||
EQUIPMENT("Industrial Equipment - Phoron Bore", /obj/item/gun/magnetic/matfed/phoronbore/loaded, 300),
|
||||
EQUIPMENT("Industrial Equipment - Inducer", /obj/item/inducer, 750),
|
||||
EQUIPMENT("Laser Pointer", /obj/item/laser_pointer, 90),
|
||||
EQUIPMENT("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 310),
|
||||
EQUIPMENT("Bar Shelter Capsule", /obj/item/survivalcapsule/luxurybar, 1000),
|
||||
EQUIPMENT("Deluxe Cabin Shelter Capsule", /obj/item/survivalcapsule/luxurycabin, 1000),
|
||||
EQUIPMENT("Plush Toy", /obj/random/plushie, 30),
|
||||
EQUIPMENT("Soap", /obj/item/soap/nanotrasen, 20),
|
||||
EQUIPMENT("Thalers - 100", /obj/item/spacecash/c100, 100),
|
||||
|
||||
@@ -16,6 +16,11 @@ GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
name = "\improper Emergency Shelter Bathroom"
|
||||
icon_state = "away2"
|
||||
|
||||
/area/survivalpod/redspace
|
||||
name = "\improper Redspace Capsule Shelter"
|
||||
icon_state = "darkred"
|
||||
|
||||
|
||||
//Custom survival pod areas
|
||||
|
||||
/area/survivalpod/holly
|
||||
@@ -36,83 +41,116 @@ GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
var/used = FALSE
|
||||
var/is_ship = FALSE
|
||||
var/unique_id = null
|
||||
var/admin_log_verb = "activated a bluespace capsule" // Just to make the blue/redspace ones distinct for admin logs
|
||||
|
||||
/obj/item/survivalcapsule/proc/get_template()
|
||||
if(template)
|
||||
return
|
||||
template = SSmapping.shelter_templates[template_id]
|
||||
template = SSmapping.shelter_templates[get_template_id()]
|
||||
if(!template)
|
||||
throw EXCEPTION("Shelter template ([template_id]) not found!")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/survivalcapsule/proc/get_template_id()
|
||||
return template_id
|
||||
|
||||
/obj/item/survivalcapsule/proc/get_template_info()
|
||||
var/ret = ""
|
||||
if(!template)
|
||||
get_template()
|
||||
if(template)
|
||||
ret += "This capsule has the [template.name] stored:\n"
|
||||
ret += template.description
|
||||
else
|
||||
ret += "This capsule has an unknown template stored."
|
||||
return ret
|
||||
|
||||
/obj/item/survivalcapsule/proc/can_deploy(var/turf/deploy_location, var/turf/above_location)
|
||||
var/status = template.check_deploy(deploy_location, is_ship)
|
||||
switch(status)
|
||||
//Not allowed due to /area technical reasons
|
||||
if(SHELTER_DEPLOY_BAD_AREA)
|
||||
src.loc.visible_message(span_warning("\The [src]'s safety mechanisms prevent it from activating in this area. You'll need to find an area that would be less disruptive to activate it!"))
|
||||
|
||||
//Anchored objects or no space
|
||||
if(SHELTER_DEPLOY_BAD_TURFS, SHELTER_DEPLOY_ANCHORED_OBJECTS)
|
||||
var/width = template.width
|
||||
var/height = template.height
|
||||
src.loc.visible_message(span_warning("\The [src] can be activated here, but doesn't have room to deploy! You need to clear a [width]x[height] area!"))
|
||||
|
||||
if(SHELTER_DEPLOY_SHIP_SPACE)
|
||||
src.loc.visible_message(span_warning("\The [src] can only be deployed in space."))
|
||||
|
||||
if(status != SHELTER_DEPLOY_ALLOWED)
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
// First step: Warn and cancel deployment if necessary conditions aren't met. Otherwise generate smoke and wait a moment.
|
||||
/obj/item/survivalcapsule/proc/deploy_step_one(var/mob/user)
|
||||
var/turf/deploy_location = get_turf(src)
|
||||
// We might have moved since the last check, so we check again!
|
||||
if(!can_deploy(deploy_location, GetAbove(deploy_location)))
|
||||
used = FALSE
|
||||
return
|
||||
|
||||
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
|
||||
smoke.attach(deploy_location)
|
||||
smoke.set_up(10, 0, deploy_location)
|
||||
smoke.start()
|
||||
|
||||
addtimer(CALLBACK(src, PROC_REF(deploy_step_two), user), 4 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
// Second step: Load shelter template at location
|
||||
/obj/item/survivalcapsule/proc/deploy_step_two(var/mob/user)
|
||||
var/turf/deploy_location = get_turf(src)
|
||||
var/turf/above_location = GetAbove(deploy_location)
|
||||
// We might have moved since the last check, so we check again!
|
||||
if(!can_deploy(deploy_location, above_location))
|
||||
used = FALSE
|
||||
return
|
||||
|
||||
if(unique_id)
|
||||
GLOB.unique_deployable += unique_id
|
||||
|
||||
log_and_message_admins("[admin_log_verb] at [get_area(deploy_location)]!", user)
|
||||
|
||||
playsound(src, 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
// Load shelter template
|
||||
if(above_location)
|
||||
template.add_roof(above_location)
|
||||
template.annihilate_plants(deploy_location)
|
||||
template.load(deploy_location, centered = TRUE)
|
||||
template.update_lighting(deploy_location)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/survivalcapsule/Destroy()
|
||||
template = null // without this, capsules would be one use. per round.
|
||||
. = ..()
|
||||
|
||||
/obj/item/survivalcapsule/examine(mob/user)
|
||||
. = ..()
|
||||
if(!template)
|
||||
get_template()
|
||||
if(template)
|
||||
. += "This capsule has the [template.name] stored:"
|
||||
. += template.description
|
||||
else
|
||||
. += "This capsule has an unknown template stored."
|
||||
var/temp_info = get_template_info()
|
||||
if(length(temp_info))
|
||||
. += temp_info
|
||||
|
||||
/obj/item/survivalcapsule/attack_self(mob/user)
|
||||
//Can't grab when capsule is New() because templates aren't loaded then
|
||||
get_template()
|
||||
if(!used)
|
||||
if(unique_id && (unique_id in GLOB.unique_deployable))
|
||||
loc.visible_message(span_warning("There can only be one [src] deployed at a time."))
|
||||
return
|
||||
var/turf/deploy_location = get_turf(src)
|
||||
// Warn the user in advance if the capsule can't work from where they're standing.
|
||||
if(!can_deploy(get_turf(src), GetAbove(deploy_location)))
|
||||
return
|
||||
loc.visible_message(span_warning("\The [src] begins to shake. Stand back!"))
|
||||
user.drop_from_inventory(src)
|
||||
used = TRUE
|
||||
|
||||
sleep(5 SECONDS)
|
||||
|
||||
var/turf/deploy_location = get_turf(src)
|
||||
var/status = template.check_deploy(deploy_location, is_ship)
|
||||
var/turf/above_location = GetAbove(deploy_location)
|
||||
|
||||
switch(status)
|
||||
//Not allowed due to /area technical reasons
|
||||
if(SHELTER_DEPLOY_BAD_AREA)
|
||||
src.loc.visible_message(span_warning("\The [src] will not function in this area."))
|
||||
|
||||
//Anchored objects or no space
|
||||
if(SHELTER_DEPLOY_BAD_TURFS, SHELTER_DEPLOY_ANCHORED_OBJECTS)
|
||||
var/width = template.width
|
||||
var/height = template.height
|
||||
src.loc.visible_message(span_warning("\The [src] doesn't have room to deploy! You need to clear a [width]x[height] area!"))
|
||||
|
||||
if(SHELTER_DEPLOY_SHIP_SPACE)
|
||||
src.loc.visible_message(span_warning("\The [src] can only be deployed in space."))
|
||||
|
||||
if(status != SHELTER_DEPLOY_ALLOWED)
|
||||
used = FALSE
|
||||
return
|
||||
|
||||
if(unique_id)
|
||||
if(unique_id in GLOB.unique_deployable)
|
||||
loc.visible_message(span_warning("There can only be one [src] deployed at a time."))
|
||||
used = FALSE
|
||||
return
|
||||
GLOB.unique_deployable += unique_id
|
||||
|
||||
var/turf/T = deploy_location
|
||||
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
|
||||
smoke.attach(T)
|
||||
smoke.set_up(10, 0, T)
|
||||
smoke.start()
|
||||
sleep(4 SECONDS)
|
||||
|
||||
playsound(src, 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
log_and_message_admins("activated a bluespace capsule at [get_area(T)]!", user)
|
||||
if(above_location)
|
||||
template.add_roof(above_location)
|
||||
template.annihilate_plants(deploy_location)
|
||||
template.load(deploy_location, centered = TRUE)
|
||||
template.update_lighting(deploy_location)
|
||||
qdel(src)
|
||||
addtimer(CALLBACK(src, PROC_REF(deploy_step_one), user), 5 SECONDS, TIMER_DELETE_ME)
|
||||
|
||||
/obj/item/survivalcapsule/luxury
|
||||
name = "luxury surfluid shelter capsule"
|
||||
@@ -129,6 +167,11 @@ GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
desc = "A luxury cabin and kitchen in a capsule. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_cab_deluxe"
|
||||
|
||||
/obj/item/survivalcapsule/luxurycafe
|
||||
name = "luxury surfluid cafe capsule"
|
||||
desc = "A luxury cafe in a capsule. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_cafe"
|
||||
|
||||
/obj/item/survivalcapsule/military
|
||||
name = "military surfluid shelter capsule"
|
||||
desc = "A prefabricated firebase in a capsule. Contains basic weapons, building materials, and combat suits. There's a license for use printed on the bottom."
|
||||
@@ -146,6 +189,21 @@ GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
desc = "A cozy cabin; crammed into a survival capsule."
|
||||
template_id = "shelter_cab"
|
||||
|
||||
/obj/item/survivalcapsule/recroom
|
||||
name = "pop-out rec room shelter capsule"
|
||||
desc = "A recreational room stuffed into a survival capsule."
|
||||
template_id = "shelter_recroom"
|
||||
|
||||
/obj/item/survivalcapsule/sauna
|
||||
name = "pop-out sauna shelter capsule"
|
||||
desc = "A cozy sauna room stuffed into a survival capsule."
|
||||
template_id = "shelter_sauna"
|
||||
|
||||
/obj/item/survivalcapsule/cafe
|
||||
name = "pop-out cafe shelter capsule"
|
||||
desc = "A cozy cafe stuffed into a survival capsule."
|
||||
template_id = "shelter_cafe"
|
||||
|
||||
//Custom Shelter Capsules
|
||||
/obj/item/survivalcapsule/tabiranth
|
||||
name = "silver-trimmed surfluid shelter capsule"
|
||||
@@ -159,6 +217,86 @@ GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
template_id = "shelter_chi"
|
||||
unique_id = "shelter_h"
|
||||
|
||||
//Stupid
|
||||
/obj/item/survivalcapsule/loss_1
|
||||
name = "clinical surfluid shelter capsule"
|
||||
desc = "A strange-looking shelter capsule. It looks rather crudely thrown together..."
|
||||
template_id = "shelter_loss1"
|
||||
|
||||
/obj/item/survivalcapsule/loss_2
|
||||
name = "clinical surfluid shelter capsule"
|
||||
desc = "A strange-looking shelter capsule. It looks rather crudely thrown together..."
|
||||
template_id = "shelter_loss2"
|
||||
|
||||
/obj/item/survivalcapsule/loss_3
|
||||
name = "clinical surfluid shelter capsule"
|
||||
desc = "A strange-looking shelter capsule. It looks rather crudely thrown together..."
|
||||
template_id = "shelter_loss3"
|
||||
|
||||
/obj/item/survivalcapsule/loss_4
|
||||
name = "clinical surfluid shelter capsule"
|
||||
desc = "A strange-looking shelter capsule. It looks rather crudely thrown together..."
|
||||
template_id = "shelter_loss4"
|
||||
|
||||
//Redspace Capsule
|
||||
//Spawns a randomized shelter from a curated selection of possibilities
|
||||
/obj/item/survivalcapsule/randomized
|
||||
name = "redspace shelter capsule"
|
||||
desc = "A strange-looking shelter capsule. Should the surfluid inside it be bubbling like that? There's a license for use printed on the bottom, as well as a warning about the unpredictable nature of redspace."
|
||||
template_id = "placeholder_id_do_not_change"
|
||||
admin_log_verb = "activated a redspace capsule"
|
||||
var/possible_shelter_ids = list(
|
||||
// "Normal" map table - Most common table.
|
||||
// Meant to be actually inhabitable spots with neat things in them.
|
||||
list(
|
||||
"shelter_pizza_kitchen",
|
||||
"shelter_nerd_dungeon_good",
|
||||
"shelter_gallery",
|
||||
"shelter_garden",
|
||||
"shelter_off_color",
|
||||
"shelter_living_room",
|
||||
"shelter_candlelit_dinner",
|
||||
) = 65, // 65% chance
|
||||
|
||||
// "Weird" map table - Less common.
|
||||
// Here, we get a little silly with it. Not dangerous, but weird, kinda like redgates.
|
||||
list(
|
||||
"shelter_nerd_dungeon_evil",
|
||||
"shelter_tiny_space",
|
||||
"shelter_christmas",
|
||||
"shelter_blacksmith",
|
||||
) = 30, // 30% chance
|
||||
|
||||
// "Dangerous" map table - Least common by far, and for good reason.
|
||||
// Places that have dangerous/illegal stuff in them.
|
||||
list(
|
||||
"shelter_dangerous_pool",
|
||||
"shelter_methlab",
|
||||
"shelter_mimic_hell",
|
||||
) = 5, // 5% chance
|
||||
)
|
||||
|
||||
/obj/item/survivalcapsule/randomized/get_template_id()
|
||||
// Choose which table of maps we're gonna be choosing from, then pick a map in those
|
||||
return pick(pickweight(possible_shelter_ids))
|
||||
|
||||
/obj/item/survivalcapsule/randomized/get_template_info()
|
||||
var/ret = "It has a chaotic redspace bubble inside. The label reads:\n"
|
||||
ret += "This capsule utilizes experimental technology to replicate copies of redspace pockets within realspace. " + span_underline("The contents of this capsule are prone to change upon activation") + ", and are highly unlikely to remain the same as when previously used. Efforts have been made to ensure *likely* safety when using these capsules. However, due to the unpredictable nature of redspace, that safety cannot be fully guaranteed. " + span_underline("Use at your own risk!")
|
||||
return ret
|
||||
|
||||
// TERRIBLE AWFUL CAPSULE DO NOT MAKE THIS PLAYER ACCESSIBLE, I made this for a BIT -Ryumi
|
||||
/obj/item/survivalcapsule/tesla
|
||||
name = "tesla in a shelter capsule"
|
||||
desc = "This is a terrible, terrible idea."
|
||||
template_id = "shelter_tesla"
|
||||
admin_log_verb = "activated a TESLA capsule"
|
||||
|
||||
/obj/item/survivalcapsule/tesla/get_template_info()
|
||||
var/ret = ..()
|
||||
ret += ("\n" + span_boldwarning("Do not."))
|
||||
return ret
|
||||
|
||||
//Pod objects
|
||||
//Walls
|
||||
/turf/simulated/shuttle/wall/voidcraft/survival
|
||||
@@ -167,6 +305,7 @@ GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
|
||||
/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner
|
||||
hard_corner = 1
|
||||
icon_state = "void-hc"
|
||||
|
||||
//Doors
|
||||
/obj/machinery/door/airlock/voidcraft/survival_pod
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
var/affected = get_affected_turfs(deploy_location, centered=TRUE)
|
||||
for(var/turf/T in affected)
|
||||
var/area/A = get_area(T)
|
||||
if(is_type_in_typecache(A, banned_areas))
|
||||
if(is_type_in_typecache(A, banned_areas) || (A.flags & AREA_BLOCK_INSTANT_BUILDING))
|
||||
return SHELTER_DEPLOY_BAD_AREA
|
||||
|
||||
var/banned = is_type_in_typecache(T, blacklisted_turfs)
|
||||
@@ -53,7 +53,7 @@
|
||||
/datum/map_template/shelter/alpha
|
||||
name = "Shelter Alpha"
|
||||
shelter_id = "shelter_alpha"
|
||||
description = "A cosy self-contained pressurized shelter, with \
|
||||
description = "(5x5) A cosy self-contained pressurized shelter, with \
|
||||
built-in navigation, entertainment, medical facilities and a \
|
||||
sleeping area! Order now, and we'll throw in a TINY FAN, \
|
||||
absolutely free!"
|
||||
@@ -62,7 +62,7 @@
|
||||
/datum/map_template/shelter/beta
|
||||
name = "Shelter Beta"
|
||||
shelter_id = "shelter_beta"
|
||||
description = "An extremely luxurious shelter, containing all \
|
||||
description = "(7x7) An extremely luxurious shelter, containing all \
|
||||
the amenities of home, including carpeted floors, hot and cold \
|
||||
running water, a gourmet three course meal, cooking facilities, \
|
||||
and a deluxe companion to keep you from getting lonely during \
|
||||
@@ -72,7 +72,7 @@
|
||||
/datum/map_template/shelter/gamma
|
||||
name = "Shelter Gamma"
|
||||
shelter_id = "shelter_gamma"
|
||||
description = "A luxury elite bar which holds an entire bar \
|
||||
description = "(11x11) A luxury elite bar which holds an entire bar \
|
||||
along with two vending machines, tables, and a restroom that \
|
||||
also has a sink. This isn't a survival capsule and so you can \
|
||||
expect that this won't save you if you're bleeding out to \
|
||||
@@ -82,7 +82,7 @@
|
||||
/datum/map_template/shelter/delta
|
||||
name = "Shelter Delta"
|
||||
shelter_id = "shelter_delta"
|
||||
description = "A small firebase that contains equipment and supplies \
|
||||
description = "(11x11) A small firebase that contains equipment and supplies \
|
||||
for roughly a squad of military troops. Large quantities of \
|
||||
supplies allow it to hold out for an extended period of time\
|
||||
and a built in medical facility allows field treatment to be \
|
||||
@@ -92,20 +92,20 @@
|
||||
/datum/map_template/shelter/epsilon
|
||||
name = "Shelter Epsilon"
|
||||
shelter_id = "shelter_epsilon"
|
||||
description = "An escape pod, with a mediocre amount of supplies \
|
||||
description = "(10x5) An escape pod, with a mediocre amount of supplies \
|
||||
for escaping a dying ship as soon as possible."
|
||||
mappath = "maps/offmap_vr/om_ships/shelter_5.dmm"
|
||||
|
||||
/datum/map_template/shelter/cabin
|
||||
name = "Shelter Cabin"
|
||||
shelter_id = "shelter_cab"
|
||||
description = "A small cabin; turned into a shelter capsule. Includes dorm amenities, and a nice dinner."
|
||||
description = "(7x7) A small cabin; turned into a shelter capsule. Includes dorm amenities, and a nice dinner."
|
||||
mappath = "maps/submaps/shelters/shelter_cab.dmm"
|
||||
|
||||
/datum/map_template/shelter/cabin_deluxe
|
||||
name = "Shelter Deluxe Cabin"
|
||||
shelter_id = "shelter_cab_deluxe"
|
||||
description = "A glamorously furnished cabin packed away in your pocket. \
|
||||
description = "(11x11) A glamorously furnished cabin packed away in your pocket. \
|
||||
Includes a private dormitory, bathroom, dining room, and a very \
|
||||
compactly designed kitchen. Designed for a comfortable extended \
|
||||
stay in isolated wilderness survival scenarios."
|
||||
@@ -129,3 +129,125 @@
|
||||
of recreational facilities and a more comfortable living quarters. The \
|
||||
definition of \"form over function,\" in capsule form!"
|
||||
mappath = "maps/submaps/shelters/shelter_h.dmm"
|
||||
|
||||
/datum/map_template/shelter/rec
|
||||
name = "Shelter Rec Room"
|
||||
shelter_id = "shelter_recroom"
|
||||
description = "(9x9) A recreational room in a pocket, offering a gaming table with poker chips, dice, and cards to host group gaming activities, as well as a small arcade for more individual experiences. While offering absolutely nothing that will help someone survive physically aside from a safely isolated atmosphere, the intellectual stimulation provided from the gaming facilities within have been chosen to assist and keep one's mind sharp."
|
||||
mappath = "maps/submaps/shelters/shelter_recroom.dmm"
|
||||
|
||||
/datum/map_template/shelter/sauna
|
||||
name = "Shelter Sauna"
|
||||
shelter_id = "shelter_sauna"
|
||||
description = "(7x7) A luxurious sauna in your pocket. Complete with privacy features, a changing and locker room, and of course a decently spacious sauna room with three benches to rest on."
|
||||
mappath = "maps/submaps/shelters/shelter_sauna.dmm"
|
||||
|
||||
/datum/map_template/shelter/cafe
|
||||
name = "Shelter Cafe"
|
||||
shelter_id = "shelter_cafe"
|
||||
description = "(11x11) A fully stocked and equipped cafe in your pocket. While this won't save you if you're dying, it will ensure that you and anyone who happens to be with you will never suffer from caffeine withdrawal!"
|
||||
mappath = "maps/submaps/shelters/shelter_cafe.dmm"
|
||||
|
||||
/datum/map_template/shelter/loss_1
|
||||
name = "Shelter L1"
|
||||
shelter_id = "shelter_loss1"
|
||||
description = "(5x5) North-west quadrant."
|
||||
mappath = "maps/submaps/shelters/shelter_loss_1.dmm"
|
||||
|
||||
/datum/map_template/shelter/loss_2
|
||||
name = "Shelter L2"
|
||||
shelter_id = "shelter_loss2"
|
||||
description = "(5x5) North-east quadrant."
|
||||
mappath = "maps/submaps/shelters/shelter_loss_2.dmm"
|
||||
|
||||
/datum/map_template/shelter/loss_3
|
||||
name = "Shelter L3"
|
||||
shelter_id = "shelter_loss3"
|
||||
description = "(5x5) South-west quadrant."
|
||||
mappath = "maps/submaps/shelters/shelter_loss_3.dmm"
|
||||
|
||||
/datum/map_template/shelter/loss_4
|
||||
name = "Shelter L4"
|
||||
shelter_id = "shelter_loss4"
|
||||
description = "(5x5) South-east quadrant."
|
||||
mappath = "maps/submaps/shelters/shelter_loss_4.dmm"
|
||||
|
||||
// EXTREMELY DANGEROUS ADMIN-ONLY SHELTERS I BEG YOU DO NOT SPAWN THESE EXCEPT FOR A DISASTROUS BIT
|
||||
|
||||
/datum/map_template/shelter/tesla
|
||||
name = "Shelter Tesla"
|
||||
description = "(11x11) A whole tesla engine setup, complete with a fully charged SMES cell ready to power the emitters. Using this is probably an exceptionally terrible idea."
|
||||
shelter_id = "shelter_tesla"
|
||||
mappath = "maps/submaps/shelters/shelter_tesla.dmm"
|
||||
|
||||
//Redspace capsule shelters - here be weird shit.
|
||||
|
||||
/datum/map_template/shelter/nerd_dungeon_evil
|
||||
name = "Shelter Nerd Dungeon Evil"
|
||||
shelter_id = "shelter_nerd_dungeon_evil"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_nerd_dungeon_evil.dmm"
|
||||
|
||||
/datum/map_template/shelter/nerd_dungeon_good
|
||||
name = "Shelter Nerd Dungeon Good"
|
||||
shelter_id = "shelter_nerd_dungeon_good"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_nerd_dungeon_good.dmm"
|
||||
|
||||
/datum/map_template/shelter/dangerous_pool
|
||||
name = "Shelter Dangerous Pool"
|
||||
shelter_id = "shelter_dangerous_pool"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_dangerous_pool.dmm"
|
||||
|
||||
/datum/map_template/shelter/pizza_kitchen
|
||||
name = "Shelter Pizza Kitchen"
|
||||
shelter_id = "shelter_pizza_kitchen"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_pizza.dmm"
|
||||
|
||||
/datum/map_template/shelter/tiny_space
|
||||
name = "Shelter Smole Space"
|
||||
shelter_id = "shelter_tiny_space"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_tiny_space.dmm"
|
||||
|
||||
/datum/map_template/shelter/christmas
|
||||
name = "Shelter Christmas"
|
||||
shelter_id = "shelter_christmas"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_christmas.dmm"
|
||||
|
||||
/datum/map_template/shelter/methlab
|
||||
name = "Shelter Meth Lab"
|
||||
shelter_id = "shelter_methlab"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_methlab.dmm"
|
||||
|
||||
/datum/map_template/shelter/blacksmith
|
||||
name = "Shelter Blacksmith"
|
||||
shelter_id = "shelter_blacksmith"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_blacksmith.dmm"
|
||||
|
||||
/datum/map_template/shelter/gallery
|
||||
name = "Shelter Art Gallery"
|
||||
shelter_id = "shelter_gallery"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_gallery.dmm"
|
||||
|
||||
/datum/map_template/shelter/garden
|
||||
name = "Shelter Garden"
|
||||
shelter_id = "shelter_garden"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_garden.dmm"
|
||||
|
||||
/datum/map_template/shelter/mimic_hell
|
||||
name = "Shelter Mimic Hell"
|
||||
shelter_id = "shelter_mimic_hell"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_mimic_hell.dmm"
|
||||
|
||||
/datum/map_template/shelter/off_color_bedrooms
|
||||
name = "Shelter Off-Color Bedrooms"
|
||||
shelter_id = "shelter_off_color"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_off_color.dmm"
|
||||
|
||||
/datum/map_template/shelter/living_room
|
||||
name = "Shelter Living Room"
|
||||
shelter_id = "shelter_living_room"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_living_room.dmm"
|
||||
|
||||
/datum/map_template/shelter/candlelit_dinner
|
||||
name = "Shelter Candlelit Dinner"
|
||||
shelter_id = "shelter_candlelit_dinner"
|
||||
mappath = "maps/submaps/shelters/randomshelters/shelter_candlelit_dinner.dmm"
|
||||
|
||||
Reference in New Issue
Block a user