mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-28 06:28:01 +01:00
Merge pull request #8336 from VOREStation/upstream-merge-7301
[MIRROR] Suit Cycler Tweaks/Improvements
This commit is contained in:
@@ -612,6 +612,13 @@
|
||||
wires = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/suit_cycler/refit_only
|
||||
name = "Suit cycler"
|
||||
desc = "A dedicated industrial machine that can refit voidsuits for different species, but not change the suit's overall appearance or departmental scheme."
|
||||
model_text = "General Access"
|
||||
req_access = null
|
||||
departments = list("No Change")
|
||||
|
||||
/obj/machinery/suit_cycler/engineering
|
||||
name = "Engineering suit cycler"
|
||||
model_text = "Engineering"
|
||||
@@ -741,7 +748,8 @@
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
else if(istype(I,/obj/item/clothing/head/helmet/space) && !istype(I, /obj/item/clothing/head/helmet/space/rig))
|
||||
else if(istype(I,/obj/item/clothing/head/helmet/space/void) && !istype(I, /obj/item/clothing/head/helmet/space/rig))
|
||||
var/obj/item/clothing/head/helmet/space/void/IH = I
|
||||
|
||||
if(locked)
|
||||
to_chat(user, "<span class='danger'>The suit cycler is locked.</span>")
|
||||
@@ -751,6 +759,10 @@
|
||||
to_chat(user, "<span class='danger'>The cycler already contains a helmet.</span>")
|
||||
return
|
||||
|
||||
if(IH.no_cycle)
|
||||
to_chat(user, "<span class='danger'>That item is not compatible with the cycler's protocols.</span>")
|
||||
return
|
||||
|
||||
if(I.icon_override == CUSTOM_ITEM_MOB)
|
||||
to_chat(user, "You cannot refit a customised voidsuit.")
|
||||
return
|
||||
@@ -777,6 +789,7 @@
|
||||
return
|
||||
|
||||
else if(istype(I,/obj/item/clothing/suit/space/void))
|
||||
var/obj/item/clothing/suit/space/void/IS = I
|
||||
|
||||
if(locked)
|
||||
to_chat(user, "<span class='danger'>The suit cycler is locked.</span>")
|
||||
@@ -786,6 +799,10 @@
|
||||
to_chat(user, "<span class='danger'>The cycler already contains a voidsuit.</span>")
|
||||
return
|
||||
|
||||
if(IS.no_cycle)
|
||||
to_chat(user, "<span class='danger'>That item is not compatible with the cycler's protocols.</span>")
|
||||
return
|
||||
|
||||
if(I.icon_override == CUSTOM_ITEM_MOB)
|
||||
to_chat(user, "You cannot refit a customised voidsuit.")
|
||||
return
|
||||
@@ -820,7 +837,7 @@
|
||||
|
||||
//Clear the access reqs, disable the safeties, and open up all paintjobs.
|
||||
to_chat(user, "<span class='danger'>You run the sequencer across the interface, corrupting the operating protocols.</span>")
|
||||
departments = list("Engineering","Mining","Medical","Security","Atmospherics","HAZMAT","Construction","Biohazard","Crowd Control","Security EVA","Emergency Medical Response","^%###^%$", "Charring")
|
||||
departments = list("Engineering","Mining","Medical","Security","Atmospherics","HAZMAT","Construction","Biohazard","Crowd Control","Security EVA","Emergency Medical Response","^%###^%$", "Charring","No Change")
|
||||
species = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJ, SPECIES_TESHARI, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_VULPKANIN) //VORESTATION EDIT
|
||||
|
||||
emagged = 1
|
||||
@@ -1043,10 +1060,16 @@
|
||||
|
||||
if(target_species)
|
||||
if(helmet) helmet.refit_for_species(target_species)
|
||||
if(suit) suit.refit_for_species(target_species)
|
||||
if(suit)
|
||||
suit.refit_for_species(target_species)
|
||||
if(suit.helmet)
|
||||
suit.helmet.refit_for_species(target_species)
|
||||
|
||||
//Now "Complete" with most departmental and variant suits, and sorted by department. These aren't available in the standard or emagged cycler lists because they're incomplete for most species.
|
||||
switch(target_department)
|
||||
if("No Change")
|
||||
parent_helmet = helmet
|
||||
parent_suit = suit
|
||||
//Engineering and Engineering Variants
|
||||
if("Engineering")
|
||||
parent_helmet = /obj/item/clothing/head/helmet/space/void/engineering
|
||||
@@ -1201,7 +1224,7 @@
|
||||
//END: downstream variant space
|
||||
|
||||
//look at this! isn't it beautiful? -KK (well ok not beautiful but it's a lot cleaner)
|
||||
if(helmet)
|
||||
if(helmet && target_department != "No Change")
|
||||
var/obj/item/clothing/H = new parent_helmet
|
||||
helmet.name = "refitted [initial(parent_helmet.name)]"
|
||||
helmet.desc = initial(parent_helmet.desc)
|
||||
@@ -1211,11 +1234,22 @@
|
||||
helmet.item_state_slots = H.item_state_slots
|
||||
qdel(H)
|
||||
|
||||
if(suit)
|
||||
if(suit && target_department != "No Change")
|
||||
var/obj/item/clothing/S = new parent_suit
|
||||
suit.name = "refitted [initial(parent_suit.name)]"
|
||||
suit.desc = initial(parent_suit.desc)
|
||||
suit.icon_state = initial(parent_suit.icon_state)
|
||||
suit.item_state = initial(parent_suit.item_state)
|
||||
suit.item_state_slots = S.item_state_slots
|
||||
suit.item_state_slots = S.item_state_slots
|
||||
qdel(S)
|
||||
|
||||
//can't believe I forgot to fix this- now helmets will properly cycle if they're attached to a suit -KK
|
||||
if(suit.helmet && target_department != "No Change")
|
||||
var/obj/item/clothing/AH = new parent_helmet
|
||||
suit.helmet.name = "refitted [initial(parent_helmet.name)]"
|
||||
suit.helmet.desc = initial(parent_helmet.desc)
|
||||
suit.helmet.icon_state = initial(parent_helmet.icon_state)
|
||||
suit.helmet.item_state = initial(parent_helmet.item_state)
|
||||
suit.helmet.light_overlay = initial(parent_helmet.light_overlay)
|
||||
suit.helmet.item_state_slots = AH.item_state_slots
|
||||
qdel(AH)
|
||||
|
||||
@@ -162,6 +162,7 @@
|
||||
icon_state = "rig0-medicalalt"
|
||||
armor = list(melee = 20, bullet = 5, laser = 20,energy = 5, bomb = 15, bio = 100, rad = 30)
|
||||
light_overlay = "helmet_light_dual_blue"
|
||||
no_cycle = TRUE
|
||||
|
||||
/obj/item/clothing/suit/space/void/medical/alt
|
||||
icon_state = "rig-medicalalt"
|
||||
@@ -169,6 +170,7 @@
|
||||
desc = "A more recent model of Vey-Med voidsuit, exchanging physical protection for fully unencumbered movement and a complete range of motion."
|
||||
slowdown = 0
|
||||
armor = list(melee = 20, bullet = 5, laser = 20,energy = 5, bomb = 15, bio = 100, rad = 30)
|
||||
no_cycle = TRUE
|
||||
|
||||
//Security
|
||||
/obj/item/clothing/head/helmet/space/void/security
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
)
|
||||
|
||||
light_overlay = "helmet_light"
|
||||
var/no_cycle = FALSE //stop this item from being put in a cycler
|
||||
|
||||
/obj/item/clothing/suit/space/void
|
||||
name = "voidsuit"
|
||||
@@ -66,6 +67,9 @@
|
||||
var/obj/item/clothing/head/helmet/helmet = null // Deployable helmet, if any.
|
||||
var/obj/item/weapon/tank/tank = null // Deployable tank, if any.
|
||||
var/obj/item/device/suit_cooling_unit/cooler = null// Cooling unit, for FBPs. Cannot be installed alongside a tank.
|
||||
|
||||
//Cycler settings
|
||||
var/no_cycle = FALSE //stop this item from being put in a cycler
|
||||
|
||||
/obj/item/clothing/suit/space/void/examine(user)
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user