modsuits part 1
This commit is contained in:
committed by
Jerry Wester
parent
792790216d
commit
183b554ed3
@@ -381,7 +381,7 @@
|
||||
/obj/machinery/door/morgue
|
||||
icon = 'icons/obj/doors/doormorgue.dmi'
|
||||
|
||||
/obj/machinery/door/get_dumping_location(obj/item/storage/source,mob/user)
|
||||
/obj/machinery/door/get_dumping_location()
|
||||
return null
|
||||
|
||||
/obj/machinery/door/proc/lock()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/machinery/recharge_station
|
||||
name = "cyborg recharging station"
|
||||
desc = "This device recharges cyborgs and resupplies them with materials."
|
||||
name = "recharging station"
|
||||
desc = "This device recharges energy dependent lifeforms, like cyborgs, ethereals and MODsuit users."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "borgcharger0"
|
||||
density = FALSE
|
||||
|
||||
@@ -10,11 +10,15 @@
|
||||
var/obj/item/clothing/suit/space/suit = null
|
||||
var/obj/item/clothing/head/helmet/space/helmet = null
|
||||
var/obj/item/clothing/mask/mask = null
|
||||
var/obj/item/mod/control/mod = null
|
||||
var/obj/item/storage = null
|
||||
|
||||
var/suit_type = null
|
||||
var/helmet_type = null
|
||||
var/mask_type = null
|
||||
/// What type of MOD the unit starts with when spawned.
|
||||
var/mod_type = null
|
||||
/// What type of additional item the unit starts with when spawned.
|
||||
var/storage_type = null
|
||||
|
||||
state_open = FALSE
|
||||
@@ -38,21 +42,50 @@
|
||||
mask_type = /obj/item/clothing/mask/gas/sechailer
|
||||
storage_type = /obj/item/tank/jetpack/oxygen/captain
|
||||
|
||||
/obj/machinery/suit_storage_unit/captainmod
|
||||
mask_type = /obj/item/clothing/mask/gas/atmos/captain
|
||||
storage_type = /obj/item/tank/jetpack/oxygen/captain
|
||||
mod_type = /obj/item/mod/control/pre_equipped/magnate
|
||||
|
||||
/obj/machinery/suit_storage_unit/engine
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/engine
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
storage_type= /obj/item/clothing/shoes/magboots
|
||||
|
||||
/obj/machinery/suit_storage_unit/enginemod
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
mod_type = /obj/item/mod/control/pre_equipped/engineering
|
||||
|
||||
/obj/machinery/suit_storage_unit/atmos
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/engine/atmos
|
||||
mask_type = /obj/item/clothing/mask/gas/atmos
|
||||
storage_type = /obj/item/watertank/atmos
|
||||
|
||||
/obj/machinery/suit_storage_unit/atmosmod
|
||||
mask_type = /obj/item/clothing/mask/gas/atmos
|
||||
storage_type = /obj/item/watertank/atmos
|
||||
mod_type = /obj/item/mod/control/pre_equipped/atmospheric
|
||||
|
||||
/obj/machinery/suit_storage_unit/ce
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/engine/elite
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
storage_type= /obj/item/clothing/shoes/magboots/advance
|
||||
|
||||
/obj/machinery/suit_storage_unit/cemod
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
storage_type = /obj/item/clothing/shoes/magboots/advance
|
||||
mod_type = /obj/item/mod/control/pre_equipped/advanced
|
||||
|
||||
/obj/machinery/suit_storage_unit/security
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/security
|
||||
mask_type = /obj/item/clothing/mask/gas/sechailer
|
||||
storage_type = /obj/item/tank/jetpack/oxygen/security
|
||||
|
||||
/obj/machinery/suit_storage_unit/securitymod
|
||||
mask_type = /obj/item/clothing/mask/gas/sechailer
|
||||
mod_type = /obj/item/mod/control/pre_equipped/security
|
||||
|
||||
|
||||
/obj/machinery/suit_storage_unit/hos
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos
|
||||
mask_type = /obj/item/clothing/mask/gas/sechailer
|
||||
@@ -63,6 +96,11 @@
|
||||
mask_type = /obj/item/clothing/mask/gas
|
||||
storage_type = /obj/item/watertank/atmos
|
||||
|
||||
/obj/machinery/suit_storage_unit/hosmod
|
||||
mask_type = /obj/item/clothing/mask/gas/sechailer
|
||||
storage_type = /obj/item/tank/internals/oxygen
|
||||
mod_type = /obj/item/mod/control/pre_equipped/safeguard
|
||||
|
||||
/obj/machinery/suit_storage_unit/mining
|
||||
suit_type = /obj/item/clothing/suit/hooded/explorer/standard
|
||||
mask_type = /obj/item/clothing/mask/gas/explorer
|
||||
@@ -71,6 +109,16 @@
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/mining
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/mining/evahos
|
||||
suit_type = null
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
mod_type = /obj/item/mod/control/pre_equipped/mining
|
||||
|
||||
/obj/machinery/suit_storage_unit/medicalmod
|
||||
mask_type = /obj/item/clothing/mask/breath/medical
|
||||
storage_type = /obj/item/tank/internals/oxygen
|
||||
mod_type = /obj/item/mod/control/pre_equipped/medical
|
||||
|
||||
/obj/machinery/suit_storage_unit/cmo
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/medical
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
@@ -81,15 +129,29 @@
|
||||
helmet_type = /obj/item/clothing/head/helmet/space/eva/paramedic
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/cmomod
|
||||
mask_type = /obj/item/clothing/mask/breath/medical
|
||||
storage_type = /obj/item/tank/internals/oxygen
|
||||
mod_type = /obj/item/mod/control/pre_equipped/rescue
|
||||
|
||||
/obj/machinery/suit_storage_unit/rd
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/rd
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
|
||||
/obj/machinery/suit_storage_unit/rdmod
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
mod_type = /obj/item/mod/control/pre_equipped/research
|
||||
|
||||
/obj/machinery/suit_storage_unit/syndicate
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/syndi
|
||||
mask_type = /obj/item/clothing/mask/gas/syndicate
|
||||
storage_type = /obj/item/tank/jetpack/oxygen/harness
|
||||
|
||||
/obj/machinery/suit_storage_unit/syndicatemod
|
||||
mask_type = /obj/item/clothing/mask/gas/syndicate
|
||||
storage_type = /obj/item/tank/jetpack/oxygen/harness
|
||||
mod_type = /obj/item/mod/control/pre_equipped/nuclear
|
||||
|
||||
/obj/machinery/suit_storage_unit/ert/command
|
||||
suit_type = /obj/item/clothing/suit/space/hardsuit/ert
|
||||
mask_type = /obj/item/clothing/mask/breath
|
||||
@@ -129,6 +191,8 @@
|
||||
helmet = new helmet_type(src)
|
||||
if(mask_type)
|
||||
mask = new mask_type(src)
|
||||
if(mod_type)
|
||||
mod = new mod_type(src)
|
||||
if(storage_type)
|
||||
storage = new storage_type(src)
|
||||
update_icon()
|
||||
@@ -137,6 +201,7 @@
|
||||
QDEL_NULL(suit)
|
||||
QDEL_NULL(helmet)
|
||||
QDEL_NULL(mask)
|
||||
QDEL_NULL(mod)
|
||||
QDEL_NULL(storage)
|
||||
return ..()
|
||||
|
||||
@@ -154,7 +219,7 @@
|
||||
. += "broken"
|
||||
else
|
||||
. += "open"
|
||||
if(suit)
|
||||
if(suit || mod)
|
||||
. += "suit"
|
||||
if(helmet)
|
||||
. += "helm"
|
||||
@@ -175,6 +240,7 @@
|
||||
helmet = null
|
||||
suit = null
|
||||
mask = null
|
||||
mod = null
|
||||
storage = null
|
||||
occupant = null
|
||||
|
||||
@@ -241,6 +307,8 @@
|
||||
qdel(suit) // Delete everything but the occupant.
|
||||
mask = null
|
||||
qdel(mask)
|
||||
mod = null
|
||||
qdel(mod)
|
||||
storage = null
|
||||
qdel(storage)
|
||||
// The wires get damaged too.
|
||||
@@ -262,6 +330,9 @@
|
||||
if(mask)
|
||||
things_to_clear += mask
|
||||
things_to_clear += mask.GetAllContents()
|
||||
if(mod)
|
||||
things_to_clear += mod
|
||||
things_to_clear += mod.get_all_contents()
|
||||
if(storage)
|
||||
things_to_clear += storage
|
||||
things_to_clear += storage.GetAllContents()
|
||||
@@ -279,13 +350,25 @@
|
||||
if(occupant)
|
||||
dump_contents()
|
||||
|
||||
/obj/machinery/suit_storage_unit/proc/shock(mob/user, prb)
|
||||
if(!prob(prb))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
if(electrocute_mob(user, src, src, 1, TRUE))
|
||||
return 1
|
||||
/obj/machinery/suit_storage_unit/process(delta_time)
|
||||
var/obj/item/stock_parts/cell/cell
|
||||
if(suit)
|
||||
if(!istype(suit))
|
||||
return
|
||||
if(!suit.cell)
|
||||
return
|
||||
cell = suit.cell
|
||||
else if(mod)
|
||||
if(!istype(mod))
|
||||
return
|
||||
if(!mod.cell)
|
||||
return
|
||||
cell = mod.cell
|
||||
else
|
||||
return
|
||||
|
||||
use_power(charge_rate * delta_time)
|
||||
cell.give(charge_rate * delta_time)
|
||||
|
||||
/obj/machinery/suit_storage_unit/relaymove(mob/user)
|
||||
if(locked)
|
||||
@@ -353,6 +436,13 @@
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
mask = I
|
||||
else if(istype(I, /obj/item/mod/control))
|
||||
if(mod)
|
||||
to_chat(user, span_warning("The unit already contains a MOD!"))
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
mod = I
|
||||
else
|
||||
if(storage)
|
||||
to_chat(user, "<span class='warning'>The auxiliary storage compartment is full!</span>")
|
||||
|
||||
Reference in New Issue
Block a user