mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Replace captain's garment bag with CapDrobe (captain's dresser-wardrobe). (#30885)
* Replace captain's garment bag with CapDrobe. * Incorporate feedback - Restore chef vendor items from a stash apply gone wrong - Make captain's gloves free - Make basic captain wardrobe items more numerous - Correct CapDrobe broken icon state name * Fix small map error. * Convert 'capdrobe' to a lockable dresser-wardrobe. * Notify silicons of items they remove from wardrobes. * Apply recommendations from review.
This commit is contained in:
@@ -23,39 +23,6 @@
|
||||
/obj/item/clothing/gloves/color/black/krav_maga,
|
||||
)
|
||||
|
||||
/obj/item/storage/bag/garment/captain
|
||||
name = "captain's garment bag"
|
||||
desc = "A bag for storing extra clothes and shoes. This one belongs to the captain."
|
||||
|
||||
/obj/item/storage/bag/garment/captain/populate_contents()
|
||||
new /obj/item/clothing/head/caphat(src)
|
||||
new /obj/item/clothing/head/caphat/parade(src)
|
||||
new /obj/item/clothing/head/caphat/parade/white(src)
|
||||
new /obj/item/clothing/head/beret/captain(src)
|
||||
new /obj/item/clothing/head/beret/captain/white(src)
|
||||
new /obj/item/clothing/head/crown/fancy(src)
|
||||
new /obj/item/clothing/neck/cloak/captain(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/jacket(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/jacket/tunic(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/coat(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/coat/white(src)
|
||||
new /obj/item/clothing/neck/cloak/captain_mantle(src)
|
||||
new /obj/item/clothing/under/rank/captain(src)
|
||||
new /obj/item/clothing/under/rank/captain/skirt(src)
|
||||
new /obj/item/clothing/under/rank/captain/white(src)
|
||||
new /obj/item/clothing/under/rank/captain/skirt/white(src)
|
||||
new /obj/item/clothing/under/rank/captain/parade(src)
|
||||
new /obj/item/clothing/under/rank/captain/dress(src)
|
||||
new /obj/item/clothing/gloves/color/captain(src)
|
||||
new /obj/item/clothing/shoes/brown(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
new /obj/item/clothing/glasses/sunglasses(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/clothing/glasses/hud/health/sunglasses(src)
|
||||
new /obj/item/clothing/head/helmet/space/plasmaman/captain(src)
|
||||
new /obj/item/clothing/under/plasmaman/captain(src)
|
||||
|
||||
/obj/item/storage/bag/garment/head_of_personnel
|
||||
name = "head of personnel's garment bag"
|
||||
desc = "A bag for storing extra clothes and shoes. This one belongs to the head of personnel."
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
new /obj/item/storage/backpack/satchel_cap(src)
|
||||
new /obj/item/book/manual/wiki/faxes(src)
|
||||
new /obj/item/storage/backpack/duffel/captain(src)
|
||||
new /obj/item/storage/bag/garment/captain(src)
|
||||
new /obj/item/cartridge/captain(src)
|
||||
new /obj/item/radio/headset/heads/captain/alt(src)
|
||||
new /obj/item/storage/belt/sheath/saber(src)
|
||||
|
||||
@@ -6,57 +6,60 @@
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/dresser/attack_hand(mob/user as mob)
|
||||
/obj/structure/dresser/attack_hand(mob/user)
|
||||
change_undergarments(user)
|
||||
|
||||
/obj/structure/dresser/proc/change_undergarments(mob/user)
|
||||
if(!Adjacent(user))//no tele-grooming
|
||||
return
|
||||
if(ishuman(user) && anchored)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(!(ishuman(user) && anchored))
|
||||
return
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
var/choice = tgui_input_list(user, "Underwear, Undershirt, or Socks?", "Changing", list("Underwear","Undershirt","Socks"))
|
||||
var/choice = tgui_input_list(user, "Underwear, Undershirt, or Socks?", "Changing", list("Underwear", "Undershirt", "Socks"))
|
||||
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
switch(choice)
|
||||
if("Underwear")
|
||||
var/list/valid_underwear = list()
|
||||
for(var/underwear in GLOB.underwear_list)
|
||||
var/datum/sprite_accessory/S = GLOB.underwear_list[underwear]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_underwear[underwear] = GLOB.underwear_list[underwear]
|
||||
var/new_underwear = tgui_input_list(user, "Choose your underwear:", "Changing", valid_underwear)
|
||||
if(new_underwear)
|
||||
H.underwear = new_underwear
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
switch(choice)
|
||||
if("Underwear")
|
||||
var/list/valid_underwear = list()
|
||||
for(var/underwear in GLOB.underwear_list)
|
||||
var/datum/sprite_accessory/S = GLOB.underwear_list[underwear]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_underwear[underwear] = GLOB.underwear_list[underwear]
|
||||
var/new_underwear = tgui_input_list(user, "Choose your underwear:", "Changing", valid_underwear)
|
||||
if(new_underwear)
|
||||
H.underwear = new_underwear
|
||||
|
||||
if("Undershirt")
|
||||
var/list/valid_undershirts = list()
|
||||
for(var/undershirt in GLOB.undershirt_list)
|
||||
var/datum/sprite_accessory/S = GLOB.undershirt_list[undershirt]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt]
|
||||
for(var/config in GLOB.configuration.custom_sprites.fluff_undershirts)
|
||||
if(user.ckey in config["ckeys"])
|
||||
valid_undershirts[config["name"]] = GLOB.undershirt_full_list[config["name"]]
|
||||
sortTim(valid_undershirts, GLOBAL_PROC_REF(cmp_text_asc))
|
||||
var/new_undershirt = tgui_input_list(user, "Choose your undershirt:", "Changing", valid_undershirts)
|
||||
if(new_undershirt)
|
||||
H.undershirt = new_undershirt
|
||||
if("Undershirt")
|
||||
var/list/valid_undershirts = list()
|
||||
for(var/undershirt in GLOB.undershirt_list)
|
||||
var/datum/sprite_accessory/S = GLOB.undershirt_list[undershirt]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_undershirts[undershirt] = GLOB.undershirt_list[undershirt]
|
||||
for(var/config in GLOB.configuration.custom_sprites.fluff_undershirts)
|
||||
if(user.ckey in config["ckeys"])
|
||||
valid_undershirts[config["name"]] = GLOB.undershirt_full_list[config["name"]]
|
||||
sortTim(valid_undershirts, GLOBAL_PROC_REF(cmp_text_asc))
|
||||
var/new_undershirt = tgui_input_list(user, "Choose your undershirt:", "Changing", valid_undershirts)
|
||||
if(new_undershirt)
|
||||
H.undershirt = new_undershirt
|
||||
|
||||
if("Socks")
|
||||
var/list/valid_sockstyles = list()
|
||||
for(var/sockstyle in GLOB.socks_list)
|
||||
var/datum/sprite_accessory/S = GLOB.socks_list[sockstyle]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle]
|
||||
var/new_socks = tgui_input_list(user, "Choose your socks:", "Changing", valid_sockstyles)
|
||||
if(new_socks)
|
||||
H.socks = new_socks
|
||||
|
||||
add_fingerprint(H)
|
||||
H.update_body()
|
||||
if("Socks")
|
||||
var/list/valid_sockstyles = list()
|
||||
for(var/sockstyle in GLOB.socks_list)
|
||||
var/datum/sprite_accessory/S = GLOB.socks_list[sockstyle]
|
||||
if(!(H.dna.species.name in S.species_allowed))
|
||||
continue
|
||||
valid_sockstyles[sockstyle] = GLOB.socks_list[sockstyle]
|
||||
var/new_socks = tgui_input_list(user, "Choose your socks:", "Changing", valid_sockstyles)
|
||||
if(new_socks)
|
||||
H.socks = new_socks
|
||||
|
||||
add_fingerprint(H)
|
||||
H.update_body()
|
||||
|
||||
/obj/structure/dresser/crowbar_act(mob/user, obj/item/I)
|
||||
. = TRUE
|
||||
@@ -77,3 +80,133 @@
|
||||
mat_drop = 30
|
||||
new /obj/item/stack/sheet/wood(drop_location(), mat_drop)
|
||||
..()
|
||||
|
||||
/obj/structure/dresser/wardrobe
|
||||
name = "wardrobe"
|
||||
desc = "A good place to store all your clothes."
|
||||
icon_state = "wardrobe"
|
||||
var/locked_overlay = "wardrobe_locked"
|
||||
/// List of objects which this item can store (if set, it can't store anything else)
|
||||
var/list/can_hold = list(/obj/item/clothing)
|
||||
/// List of objects which this item can't store (can make exceptions to can_hold)
|
||||
var/list/cant_hold = list(
|
||||
/obj/item/storage,
|
||||
/obj/item/clothing/suit/space,
|
||||
/obj/item/clothing/mask/cigarette,
|
||||
/obj/item/clothing/mask/facehugger, //Why would you do this
|
||||
/obj/item/clothing/accessory/medal,
|
||||
/obj/item/clothing/suit/armor/riot,
|
||||
/obj/item/clothing/suit/armor/reactive,
|
||||
/obj/item/clothing/suit/armor/laserproof,
|
||||
/obj/item/clothing/suit/hooded/ablative,
|
||||
/obj/item/clothing/gloves/color/black/krav_maga
|
||||
)
|
||||
var/locked = FALSE
|
||||
|
||||
/obj/structure/dresser/wardrobe/Initialize(mapload)
|
||||
. = ..()
|
||||
update_appearance(UPDATE_OVERLAYS)
|
||||
|
||||
/obj/structure/dresser/wardrobe/update_overlays()
|
||||
. = ..()
|
||||
. += locked ? locked_overlay : null
|
||||
|
||||
/obj/structure/dresser/wardrobe/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's currently [locked ? null : "un"]locked.</span>"
|
||||
|
||||
/obj/structure/dresser/wardrobe/AltShiftClick(mob/user)
|
||||
change_undergarments(user)
|
||||
|
||||
/obj/structure/dresser/wardrobe/AltClick(mob/user)
|
||||
toggle_lock(user)
|
||||
|
||||
/obj/structure/dresser/wardrobe/attack_hand(mob/user)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return CONTINUE_ATTACK
|
||||
if(locked)
|
||||
toggle_lock(user)
|
||||
return
|
||||
if(!length(contents))
|
||||
return ..()
|
||||
if(!Adjacent(user))
|
||||
return ..()
|
||||
var/obj/item/item_to_retrieve = tgui_input_list(user, "What would you like to take out?", src, contents)
|
||||
if(!item_to_retrieve)
|
||||
return
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
item_to_retrieve.forceMove(loc)
|
||||
to_chat(user, "<span class='notice'>You take [item_to_retrieve] out of [src].</span>")
|
||||
if(issilicon(user))
|
||||
return
|
||||
user.put_in_hands(item_to_retrieve)
|
||||
var/mob/living/carbon/human/H = user
|
||||
add_fingerprint(H)
|
||||
|
||||
/obj/structure/dresser/wardrobe/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(locked)
|
||||
toggle_lock(user)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
if(!Adjacent(user))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
if(!is_type_in_list(used, can_hold) || is_type_in_list(used, cant_hold))
|
||||
to_chat(user, "<span class='notice'>You can't put [used] in [src]. It doesn't fit.</span>")
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
if(!user.drop_item())
|
||||
to_chat(user, "<span class='warning'>[used] is stuck to you!</span>")
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
used.forceMove(src)
|
||||
var/mob/living/carbon/human/H = user
|
||||
add_fingerprint(H)
|
||||
to_chat(user, "<span class='notice'>You put [used] in [src].</span>")
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
/obj/structure/dresser/wardrobe/proc/toggle_lock(mob/user)
|
||||
if(!allowed(user))
|
||||
to_chat(user, "<span class='notice'>Access Denied.</span>")
|
||||
return
|
||||
locked = !locked
|
||||
visible_message("<span class='notice'>[user] [locked ? null : "un"]lock[user.p_s()] [src].</span>")
|
||||
var/mob/living/carbon/human/H = user
|
||||
add_fingerprint(H)
|
||||
update_appearance(UPDATE_OVERLAYS)
|
||||
|
||||
/obj/structure/dresser/wardrobe/captain
|
||||
name = "Captain's Wardrobe"
|
||||
desc = "All the clothes you need to lead a station."
|
||||
icon_state = "wardrobe_captain"
|
||||
locked = TRUE
|
||||
req_access = list(ACCESS_CAPTAIN)
|
||||
|
||||
/obj/structure/dresser/wardrobe/captain/Initialize(mapload)
|
||||
. = ..()
|
||||
new /obj/item/clothing/head/caphat(src)
|
||||
new /obj/item/clothing/head/caphat/parade(src)
|
||||
new /obj/item/clothing/head/caphat/parade/white(src)
|
||||
new /obj/item/clothing/head/beret/captain(src)
|
||||
new /obj/item/clothing/head/beret/captain/white(src)
|
||||
new /obj/item/clothing/head/crown/fancy(src)
|
||||
new /obj/item/clothing/neck/cloak/captain(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/jacket(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/jacket/tunic(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/coat(src)
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/coat/white(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/captain(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/captain/white(src)
|
||||
new /obj/item/clothing/neck/cloak/captain_mantle(src)
|
||||
new /obj/item/clothing/under/rank/captain(src)
|
||||
new /obj/item/clothing/under/rank/captain/skirt(src)
|
||||
new /obj/item/clothing/under/rank/captain/white(src)
|
||||
new /obj/item/clothing/under/rank/captain/skirt/white(src)
|
||||
new /obj/item/clothing/under/rank/captain/parade(src)
|
||||
new /obj/item/clothing/under/rank/captain/dress(src)
|
||||
new /obj/item/clothing/gloves/color/captain(src)
|
||||
new /obj/item/clothing/shoes/brown(src)
|
||||
new /obj/item/clothing/shoes/laceup(src)
|
||||
new /obj/item/clothing/glasses/sunglasses(src)
|
||||
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
|
||||
new /obj/item/clothing/glasses/hud/health/sunglasses(src)
|
||||
new /obj/item/clothing/head/helmet/space/plasmaman/captain(src)
|
||||
new /obj/item/clothing/under/plasmaman/captain(src)
|
||||
|
||||
Reference in New Issue
Block a user