mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-09 16:12:17 +00:00
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
160 lines
8.1 KiB
Plaintext
160 lines
8.1 KiB
Plaintext
/obj/item/closet_painter
|
|
name = "closet painter"
|
|
icon = 'icons/obj/bureaucracy.dmi'
|
|
icon_state = "labeler1"
|
|
|
|
var/colour = "plain"
|
|
var/colour_secure = "plain"
|
|
|
|
var/list/colours = list(
|
|
"plain" = list("open" = "open", "closed" = "closed"),
|
|
"blue" = list("open" = "open", "closed" = "blue"),
|
|
"mixed" = list("open" = "open", "closed" = "mixed"),
|
|
"grey" = list("open" = "open", "closed" = "grey"),
|
|
"green" = list("open" = "open", "closed" = "green"),
|
|
"orange" = list("open" = "open", "closed" = "orange"),
|
|
"pink" = list("open" = "open", "closed" = "pink"),
|
|
"red" = list("open" = "open", "closed" = "red"),
|
|
"white" = list("open" = "open", "closed" = "white"),
|
|
"yellow" = list("open" = "open", "closed" = "yellow"),
|
|
"black" = list("open" = "open", "closed" = "black"),
|
|
"bio" = list("open" = "bioopen", "closed" = "bio"),
|
|
"bio-virology" = list("open" = "bio_virologyopen", "closed" = "bio_virology"),
|
|
"bio-security" = list("open" = "bio_securityopen", "closed" = "bio_security"),
|
|
"bio-janitor" = list("open" = "bio_janitoropen", "closed" = "bio_janitor"),
|
|
"bio-scientist" = list("open" = "bio_scientistopen", "closed" = "bio_scientist"),
|
|
"bombsuit" = list("open" = "bombsuitopen", "closed" = "bombsuit"),
|
|
"bombsuit-security" = list("open" = "bombsuitsecopen", "closed" = "bombsuitsec"),
|
|
"full-red" = list("open" = "syndicateopen", "closed" = "syndicate"),
|
|
"full-green" = list("open" = "syndicate1open", "closed" = "syndicate1"),
|
|
"full-purple" = list("open" = "aclosetopen", "closed" = "acloset"),
|
|
"mining" = list("open" = "miningopen", "closed" = "mining"),
|
|
"emergency" = list("open" = "emergencyopen", "closed" = "emergency"),
|
|
"fire" = list("open" = "fireclosetopen", "closed" = "firecloset"),
|
|
"tool" = list("open" = "toolclosetopen", "closed" = "toolcloset"),
|
|
"radiation" = list("open" = "toolclosetopen", "closed" = "radsuitcloset")
|
|
)
|
|
|
|
var/list/colours_secure = list(
|
|
"plain" = list("open" = "open", "closed" = "secure", "locked" = "secure1", "broken" = "securebroken", "off" = "secureoff"),
|
|
"medical-red" = list("open" = "medicalopen", "closed" = "medical", "locked" = "medical1", "broken" = "medicalbroken", "off" = "medicaloff"),
|
|
"medical-green" = list("open" = "securemedopen", "closed" = "securemed", "locked" = "securemed1", "broken" = "securemedbroken", "off" = "securemedoff"),
|
|
"CMO" = list("open" = "cmosecureopen", "closed" = "cmosecure", "locked" = "cmosecure1", "broken" = "cmosecurebroken", "off" = "cmosecureoff"),
|
|
"cargo" = list("open" = "securecargoopen", "closed" = "securecargo", "locked" = "securecargo1", "broken" = "securecargobroken", "off" = "securecargooff"),
|
|
"mining" = list("open" = "miningsecopen", "closed" = "miningsec", "locked" = "miningsec1", "broken" = "miningsecbroken", "off" = "miningsecoff"),
|
|
"QM" = list("open" = "secureqmopen", "closed" = "secureqm", "locked" = "secureqm1", "broken" = "secureqmbroken", "off" = "secureqmoff"),
|
|
"hydroponics" = list("open" = "hydrosecureopen", "closed" = "hydrosecure", "locked" = "hydrosecure1", "broken" = "hydrosecurebroken", "off" = "hydrosecureoff"),
|
|
"atmospherics" = list("open" = "secureatmopen", "closed" = "secureatm", "locked" = "secureatm1", "broken" = "secureatmbroken", "off" = "secureatmoff"),
|
|
"engineer" = list("open" = "secureengopen", "closed" = "secureeng", "locked" = "secureeng1", "broken" = "secureengbroken", "off" = "secureengoff"),
|
|
"CE" = list("open" = "secureceopen", "closed" = "securece", "locked" = "securece1", "broken" = "securecebroken", "off" = "secureceoff"),
|
|
"electrical" = list("open" = "toolclosetopen", "closed" = "secureengelec", "locked" = "secureengelec1", "broken" = "secureengelecbroken", "off" = "secureengelecoff"),
|
|
"welding" = list("open" = "toolclosetopen", "closed" = "secureengweld", "locked" = "secureengweld1", "broken" = "secureengweldbroken", "off" = "secureengweldoff"),
|
|
"research" = list("open" = "secureresopen", "closed" = "secureres", "locked" = "secureres1", "broken" = "secureresbroken", "off" = "secureresoff"),
|
|
"RD" = list("open" = "rdsecureopen", "closed" = "rdsecure", "locked" = "rdsecure1", "broken" = "rdsecurebroken", "off" = "rdsecureoff"),
|
|
"security" = list("open" = "secopen", "closed" = "sec", "locked" = "sec1", "broken" = "secbroken", "off" = "secoff"),
|
|
"warden" = list("open" = "wardensecureopen", "closed" = "wardensecure", "locked" = "wardensecure1", "broken" = "wardensecurebroken", "off" = "wardensecureoff"),
|
|
"HoS" = list("open" = "hossecureopen", "closed" = "hossecure", "locked" = "hossecure1", "broken" = "hossecurebroken", "off" = "hossecureoff"),
|
|
"HoP" = list("open" = "hopsecureopen", "closed" = "hopsecure", "locked" = "hopsecure1", "broken" = "hopsecurebroken", "off" = "hopsecureoff"),
|
|
"Administrator" = list("open" = "capsecureopen", "closed" = "capsecure", "locked" = "capsecure1", "broken" = "capsecurebroken", "off" = "capsecureoff")
|
|
)
|
|
|
|
var/forbidden_types = list(
|
|
/obj/structure/closet/alien,
|
|
/obj/structure/closet/body_bag,
|
|
/obj/structure/closet/cabinet,
|
|
/obj/structure/closet/crate,
|
|
/obj/structure/closet/coffin,
|
|
/obj/structure/closet/hydrant,
|
|
/obj/structure/closet/medical_wall,
|
|
/obj/structure/closet/statue,
|
|
/obj/structure/closet/walllocker
|
|
)
|
|
pickup_sound = 'sound/items/pickup/device.ogg'
|
|
drop_sound = 'sound/items/drop/device.ogg'
|
|
|
|
/obj/item/closet_painter/afterattack(atom/A, var/mob/user, proximity)
|
|
if(!proximity)
|
|
return
|
|
|
|
var/non_closet = 0
|
|
if(!istype(A,/obj/structure/closet))
|
|
non_closet = 1
|
|
for(var/ctype in forbidden_types)
|
|
if(istype(A,ctype))
|
|
non_closet = 1
|
|
if(non_closet)
|
|
to_chat(user, span_warning("\The [src] can only be used on closets."))
|
|
return
|
|
|
|
var/config_error
|
|
|
|
if(istype(A,/obj/structure/closet/secure_closet))
|
|
var/obj/structure/closet/secure_closet/F = A
|
|
if(F.broken)
|
|
to_chat(user, span_warning("\The [src] cannot paint broken closets."))
|
|
return
|
|
|
|
var/list/colour_data = colours_secure[colour_secure]
|
|
if(!islist(colour_data))
|
|
config_error = 1
|
|
if(!config_error)
|
|
F.icon_opened = colour_data["open"]
|
|
F.icon_closed = colour_data["closed"]
|
|
F.icon_locked = colour_data["locked"]
|
|
F.icon_broken = colour_data["broken"]
|
|
F.icon_off = colour_data["off"]
|
|
F.update_icon()
|
|
|
|
else
|
|
var/obj/structure/closet/F = A
|
|
var/list/colour_data = colours[colour]
|
|
if(!islist(colour_data))
|
|
config_error = 1
|
|
if(!config_error)
|
|
F.icon_opened = colour_data["open"]
|
|
F.icon_closed = colour_data["closed"]
|
|
F.update_icon()
|
|
|
|
if(config_error)
|
|
to_chat(user, span_warning("\The [src] flashes an error light. You might need to reconfigure it."))
|
|
return
|
|
|
|
/obj/item/closet_painter/attack_self(var/mob/user)
|
|
var/choice = tgui_alert(user, "Do you wish to change the regular closet color or the secure closet color?", "Color Selection", list("Regular Closet Colour","Cancel","Secure Closet Colour"))
|
|
if(choice == "Regular Closet Colour")
|
|
choose_colour()
|
|
else if(choice == "Secure Closet Colour")
|
|
choose_colour_secure()
|
|
|
|
/obj/item/closet_painter/examine(mob/user)
|
|
. = ..()
|
|
. += "It is configured to produce the '[colour]' paint scheme or the '[colour_secure]' secure closet paint scheme."
|
|
|
|
/obj/item/closet_painter/verb/choose_colour()
|
|
set name = "Choose Colour"
|
|
set desc = "Choose a regular closet painter colour."
|
|
set category = "Object"
|
|
set src in usr
|
|
|
|
if(usr.incapacitated())
|
|
return
|
|
|
|
var/new_colour = tgui_input_list(usr, "Select a color:", "Color Selection", colours)
|
|
if(new_colour && !isnull(colours[new_colour]))
|
|
colour = new_colour
|
|
to_chat(usr, span_notice("You set \the [src] regular closet colour to '[colour]'."))
|
|
|
|
/obj/item/closet_painter/verb/choose_colour_secure()
|
|
set name = "Choose Secure Colour"
|
|
set desc = "Choose a secure closet painter colour."
|
|
set category = "Object"
|
|
set src in usr
|
|
|
|
if(usr.incapacitated())
|
|
return
|
|
|
|
var/new_colour_secure = tgui_input_list(usr, "Select a color:", "Color Selection", colours_secure)
|
|
if(new_colour_secure && !isnull(colours_secure[new_colour_secure]))
|
|
colour_secure = new_colour_secure
|
|
to_chat(usr, span_notice("You set \the [src] secure closet colour to '[colour_secure]'."))
|