Merge pull request #3157 from Citadel-Station-13/upstream-merge-31304
[MIRROR] Adds wigs
This commit is contained in:
@@ -1009,8 +1009,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
|
||||
/obj/item/clothing/mask/joy = 1,
|
||||
/obj/item/clothing/head/cueball = 1,
|
||||
/obj/item/clothing/under/scratch = 1,
|
||||
/obj/item/clothing/under/sailor = 1,
|
||||
/obj/item/clothing/ears/headphones = 2)
|
||||
/obj/item/clothing/under/sailor = 1,
|
||||
/obj/item/clothing/ears/headphones = 2,
|
||||
/obj/item/clothing/head/wig/random = 3)
|
||||
contraband = list(/obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, /obj/item/gun/magic/wand = 2, /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/sunglasses/blindfold = 1, /obj/item/clothing/mask/muzzle = 2)
|
||||
premium = list(/obj/item/clothing/suit/pirate/captain = 2, /obj/item/clothing/head/pirate/captain = 2, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman = 1, /obj/item/skub = 1)
|
||||
refill_canister = /obj/item/vending_refill/autodrobe
|
||||
|
||||
@@ -1,179 +1,221 @@
|
||||
/*
|
||||
* Contents:
|
||||
* Welding mask
|
||||
* Cakehat
|
||||
* Ushanka
|
||||
* Pumpkin head
|
||||
* Kitty ears
|
||||
* Cardborg disguise
|
||||
*/
|
||||
|
||||
/*
|
||||
* Welding mask
|
||||
*/
|
||||
/obj/item/clothing/head/welding
|
||||
name = "welding helmet"
|
||||
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
|
||||
icon_state = "welding"
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
item_state = "welding"
|
||||
materials = list(MAT_METAL=1750, MAT_GLASS=400)
|
||||
// var/up = 0
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/welding/attack_self(mob/user)
|
||||
weldingvisortoggle(user)
|
||||
|
||||
|
||||
/*
|
||||
* Cakehat
|
||||
*/
|
||||
/obj/item/clothing/head/hardhat/cakehat
|
||||
name = "cakehat"
|
||||
desc = "You put the cake on your head. Brilliant."
|
||||
icon_state = "hardhat0_cakehat"
|
||||
item_state = "hardhat0_cakehat"
|
||||
item_color = "cakehat"
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
heat = 100
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/process()
|
||||
var/turf/location = src.loc
|
||||
if(ishuman(location))
|
||||
var/mob/living/carbon/human/M = location
|
||||
if(M.is_holding(src) || M.head == src)
|
||||
location = M.loc
|
||||
|
||||
if(isturf(location))
|
||||
location.hotspot_expose(700, 1)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/turn_on()
|
||||
..()
|
||||
force = 2
|
||||
throwforce = 2
|
||||
damtype = BURN
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/turn_off()
|
||||
..()
|
||||
force = 0
|
||||
throwforce = 0
|
||||
damtype = BRUTE
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/is_hot()
|
||||
return on * heat
|
||||
/*
|
||||
* Ushanka
|
||||
*/
|
||||
/obj/item/clothing/head/ushanka
|
||||
name = "ushanka"
|
||||
desc = "Perfect for winter in Siberia, da?"
|
||||
icon_state = "ushankadown"
|
||||
item_state = "ushankadown"
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
var/earflaps = 1
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/ushanka
|
||||
|
||||
/obj/item/clothing/head/ushanka/attack_self(mob/user)
|
||||
if(earflaps)
|
||||
src.icon_state = "ushankaup"
|
||||
src.item_state = "ushankaup"
|
||||
earflaps = 0
|
||||
to_chat(user, "<span class='notice'>You raise the ear flaps on the ushanka.</span>")
|
||||
else
|
||||
src.icon_state = "ushankadown"
|
||||
src.item_state = "ushankadown"
|
||||
earflaps = 1
|
||||
to_chat(user, "<span class='notice'>You lower the ear flaps on the ushanka.</span>")
|
||||
|
||||
/*
|
||||
* Pumpkin head
|
||||
*/
|
||||
/obj/item/clothing/head/hardhat/pumpkinhead
|
||||
name = "carved pumpkin"
|
||||
desc = "A jack o' lantern! Believed to ward off evil spirits."
|
||||
icon_state = "hardhat0_pumpkin"
|
||||
item_state = "hardhat0_pumpkin"
|
||||
item_color = "pumpkin"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/*
|
||||
* Kitty ears
|
||||
*/
|
||||
/obj/item/clothing/head/kitty
|
||||
name = "kitty ears"
|
||||
desc = "A pair of kitty ears. Meow!"
|
||||
icon_state = "kitty"
|
||||
color = "#999999"
|
||||
dynamic_hair_suffix = ""
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/kitty
|
||||
|
||||
/obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot)
|
||||
if(ishuman(user) && slot == slot_head)
|
||||
update_icon(user)
|
||||
user.update_inv_head() //Color might have been changed by update_icon.
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
|
||||
if(ishuman(user))
|
||||
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
|
||||
|
||||
/obj/item/clothing/head/kitty/genuine
|
||||
desc = "A pair of kitty ears. A tag on the inside says \"Hand made from real cats.\""
|
||||
|
||||
|
||||
/obj/item/clothing/head/hardhat/reindeer
|
||||
name = "novelty reindeer hat"
|
||||
desc = "Some fake antlers and a very fake red nose."
|
||||
icon_state = "hardhat0_reindeer"
|
||||
item_state = "hardhat0_reindeer"
|
||||
item_color = "reindeer"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 1 //luminosity when on
|
||||
dynamic_hair_suffix = ""
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/reindeer
|
||||
|
||||
/obj/item/clothing/head/cardborg
|
||||
name = "cardborg helmet"
|
||||
desc = "A helmet made out of a box."
|
||||
icon_state = "cardborg_h"
|
||||
item_state = "cardborg_h"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/cardborg
|
||||
|
||||
/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(ishuman(user) && slot == slot_head)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg))
|
||||
var/obj/item/clothing/suit/cardborg/CB = H.wear_suit
|
||||
CB.disguise(user, src)
|
||||
|
||||
/obj/item/clothing/head/cardborg/dropped(mob/living/user)
|
||||
..()
|
||||
user.remove_alt_appearance("standard_borg_disguise")
|
||||
/*
|
||||
* Contents:
|
||||
* Welding mask
|
||||
* Cakehat
|
||||
* Ushanka
|
||||
* Pumpkin head
|
||||
* Kitty ears
|
||||
* Cardborg disguise
|
||||
*/
|
||||
|
||||
/*
|
||||
* Welding mask
|
||||
*/
|
||||
/obj/item/clothing/head/welding
|
||||
name = "welding helmet"
|
||||
desc = "A head-mounted face cover designed to protect the wearer completely from space-arc eye."
|
||||
icon_state = "welding"
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
item_state = "welding"
|
||||
materials = list(MAT_METAL=1750, MAT_GLASS=400)
|
||||
// var/up = 0
|
||||
flash_protect = 2
|
||||
tint = 2
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 60)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
actions_types = list(/datum/action/item_action/toggle)
|
||||
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
resistance_flags = FIRE_PROOF
|
||||
|
||||
/obj/item/clothing/head/welding/attack_self(mob/user)
|
||||
weldingvisortoggle(user)
|
||||
|
||||
|
||||
/*
|
||||
* Cakehat
|
||||
*/
|
||||
/obj/item/clothing/head/hardhat/cakehat
|
||||
name = "cakehat"
|
||||
desc = "You put the cake on your head. Brilliant."
|
||||
icon_state = "hardhat0_cakehat"
|
||||
item_state = "hardhat0_cakehat"
|
||||
item_color = "cakehat"
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
heat = 1000
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/process()
|
||||
var/turf/location = src.loc
|
||||
if(ishuman(location))
|
||||
var/mob/living/carbon/human/M = location
|
||||
if(M.is_holding(src) || M.head == src)
|
||||
location = M.loc
|
||||
|
||||
if(isturf(location))
|
||||
location.hotspot_expose(700, 1)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/turn_on()
|
||||
..()
|
||||
force = 15
|
||||
throwforce = 15
|
||||
damtype = BURN
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/turn_off()
|
||||
..()
|
||||
force = 0
|
||||
throwforce = 0
|
||||
damtype = BRUTE
|
||||
hitsound = 'sound/weapons/tap.ogg'
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/head/hardhat/cakehat/is_hot()
|
||||
return on * heat
|
||||
/*
|
||||
* Ushanka
|
||||
*/
|
||||
/obj/item/clothing/head/ushanka
|
||||
name = "ushanka"
|
||||
desc = "Perfect for winter in Siberia, da?"
|
||||
icon_state = "ushankadown"
|
||||
item_state = "ushankadown"
|
||||
flags_inv = HIDEEARS|HIDEHAIR
|
||||
var/earflaps = 1
|
||||
cold_protection = HEAD
|
||||
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/ushanka
|
||||
|
||||
/obj/item/clothing/head/ushanka/attack_self(mob/user)
|
||||
if(earflaps)
|
||||
src.icon_state = "ushankaup"
|
||||
src.item_state = "ushankaup"
|
||||
earflaps = 0
|
||||
to_chat(user, "<span class='notice'>You raise the ear flaps on the ushanka.</span>")
|
||||
else
|
||||
src.icon_state = "ushankadown"
|
||||
src.item_state = "ushankadown"
|
||||
earflaps = 1
|
||||
to_chat(user, "<span class='notice'>You lower the ear flaps on the ushanka.</span>")
|
||||
|
||||
/*
|
||||
* Pumpkin head
|
||||
*/
|
||||
/obj/item/clothing/head/hardhat/pumpkinhead
|
||||
name = "carved pumpkin"
|
||||
desc = "A jack o' lantern! Believed to ward off evil spirits."
|
||||
icon_state = "hardhat0_pumpkin"
|
||||
item_state = "hardhat0_pumpkin"
|
||||
item_color = "pumpkin"
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 2 //luminosity when on
|
||||
flags_cover = HEADCOVERSEYES
|
||||
|
||||
/*
|
||||
* Kitty ears
|
||||
*/
|
||||
/obj/item/clothing/head/kitty
|
||||
name = "kitty ears"
|
||||
desc = "A pair of kitty ears. Meow!"
|
||||
icon_state = "kitty"
|
||||
color = "#999999"
|
||||
dynamic_hair_suffix = ""
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/kitty
|
||||
|
||||
/obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot)
|
||||
if(ishuman(user) && slot == slot_head)
|
||||
update_icon(user)
|
||||
user.update_inv_head() //Color might have been changed by update_icon.
|
||||
..()
|
||||
|
||||
/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user)
|
||||
if(ishuman(user))
|
||||
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
|
||||
|
||||
/obj/item/clothing/head/kitty/genuine
|
||||
desc = "A pair of kitty ears. A tag on the inside says \"Hand made from real cats.\""
|
||||
|
||||
|
||||
/obj/item/clothing/head/hardhat/reindeer
|
||||
name = "novelty reindeer hat"
|
||||
desc = "Some fake antlers and a very fake red nose."
|
||||
icon_state = "hardhat0_reindeer"
|
||||
item_state = "hardhat0_reindeer"
|
||||
item_color = "reindeer"
|
||||
flags_inv = 0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0)
|
||||
brightness_on = 1 //luminosity when on
|
||||
dynamic_hair_suffix = ""
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/reindeer
|
||||
|
||||
/obj/item/clothing/head/cardborg
|
||||
name = "cardborg helmet"
|
||||
desc = "A helmet made out of a box."
|
||||
icon_state = "cardborg_h"
|
||||
item_state = "cardborg_h"
|
||||
flags_cover = HEADCOVERSEYES
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
|
||||
|
||||
dog_fashion = /datum/dog_fashion/head/cardborg
|
||||
|
||||
/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot)
|
||||
..()
|
||||
if(ishuman(user) && slot == slot_head)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg))
|
||||
var/obj/item/clothing/suit/cardborg/CB = H.wear_suit
|
||||
CB.disguise(user, src)
|
||||
|
||||
/obj/item/clothing/head/cardborg/dropped(mob/living/user)
|
||||
..()
|
||||
user.remove_alt_appearance("standard_borg_disguise")
|
||||
|
||||
|
||||
|
||||
/obj/item/clothing/head/wig
|
||||
name = "wig"
|
||||
desc = "A bunch of hair without a head attached."
|
||||
icon_state = ""
|
||||
item_state = "pwig"
|
||||
flags_inv = HIDEHAIR
|
||||
var/hair_style = "Very Long Hair"
|
||||
var/hair_color = "#000"
|
||||
|
||||
/obj/item/clothing/head/wig/Initialize(mapload)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/clothing/head/wig/update_icon()
|
||||
cut_overlays()
|
||||
var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style]
|
||||
if(!S)
|
||||
icon_state = "pwig"
|
||||
else
|
||||
var/mutable_appearance/M = mutable_appearance(S.icon,S.icon_state)
|
||||
M.appearance_flags |= RESET_COLOR
|
||||
M.color = hair_color
|
||||
add_overlay(M)
|
||||
|
||||
/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, file2use)
|
||||
. = list()
|
||||
if(!isinhands)
|
||||
var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style]
|
||||
if(!S)
|
||||
return
|
||||
var/mutable_appearance/M = mutable_appearance(S.icon, S.icon_state,layer = -HAIR_LAYER)
|
||||
M.appearance_flags |= RESET_COLOR
|
||||
M.color = hair_color
|
||||
. += M
|
||||
|
||||
/obj/item/clothing/head/wig/random/Initialize(mapload)
|
||||
hair_style = pick(GLOB.hair_styles_list - "Bald") //Don't want invisible wig
|
||||
hair_color = "#[random_short_color()]"
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user