mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 13:39:16 +01:00
Merge pull request #7337 from Novacat/nova-shuttle
Assault Dropship, NDV Daedalus, and more!
This commit is contained in:
@@ -48,6 +48,7 @@
|
||||
#define SHELTER_DEPLOY_BAD_TURFS "bad turfs"
|
||||
#define SHELTER_DEPLOY_BAD_AREA "bad area"
|
||||
#define SHELTER_DEPLOY_ANCHORED_OBJECTS "anchored objects"
|
||||
#define SHELTER_DEPLOY_SHIP_SPACE "ship not in space"
|
||||
|
||||
#define PTO_SECURITY "Security"
|
||||
#define PTO_MEDICAL "Medical"
|
||||
|
||||
@@ -1,318 +0,0 @@
|
||||
GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
/*****************************Survival Pod********************************/
|
||||
/area/survivalpod
|
||||
name = "\improper Emergency Shelter"
|
||||
icon_state = "away"
|
||||
dynamic_lighting = TRUE
|
||||
requires_power = FALSE
|
||||
has_gravity = TRUE
|
||||
|
||||
//Survival Capsule
|
||||
/obj/item/device/survivalcapsule
|
||||
name = "surfluid shelter capsule"
|
||||
desc = "An emergency shelter programmed into construction nanomachines. It has a license for use printed on the bottom."
|
||||
icon_state = "houseball"
|
||||
icon = 'icons/obj/device_alt.dmi'
|
||||
w_class = ITEMSIZE_TINY
|
||||
var/template_id = "shelter_alpha"
|
||||
var/datum/map_template/shelter/template
|
||||
var/used = FALSE
|
||||
var/unique_id = null
|
||||
|
||||
/obj/item/device/survivalcapsule/proc/get_template()
|
||||
if(template)
|
||||
return
|
||||
template = SSmapping.shelter_templates[template_id]
|
||||
if(!template)
|
||||
throw EXCEPTION("Shelter template ([template_id]) not found!")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/device/survivalcapsule/Destroy()
|
||||
template = null // without this, capsules would be one use. per round.
|
||||
. = ..()
|
||||
|
||||
/obj/item/device/survivalcapsule/examine(mob/user)
|
||||
. = ..()
|
||||
get_template()
|
||||
to_chat(user, "This capsule has the [template.name] stored.")
|
||||
to_chat(user, template.description)
|
||||
|
||||
/obj/item/device/survivalcapsule/attack_self()
|
||||
//Can't grab when capsule is New() because templates aren't loaded then
|
||||
get_template()
|
||||
if(!used)
|
||||
loc.visible_message("<span class='warning'>\The [src] begins to shake. Stand back!</span>")
|
||||
used = TRUE
|
||||
|
||||
sleep(5 SECONDS)
|
||||
|
||||
var/turf/deploy_location = get_turf(src)
|
||||
var/status = template.check_deploy(deploy_location)
|
||||
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 class='warning'>\The [src] will not function in this area.</span>")
|
||||
|
||||
//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 class='warning'>\The [src] doesn't have room to deploy! You need to clear a [width]x[height] area!</span>")
|
||||
|
||||
if(status != SHELTER_DEPLOY_ALLOWED)
|
||||
used = FALSE
|
||||
return
|
||||
|
||||
if(unique_id)
|
||||
if(unique_id in GLOB.unique_deployable)
|
||||
loc.visible_message("<span class='warning'>There can only be one [src] deployed at a time.</span>")
|
||||
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(get_turf(src), 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
log_and_message_admins("[key_name_admin(usr)] activated a bluespace capsule at [get_area(T)]!")
|
||||
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/device/survivalcapsule/luxury
|
||||
name = "luxury surfluid shelter capsule"
|
||||
desc = "An exorbitantly expensive luxury suite programmed into construction nanomachines. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_beta"
|
||||
|
||||
/obj/item/device/survivalcapsule/luxurybar
|
||||
name = "luxury surfluid bar capsule"
|
||||
desc = "A luxury bar in a capsule. Bartender required and not included. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_gamma"
|
||||
|
||||
/obj/item/device/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."
|
||||
template_id = "shelter_delta"
|
||||
|
||||
/obj/item/device/survivalcapsule/escapepod
|
||||
name = "escape surfluid shelter capsule"
|
||||
desc = "A prefabricated escape pod in a capsule. Contains a basic escape pod for survival purposes. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_epsilon"
|
||||
unique_id = "shelter_5"
|
||||
|
||||
//Custom Shelter Capsules
|
||||
/obj/item/device/survivalcapsule/tabiranth
|
||||
name = "silver-trimmed surfluid shelter capsule"
|
||||
desc = "An exorbitantly expensive luxury suite programmed into construction nanomachines. This one is a particularly rare and expensive model. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_phi"
|
||||
unique_id = "shelter_a"
|
||||
|
||||
//Pod objects
|
||||
//Walls
|
||||
/turf/simulated/shuttle/wall/voidcraft/survival
|
||||
name = "survival shelter"
|
||||
stripe_color = "#efbc3b"
|
||||
|
||||
/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner
|
||||
hard_corner = 1
|
||||
|
||||
//Doors
|
||||
/obj/machinery/door/airlock/voidcraft/survival_pod
|
||||
name = "survival airlock"
|
||||
block_air_zones = 1
|
||||
|
||||
//Door access setter button
|
||||
/obj/machinery/button/remote/airlock/survival_pod
|
||||
name = "shelter privacy control"
|
||||
desc = "You can secure yourself inside the shelter here."
|
||||
specialfunctions = 4 // 4 is bolts
|
||||
id = "placeholder_id_do_not_use" //This has to be this way, otherwise it will control ALL doors if left blank.
|
||||
var/obj/machinery/door/airlock/voidcraft/survival_pod/door
|
||||
|
||||
/obj/machinery/button/remote/airlock/survival_pod/attack_hand(obj/item/weapon/W, mob/user as mob)
|
||||
if(..()) return 1 //1 is failure on machines (for whatever reason)
|
||||
if(!door)
|
||||
var/turf/dT = get_step(src,dir)
|
||||
door = locate() in dT
|
||||
if(door)
|
||||
door.glass = !door.glass
|
||||
door.opacity = !door.opacity
|
||||
|
||||
//Windows
|
||||
/obj/structure/window/reinforced/survival_pod
|
||||
name = "pod window"
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "pwindow"
|
||||
basestate = "pwindow"
|
||||
|
||||
//The windows have diagonal versions, and will never be a full window
|
||||
/obj/structure/window/reinforced/survival_pod/is_fulltile()
|
||||
return FALSE
|
||||
|
||||
/obj/structure/window/reinforced/survival_pod/update_icon()
|
||||
icon_state = basestate
|
||||
|
||||
//Windoor
|
||||
/obj/machinery/door/window/survival_pod
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "windoor"
|
||||
base_state = "windoor"
|
||||
|
||||
//Table
|
||||
/obj/structure/table/survival_pod
|
||||
name = "table"
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "table"
|
||||
can_reinforce = FALSE
|
||||
can_plate = FALSE
|
||||
|
||||
/obj/structure/table/survival_pod/update_icon()
|
||||
icon_state = "table"
|
||||
|
||||
/obj/structure/table/survival_pod/New()
|
||||
material = get_material_by_name(DEFAULT_WALL_MATERIAL)
|
||||
verbs -= /obj/structure/table/verb/do_flip
|
||||
verbs -= /obj/structure/table/proc/do_put
|
||||
..()
|
||||
|
||||
/obj/structure/table/survival_pod/dismantle(obj/item/weapon/wrench/W, mob/user)
|
||||
to_chat(user, "<span class='warning'>You cannot dismantle \the [src].</span>")
|
||||
return
|
||||
|
||||
//Sleeper
|
||||
/obj/machinery/sleeper/survival_pod
|
||||
desc = "A limited functionality sleeper, all it can do is put patients into stasis. It lacks the medication and configuration of the larger units."
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "sleeper"
|
||||
stasis_level = 100 //Just one setting
|
||||
|
||||
/obj/machinery/sleeper/survival_pod/update_icon()
|
||||
if(occupant)
|
||||
add_overlay("sleeper_cover")
|
||||
else
|
||||
cut_overlays()
|
||||
|
||||
//Computer
|
||||
/obj/item/device/gps/computer
|
||||
name = "pod computer"
|
||||
icon_state = "pod_computer"
|
||||
icon = 'icons/obj/survival_pod_comp.dmi'
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
pixel_y = -32
|
||||
|
||||
/obj/item/device/gps/computer/attackby(obj/item/I, mob/living/user)
|
||||
if(I.is_wrench())
|
||||
user.visible_message("<span class='warning'>[user] disassembles [src].</span>",
|
||||
"<span class='notice'>You start to disassemble [src]...</span>", "You hear clanking and banging noises.")
|
||||
if(do_after(user,4 SECONDS,src))
|
||||
new /obj/item/device/gps(loc)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/item/device/gps/computer/attack_hand(mob/user)
|
||||
attack_self(user)
|
||||
|
||||
//Bed
|
||||
/obj/structure/bed/pod
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "bed"
|
||||
|
||||
/obj/structure/bed/pod/New(var/newloc)
|
||||
..(newloc,DEFAULT_WALL_MATERIAL,"cotton")
|
||||
|
||||
//Survival Storage Unit
|
||||
/obj/machinery/smartfridge/survival_pod
|
||||
name = "survival pod storage"
|
||||
desc = "A heated storage unit."
|
||||
icon_state = "donkvendor"
|
||||
icon_base = "donkvendor"
|
||||
icon_contents = null
|
||||
icon = 'icons/obj/survival_pod_vend.dmi'
|
||||
light_range = 5
|
||||
light_power = 1.2
|
||||
light_color = "#DDFFD3"
|
||||
pixel_y = -4
|
||||
max_n_of_items = 100
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize()
|
||||
. = ..()
|
||||
for(var/obj/item/O in loc)
|
||||
if(accept_check(O))
|
||||
stock(O)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
|
||||
return isitem(O)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/empty
|
||||
name = "dusty survival pod storage"
|
||||
desc = "A heated storage unit. This one's seen better days."
|
||||
|
||||
//Fans
|
||||
/obj/structure/fans
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "fans"
|
||||
name = "environmental regulation system"
|
||||
desc = "A large machine releasing a constant gust of air."
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
can_atmos_pass = ATMOS_PASS_NO
|
||||
var/buildstacktype = /obj/item/stack/material/steel
|
||||
var/buildstackamount = 5
|
||||
|
||||
/obj/structure/fans/proc/deconstruct()
|
||||
new buildstacktype(loc,buildstackamount)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/fans/attackby(obj/item/I, mob/living/user)
|
||||
if(I.is_wrench())
|
||||
user.visible_message("<span class='warning'>[user] disassembles [src].</span>",
|
||||
"<span class='notice'>You start to disassemble [src]...</span>", "You hear clanking and banging noises.")
|
||||
if(do_after(user,4 SECONDS,src))
|
||||
deconstruct()
|
||||
return TRUE
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/structure/fans/tiny
|
||||
name = "tiny fan"
|
||||
desc = "A tiny fan, releasing a thin gust of air."
|
||||
plane = TURF_PLANE
|
||||
layer = ABOVE_TURF_LAYER
|
||||
density = FALSE
|
||||
icon_state = "fan_tiny"
|
||||
buildstackamount = 2
|
||||
|
||||
//Signs
|
||||
/obj/structure/sign/mining
|
||||
name = "nanotrasen mining corps sign"
|
||||
desc = "A sign of relief for weary miners, and a warning for would-be competitors to Nanotrasen's mining claims."
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "ntpod"
|
||||
|
||||
/obj/structure/sign/mining/survival
|
||||
name = "shelter sign"
|
||||
desc = "A high visibility sign designating a safe shelter."
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "survival"
|
||||
|
||||
//Fluff
|
||||
/obj/structure/tubes
|
||||
icon_state = "tubes"
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
name = "tubes"
|
||||
anchored = TRUE
|
||||
layer = BELOW_MOB_LAYER
|
||||
density = FALSE
|
||||
@@ -1,3 +1,313 @@
|
||||
GLOBAL_LIST_EMPTY(unique_deployable)
|
||||
/*****************************Survival Pod********************************/
|
||||
/area/survivalpod
|
||||
name = "\improper Emergency Shelter"
|
||||
icon_state = "away"
|
||||
dynamic_lighting = TRUE
|
||||
requires_power = FALSE
|
||||
has_gravity = TRUE
|
||||
|
||||
//Survival Capsule
|
||||
/obj/item/device/survivalcapsule
|
||||
name = "surfluid shelter capsule"
|
||||
desc = "An emergency shelter programmed into construction nanomachines. It has a license for use printed on the bottom."
|
||||
icon_state = "houseball"
|
||||
icon = 'icons/obj/device_alt.dmi'
|
||||
w_class = ITEMSIZE_TINY
|
||||
var/template_id = "shelter_alpha"
|
||||
var/datum/map_template/shelter/template
|
||||
var/used = FALSE
|
||||
var/is_ship = FALSE
|
||||
var/unique_id = null
|
||||
|
||||
/obj/item/device/survivalcapsule/proc/get_template()
|
||||
if(template)
|
||||
return
|
||||
template = SSmapping.shelter_templates[template_id]
|
||||
if(!template)
|
||||
throw EXCEPTION("Shelter template ([template_id]) not found!")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/device/survivalcapsule/Destroy()
|
||||
template = null // without this, capsules would be one use. per round.
|
||||
. = ..()
|
||||
|
||||
/obj/item/device/survivalcapsule/examine(mob/user)
|
||||
. = ..()
|
||||
get_template()
|
||||
to_chat(user, "This capsule has the [template.name] stored.")
|
||||
to_chat(user, template.description)
|
||||
|
||||
/obj/item/device/survivalcapsule/attack_self()
|
||||
//Can't grab when capsule is New() because templates aren't loaded then
|
||||
get_template()
|
||||
if(!used)
|
||||
loc.visible_message("<span class='warning'>\The [src] begins to shake. Stand back!</span>")
|
||||
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 class='warning'>\The [src] will not function in this area.</span>")
|
||||
|
||||
//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 class='warning'>\The [src] doesn't have room to deploy! You need to clear a [width]x[height] area!</span>")
|
||||
|
||||
if(SHELTER_DEPLOY_SHIP_SPACE)
|
||||
src.loc.visible_message("<span class='warning'>\The [src] can only be deployed in space.</span>")
|
||||
|
||||
if(status != SHELTER_DEPLOY_ALLOWED)
|
||||
used = FALSE
|
||||
return
|
||||
|
||||
if(unique_id)
|
||||
if(unique_id in GLOB.unique_deployable)
|
||||
loc.visible_message("<span class='warning'>There can only be one [src] deployed at a time.</span>")
|
||||
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(get_turf(src), 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
log_and_message_admins("[key_name_admin(usr)] activated a bluespace capsule at [get_area(T)]!")
|
||||
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/device/survivalcapsule/luxury
|
||||
name = "luxury surfluid shelter capsule"
|
||||
desc = "An exorbitantly expensive luxury suite programmed into construction nanomachines. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_beta"
|
||||
|
||||
/obj/item/device/survivalcapsule/luxurybar
|
||||
name = "luxury surfluid bar capsule"
|
||||
desc = "A luxury bar in a capsule. Bartender required and not included. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_gamma"
|
||||
|
||||
/obj/item/device/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."
|
||||
template_id = "shelter_delta"
|
||||
|
||||
/obj/item/device/survivalcapsule/escapepod
|
||||
name = "escape surfluid shelter capsule"
|
||||
desc = "A prefabricated escape pod in a capsule. Contains a basic escape pod for survival purposes. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_epsilon"
|
||||
unique_id = "shelter_5"
|
||||
is_ship = TRUE
|
||||
|
||||
/obj/item/device/survivalcapsule/dropship
|
||||
name = "dropship surfluid shelter capsule"
|
||||
desc = "A military dropship in a capsule. Contains everything an assault squad would need, minus the squad itself. This capsule is significantly larger than most. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_zeta"
|
||||
unique_id = "shelter_6"
|
||||
is_ship = TRUE
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
//Custom Shelter Capsules
|
||||
/obj/item/device/survivalcapsule/tabiranth
|
||||
name = "silver-trimmed surfluid shelter capsule"
|
||||
desc = "An exorbitantly expensive luxury suite programmed into construction nanomachines. This one is a particularly rare and expensive model. There's a license for use printed on the bottom."
|
||||
template_id = "shelter_phi"
|
||||
unique_id = "shelter_a"
|
||||
|
||||
//Pod objects
|
||||
//Walls
|
||||
/turf/simulated/shuttle/wall/voidcraft/survival
|
||||
name = "survival shelter"
|
||||
stripe_color = "#efbc3b"
|
||||
|
||||
/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner
|
||||
hard_corner = 1
|
||||
|
||||
//Doors
|
||||
/obj/machinery/door/airlock/voidcraft/survival_pod
|
||||
name = "survival airlock"
|
||||
block_air_zones = 1
|
||||
|
||||
//Door access setter button
|
||||
/obj/machinery/button/remote/airlock/survival_pod
|
||||
name = "shelter privacy control"
|
||||
desc = "You can secure yourself inside the shelter here."
|
||||
specialfunctions = 4 // 4 is bolts
|
||||
id = "placeholder_id_do_not_use" //This has to be this way, otherwise it will control ALL doors if left blank.
|
||||
var/obj/machinery/door/airlock/voidcraft/survival_pod/door
|
||||
|
||||
/obj/machinery/button/remote/airlock/survival_pod/attack_hand(obj/item/weapon/W, mob/user as mob)
|
||||
if(..()) return 1 //1 is failure on machines (for whatever reason)
|
||||
if(!door)
|
||||
var/turf/dT = get_step(src,dir)
|
||||
door = locate() in dT
|
||||
if(door)
|
||||
door.glass = !door.glass
|
||||
door.opacity = !door.opacity
|
||||
|
||||
//Windows
|
||||
/obj/structure/window/reinforced/survival_pod
|
||||
name = "pod window"
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "pwindow"
|
||||
basestate = "pwindow"
|
||||
|
||||
//The windows have diagonal versions, and will never be a full window
|
||||
/obj/structure/window/reinforced/survival_pod/is_fulltile()
|
||||
return FALSE
|
||||
|
||||
/obj/structure/window/reinforced/survival_pod/update_icon()
|
||||
icon_state = basestate
|
||||
|
||||
//Windoor
|
||||
/obj/machinery/door/window/survival_pod
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "windoor"
|
||||
base_state = "windoor"
|
||||
|
||||
//Table
|
||||
/obj/structure/table/survival_pod
|
||||
name = "table"
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "table"
|
||||
can_reinforce = FALSE
|
||||
can_plate = FALSE
|
||||
|
||||
/obj/structure/table/survival_pod/update_icon()
|
||||
icon_state = "table"
|
||||
|
||||
/obj/structure/table/survival_pod/New()
|
||||
material = get_material_by_name(DEFAULT_WALL_MATERIAL)
|
||||
verbs -= /obj/structure/table/verb/do_flip
|
||||
verbs -= /obj/structure/table/proc/do_put
|
||||
..()
|
||||
|
||||
/obj/structure/table/survival_pod/dismantle(obj/item/weapon/wrench/W, mob/user)
|
||||
to_chat(user, "<span class='warning'>You cannot dismantle \the [src].</span>")
|
||||
return
|
||||
|
||||
//Sleeper
|
||||
/obj/machinery/sleeper/survival_pod
|
||||
desc = "A limited functionality sleeper, all it can do is put patients into stasis. It lacks the medication and configuration of the larger units."
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "sleeper"
|
||||
stasis_level = 100 //Just one setting
|
||||
|
||||
/obj/machinery/sleeper/survival_pod/update_icon()
|
||||
if(occupant)
|
||||
add_overlay("sleeper_cover")
|
||||
else
|
||||
cut_overlays()
|
||||
|
||||
//Computer
|
||||
/obj/item/device/gps/computer
|
||||
name = "pod computer"
|
||||
icon_state = "pod_computer"
|
||||
icon = 'icons/obj/survival_pod_comp.dmi'
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
pixel_y = -32
|
||||
|
||||
/obj/item/device/gps/computer/attackby(obj/item/I, mob/living/user)
|
||||
if(I.is_wrench())
|
||||
user.visible_message("<span class='warning'>[user] disassembles [src].</span>",
|
||||
"<span class='notice'>You start to disassemble [src]...</span>", "You hear clanking and banging noises.")
|
||||
if(do_after(user,4 SECONDS,src))
|
||||
new /obj/item/device/gps(loc)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
return FALSE
|
||||
|
||||
/obj/item/device/gps/computer/attack_hand(mob/user)
|
||||
attack_self(user)
|
||||
|
||||
//Bed
|
||||
/obj/structure/bed/pod
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "bed"
|
||||
|
||||
/obj/structure/bed/pod/New(var/newloc)
|
||||
..(newloc,DEFAULT_WALL_MATERIAL,"cotton")
|
||||
|
||||
//Survival Storage Unit
|
||||
/obj/machinery/smartfridge/survival_pod
|
||||
name = "survival pod storage"
|
||||
desc = "A heated storage unit."
|
||||
icon_state = "donkvendor"
|
||||
icon_base = "donkvendor"
|
||||
icon_contents = null
|
||||
icon = 'icons/obj/survival_pod_vend.dmi'
|
||||
light_range = 5
|
||||
light_power = 1.2
|
||||
light_color = "#DDFFD3"
|
||||
pixel_y = -4
|
||||
max_n_of_items = 100
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/Initialize()
|
||||
. = ..()
|
||||
for(var/obj/item/O in loc)
|
||||
if(accept_check(O))
|
||||
stock(O)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O)
|
||||
return isitem(O)
|
||||
|
||||
/obj/machinery/smartfridge/survival_pod/empty
|
||||
name = "dusty survival pod storage"
|
||||
desc = "A heated storage unit. This one's seen better days."
|
||||
|
||||
//Fans
|
||||
/obj/structure/fans
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "fans"
|
||||
name = "environmental regulation system"
|
||||
desc = "A large machine releasing a constant gust of air."
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
can_atmos_pass = ATMOS_PASS_NO
|
||||
var/buildstacktype = /obj/item/stack/material/steel
|
||||
var/buildstackamount = 5
|
||||
|
||||
/obj/structure/fans/proc/deconstruct()
|
||||
new buildstacktype(loc,buildstackamount)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/fans/attackby(obj/item/I, mob/living/user)
|
||||
if(I.is_wrench())
|
||||
user.visible_message("<span class='warning'>[user] disassembles [src].</span>",
|
||||
"<span class='notice'>You start to disassemble [src]...</span>", "You hear clanking and banging noises.")
|
||||
if(do_after(user,4 SECONDS,src))
|
||||
deconstruct()
|
||||
return TRUE
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/structure/fans/tiny
|
||||
name = "tiny fan"
|
||||
desc = "A tiny fan, releasing a thin gust of air."
|
||||
plane = TURF_PLANE
|
||||
layer = ABOVE_TURF_LAYER
|
||||
density = FALSE
|
||||
icon_state = "fan_tiny"
|
||||
buildstackamount = 2
|
||||
|
||||
/obj/structure/fans/hardlight
|
||||
name = "hardlight shield"
|
||||
desc = "Retains air, allows passage."
|
||||
@@ -10,4 +320,26 @@
|
||||
|
||||
light_range = 3
|
||||
light_power = 1
|
||||
light_color = "#FFFFFF"
|
||||
light_color = "#FFFFFF"
|
||||
|
||||
//Signs
|
||||
/obj/structure/sign/mining
|
||||
name = "nanotrasen mining corps sign"
|
||||
desc = "A sign of relief for weary miners, and a warning for would-be competitors to Nanotrasen's mining claims."
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "ntpod"
|
||||
|
||||
/obj/structure/sign/mining/survival
|
||||
name = "shelter sign"
|
||||
desc = "A high visibility sign designating a safe shelter."
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
icon_state = "survival"
|
||||
|
||||
//Fluff
|
||||
/obj/structure/tubes
|
||||
icon_state = "tubes"
|
||||
icon = 'icons/obj/survival_pod.dmi'
|
||||
name = "tubes"
|
||||
anchored = TRUE
|
||||
layer = BELOW_MOB_LAYER
|
||||
density = FALSE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
banned_areas = typecacheof(/area/shuttle)
|
||||
banned_objects = list()
|
||||
|
||||
/datum/map_template/shelter/proc/check_deploy(turf/deploy_location)
|
||||
/datum/map_template/shelter/proc/check_deploy(turf/deploy_location, var/is_ship)
|
||||
var/affected = get_affected_turfs(deploy_location, centered=TRUE)
|
||||
for(var/turf/T in affected)
|
||||
var/area/A = get_area(T)
|
||||
@@ -21,6 +21,9 @@
|
||||
var/banned = is_type_in_typecache(T, blacklisted_turfs)
|
||||
if(banned || T.density)
|
||||
return SHELTER_DEPLOY_BAD_TURFS
|
||||
//Ships can only deploy in space (bacause their base turf is always turf/space)
|
||||
if(is_ship && !is_type_in_typecache(T, typecacheof(/turf/space)))
|
||||
return SHELTER_DEPLOY_SHIP_SPACE
|
||||
|
||||
for(var/obj/O in T)
|
||||
if((O.density && O.anchored) || is_type_in_typecache(O, banned_objects))
|
||||
@@ -93,6 +96,16 @@
|
||||
for escaping a dying ship as soon as possible."
|
||||
mappath = "maps/tether/submaps/om_ships/shelter_5.dmm"
|
||||
|
||||
/datum/map_template/shelter/zeta
|
||||
name = "Shelter Zeta"
|
||||
shelter_id = "shelter_zeta"
|
||||
description = "An small dropship with a massive number of equipment, \
|
||||
weapons, and supplies. Contains exterior weapons, point defense, \
|
||||
a shield generator, and extremely advanced technology. It is \
|
||||
unknown who manufactued a vessel like this, as it is beyond the \
|
||||
technology level of most contemporary powers."
|
||||
mappath = "maps/tether/submaps/om_ships/shelter_6.dmm"
|
||||
|
||||
/datum/map_template/shelter/phi
|
||||
name = "Shelter Phi"
|
||||
shelter_id = "shelter_phi"
|
||||
@@ -7,4 +7,11 @@
|
||||
|
||||
//Biochem
|
||||
nutriment spawn_reagent = "nutriment"
|
||||
protein spawn_reagent = "protein"
|
||||
protein spawn_reagent = "protein"
|
||||
|
||||
//Special Ops
|
||||
biomass spawn_reagent = "biomass"
|
||||
carthatoline spawn_reagent = "carthatoline"
|
||||
corophizine spawn_reagent = "corophizine"
|
||||
myelamine spawn_reagent = "myelamine"
|
||||
osteodaxon spawn_reagent = "osteodaxon"
|
||||
@@ -30,4 +30,38 @@
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/nutriment,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/protein,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/milk
|
||||
)
|
||||
)
|
||||
|
||||
/obj/machinery/chemical_dispenser/ert/specialops
|
||||
spawn_cartridges = list(
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/inaprov,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/dylovene,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/ryetalyn,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/tramadol,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/oxycodone,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/sterilizine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/leporazine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/kelotane,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/dermaline,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/dexalin,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/dexalin_p,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/synaptizine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/hyronalin,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/arithrazine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/alkysine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/imidazoline,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/peridaxon,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/bicaridine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/hyperzine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/rezadone,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/spaceacillin,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/ethylredox,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/carthatoline,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/corophizine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/myelamine,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/osteodaxon,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/biomass,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/iron,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/nutriment,
|
||||
/obj/item/weapon/reagent_containers/chem_disp_cartridge/protein
|
||||
)
|
||||
|
||||
@@ -462,10 +462,10 @@
|
||||
/obj/item/weapon/tank/oxygen,
|
||||
/obj/item/weapon/tank/oxygen,
|
||||
/obj/item/weapon/tank/oxygen,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/clothing/shoes/magboots/adv,
|
||||
/obj/item/clothing/shoes/magboots/adv,
|
||||
/obj/item/clothing/shoes/magboots/adv,
|
||||
/obj/item/clothing/shoes/magboots/adv,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/item/clothing/mask/breath,
|
||||
|
||||
@@ -496,8 +496,9 @@
|
||||
#include "om_ships/mercship.dm"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//Shelter Capsules
|
||||
//Capsule deployed ships
|
||||
#include "om_ships/shelter_5.dm"
|
||||
#include "om_ships/shelter_6.dm"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//Offmap Spawn Locations
|
||||
|
||||
@@ -8,128 +8,128 @@
|
||||
requires_power = 1
|
||||
flags = RAD_SHIELDED
|
||||
base_turf = /turf/space
|
||||
icon_state = "blue-red2"
|
||||
icon_state = "blue2"
|
||||
|
||||
/area/mothership/breakroom
|
||||
name = "Warship - Breakroom"
|
||||
name = "Daedalus - Breakroom"
|
||||
|
||||
/area/mothership/hydroponics
|
||||
name = "Warship - Hydroponics"
|
||||
name = "Daedalus - Hydroponics"
|
||||
|
||||
/area/mothership/kitchen
|
||||
name = "Warship - Kitchen"
|
||||
name = "Daedalus - Kitchen"
|
||||
|
||||
/area/mothership/eva
|
||||
name = "Warship - EVA"
|
||||
name = "Daedalus - EVA"
|
||||
|
||||
/area/mothership/bathroom1
|
||||
name = "Warship - Bathroom 1"
|
||||
name = "Daedalus - Bathroom 1"
|
||||
|
||||
/area/mothership/bathroom2
|
||||
name = "Warship - Bathroom 2"
|
||||
name = "Daedalus - Bathroom 2"
|
||||
|
||||
/area/mothership/dorm1
|
||||
name = "Warship - Dorm 1"
|
||||
name = "Daedalus - Dorm 1"
|
||||
|
||||
/area/mothership/dorm2
|
||||
name = "Warship - Dorm 2"
|
||||
name = "Daedalus - Dorm 2"
|
||||
|
||||
/area/mothership/dorm3
|
||||
name = "Warship - Dorm 3"
|
||||
name = "Daedalus - Dorm 3"
|
||||
|
||||
/area/mothership/dorm4
|
||||
name = "Warship - Dorm 4"
|
||||
name = "Daedalus - Dorm 4"
|
||||
|
||||
/area/mothership/dorm5
|
||||
name = "Warship - Dorm 5"
|
||||
name = "Daedalus - Dorm 5"
|
||||
|
||||
/area/mothership/dorm6
|
||||
name = "Warship - Dorm 6"
|
||||
name = "Daedalus - Dorm 6"
|
||||
|
||||
/area/mothership/chemistry
|
||||
name = "Warship - Chemistry"
|
||||
name = "Daedalus - Chemistry"
|
||||
|
||||
/area/mothership/surgery
|
||||
name = "Warship - Surgery"
|
||||
name = "Daedalus - Surgery"
|
||||
|
||||
/area/mothership/vault
|
||||
name = "Warship - Vault"
|
||||
name = "Daedalus - Vault"
|
||||
flags = RAD_SHIELDED | BLUE_SHIELDED
|
||||
|
||||
/area/mothership/teleporter
|
||||
name = "Warship - Teleporter Room"
|
||||
name = "Daedalus - Teleporter Room"
|
||||
|
||||
/area/mothership/security
|
||||
name = "Warship - Security Equipment"
|
||||
name = "Daedalus - Security Equipment"
|
||||
|
||||
/area/mothership/treatment
|
||||
name = "Warship - Treatment Center"
|
||||
name = "Daedalus - Treatment Center"
|
||||
|
||||
/area/mothership/medical
|
||||
name = "Warship - Medical Equipment"
|
||||
name = "Daedalus - Medical Equipment"
|
||||
|
||||
/area/mothership/resleeving
|
||||
name = "Warship - Resleeving"
|
||||
name = "Daedalus - Resleeving"
|
||||
|
||||
/area/mothership/morgue
|
||||
name = "Warship - Morgue"
|
||||
name = "Daedalus - Morgue"
|
||||
|
||||
/area/mothership/rnd
|
||||
name = "Warship - Research"
|
||||
name = "Daedalus - Research"
|
||||
|
||||
/area/mothership/robotics
|
||||
name = "Warship - Robotics"
|
||||
name = "Daedalus - Robotics"
|
||||
|
||||
/area/mothership/sechallway
|
||||
name = "Warship - Security Hallway"
|
||||
name = "Daedalus - Security Hallway"
|
||||
|
||||
/area/mothership/processing
|
||||
name = "Warship - Processing"
|
||||
name = "Daedalus - Processing"
|
||||
|
||||
/area/mothership/warden
|
||||
name = "Warship - Warden"
|
||||
name = "Daedalus - Warden"
|
||||
|
||||
/area/mothership/armory
|
||||
name = "Warship - Armory"
|
||||
name = "Daedalus - Armory"
|
||||
flags = RAD_SHIELDED | BLUE_SHIELDED
|
||||
|
||||
/area/mothership/bridge
|
||||
name = "Warship - Bridge"
|
||||
name = "Daedalus - Bridge"
|
||||
|
||||
/area/mothership/holodeck
|
||||
name = "Warship - Holodeck Controls"
|
||||
name = "Daedalus - Holodeck Controls"
|
||||
/area/mothership/holodeck/holo
|
||||
name = "Warship - Holodeck"
|
||||
name = "Daedalus - Holodeck"
|
||||
icon_state = "dk_yellow"
|
||||
|
||||
/area/mothership/cryotube
|
||||
name = "Warship - Cryo chamber"
|
||||
name = "Daedalus - Cryo chamber"
|
||||
|
||||
/area/mothership/engineering
|
||||
name = "Warship - Engineering"
|
||||
name = "Daedalus - Engineering"
|
||||
|
||||
/area/mothership/hallway
|
||||
name = "Warship - Main Hallway"
|
||||
name = "Daedalus - Main Hallway"
|
||||
|
||||
/area/mothership/telecomms1
|
||||
name = "Warship - Hangar 1"
|
||||
name = "Daedalus - Hangar 1"
|
||||
has_gravity = 0
|
||||
|
||||
/area/mothership/telecomms2
|
||||
name = "Warship - Hangar 2"
|
||||
name = "Daedalus - Hangar 2"
|
||||
has_gravity = 0
|
||||
|
||||
/datum/map_template/om_ships/cruiser
|
||||
name = "OM Ship - NDV Tabiranth (New Z)"
|
||||
name = "OM Ship - Daedalus (New Z)"
|
||||
desc = "A large NT cruiser."
|
||||
mappath = 'cruiser.dmm'
|
||||
|
||||
/obj/effect/overmap/visitable/ship/cruiser
|
||||
name = "spacecraft"
|
||||
desc = "Spacefaring vessel. NanoTrasen IFF detected."
|
||||
scanner_name = "NDV Tabiranth"
|
||||
scanner_desc = @{"[i]Registration[/i]: NDV Tabiranth
|
||||
[i]Class[/i]: Cruiser
|
||||
scanner_name = "NDV Daedalus"
|
||||
scanner_desc = @{"[i]Registration[/i]: NDV Daedalus
|
||||
[i]Class[/i]: Light Cruiser
|
||||
[i]Transponder[/i]: Transmitting (MIL), NanoTrasen IFF
|
||||
[b]Notice[/b]: Military vessel, do not approach"}
|
||||
color = "#0033ff" //Bluey
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -40,9 +40,11 @@
|
||||
|
||||
// The 'ship'
|
||||
/obj/effect/overmap/visitable/ship/landable/escapepod
|
||||
name = "Escape Pod"
|
||||
desc = "An Escape Pod for escaping exploding ships."
|
||||
color = "#00aaff" //Bluey
|
||||
scanner_name = "Escape Pod"
|
||||
scanner_desc = @{"[i]Registration[/i]: NOT AVAILABLE
|
||||
[i]Class[/i]: Escape Pod
|
||||
[i]Transponder[/i]: Transmitting (CIV), non-hostile
|
||||
[b]Notice[/b]: Emergency Transponder Active"}
|
||||
vessel_mass = 1000
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "Escape Pod"
|
||||
vessel_size = SHIP_SIZE_TINY
|
||||
shuttle = "Escape Pod"
|
||||
|
||||
@@ -88,6 +88,10 @@
|
||||
pixel_y = 22
|
||||
},
|
||||
/obj/effect/map_helper/airlock/sensor/chamber_sensor,
|
||||
/obj/machinery/light/small{
|
||||
dir = 8;
|
||||
pixel_x = 0
|
||||
},
|
||||
/turf/simulated/floor/tiled/steel_grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"i" = (
|
||||
@@ -98,6 +102,10 @@
|
||||
/obj/effect/floor_decal/techfloor{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 8;
|
||||
pixel_x = 0
|
||||
},
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"j" = (
|
||||
@@ -107,39 +115,15 @@
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"k" = (
|
||||
/obj/machinery/power/terminal,
|
||||
/obj/structure/cable/cyan{
|
||||
d1 = 0;
|
||||
d2 = 4;
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"l" = (
|
||||
/obj/structure/cable/cyan{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"m" = (
|
||||
/obj/structure/cable/cyan{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/floor_decal/techfloor{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"n" = (
|
||||
/obj/structure/cable/cyan{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/machinery/access_button{
|
||||
command = "cycle_interior";
|
||||
@@ -155,22 +139,12 @@
|
||||
/turf/simulated/floor/tiled/steel_ridged,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"o" = (
|
||||
/obj/structure/cable/cyan{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden,
|
||||
/obj/effect/shuttle_landmark/shuttle_initializer/escapepod,
|
||||
/obj/effect/overmap/visitable/ship/landable/escapepod,
|
||||
/turf/simulated/floor/tiled/steel_grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"p" = (
|
||||
/obj/structure/cable/cyan{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/effect/floor_decal/industrial/warning{
|
||||
icon_state = "warning";
|
||||
@@ -192,13 +166,14 @@
|
||||
/obj/effect/floor_decal/techfloor{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/recharger,
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"r" = (
|
||||
/obj/machinery/power/smes/buildable/point_of_interest,
|
||||
/obj/structure/cable/cyan{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/obj/machinery/power/rtg/advanced,
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"s" = (
|
||||
@@ -239,6 +214,19 @@
|
||||
/obj/structure/sign/mining/survival,
|
||||
/turf/simulated/wall/rpshull,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
"L" = (
|
||||
/obj/effect/floor_decal/techfloor,
|
||||
/obj/structure/bed/chair/shuttle{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/cable/cyan{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/light/small,
|
||||
/turf/simulated/floor/tiled/techfloor/grid,
|
||||
/area/shuttle/deployable/escapepod)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
@@ -271,15 +259,15 @@ b
|
||||
(5,1,1) = {"
|
||||
c
|
||||
f
|
||||
l
|
||||
k
|
||||
s
|
||||
v
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
b
|
||||
f
|
||||
l
|
||||
s
|
||||
k
|
||||
L
|
||||
b
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
// Compile in the map for CI testing if we're testing compileability of all the maps
|
||||
#if MAP_TEST
|
||||
#include "shelter_6.dmm"
|
||||
#endif
|
||||
|
||||
// Map template for spawning the shuttle
|
||||
/datum/map_template/om_ships/tabiranth
|
||||
name = "OM Ship - Tabiranth"
|
||||
desc = "A prototype deployable assault shuttle."
|
||||
mappath = 'shelter_6.dmm'
|
||||
annihilate = TRUE
|
||||
|
||||
// The shuttle's area(s)
|
||||
/area/shuttle/tabiranth
|
||||
name = "\improper Tabiranth"
|
||||
icon_state = "blue-red2"
|
||||
flags = RAD_SHIELDED | BLUE_SHIELDED
|
||||
requires_power = 1
|
||||
|
||||
// The shuttle's 'shuttle' computer
|
||||
/obj/machinery/computer/shuttle_control/explore/tabiranth
|
||||
name = "short jump console"
|
||||
shuttle_tag = "XN-29 Prototype Shuttle"
|
||||
req_one_access = list(access_cent_general)
|
||||
|
||||
// A shuttle lateloader landmark
|
||||
/obj/effect/shuttle_landmark/shuttle_initializer/tabiranth
|
||||
name = "Origin - Tabiranth"
|
||||
base_area = /area/space
|
||||
base_turf = /turf/space
|
||||
landmark_tag = "omship_spawn_tabiranth"
|
||||
shuttle_type = /datum/shuttle/autodock/overmap/tabiranth
|
||||
|
||||
// The 'shuttle'
|
||||
/datum/shuttle/autodock/overmap/tabiranth
|
||||
name = "NDV Tabiranth"
|
||||
current_location = "omship_spawn_tabiranth"
|
||||
docking_controller_tag = "tabiranth_docker"
|
||||
shuttle_area = /area/shuttle/tabiranth
|
||||
fuel_consumption = 0
|
||||
defer_initialisation = TRUE //We're not loaded until an admin does it
|
||||
|
||||
// The 'ship'
|
||||
/obj/effect/overmap/visitable/ship/landable/tabiranth
|
||||
scanner_name = "Experimental Dropship"
|
||||
scanner_desc = @{"[i]Registration[/i]: UNKNOWN
|
||||
[i]Class[/i]: Assault Dropship
|
||||
[i]Transponder[/i]: Transmitting (MIL), NanoTrasen
|
||||
[b]Notice[/b]: Experimental vessel"}
|
||||
color = "#8800ff" //Indigo
|
||||
vessel_mass = 5000
|
||||
vessel_size = SHIP_SIZE_SMALL
|
||||
shuttle = "NDV Tabiranth"
|
||||
File diff suppressed because it is too large
Load Diff
+1
-2
@@ -2254,9 +2254,8 @@
|
||||
#include "code\modules\mining\ore_box.dm"
|
||||
#include "code\modules\mining\ore_datum.dm"
|
||||
#include "code\modules\mining\resonator_vr.dm"
|
||||
#include "code\modules\mining\shelter_atoms.dm"
|
||||
#include "code\modules\mining\shelter_atoms_vr.dm"
|
||||
#include "code\modules\mining\shelters.dm"
|
||||
#include "code\modules\mining\shelters_vr.dm"
|
||||
#include "code\modules\mining\drilling\drill.dm"
|
||||
#include "code\modules\mining\drilling\scanner.dm"
|
||||
#include "code\modules\mining\ore_redemption_machine\construction.dm"
|
||||
|
||||
Reference in New Issue
Block a user