Bedsheet ghost costumes (#35253)
* hoodie rework * Bedsheet ghost: forced hoods, backpack hiders * placeholder hoodies might have been a dumb idea * Almost forgot the most important part * spoopy holiday description check * crafting * cameras don't like nonexistent icons * cult hood polish * more polish * removing hoods from xenoarch * tying loose ends (loose hoods) --------- Co-authored-by: DeityLink <logistics256@gmail.com>
@@ -330,15 +330,15 @@ var/MAX_EXPLOSION_RANGE = 32
|
||||
|
||||
// bitflags for clothing parts
|
||||
|
||||
#define FULL_TORSO (UPPER_TORSO|LOWER_TORSO)
|
||||
#define FACE (EYES|MOUTH|BEARD) //38912
|
||||
#define FULL_TORSO (UPPER_TORSO|LOWER_TORSO) // 6
|
||||
#define FACE (EYES|MOUTH|BEARD) // 38912
|
||||
#define BEARD 32768
|
||||
#define FULL_HEAD (HEAD|EYES|MOUTH|EARS)
|
||||
#define FULL_HEAD (HEAD|EYES|MOUTH|EARS) // 14337
|
||||
#define LEGS (LEG_LEFT|LEG_RIGHT) // 24
|
||||
#define FEET (FOOT_LEFT|FOOT_RIGHT) //96
|
||||
#define ARMS (ARM_LEFT|ARM_RIGHT) //384
|
||||
#define HANDS (HAND_LEFT|HAND_RIGHT) //1536
|
||||
#define FULL_BODY (FULL_HEAD|HANDS|FULL_TORSO|ARMS|FEET|LEGS)
|
||||
#define FEET (FOOT_LEFT|FOOT_RIGHT) // 96
|
||||
#define ARMS (ARM_LEFT|ARM_RIGHT) // 384
|
||||
#define HANDS (HAND_LEFT|HAND_RIGHT) // 1536
|
||||
#define FULL_BODY (FULL_HEAD|HANDS|FULL_TORSO|ARMS|FEET|LEGS) // 16383
|
||||
#define IGNORE_INV 16384 // Don't make stuff invisible
|
||||
|
||||
|
||||
@@ -346,7 +346,7 @@ var/MAX_EXPLOSION_RANGE = 32
|
||||
// Used in body_parts_covered
|
||||
|
||||
#define HIDEGLOVES HANDS
|
||||
#define HIDEJUMPSUIT (ARMS|LEGS|FULL_TORSO)
|
||||
#define HIDEJUMPSUIT (ARMS|LEGS|FULL_TORSO) // 414
|
||||
#define HIDESHOES FEET
|
||||
#define HIDEMASK FACE
|
||||
#define HIDEEARS EARS
|
||||
@@ -355,8 +355,9 @@ var/MAX_EXPLOSION_RANGE = 32
|
||||
#define HIDEHEADHAIR 65536
|
||||
#define MASKHEADHAIR 131072
|
||||
#define HIDEBEARDHAIR BEARD
|
||||
#define HIDEHAIR (HIDEHEADHAIR|HIDEBEARDHAIR)//98304
|
||||
#define HIDEHAIR (HIDEHEADHAIR|HIDEBEARDHAIR) // 98304
|
||||
#define HIDESUITSTORAGE LOWER_TORSO
|
||||
#define HIDEBACK 262144
|
||||
|
||||
// bitflags for the percentual amount of protection a piece of clothing which covers the body part offers.
|
||||
// Used with human/proc/get_heat_protection() and human/proc/get_cold_protection() as well as calculate_affecting_pressure() now
|
||||
|
||||
@@ -1322,6 +1322,9 @@ var/list/arcane_tomes = list()
|
||||
species_fit = list(VOX_SHAPED, INSECT_SHAPED, PLASMAMAN_SHAPED)
|
||||
clothing_flags = PLASMAGUARD|CONTAINPLASMAMAN|ONESIZEFITSALL
|
||||
mech_flags = MECH_SCAN_FAIL
|
||||
hood = new /obj/item/clothing/head/culthood()
|
||||
auto_hood = TRUE
|
||||
hood_suit_name = "robes"
|
||||
|
||||
//plasmaman stuff
|
||||
var/next_extinguish=0
|
||||
@@ -1332,6 +1335,7 @@ var/list/arcane_tomes = list()
|
||||
desc = "A set of warm armored robes worn by the followers of Nar-Sie."
|
||||
icon_state = "cultrobes_snow"
|
||||
heat_conductivity = SPACESUIT_HEAT_CONDUCTIVITY
|
||||
hood = new /obj/item/clothing/head/culthood/snow()
|
||||
|
||||
/obj/item/clothing/suit/cultrobes/get_cult_power()
|
||||
return 50
|
||||
@@ -1506,6 +1510,7 @@ var/list/arcane_tomes = list()
|
||||
icon_state = "cultrobes_old"
|
||||
item_state = "cultrobes_old"
|
||||
species_fit = list()
|
||||
hood = new /obj/item/clothing/head/culthood/old()
|
||||
|
||||
/obj/item/clothing/head/magus
|
||||
name = "magus helm"
|
||||
|
||||
@@ -2085,14 +2085,14 @@ var/list/seer_rituals = list()
|
||||
user_slot.forceMove(BT)
|
||||
|
||||
if(snow)
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/head/culthood/snow(target), slot_head)
|
||||
if (ismonkey(target))
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/head/culthood/snow(target), slot_head) // hood now comes from the robes for humans
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/monkeyclothes/cultrobes/snow(target), slot_w_uniform)
|
||||
else
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/suit/cultrobes/snow(target), slot_wear_suit)
|
||||
else
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/head/culthood(target), slot_head)
|
||||
if (ismonkey(target))
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/head/culthood(target), slot_head) // hood now comes from the robes for humans
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/monkeyclothes/cultrobes(target), slot_w_uniform)
|
||||
else
|
||||
target.equip_to_slot_or_drop(new /obj/item/clothing/suit/cultrobes(target), slot_wear_suit)
|
||||
|
||||
@@ -68,6 +68,8 @@
|
||||
allowed = list(/obj/item/weapon/tome_legacy,/obj/item/weapon/melee/legacy_cultblade)
|
||||
armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0)
|
||||
siemens_coefficient = 0
|
||||
hood = new /obj/item/clothing/head/legacy_culthood()
|
||||
hood_suit_name = "robes"
|
||||
|
||||
/obj/item/clothing/suit/legacy_cultrobes/cultify()
|
||||
return
|
||||
|
||||
@@ -354,7 +354,6 @@
|
||||
slot_w_uniform_str = /obj/item/clothing/under/rank/clown,
|
||||
slot_shoes_str = /obj/item/clothing/shoes/clown_shoes,
|
||||
slot_gloves_str = /obj/item/clothing/gloves/black,
|
||||
slot_head_str = /obj/item/clothing/head/chaplain_hood,
|
||||
slot_ears_str = /obj/item/device/radio/headset,
|
||||
slot_glasses_str = /obj/item/clothing/glasses/thermal/monocle,
|
||||
slot_wear_suit_str = /obj/item/clothing/suit/chaplain_hoodie,
|
||||
|
||||
@@ -1284,7 +1284,6 @@ var/list/all_bible_styles = list(
|
||||
bookstyle = "Slab"
|
||||
|
||||
/datum/religion/clockworkcult/equip_chaplain(var/mob/living/carbon/human/H)
|
||||
H.equip_or_collect(new /obj/item/clothing/head/clockwork_hood(H), slot_head)
|
||||
H.equip_or_collect(new /obj/item/clothing/suit/clockwork_robes(H), slot_wear_suit)
|
||||
H.equip_or_collect(new /obj/item/clothing/shoes/clockwork_boots(H), slot_shoes)
|
||||
|
||||
|
||||
@@ -493,6 +493,7 @@ var/list/all_supply_groups = list("Supplies","Clothing","Security","Hospitality"
|
||||
/obj/item/clothing/head/snake,
|
||||
/obj/item/clothing/head/franken_bolt,
|
||||
/obj/item/clothing/head/alien_antenna,
|
||||
/obj/item/clothing/suit/bedsheet_ghost,
|
||||
|
||||
//Slasher set
|
||||
/obj/item/toy/chainsaw,
|
||||
@@ -504,7 +505,6 @@ var/list/all_supply_groups = list("Supplies","Clothing","Security","Hospitality"
|
||||
|
||||
//Reaper set
|
||||
/obj/item/clothing/mask/gas/grim_reaper,
|
||||
/obj/item/clothing/head/chaplain_hood,
|
||||
/obj/item/clothing/suit/reaper_robes,
|
||||
/obj/item/toy/scythe,
|
||||
|
||||
@@ -605,7 +605,6 @@ var/list/all_supply_groups = list("Supplies","Clothing","Security","Hospitality"
|
||||
/obj/item/clothing/head/fez,
|
||||
/obj/item/clothing/head/flatcap,
|
||||
/obj/item/clothing/head/greenbandana,
|
||||
/obj/item/clothing/head/hasturhood,
|
||||
/obj/item/clothing/head/headband,
|
||||
/obj/item/clothing/head/libertyhat,
|
||||
/obj/item/clothing/head/mailman,
|
||||
@@ -618,7 +617,6 @@ var/list/all_supply_groups = list("Supplies","Clothing","Security","Hospitality"
|
||||
/obj/item/clothing/head/ushanka,
|
||||
/obj/item/clothing/head/wizard/magus/fake,
|
||||
/obj/item/clothing/head/wizard/clown/fake,
|
||||
/obj/item/clothing/head/wizard/necro/fake
|
||||
)
|
||||
|
||||
/datum/supply_packs/randomised/cheap_glasses
|
||||
|
||||
@@ -353,7 +353,6 @@
|
||||
new /obj/item/clothing/suit/wizrobe/red(get_turf(src))
|
||||
new /obj/item/clothing/shoes/sandal(get_turf(src))
|
||||
if("necromancer")
|
||||
new /obj/item/clothing/head/wizard/necro(get_turf(src))
|
||||
new /obj/item/clothing/suit/wizrobe/necro(get_turf(src))
|
||||
new /obj/item/clothing/shoes/sandal(get_turf(src))
|
||||
if("clown")
|
||||
@@ -476,7 +475,6 @@
|
||||
new /obj/item/clothing/suit/wizrobe/red(get_turf(src))
|
||||
new /obj/item/clothing/shoes/sandal(get_turf(src))
|
||||
if("necromancer")
|
||||
new /obj/item/clothing/head/wizard/necro(get_turf(src))
|
||||
new /obj/item/clothing/suit/wizrobe/necro(get_turf(src))
|
||||
new /obj/item/clothing/shoes/sandal(get_turf(src))
|
||||
if("clown")
|
||||
|
||||
@@ -2306,7 +2306,7 @@ var/global/num_vending_terminals = 1
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/marisa_wiz = 5,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/hallowiz = 5,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/magician = 5,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/necromancer = 5,
|
||||
/obj/item/clothing/suit/wizrobe/necro = 5,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/pharaoh = 5,
|
||||
/obj/item/clothing/suit/storage/wintercoat/druid = 5,
|
||||
/obj/item/clothing/head/wizard/magus = 5,
|
||||
@@ -2636,7 +2636,7 @@ var/global/num_vending_terminals = 1
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/liberty = AUTO_DROBE_DEFAULT_STOCK,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/aviator = AUTO_DROBE_DEFAULT_STOCK,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/proto = AUTO_DROBE_DEFAULT_STOCK,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/hastur = AUTO_DROBE_DEFAULT_STOCK,
|
||||
/obj/item/clothing/suit/hastur = AUTO_DROBE_DEFAULT_STOCK,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/owl = AUTO_DROBE_DEFAULT_STOCK,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/pirateoutfit = AUTO_DROBE_DEFAULT_STOCK,
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/lordadmiral = AUTO_DROBE_DEFAULT_STOCK,
|
||||
@@ -3191,7 +3191,6 @@ var/global/num_vending_terminals = 1
|
||||
/obj/item/clothing/suit/nun = 2,
|
||||
/obj/item/clothing/head/nun_hood = 2,
|
||||
/obj/item/clothing/suit/chaplain_hoodie = 2,
|
||||
/obj/item/clothing/head/chaplain_hood = 2,
|
||||
/obj/item/clothing/suit/holidaypriest = 2,
|
||||
/obj/item/clothing/head/kippah/kippah_random = 5,
|
||||
/obj/item/clothing/under/wedding/bride_white = 2,
|
||||
@@ -3214,7 +3213,6 @@ var/global/num_vending_terminals = 1
|
||||
/obj/item/weapon/storage/fancy/collection_plate = 1,
|
||||
)
|
||||
contraband = list(
|
||||
/obj/item/clothing/head/clockwork_hood = 2,
|
||||
/obj/item/clothing/suit/clockwork_robes = 2,
|
||||
/obj/item/clothing/shoes/clockwork_boots = 2,
|
||||
/obj/item/clothing/suit/kimono/ronin = 2
|
||||
|
||||
@@ -1083,14 +1083,6 @@
|
||||
new /obj/item/clothing/shoes/protoboots(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/hastur
|
||||
name = "Hastur outfit box"
|
||||
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/hastur/New()
|
||||
new /obj/item/clothing/head/hasturhood(src)
|
||||
new /obj/item/clothing/suit/hastur(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/owl
|
||||
name = "Owl outfit box"
|
||||
|
||||
@@ -1226,14 +1218,6 @@
|
||||
new /obj/item/clothing/shoes/sandal/marisa/leather(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/necromancer
|
||||
name = "Necromancer robe box"
|
||||
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/necromancer/New()
|
||||
new /obj/item/clothing/head/wizard/necro(src)
|
||||
new /obj/item/clothing/suit/wizrobe/necro(src)
|
||||
..()
|
||||
|
||||
/obj/item/weapon/storage/box/smartbox/clothing_box/pharaoh
|
||||
name = "Pharaoh robe box"
|
||||
|
||||
|
||||
@@ -135,7 +135,6 @@
|
||||
new /obj/item/weapon/dnainjector/nofail/jumpy(src)
|
||||
new /obj/item/weapon/spellbook/oneuse/bound_object(src)
|
||||
new /obj/item/weapon/spellbook/oneuse/lightning/sith(src) //UNLIMITED POWER, requires wizard garb
|
||||
new /obj/item/clothing/head/sith(src)
|
||||
new /obj/item/clothing/suit/sith(src)
|
||||
new /obj/item/clothing/shoes/sandal(src)
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ LINEN BINS
|
||||
toolsounds = list("rustle")
|
||||
species_fit = list(VOX_SHAPED)
|
||||
|
||||
//cutting the bedsheet into rags
|
||||
//cutting the bedsheet into rags and other things
|
||||
/obj/item/weapon/bedsheet/attackby(var/obj/item/I, mob/user as mob)
|
||||
var/cut_time=0
|
||||
if(I.is_sharp())
|
||||
@@ -32,12 +32,19 @@ LINEN BINS
|
||||
if(do_after(user, src, cut_time))
|
||||
if(!src)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You finish cutting \the [src] into rags.</span>")
|
||||
var/turf/location = get_turf(src)
|
||||
for(var/x=0; x<=8; x++)
|
||||
var/obj/item/weapon/reagent_containers/glass/rag/S = new/obj/item/weapon/reagent_containers/glass/rag/(location)
|
||||
S.pixel_x = rand(-5, 5) * PIXEL_MULTIPLIER
|
||||
S.pixel_y = rand(-5, 5) * PIXEL_MULTIPLIER
|
||||
|
||||
if(user.zone_sel.selecting == TARGET_EYES)
|
||||
to_chat(user, "<span class='notice'>You finish cutting eye holes into \the [src].</span>")
|
||||
user.put_in_hands(new /obj/item/clothing/suit/bedsheet_ghost())
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You finish cutting \the [src] into rags.</span>")
|
||||
var/turf/location = get_turf(src)
|
||||
for(var/x=0; x<=8; x++)
|
||||
var/obj/item/weapon/reagent_containers/glass/rag/S = new/obj/item/weapon/reagent_containers/glass/rag/(location)
|
||||
S.pixel_x = rand(-5, 5) * PIXEL_MULTIPLIER
|
||||
S.pixel_y = rand(-5, 5) * PIXEL_MULTIPLIER
|
||||
|
||||
qdel(src)
|
||||
|
||||
//todo: hold one if possible?
|
||||
|
||||
@@ -16,10 +16,8 @@
|
||||
/obj/item/clothing/suit/nun,
|
||||
/obj/item/clothing/head/nun_hood,
|
||||
/obj/item/clothing/suit/chaplain_hoodie,
|
||||
/obj/item/clothing/head/chaplain_hood,
|
||||
/obj/item/clothing/suit/holidaypriest,
|
||||
/obj/item/clothing/under/wedding/bride_white,
|
||||
/obj/item/clothing/head/hasturhood,
|
||||
/obj/item/clothing/suit/hastur,
|
||||
/obj/item/clothing/suit/unathi/robe,
|
||||
/obj/item/clothing/head/wizard/amp, //This will need to be removed when/if psychic wizards are properly implemented
|
||||
|
||||
@@ -66,7 +66,6 @@
|
||||
/obj/item/clothing/suit/nun,
|
||||
/obj/item/clothing/head/nun_hood,
|
||||
/obj/item/clothing/suit/chaplain_hoodie,
|
||||
/obj/item/clothing/head/chaplain_hood,
|
||||
/obj/item/clothing/suit/holidaypriest,
|
||||
/obj/item/clothing/under/wedding/bride_white,
|
||||
/obj/item/weapon/storage/backpack/cultpack,
|
||||
|
||||
@@ -413,6 +413,25 @@
|
||||
var/stack_depth = 0
|
||||
var/blood_overlay_type = "hat"
|
||||
|
||||
var/obj/item/clothing/suit/hood_suit = null // the suit this hood belongs to
|
||||
|
||||
/obj/item/clothing/head/Destroy()
|
||||
if(hood_suit)
|
||||
hood_suit.hood = null
|
||||
hood_suit = null
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/pickup(var/mob/living/carbon/human/user)
|
||||
if(hood_suit && istype(hood_suit) && user.get_item_by_slot(slot_wear_suit) == hood_suit)
|
||||
hood_suit.hooddown(user, unequip = 0)
|
||||
user.drop_from_inventory(src)
|
||||
forceMove(hood_suit)
|
||||
if (hood_suit.force_hood)
|
||||
user.u_equip(hood_suit)
|
||||
user.put_in_hands(hood_suit)
|
||||
else
|
||||
to_chat(user, "You put the hood down.")
|
||||
|
||||
var/global/hatStacking = 0
|
||||
var/global/maxStackDepth = 10
|
||||
|
||||
@@ -635,6 +654,111 @@ var/global/maxStackDepth = 10
|
||||
clothing_flags = CANEXTINGUISH
|
||||
sterility = 30
|
||||
|
||||
// Hood stuff
|
||||
var/obj/item/clothing/head/hood // Headgear to be used as hood, if any.
|
||||
// Doesn't actually need a 'icons/mob/head.dmi' sprite if the hood_up_icon_state
|
||||
// already provides the visuals for that (eg: most wintercoats in wintercoat.dm)
|
||||
var/is_hood_up = FALSE
|
||||
var/hood_suit_name = "coat" // What to call these garments when talking hood stuff. eg: coat, robes, hoodie...
|
||||
|
||||
var/hood_down_icon_state = null // Defaults to the initial icon_state if not set
|
||||
var/hood_up_icon_state = null // Defaults to the initial icon_state if not set
|
||||
|
||||
var/force_hood = FALSE // Automatically equips the hood when equipping the suit. Removing the hood will remove the suit.
|
||||
var/auto_hood = FALSE // Automatically equips the hood when equipping the suit.
|
||||
|
||||
/obj/item/clothing/suit/New()
|
||||
if (hood)
|
||||
hood.hood_suit = src
|
||||
|
||||
if (!force_hood)
|
||||
actions_types |= list(/datum/action/item_action/toggle_hood)
|
||||
|
||||
if (wizard_garb)
|
||||
hood.wizard_garb = TRUE
|
||||
|
||||
if (!hood_down_icon_state)
|
||||
hood_down_icon_state = icon_state
|
||||
|
||||
if (!hood_up_icon_state)
|
||||
hood_up_icon_state = icon_state
|
||||
|
||||
icon_state = hood_down_icon_state
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/Destroy()
|
||||
if (hood)
|
||||
QDEL_NULL(hood)
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/proc/togglehood()
|
||||
set name = "Toggle Hood"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if (!hood)
|
||||
return
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/user = usr
|
||||
if(!istype(user))
|
||||
return
|
||||
if(user.get_item_by_slot(slot_wear_suit) != src)
|
||||
to_chat(user, "You have to put the [hood_suit_name] on first.")
|
||||
return
|
||||
if(!is_hood_up && !user.get_item_by_slot(slot_head) && hood.mob_can_equip(user,slot_head))
|
||||
to_chat(user, "You put the hood up.")
|
||||
hoodup(user)
|
||||
else if(user.get_item_by_slot(slot_head) == hood)
|
||||
hooddown(user)
|
||||
to_chat(user, "You put the hood down.")
|
||||
else
|
||||
to_chat(user, "You try to put your hood up, but there is something in the way.")
|
||||
return
|
||||
user.update_inv_wear_suit()
|
||||
|
||||
/obj/item/clothing/suit/attack_self()
|
||||
if (hood && !force_hood)
|
||||
togglehood()
|
||||
|
||||
/obj/item/clothing/suit/proc/hoodup(var/mob/living/carbon/human/user)
|
||||
user.equip_to_slot(hood, slot_head)
|
||||
icon_state = hood_up_icon_state
|
||||
is_hood_up = TRUE
|
||||
user.update_inv_wear_suit()
|
||||
|
||||
/obj/item/clothing/suit/proc/hooddown(var/mob/living/carbon/human/user, var/unequip = 1)
|
||||
icon_state = hood_down_icon_state
|
||||
if(unequip)
|
||||
user.u_equip(user.head,0)
|
||||
is_hood_up = FALSE
|
||||
user.update_inv_wear_suit()
|
||||
|
||||
/obj/item/clothing/suit/equipped(var/mob/user, var/slot, hand_index = 0)
|
||||
..()
|
||||
if (hood && (force_hood || auto_hood) && !hand_index)
|
||||
if (auto_hood && (user.get_item_by_slot(slot_head) && user.get_item_by_slot(slot_head) != hood))
|
||||
return//we want to still be able to equip the suit even if the hood is blocked
|
||||
hoodup(user)
|
||||
|
||||
/obj/item/clothing/suit/unequipped(var/mob/living/carbon/human/user)
|
||||
..()
|
||||
if(hood && istype(user) && user.get_item_by_slot(slot_head) == hood)
|
||||
hooddown(user)
|
||||
|
||||
/obj/item/clothing/suit/mob_can_equip(mob/M, slot, disable_warning = 0, automatic = 0)
|
||||
. = ..()
|
||||
|
||||
if (hood && force_hood && slot == slot_wear_suit)
|
||||
if (M.get_item_by_slot(slot_head) && M.get_item_by_slot(slot_head) != hood)
|
||||
to_chat(M, "You try to put the [hood_suit_name] on, but there is something in the way of its hood.")
|
||||
return FALSE
|
||||
else if (!hood.mob_can_equip(M, slot_head))
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/suit/proc/vine_protected()
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -656,6 +656,7 @@
|
||||
species_fit = list(INSECT_SHAPED)
|
||||
desc = "A hood worn by the followers of Ratvar."
|
||||
flags = FPRINT
|
||||
body_parts_covered = HIDEHAIR
|
||||
|
||||
/obj/item/clothing/head/franken_bolt
|
||||
name = "neck bolts"
|
||||
@@ -681,6 +682,13 @@
|
||||
species_fit = list(INSECT_SHAPED)
|
||||
flags = FPRINT
|
||||
|
||||
/obj/item/clothing/head/bedsheet_ghost
|
||||
name = "Bedsheet Ghost"
|
||||
desc = "You did cut out eye holes, but you don't remember drawing a face. Spooooky"
|
||||
icon_state = "bedsheet_ghost"
|
||||
body_parts_covered = FACE|FULL_HEAD|HIDEHAIR
|
||||
wear_override = new/icon("icon" = 'icons/misc/empty.dmi', "icon_state" = "empty_icon")
|
||||
|
||||
/obj/item/clothing/head/elfhat
|
||||
name = "elf hat"
|
||||
desc = "Wear this hat, and become one of Santa's little helpers!"
|
||||
@@ -802,4 +810,4 @@ var/image/unusual_overlay = image('icons/mob/head.dmi', "unusual_overlay", pixel
|
||||
name = "Syndie football helmet"
|
||||
desc = "It survived an explosive implant, it'll survive you."
|
||||
flags = FPRINT
|
||||
icon_state = "syndiefootballhelmet"
|
||||
icon_state = "syndiefootballhelmet"
|
||||
|
||||
@@ -63,6 +63,8 @@
|
||||
item_state = "chaplain_hoodie"
|
||||
species_fit = list(VOX_SHAPED, INSECT_SHAPED)
|
||||
body_parts_covered = FULL_TORSO|LEGS|ARMS|IGNORE_INV
|
||||
hood = new /obj/item/clothing/head/chaplain_hood()
|
||||
hood_suit_name = "robes"
|
||||
|
||||
|
||||
//Chaplain
|
||||
|
||||
@@ -380,6 +380,8 @@ var/list/tag_suits_list = list()
|
||||
wizard_garb = 1 //Allows lightning to be used
|
||||
allowed = list(/obj/item/weapon/melee/energy/sword, /obj/item/weapon/melee/energy/sword/dualsaber) //Fits e-swords
|
||||
species_fit = list(INSECT_SHAPED)
|
||||
hood = new /obj/item/clothing/head/sith()
|
||||
hood_suit_name = "robes"
|
||||
|
||||
/obj/item/clothing/suit/hastur
|
||||
name = "Hastur's Robes"
|
||||
@@ -387,6 +389,18 @@ var/list/tag_suits_list = list()
|
||||
icon_state = "hastur"
|
||||
item_state = "hastur"
|
||||
body_parts_covered = ARMS|LEGS|FULL_TORSO|FEET
|
||||
hood = new /obj/item/clothing/head/hasturhood()
|
||||
hood_suit_name = "robes"
|
||||
|
||||
/obj/item/clothing/suit/reaper_robes
|
||||
name = "\improper grim robes"
|
||||
desc = "Tends to snag on tombstones"
|
||||
icon_state = "reaper_hoodie" //edited version of chaplain_hoodie. 1px longer, and more open at the front
|
||||
item_state = "reaper_hoodie"
|
||||
species_fit = list(VOX_SHAPED, INSECT_SHAPED)
|
||||
body_parts_covered = FULL_TORSO|LEGS|ARMS|IGNORE_INV
|
||||
hood = new /obj/item/clothing/head/chaplain_hood()
|
||||
hood_suit_name = "robes"
|
||||
|
||||
/obj/item/clothing/suit/cassock
|
||||
name = "Cassock"
|
||||
@@ -746,6 +760,19 @@ var/list/tag_suits_list = list()
|
||||
blood_overlay_type = "coat"
|
||||
species_fit = list(VOX_SHAPED, GREY_SHAPED, INSECT_SHAPED)
|
||||
|
||||
/obj/item/clothing/suit/bedsheet_ghost
|
||||
name = "Bedsheet Ghost"
|
||||
desc = "You did cut out eye holes, but you don't remember drawing a face. Spooooky"
|
||||
icon_state = "bedsheet_ghost"
|
||||
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/clothing.dmi', "right_hand" = 'icons/mob/in-hand/right/clothing.dmi')
|
||||
blood_overlay_type = "coat"
|
||||
species_fit = list(VOX_SHAPED, GREY_SHAPED, INSECT_SHAPED)
|
||||
hood = new /obj/item/clothing/head/bedsheet_ghost()
|
||||
hood_suit_name = "robes"
|
||||
body_parts_covered = FULL_BODY|HIDEBACK
|
||||
body_parts_visible_override = FEET
|
||||
force_hood = TRUE
|
||||
|
||||
/obj/item/clothing/suit/maidapron
|
||||
name = "Apron"
|
||||
desc = "Simple white apron."
|
||||
@@ -935,6 +962,7 @@ var/list/tag_suits_list = list()
|
||||
flags = FPRINT
|
||||
body_parts_covered = ARMS|LEGS|FULL_TORSO|IGNORE_INV
|
||||
allowed = list(/obj/item/weapon/storage/bible, /obj/item/weapon/nullrod/spear)
|
||||
hood = new /obj/item/clothing/head/clockwork_hood()
|
||||
|
||||
|
||||
/obj/item/clothing/suit/inquisitor
|
||||
|
||||
@@ -14,24 +14,11 @@
|
||||
/obj/item/device/flashlight,
|
||||
/obj/item/weapon/tank/emergency_oxygen,
|
||||
/obj/item/weapon/tank/emergency_nitrogen)
|
||||
var/is_hooded = 0
|
||||
var/nohood = 0
|
||||
var/obj/item/clothing/head/winterhood/hood
|
||||
actions_types = list(/datum/action/item_action/toggle_hood)
|
||||
hood = new /obj/item/clothing/head/winterhood()
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/New()
|
||||
if(!nohood)
|
||||
hood = new(src)
|
||||
if(wizard_garb)
|
||||
hood.wizard_garb = 1
|
||||
else
|
||||
actions_types = null
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/Destroy()
|
||||
if(hood)
|
||||
QDEL_NULL(hood)
|
||||
if (!hood_up_icon_state)
|
||||
hood_up_icon_state = "[icon_state]_t"
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/winterhood
|
||||
@@ -40,20 +27,7 @@
|
||||
icon_state = "whood"
|
||||
body_parts_covered = HIDEHEADHAIR
|
||||
heat_conductivity = SNOWGEAR_HEAT_CONDUCTIVITY
|
||||
var/obj/item/clothing/suit/storage/wintercoat/coat
|
||||
|
||||
/obj/item/clothing/head/winterhood/New(var/obj/item/clothing/suit/storage/wintercoat/wc)
|
||||
..()
|
||||
if(istype(wc))
|
||||
coat = wc
|
||||
else if(!coat)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/clothing/head/winterhood/Destroy()
|
||||
if(coat)
|
||||
coat.hood = null
|
||||
coat = null
|
||||
..()
|
||||
wear_override = new/icon("icon" = 'icons/misc/empty.dmi', "icon_state" = "empty")
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/security/captain
|
||||
name = "captain's winter coat"
|
||||
@@ -91,7 +65,7 @@
|
||||
clothing_flags = 0
|
||||
species_fit = list(GREY_SHAPED, VOX_SHAPED, INSECT_SHAPED)
|
||||
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0)
|
||||
nohood = 1
|
||||
hood = null
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS|IGNORE_INV
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/security/warden
|
||||
@@ -99,7 +73,7 @@
|
||||
icon_state = "coatwarden"
|
||||
species_fit = list(GREY_SHAPED, VOX_SHAPED, INSECT_SHAPED)
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS|IGNORE_INV
|
||||
nohood = 1
|
||||
hood = null
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/medical
|
||||
name = "medical winter coat"
|
||||
@@ -292,6 +266,7 @@
|
||||
|
||||
#define HAS_HOOD 1
|
||||
#define NO_HOOD 0
|
||||
/*
|
||||
/obj/item/clothing/suit/storage/wintercoat/proc/togglehood()
|
||||
set name = "Toggle Hood"
|
||||
set category = "Object"
|
||||
@@ -341,6 +316,7 @@
|
||||
coat.hooddown(user,unequip = 0)
|
||||
user.drop_from_inventory(src)
|
||||
forceMove(coat)
|
||||
*/
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/hoodie
|
||||
name = "Grey hoodie"
|
||||
@@ -351,6 +327,7 @@
|
||||
clothing_flags = 0
|
||||
species_fit = list(INSECT_SHAPED, VOX_SHAPED)
|
||||
clothing_flags = COLORS_OVERLAY
|
||||
hood_suit_name = "hoodie"
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/hoodie/black
|
||||
name = "Black hoodie"
|
||||
@@ -386,15 +363,14 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/fur // think one of those big vintage fur coats you find in your grandmothers closet
|
||||
name = "A heavy fur coat"
|
||||
// icon_state = "furcoat"
|
||||
icon_state = "furcoat"
|
||||
item_state = "furcoat"
|
||||
var/base_icon_state = "labcoat"
|
||||
base_icon_state = "furcoat"
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS //the sprite extends down to the ankles, it can protect the legs
|
||||
clothing_flags = 0
|
||||
species_fit = list(INSECT_SHAPED)
|
||||
desc = "A thick fur coat. Your not sure what animal its fur from."
|
||||
nohood = 1 //most fur coats dont have a hood
|
||||
hood = null //most fur coats dont have a hood
|
||||
var/belted = 1
|
||||
armor = list(melee = 10, bullet = 5, laser = 10, energy = 10, bomb = 5, bio = 0, rad = 0) //its a big thick frontiersman fur coat, putting it on as partially protective
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS|IGNORE_INV
|
||||
@@ -415,9 +391,9 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/fur/update_icon()
|
||||
if(!belted)
|
||||
icon_state="[base_icon_state]_beltless"
|
||||
icon_state="[is_hood_up ? hood_up_icon_state : hood_down_icon_state]_beltless"
|
||||
else
|
||||
icon_state="[base_icon_state]"
|
||||
icon_state="[is_hood_up ? hood_up_icon_state : hood_down_icon_state]"
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/fur/verb/toggle()
|
||||
set name = "Toggle Coat Belt"
|
||||
@@ -441,5 +417,8 @@
|
||||
|
||||
/obj/item/clothing/suit/storage/wintercoat/fur/New()
|
||||
. = ..()
|
||||
actions_types |= list(/datum/action/item_action/toggle_belt)
|
||||
update_icon()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -58,10 +58,11 @@
|
||||
icon_state = "necromancer"
|
||||
item_state = "necrohood"
|
||||
siemens_coefficient = 0.8
|
||||
body_parts_covered = HIDEHAIR
|
||||
|
||||
/obj/item/clothing/head/wizard/necro/fake
|
||||
desc = "An elegant hood woven with child labor somewhere in Space China."
|
||||
wizard_garb = 0
|
||||
wizard_garb = FALSE
|
||||
|
||||
/*
|
||||
//No longer required due to /obj/item/clothing/head/that/magic
|
||||
@@ -178,6 +179,15 @@
|
||||
icon_state = "necromancer"
|
||||
item_state = "necrorobe"
|
||||
species_fit = list(INSECT_SHAPED)
|
||||
hood = new /obj/item/clothing/head/wizard/necro()
|
||||
hood_suit_name = "robes"
|
||||
auto_hood = TRUE
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/necro/fake
|
||||
desc = "An elegant robe woven with child labor somewhere in Space China."
|
||||
wizard_garb = FALSE
|
||||
hood = new /obj/item/clothing/head/wizard/necro/fake()
|
||||
auto_hood = FALSE
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa/fake
|
||||
name = "Witch Hat"
|
||||
|
||||
@@ -915,14 +915,6 @@
|
||||
clothing_flags = ONESIZEFITSALL
|
||||
body_parts_covered = FULL_HEAD|BEARD|HIDEHAIR
|
||||
|
||||
/obj/item/clothing/suit/reaper_robes
|
||||
name = "grim robes"
|
||||
desc = "Tends to snag on tombstones"
|
||||
icon_state = "reaper_hoodie" //edited version of chaplain_hoodie. 1px longer, and more open at the front
|
||||
item_state = "reaper_hoodie"
|
||||
species_fit = list(VOX_SHAPED, INSECT_SHAPED)
|
||||
body_parts_covered = FULL_TORSO|LEGS|ARMS|IGNORE_INV
|
||||
|
||||
/obj/item/clothing/under/clownpsyche
|
||||
name = "Psychedelic clown outfit"
|
||||
desc = "Do you know the definition of insanity?"
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
msg += "[t_He] [t_is] carrying [bicon(s_store)] \a [s_store] on [t_his] [wear_suit.name].\n"
|
||||
|
||||
//back
|
||||
if(back && back.is_visible())
|
||||
if(back && !(slot_back in obscured) && back.is_visible())
|
||||
if(back.is_blood_stained())
|
||||
msg += "<span class='warning'>[t_He] [t_has] [bicon(back)] [back.a_stained()] [back.name] on [t_his] back! [format_examine(back, "Examine")][back.description_accessories()]</span>\n"
|
||||
else
|
||||
|
||||
@@ -368,19 +368,27 @@
|
||||
else
|
||||
return if_no_id
|
||||
return
|
||||
|
||||
//repurposed proc. Now it combines get_worn_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere
|
||||
/mob/living/carbon/human/proc/get_visible_name()
|
||||
if( wear_mask && wear_mask.is_hidden_identity()) //Wearing a mask which hides our face, use id-name if possible
|
||||
return get_worn_id_name("Unknown")
|
||||
if( head && head.is_hidden_identity())
|
||||
return get_worn_id_name("Unknown") //Likewise for hats
|
||||
if(istruevampire(src))
|
||||
return get_worn_id_name("Unknown")
|
||||
var/unknown_name = "Unknown"
|
||||
|
||||
if ((Holiday == APRIL_FOOLS_DAY || Holiday == HALLOWEEN) && istype(wear_suit, /obj/item/clothing/suit/bedsheet_ghost))
|
||||
unknown_name = "a g-g-g-g-ghooooost"
|
||||
|
||||
if (wear_mask && wear_mask.is_hidden_identity()) //Wearing a mask which hides our face, use id-name if possible
|
||||
return get_worn_id_name(unknown_name)
|
||||
if (head && head.is_hidden_identity())
|
||||
return get_worn_id_name(unknown_name) //Likewise for hats
|
||||
if (istruevampire(src))
|
||||
return get_worn_id_name(unknown_name)
|
||||
|
||||
var/face_name = get_face_name()
|
||||
var/id_name = get_worn_id_name("")
|
||||
if(id_name && (id_name != face_name))
|
||||
return "[face_name] (as [id_name])"
|
||||
return face_name
|
||||
|
||||
//Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when polyacided or when updating a human's name variable
|
||||
/mob/living/carbon/human/proc/get_face_name()
|
||||
var/datum/organ/external/head/head_organ = get_organ(LIMB_HEAD)
|
||||
@@ -425,58 +433,79 @@
|
||||
var/obj/item/I = held_items[i]
|
||||
dat += "<B>[capitalize(get_index_limb_name(i))]</B> <A href='?src=\ref[src];hands=[i]'>[makeStrippingButton(I)]</A><BR>"
|
||||
|
||||
dat += "<BR><B>Back:</B> <A href='?src=\ref[src];item=[slot_back]'>[makeStrippingButton(back)]</A>"
|
||||
if(slot_back in obscured)
|
||||
dat += "<BR><font color=grey><B>Back:</B> Obscured by [wear_suit]</font>"
|
||||
else
|
||||
dat += "<BR><B>Back:</B> <A href='?src=\ref[src];item=[slot_back]'>[makeStrippingButton(back)]</A>"
|
||||
|
||||
dat += "<BR>"
|
||||
dat += "<BR><B>Head:</B> <A href='?src=\ref[src];item=[slot_head]'>[makeStrippingButton(head)]</A>"
|
||||
|
||||
dat += "<BR><B>Head:</B> <A href='?src=\ref[src];item=[slot_head]'>[makeStrippingButton(head)]</A>"
|
||||
|
||||
if(slot_wear_mask in obscured)
|
||||
dat += "<BR><font color=grey><B>Mask:</B> Obscured by [head]</font>"
|
||||
else
|
||||
dat += "<BR><B>Mask:</B> <A href='?src=\ref[src];item=[slot_wear_mask]'>[makeStrippingButton(wear_mask)]</A>"
|
||||
|
||||
if(has_breathing_mask())
|
||||
dat += "<BR>[HTMLTAB]↳<B>Internals:</B> [src.internal ? "On" : "Off"] <A href='?src=\ref[src];internals=1'>(Toggle)</A>"
|
||||
|
||||
if(slot_glasses in obscured)
|
||||
dat += "<BR><font color=grey><B>Eyes:</B> Obscured by [head]</font>"
|
||||
else
|
||||
dat += "<BR><B>Eyes:</B> <A href='?src=\ref[src];item=[slot_glasses]'>[makeStrippingButton(glasses)]</A>"
|
||||
|
||||
if(slot_ears in obscured)
|
||||
dat += "<BR><font color=grey><B>Ears:</B> Obscured by [head]</font>"
|
||||
else
|
||||
dat += "<BR><B>Ears:</B> <A href='?src=\ref[src];item=[slot_ears]'>[makeStrippingButton(ears)]</A>"
|
||||
|
||||
dat += "<BR>"
|
||||
dat += "<BR><B>Exosuit:</B> <A href='?src=\ref[src];item=[slot_wear_suit]'>[makeStrippingButton(wear_suit)]</A>"
|
||||
|
||||
if(wear_suit)
|
||||
dat += "<BR>[HTMLTAB]↳<B>Suit Storage:</B> <A href='?src=\ref[src];item=[slot_s_store]'>[makeStrippingButton(s_store)]</A>"
|
||||
|
||||
if(slot_shoes in obscured)
|
||||
dat += "<BR><font color=grey><B>Shoes:</B> Obscured by [wear_suit]</font>"
|
||||
else
|
||||
dat += "<BR><B>Shoes:</B> <A href='?src=\ref[src];item=[slot_shoes]'>[makeStrippingButton(shoes)]</A>"
|
||||
|
||||
if(slot_gloves in obscured)
|
||||
dat += "<BR><font color=grey><B>Gloves:</B> Obscured by [wear_suit]</font>"
|
||||
else
|
||||
dat += "<BR><B>Gloves:</B> <A href='?src=\ref[src];item=[slot_gloves]'>[makeStrippingButton(gloves)]</A>"
|
||||
|
||||
dat += "<BR><B>Belt:</B> <A href='?src=\ref[src];item=[slot_belt]'>[makeStrippingButton(belt)]</A>"
|
||||
|
||||
if(slot_w_uniform in obscured)
|
||||
dat += "<BR><font color=grey><B>Uniform:</B> Obscured by [wear_suit]</font>"
|
||||
else
|
||||
dat += "<BR><B>Uniform:</B> <A href='?src=\ref[src];item=[slot_w_uniform]'>[makeStrippingButton(w_uniform)]</A>"
|
||||
|
||||
if(w_uniform)
|
||||
dat += "<BR>[HTMLTAB]↳<B>Suit Sensors:</B> <A href='?src=\ref[src];sensors=1'>Set</A>"
|
||||
|
||||
if(pickpocket)
|
||||
dat += "<BR>[HTMLTAB]↳<B>Pockets:</B> <A href='?src=\ref[src];pockets=left'>[(l_store && !(src.l_store.abstract)) ? l_store : "<font color=grey>Left (Empty)</font>"]</A>"
|
||||
dat += " <A href='?src=\ref[src];pockets=right'>[(r_store && !(src.r_store.abstract)) ? r_store : "<font color=grey>Right (Empty)</font>"]</A>"
|
||||
else
|
||||
dat += "<BR>[HTMLTAB]↳<B>Pockets:</B> <A href='?src=\ref[src];pockets=left'>[(l_store && !(src.l_store.abstract)) ? "Left (Full)" : "<font color=grey>Left (Empty)</font>"]</A>"
|
||||
dat += " <A href='?src=\ref[src];pockets=right'>[(r_store && !(src.r_store.abstract)) ? "Right (Full)" : "<font color=grey>Right (Empty)</font>"]</A>"
|
||||
|
||||
dat += "<BR>[HTMLTAB]↳<B>ID:</B> <A href='?src=\ref[src];id=1'>[makeStrippingButton(wear_id)]</A>"
|
||||
dat += "<BR>"
|
||||
|
||||
if(handcuffed || mutual_handcuffs)
|
||||
dat += "<BR><B>Handcuffed:</B> <A href='?src=\ref[src];item=[slot_handcuffed]'>Remove</A>"
|
||||
|
||||
if(legcuffed)
|
||||
dat += "<BR><B>Legcuffed:</B> <A href='?src=\ref[src];item=[slot_legcuffed]'>Remove</A>"
|
||||
dat += {"
|
||||
<BR>
|
||||
<BR><A href='?src=\ref[user];mach_close=mob\ref[src]'>Close</A>
|
||||
"}
|
||||
|
||||
var/datum/browser/popup = new(user, "mob\ref[src]", "[src]", 340, 500)
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
@@ -50,6 +50,8 @@
|
||||
obscured |= slot_w_uniform
|
||||
if(is_slot_hidden(wear_suit.body_parts_covered, (HIDESHOES), 0))
|
||||
obscured |= slot_shoes
|
||||
if(is_slot_hidden(wear_suit.body_parts_covered, (HIDEBACK), 0))
|
||||
obscured |= slot_back
|
||||
if(head)
|
||||
if(is_slot_hidden(head.body_parts_covered, (HIDEMASK), 0))
|
||||
obscured |= slot_wear_mask
|
||||
|
||||
@@ -1306,20 +1306,21 @@ var/global/list/damage_icon_parts = list()
|
||||
if(has_icon(standing.icon, "[back.icon_state]_f"))
|
||||
standing.icon_state = "[back.icon_state]_f"
|
||||
|
||||
var/obj/abstract/Overlays/O = obj_overlays[BACK_LAYER]
|
||||
O.color = null
|
||||
O.icon = standing
|
||||
O.icon_state = standing.icon_state
|
||||
if(I.clothing_flags & COLORS_OVERLAY)
|
||||
O.color = I.color
|
||||
O.overlays.len = 0
|
||||
if(back.dynamic_overlay)
|
||||
if(back.dynamic_overlay["[BACK_LAYER]"])
|
||||
var/image/dyn_overlay = back.dynamic_overlay["[BACK_LAYER]"]
|
||||
O.overlays += dyn_overlay
|
||||
O.pixel_x = species.inventory_offsets["[slot_back]"]["pixel_x"] * PIXEL_MULTIPLIER
|
||||
O.pixel_y = species.inventory_offsets["[slot_back]"]["pixel_y"] * PIXEL_MULTIPLIER
|
||||
obj_to_plane_overlay(O,BACK_LAYER)
|
||||
if (!check_hidden_body_flags(HIDEBACK))
|
||||
var/obj/abstract/Overlays/O = obj_overlays[BACK_LAYER]
|
||||
O.color = null
|
||||
O.icon = standing
|
||||
O.icon_state = standing.icon_state
|
||||
if(I.clothing_flags & COLORS_OVERLAY)
|
||||
O.color = I.color
|
||||
O.overlays.len = 0
|
||||
if(back.dynamic_overlay)
|
||||
if(back.dynamic_overlay["[BACK_LAYER]"])
|
||||
var/image/dyn_overlay = back.dynamic_overlay["[BACK_LAYER]"]
|
||||
O.overlays += dyn_overlay
|
||||
O.pixel_x = species.inventory_offsets["[slot_back]"]["pixel_x"] * PIXEL_MULTIPLIER
|
||||
O.pixel_y = species.inventory_offsets["[slot_back]"]["pixel_y"] * PIXEL_MULTIPLIER
|
||||
obj_to_plane_overlay(O,BACK_LAYER)
|
||||
|
||||
//overlays_standing[BACK_LAYER] = standing
|
||||
//else
|
||||
@@ -1521,6 +1522,8 @@ var/global/list/damage_icon_parts = list()
|
||||
update_inv_glasses()
|
||||
if(is_slot_hidden(W.body_parts_covered, (HIDEEARS), 0, W.body_parts_visible_override))
|
||||
update_inv_ears()
|
||||
if(is_slot_hidden(W.body_parts_covered, (HIDEBACK), 0, W.body_parts_visible_override))
|
||||
update_inv_back()
|
||||
|
||||
/proc/is_slot_hidden(var/clothes, var/slot = -1,var/ignore_slot = 0, var/visibility_override = 0)
|
||||
if(!clothes)
|
||||
|
||||
@@ -399,7 +399,7 @@ var/global/list/item_mimic_disguises = list(
|
||||
//Nuke, nuke disk, all coins, all minerals (except for those with no icons)
|
||||
"vault" = list(/obj/machinery/nuclearbomb, /obj/item/weapon/disk/nuclear) + typesof(/obj/item/weapon/coin) + typesof(/obj/item/stack/sheet/mineral) - /obj/item/stack/sheet/mineral,
|
||||
|
||||
"chapel" = list(/obj/item/weapon/storage/bible, /obj/item/clothing/head/chaplain_hood, /obj/item/clothing/head/helmet/space/plasmaman/chaplain, /obj/item/clothing/suit/chaplain_hoodie, /obj/item/clothing/suit/space/plasmaman/chaplain,\
|
||||
"chapel" = list(/obj/item/weapon/storage/bible, /obj/item/clothing/head/helmet/space/plasmaman/chaplain, /obj/item/clothing/suit/chaplain_hoodie, /obj/item/clothing/suit/space/plasmaman/chaplain,\
|
||||
/obj/item/device/pda/chaplain, /obj/item/weapon/nullrod, /obj/item/weapon/reagent_containers/food/drinks/bottle/holywater, /obj/item/weapon/staff), //Chaplain garb, null rod, bible, holy water
|
||||
)
|
||||
|
||||
|
||||
@@ -492,9 +492,7 @@
|
||||
//6.6% chance to get legacy cult helmet/armor
|
||||
|
||||
var/choice = pick(
|
||||
75;/obj/item/clothing/head/culthood,
|
||||
25;/obj/item/clothing/suit/cultrobes,
|
||||
60;/obj/item/clothing/head/culthood/old,
|
||||
20;/obj/item/clothing/suit/cultrobes/old,
|
||||
45;/obj/item/clothing/head/magus,
|
||||
15;/obj/item/clothing/suit/magusred,
|
||||
|
||||
@@ -240,7 +240,6 @@
|
||||
/obj/item/clothing/head/nursehat,
|
||||
/obj/item/clothing/head/spaceninjafake,
|
||||
/obj/item/clothing/head/cardborg,
|
||||
/obj/item/clothing/head/sith,
|
||||
/obj/item/clothing/head/beaverhat,
|
||||
/obj/item/clothing/head/fedora,
|
||||
/obj/item/clothing/head/fez,
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
list(/obj/item/clothing/suit/storage/wintercoat/engineering/ce, /obj/item/clothing/suit/storage/wintercoat/medical/cmo, /obj/item/clothing/suit/storage/wintercoat/security/hos, /obj/item/clothing/suit/storage/wintercoat/hop, /obj/item/clothing/suit/storage/wintercoat/security/captain, /obj/item/clothing/suit/storage/wintercoat/clown, /obj/item/clothing/suit/storage/wintercoat/slimecoat),
|
||||
list(/obj/item/clothing/suit/space/rig/wizard, /obj/item/clothing/gloves/purple/wizard, /obj/item/clothing/shoes/sandal),
|
||||
list(/obj/item/clothing/suit/space/ancient, /obj/item/clothing/head/helmet/space/ancient),
|
||||
list(/obj/item/clothing/shoes/clockwork_boots, /obj/item/clothing/head/clockwork_hood, /obj/item/clothing/suit/clockwork_robes),
|
||||
list(/obj/item/clothing/shoes/clockwork_boots, /obj/item/clothing/suit/clockwork_robes),
|
||||
/obj/item/clothing/mask/necklace/xeno_claw,
|
||||
/obj/item/clothing/under/newclothes,
|
||||
/obj/item/clothing/suit/storage/draculacoat,
|
||||
@@ -417,4 +417,4 @@
|
||||
tongue = all_languages[LANGUAGE_DEATHSQUAD]
|
||||
progress_goal = 20
|
||||
progress_time = 15 SECONDS
|
||||
progress_fail_chance = 25
|
||||
progress_fail_chance = 25
|
||||
|
||||
BIN
icons/misc/empty.dmi
Normal file
|
After Width: | Height: | Size: 219 B |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 462 KiB After Width: | Height: | Size: 466 KiB |
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 200 KiB |
@@ -271,7 +271,6 @@
|
||||
"Ie" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/suit/wizrobe/necro,
|
||||
/obj/item/clothing/head/wizard/necro,
|
||||
/obj/item/clothing/shoes/sandal,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "grimy"
|
||||
|
||||
@@ -282,7 +282,6 @@
|
||||
"X" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/suit/wizrobe/necro,
|
||||
/obj/item/clothing/head/wizard/necro,
|
||||
/obj/item/clothing/shoes/sandal,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "cult";
|
||||
|
||||
@@ -242,7 +242,6 @@
|
||||
"uc" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/suit/wizrobe/necro,
|
||||
/obj/item/clothing/head/wizard/necro,
|
||||
/obj/item/clothing/shoes/sandal,
|
||||
/turf/unsimulated/floor{
|
||||
icon_state = "grimy"
|
||||
|
||||