mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-24 04:28:12 +01:00
protean components and hardsuit supply category
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Here is where any supply packs
|
||||
* related to hardsuits live.
|
||||
*/
|
||||
|
||||
|
||||
/datum/supply_pack/hardsuits
|
||||
group = "Hardsuits"
|
||||
|
||||
/datum/supply_pack/hardsuits/eva_rig
|
||||
name = "eva hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/eva = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "eva hardsuit crate"
|
||||
access = list(access_mining,
|
||||
access_eva,
|
||||
access_pilot)
|
||||
one_access = TRUE
|
||||
|
||||
/datum/supply_pack/hardsuits/mining_rig
|
||||
name = "industrial hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/industrial = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "industrial hardsuit crate"
|
||||
access = list(access_mining,
|
||||
access_eva)
|
||||
one_access = TRUE
|
||||
|
||||
/datum/supply_pack/hardsuits/medical_rig
|
||||
name = "medical hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/medical = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "medical hardsuit crate"
|
||||
access = access_medical
|
||||
|
||||
/datum/supply_pack/hardsuits/security_rig
|
||||
name = "hazard hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/hazard = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "hazard hardsuit crate"
|
||||
access = access_armory
|
||||
|
||||
/datum/supply_pack/hardsuits/science_rig
|
||||
name = "ami hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/hazmat = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "ami hardsuit crate"
|
||||
access = access_rd
|
||||
|
||||
/datum/supply_pack/hardsuits/ce_rig
|
||||
name = "advanced hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/ce = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "advanced hardsuit crate"
|
||||
access = access_ce
|
||||
|
||||
/datum/supply_pack/hardsuits/com_medical_rig
|
||||
name = "commonwealth medical hardsuit (loaded)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/baymed/equipped = 1
|
||||
)
|
||||
cost = 250
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "Commonwealth medical hardsuit crate"
|
||||
access = access_medical
|
||||
|
||||
/datum/supply_pack/hardsuits/com_engineering_rig
|
||||
name = "commonwealth engineering hardsuit (loaded)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/bayeng/equipped = 1
|
||||
)
|
||||
cost = 250
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "Commonwealth engineering hardsuit crate"
|
||||
access = access_engine
|
||||
|
||||
/datum/supply_pack/hardsuits/breacher_rig
|
||||
name = "unathi breacher hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/breacher = 1
|
||||
)
|
||||
cost = 250
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "unathi breacher hardsuit crate"
|
||||
access = access_armory
|
||||
|
||||
/datum/supply_pack/hardsuits/zero_rig
|
||||
name = "null hardsuit (jets)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/zero = 1
|
||||
)
|
||||
cost = 75
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "null hardsuit crate"
|
||||
@@ -16,110 +16,6 @@
|
||||
access_xenoarch)
|
||||
one_access = TRUE
|
||||
|
||||
/datum/supply_pack/misc/eva_rig
|
||||
name = "eva hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/eva = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "eva hardsuit crate"
|
||||
access = list(access_mining,
|
||||
access_eva,
|
||||
access_pilot)
|
||||
one_access = TRUE
|
||||
|
||||
/datum/supply_pack/misc/mining_rig
|
||||
name = "industrial hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/industrial = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "industrial hardsuit crate"
|
||||
access = list(access_mining,
|
||||
access_eva)
|
||||
one_access = TRUE
|
||||
|
||||
/datum/supply_pack/misc/medical_rig
|
||||
name = "medical hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/medical = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "medical hardsuit crate"
|
||||
access = access_medical
|
||||
|
||||
/datum/supply_pack/misc/security_rig
|
||||
name = "hazard hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/hazard = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "hazard hardsuit crate"
|
||||
access = access_armory
|
||||
|
||||
/datum/supply_pack/misc/science_rig
|
||||
name = "ami hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/hazmat = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "ami hardsuit crate"
|
||||
access = access_rd
|
||||
|
||||
/datum/supply_pack/misc/ce_rig
|
||||
name = "advanced hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/ce = 1
|
||||
)
|
||||
cost = 150
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "advanced hardsuit crate"
|
||||
access = access_ce
|
||||
|
||||
/datum/supply_pack/misc/com_medical_rig
|
||||
name = "commonwealth medical hardsuit (loaded)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/baymed/equipped = 1
|
||||
)
|
||||
cost = 250
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "Commonwealth medical hardsuit crate"
|
||||
access = access_medical
|
||||
|
||||
/datum/supply_pack/misc/com_engineering_rig
|
||||
name = "commonwealth engineering hardsuit (loaded)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/bayeng/equipped = 1
|
||||
)
|
||||
cost = 250
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "Commonwealth engineering hardsuit crate"
|
||||
access = access_engine
|
||||
|
||||
/datum/supply_pack/misc/breacher_rig
|
||||
name = "unathi breacher hardsuit (empty)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/breacher = 1
|
||||
)
|
||||
cost = 250
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "unathi breacher hardsuit crate"
|
||||
access = access_armory
|
||||
|
||||
/datum/supply_pack/misc/zero_rig
|
||||
name = "null hardsuit (jets)"
|
||||
contains = list(
|
||||
/obj/item/weapon/rig/zero = 1
|
||||
)
|
||||
cost = 75
|
||||
containertype = /obj/structure/closet/crate/secure/gear
|
||||
containername = "null hardsuit crate"
|
||||
|
||||
/datum/supply_pack/misc/jetpack
|
||||
name = "jetpack (empty)"
|
||||
contains = list(
|
||||
|
||||
@@ -24,6 +24,7 @@ var/list/all_supply_groups = list("Atmospherics",
|
||||
"Security",
|
||||
"Supplies",
|
||||
"Vendor Refills",
|
||||
"Hardsuits",
|
||||
"Voidsuits")
|
||||
|
||||
/datum/supply_pack
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/protean_reconstitutor
|
||||
name = "protean reconstitutor"
|
||||
desc = "A complex machine that is most definitely <i>not</i> just a large tub into which one pours a large amount of untethered nanites, then adds a protean positronic brain and orchestrator, in order to reconstitute a disintegrated protean... it's complicated, really!"
|
||||
description_info = "Use a protean positronic brain, orchestrator, optionally a refactory, and nanopaste to \'fill\' the machine, then interact with it once it's ready. Protean components can be retrieved using a wrench, but any nanopaste inserted will be converted, cannot be reclaimed, and will be lost if the machine is disassembled!"
|
||||
description_info = "Use a protean positronic brain, orchestrator, refactory, and nanopaste to \'fill\' the machine, then interact with it once it's ready. Protean components can be retrieved using a wrench, but any nanopaste inserted will be converted, cannot be reclaimed, and will be lost if the machine is disassembled!"
|
||||
icon = 'icons/obj/protean_recon.dmi'
|
||||
icon_state = "recon-nopower"
|
||||
var/state_base = "recon"
|
||||
@@ -160,7 +160,7 @@
|
||||
..()
|
||||
|
||||
/obj/machinery/protean_reconstitutor/attack_hand(mob/user as mob)
|
||||
if(!protean_brain || !protean_orchestrator || (nanomass_reserve < nanomass_required))
|
||||
if(!protean_brain || !protean_orchestrator || !protean_refactory || (nanomass_reserve < nanomass_required))
|
||||
//no brain, no orchestrator, and/or not enough goo
|
||||
to_chat(user,"<span class='warning'>Essential components missing, or insufficient materials available!</span>")
|
||||
playsound(src, buzzsound, 100, 1, -1)
|
||||
@@ -174,7 +174,7 @@
|
||||
if(!protean_brain.brainmob.client)
|
||||
src.visible_message("<span class='warning'>\The [src] chirps, \"Warning, no positronic neural network activity detected! Recommend removing inactive core.\"</span>")
|
||||
return
|
||||
else if(!processing_revive && protean_brain && protean_orchestrator && (nanomass_reserve >= nanomass_required))
|
||||
else if(!processing_revive && protean_brain && protean_orchestrator && protean_refactory && (nanomass_reserve >= nanomass_required))
|
||||
//we're good, let's get recombobulating!
|
||||
src.visible_message("<span class='notice'>[user] initializes \the [src]. It chirps, \"Please stand by, synchronizing components... estimated time to completion: five minutes.\"</span>")
|
||||
processing_revive = TRUE
|
||||
@@ -195,20 +195,16 @@
|
||||
sleep(per_organ_delay)
|
||||
var/obj/item/O = P.internal_organs_by_name[organ]
|
||||
if(istype(O,/obj/item/organ/internal/nano/refactory))
|
||||
if(protean_refactory) //if we have a refactory present, install it, otherwise they get a free replacement (for now; perhaps no free replacement but they can be made printable at the prosfab?)
|
||||
src.visible_message("<span class='notice'>\The [src] chirps, \"Reinitializing refactory...\"</span>")
|
||||
P.internal_organs_by_name.Remove(O)
|
||||
P.contents.Remove(O)
|
||||
qdel(O)
|
||||
P.internal_organs_by_name.Add(list(O_FACT = protean_refactory))
|
||||
P.internal_organs.Add(protean_refactory)
|
||||
//cache our mats otherwise they get wiped by the revive
|
||||
materials_cache = protean_refactory.materials.Copy()
|
||||
mats_cached = TRUE
|
||||
protean_refactory.loc = P
|
||||
else
|
||||
src.visible_message("<span class='notice'>\The [src] chirps, \"No refactory detected in storage, fabricating replacement...\"</span>")
|
||||
continue
|
||||
src.visible_message("<span class='notice'>\The [src] chirps, \"Initializing refactory...\"</span>")
|
||||
P.internal_organs_by_name.Remove(O)
|
||||
P.contents.Remove(O)
|
||||
qdel(O)
|
||||
P.internal_organs_by_name.Add(list(O_FACT = protean_refactory))
|
||||
P.internal_organs.Add(protean_refactory)
|
||||
//cache our mats otherwise they get wiped by the revive
|
||||
materials_cache = protean_refactory.materials.Copy()
|
||||
mats_cached = TRUE
|
||||
protean_refactory.loc = P
|
||||
if(istype(O,/obj/item/organ/internal/nano/orchestrator))
|
||||
src.visible_message("<span class='notice'>\The [src] chirps, \"Linking nanoswarm to orchestrator...\"</span>")
|
||||
P.internal_organs_by_name.Remove(O)
|
||||
|
||||
@@ -528,3 +528,21 @@
|
||||
id = "misc_synth_bag_tag_bishop"
|
||||
materials = list(MAT_STEEL = 500, MAT_GLASS = 2000, MAT_PLASTIC = 500)
|
||||
build_path = /obj/item/clothing/accessory/badge/corporate_tag/bishop
|
||||
|
||||
// Replacement protean bits
|
||||
|
||||
/datum/design/item/prosfab/orchestrator
|
||||
name = "Protean Orchestrator"
|
||||
id = "prot_orch"
|
||||
build_path = /obj/item/organ/internal/nano/orchestrator
|
||||
time = 30
|
||||
materials = list(MAT_STEEL = 8000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_GOLD = 2000)
|
||||
//req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
|
||||
|
||||
/datum/design/item/prosfab/refactory
|
||||
name = "Protean Refactory"
|
||||
id = "prot_refact"
|
||||
build_path = /obj/item/organ/internal/nano/refactory
|
||||
time = 30
|
||||
materials = list(MAT_STEEL = 8000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_GOLD = 2000)
|
||||
//req_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 5, TECH_MATERIAL = 5, TECH_ENGINEERING = 5, TECH_DATA = 5)
|
||||
|
||||
@@ -463,6 +463,7 @@
|
||||
#include "code\datums\supplypacks\costumes_vr.dm"
|
||||
#include "code\datums\supplypacks\engineering.dm"
|
||||
#include "code\datums\supplypacks\engineering_vr.dm"
|
||||
#include "code\datums\supplypacks\hardsuits.dm"
|
||||
#include "code\datums\supplypacks\hospitality.dm"
|
||||
#include "code\datums\supplypacks\hospitality_vr.dm"
|
||||
#include "code\datums\supplypacks\hydroponics.dm"
|
||||
|
||||
Reference in New Issue
Block a user