Kills misc clothing files (Almost) (#60481)

Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
This commit is contained in:
Thunder12345
2021-08-01 18:56:09 -07:00
committed by GitHub
co-authored by Thunder12345
parent 3dad3e448e
commit ff360dda43
68 changed files with 2636 additions and 2722 deletions
@@ -28,7 +28,7 @@
for(var/i in 1 to 3)
new /obj/item/tank/internals/anesthetic(src)
for(var/i in 1 to 3)
new /obj/item/clothing/mask/breathmuzzle(src)
new /obj/item/clothing/mask/muzzle/breath(src)
/obj/structure/closet/secure_closet/medical3
name = "medical doctor's locker"
+14
View File
@@ -0,0 +1,14 @@
/obj/item/clothing/gloves/bracer
name = "bone bracers"
desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms."
icon_state = "bracers"
inhand_icon_state = "bracers"
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
body_parts_covered = ARMS
cold_protection = ARMS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 15, BOMB = 20, BIO = 10, RAD = 0, FIRE = 0, ACID = 0)
+13
View File
@@ -0,0 +1,13 @@
/obj/item/clothing/gloves/botanic_leather
name = "botanist's leather gloves"
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm."
icon_state = "leather"
inhand_icon_state = "ggloves"
permeability_coefficient = 0.9
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
clothing_traits = list(TRAIT_PLANT_SAFE)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 70, ACID = 30)
+13
View File
@@ -105,6 +105,19 @@
resistance_flags = NONE
cut_type = /obj/item/clothing/gloves/fingerless
/obj/item/clothing/gloves/fingerless
name = "fingerless gloves"
desc = "Plain black gloves without fingertips for the hard working."
icon_state = "fingerless"
inhand_icon_state = "fingerless"
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
custom_price = PAYCHECK_ASSISTANT * 1.5
undyeable = TRUE
/obj/item/clothing/gloves/color/orange
name = "orange gloves"
desc = "A pair of gloves, they don't look special in any way."
+14
View File
@@ -0,0 +1,14 @@
/obj/item/clothing/gloves/combat
name = "combat gloves"
desc = "These tactical gloves are fireproof and electrically insulated."
icon_state = "black"
inhand_icon_state = "blackgloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50)
@@ -1,73 +1,3 @@
/obj/item/clothing/gloves/fingerless
name = "fingerless gloves"
desc = "Plain black gloves without fingertips for the hard working."
icon_state = "fingerless"
inhand_icon_state = "fingerless"
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
custom_price = PAYCHECK_ASSISTANT * 1.5
undyeable = TRUE
/obj/item/clothing/gloves/botanic_leather
name = "botanist's leather gloves"
desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin. They're also quite warm."
icon_state = "leather"
inhand_icon_state = "ggloves"
permeability_coefficient = 0.9
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
clothing_traits = list(TRAIT_PLANT_SAFE)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 70, ACID = 30)
/obj/item/clothing/gloves/combat
name = "combat gloves"
desc = "These tactical gloves are fireproof and electrically insulated."
icon_state = "black"
inhand_icon_state = "blackgloves"
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 80, ACID = 50)
/obj/item/clothing/gloves/bracer
name = "bone bracers"
desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms."
icon_state = "bracers"
inhand_icon_state = "bracers"
transfer_prints = TRUE
strip_delay = 40
equip_delay_other = 20
body_parts_covered = ARMS
cold_protection = ARMS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 15, BOMB = 20, BIO = 10, RAD = 0, FIRE = 0, ACID = 0)
/obj/item/clothing/gloves/rapid
name = "Gloves of the North Star"
desc = "Just looking at these fills you with an urge to beat the shit out of people."
icon_state = "rapid"
inhand_icon_state = "rapid"
transfer_prints = TRUE
/obj/item/clothing/gloves/rapid/ComponentInitialize()
. = ..()
AddComponent(/datum/component/wearertargeting/punchcooldown)
/obj/item/clothing/gloves/color/plasmaman
desc = "Covers up those scandalous boney hands."
name = "plasma envirogloves"
+11
View File
@@ -49,3 +49,14 @@
to_chat(pull_component.parent, span_warning("You have lost the grip power of [src]!"))
QDEL_NULL(pull_component_weakref)
/obj/item/clothing/gloves/rapid
name = "Gloves of the North Star"
desc = "Just looking at these fills you with an urge to beat the shit out of people."
icon_state = "rapid"
inhand_icon_state = "rapid"
transfer_prints = TRUE
/obj/item/clothing/gloves/rapid/ComponentInitialize()
. = ..()
AddComponent(/datum/component/wearertargeting/punchcooldown)
+30
View File
@@ -0,0 +1,30 @@
/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/visual_equipped(mob/living/carbon/human/user, slot)
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
update_icon(ALL, user)
user.update_inv_head() //Color might have been changed by update_appearance.
..()
/obj/item/clothing/head/kitty/update_icon(updates=ALL, 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/rabbitears
name = "rabbit ears"
desc = "Wearing these makes you look useless, and only good for your sex appeal."
icon_state = "bunny"
dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/rabbit
+75
View File
@@ -0,0 +1,75 @@
/obj/item/clothing/head/hardhat/cakehat
name = "cakehat"
desc = "You put the cake on your head. Brilliant."
icon_state = "hardhat0_cakehat"
inhand_icon_state = "hardhat0_cakehat"
hat_type = "cakehat"
lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi'
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
hitsound = 'sound/weapons/tap.ogg'
var/hitsound_on = 'sound/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat
var/hitsound_off = 'sound/weapons/tap.ogg'
var/force_on = 15
var/throwforce_on = 15
var/damtype_on = BURN
flags_inv = HIDEEARS|HIDEHAIR
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
light_range = 2 //luminosity when on
light_system = MOVABLE_LIGHT
flags_cover = HEADCOVERSEYES
heat = 999
dog_fashion = /datum/dog_fashion/head
/obj/item/clothing/head/hardhat/cakehat/process()
var/turf/location = src.loc
if(ishuman(location))
var/mob/living/carbon/human/wearer = location
if(wearer.is_holding(src) || wearer.head == src)
location = wearer.loc
if(isturf(location))
location.hotspot_expose(700, 1)
/obj/item/clothing/head/hardhat/cakehat/turn_on(mob/living/user)
..()
force = force_on
throwforce = throwforce_on
damtype = damtype_on
hitsound = hitsound_on
START_PROCESSING(SSobj, src)
/obj/item/clothing/head/hardhat/cakehat/turn_off(mob/living/user)
..()
force = 0
throwforce = 0
damtype = BRUTE
hitsound = hitsound_off
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/head/hardhat/cakehat/get_temperature()
return on * heat
/obj/item/clothing/head/hardhat/cakehat/energycake
name = "energy cake"
desc = "You put the energy sword on your cake. Brilliant."
icon_state = "hardhat0_energycake"
inhand_icon_state = "hardhat0_energycake"
hat_type = "energycake"
hitsound = 'sound/weapons/tap.ogg'
hitsound_on = 'sound/weapons/blade1.ogg'
hitsound_off = 'sound/weapons/tap.ogg'
damtype_on = BRUTE
force_on = 18 //same as epen (but much more obvious)
light_range = 3 //ditto
heat = 0
/obj/item/clothing/head/hardhat/cakehat/energycake/turn_on(mob/living/user)
playsound(user, 'sound/weapons/saberon.ogg', 5, TRUE)
to_chat(user, span_warning("You turn on \the [src]."))
..()
/obj/item/clothing/head/hardhat/cakehat/energycake/turn_off(mob/living/user)
playsound(user, 'sound/weapons/saberoff.ogg', 5, TRUE)
to_chat(user, span_warning("You turn off \the [src]."))
..()
+15
View File
@@ -0,0 +1,15 @@
/obj/item/clothing/head/cone
desc = "This cone is trying to warn you of something!"
name = "warning cone"
icon = 'icons/obj/janitor.dmi'
icon_state = "cone"
inhand_icon_state = "cone"
force = 1
throwforce = 3
throw_speed = 2
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
attack_verb_continuous = list("warns", "cautions", "smashes")
attack_verb_simple = list("warn", "caution", "smash")
resistance_flags = NONE
dynamic_hair_suffix = ""
+124
View File
@@ -0,0 +1,124 @@
/obj/item/clothing/head/powdered_wig
name = "powdered wig"
desc = "A powdered wig."
icon_state = "pwig"
inhand_icon_state = "pwig"
/obj/item/clothing/head/hasturhood
name = "hastur's hood"
desc = "It's <i>unspeakably</i> stylish."
icon_state = "hasturhood"
flags_inv = HIDEHAIR
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/syndicatefake
name = "black space-helmet replica"
icon_state = "syndicate-helm-black-red"
inhand_icon_state = "syndicate-helm-black-red"
desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/cueball
name = "cueball helmet"
desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?"
icon_state = "cueball"
inhand_icon_state="cueball"
clothing_flags = SNUG_FIT
flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/snowman
name = "snowman head"
desc = "A ball of white styrofoam. So festive."
icon_state = "snowman_h"
inhand_icon_state = "snowman_h"
clothing_flags = SNUG_FIT
flags_cover = HEADCOVERSEYES
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/witchwig
name = "witch costume wig"
desc = "Eeeee~heheheheheheh!"
icon_state = "witch"
inhand_icon_state = "witch"
flags_inv = HIDEHAIR
/obj/item/clothing/head/chicken
name = "chicken suit head"
desc = "Bkaw!"
icon_state = "chickenhead"
inhand_icon_state = "chickensuit"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/griffin
name = "griffon head"
desc = "Why not 'eagle head'? Who knows."
icon_state = "griffinhat"
inhand_icon_state = "griffinhat"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/xenos
name = "xenos helmet"
icon_state = "xenos"
inhand_icon_state = "xenos_helm"
desc = "A helmet made out of chitinous alien hide."
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/lobsterhat
name = "foam lobster head"
desc = "When everything's going to crab, protecting your head is the best choice."
icon_state = "lobster_hat"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/drfreezehat
name = "doctor freeze's wig"
desc = "A cool wig for cool people."
icon_state = "drfreeze_hat"
flags_inv = HIDEHAIR
/obj/item/clothing/head/shrine_wig
name = "shrine maiden's wig"
desc = "Purify in style!"
flags_inv = HIDEHAIR //bald
icon_state = "shrine_wig"
inhand_icon_state = "shrine_wig"
dynamic_hair_suffix = ""
worn_y_offset = 1
/obj/item/clothing/head/cardborg
name = "cardborg helmet"
desc = "A helmet made out of a box."
icon_state = "cardborg_h"
inhand_icon_state = "cardborg_h"
clothing_flags = SNUG_FIT
flags_cover = HEADCOVERSEYES
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
dog_fashion = /datum/dog_fashion/head/cardborg
/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot)
..()
if(ishuman(user) && slot == ITEM_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/bronze
name = "bronze hat"
desc = "A crude helmet made out of bronze plates. It offers very little in the way of protection."
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_helmet_old"
clothing_flags = SNUG_FIT
flags_inv = HIDEEARS|HIDEHAIR
armor = list(MELEE = 5, BULLET = 0, LASER = -5, ENERGY = -15, BOMB = 10, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
+12
View File
@@ -0,0 +1,12 @@
/obj/item/clothing/head/crown
name = "crown"
desc = "A crown fit for a king, a petty king maybe."
icon_state = "crown"
armor = list(MELEE = 15, BULLET = 0, LASER = 0,ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, WOUND = 5)
resistance_flags = FIRE_PROOF
dynamic_hair_suffix = ""
/obj/item/clothing/head/crown/fancy
name = "magnificent crown"
desc = "A crown worn by only the highest emperors of the <s>land</s> space."
icon_state = "fancycrown"
+26
View File
@@ -0,0 +1,26 @@
/obj/item/clothing/head/fedora
name = "fedora"
icon_state = "fedora"
inhand_icon_state = "fedora"
desc = "A really cool hat if you're a mobster. A really lame hat if you're not."
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/fedora
/obj/item/clothing/head/fedora/white
name = "white fedora"
icon_state = "fedora_white"
inhand_icon_state = "fedora_white"
/obj/item/clothing/head/fedora/beige
name = "beige fedora"
icon_state = "fedora_beige"
inhand_icon_state = "fedora_beige"
/obj/item/clothing/head/fedora/suicide_act(mob/user)
if(user.gender == FEMALE)
return 0
var/mob/living/carbon/human/H = user
user.visible_message(span_suicide("[user] is donning [src]! It looks like [user.p_theyre()] trying to be nice to girls."))
user.say("M'lady.", forced = "fedora suicide")
sleep(10)
H.facial_hairstyle = "Neckbeard"
return(BRUTELOSS)
+39
View File
@@ -0,0 +1,39 @@
/obj/item/clothing/head/frenchberet
name = "french beret"
desc = "A quality beret, infused with the aroma of chain-smoking, wine-swilling Parisians. You feel less inclined to engage in military conflict, for some reason."
icon_state = "beret"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#972A2A"
dynamic_hair_suffix = ""
/obj/item/clothing/head/frenchberet/equipped(mob/M, slot)
. = ..()
if (slot == ITEM_SLOT_HEAD)
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
else
UnregisterSignal(M, COMSIG_MOB_SAY)
/obj/item/clothing/head/frenchberet/dropped(mob/M)
. = ..()
UnregisterSignal(M, COMSIG_MOB_SAY)
/obj/item/clothing/head/frenchberet/proc/handle_speech(datum/source, mob/speech_args)
SIGNAL_HANDLER
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
message = " [message]"
var/list/french_words = strings("french_replacement.json", "french")
for(var/key in french_words)
var/value = french_words[key]
if(islist(value))
value = pick(value)
message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]")
message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]")
message = replacetextEx(message, " [key]", " [value]")
if(prob(3))
message += pick(" Honh honh honh!"," Honh!"," Zut Alors!")
speech_args[SPEECH_MESSAGE] = trim(message)
+51
View File
@@ -171,3 +171,54 @@
icon_state = "hardhat0_dblue"
inhand_icon_state = "hardhat0_dblue"
hat_type = "dblue"
/obj/item/clothing/head/hardhat/pumpkinhead
name = "carved pumpkin"
desc = "A jack o' lantern! Believed to ward off evil spirits."
icon_state = "hardhat0_pumpkin"
inhand_icon_state = "hardhat0_pumpkin"
hat_type = "pumpkin"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
light_range = 2 //luminosity when on
flags_cover = HEADCOVERSEYES
light_color = "#fff2bf"
worn_y_offset = 1
/obj/item/clothing/head/hardhat/pumpkinhead/set_light_on(new_value)
. = ..()
if(isnull(.))
return
update_icon(UPDATE_OVERLAYS)
/obj/item/clothing/head/hardhat/pumpkinhead/update_overlays()
. = ..()
if(light_on)
. += emissive_appearance(icon, "carved_pumpkin-emissive", alpha = src.alpha)
/obj/item/clothing/head/hardhat/pumpkinhead/worn_overlays(isinhands)
. = ..()
if(!isinhands)
. += emissive_appearance(worn_icon, "carved_pumpkin-emissive", alpha = src.alpha, appearance_flags = KEEP_APART)
/obj/item/clothing/head/hardhat/pumpkinhead/blumpkin
name = "carved blumpkin"
desc = "A very blue jack o' lantern! Believed to ward off vengeful chemists."
icon_state = "hardhat0_blumpkin"
inhand_icon_state = "hardhat0_blumpkin"
hat_type = "blumpkin"
light_color = "#76ff8e"
/obj/item/clothing/head/hardhat/reindeer
name = "novelty reindeer hat"
desc = "Some fake antlers and a very fake red nose."
icon_state = "hardhat0_reindeer"
inhand_icon_state = "hardhat0_reindeer"
hat_type = "reindeer"
flags_inv = 0
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
light_range = 1 //luminosity when on
dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/reindeer
+187
View File
@@ -0,0 +1,187 @@
/obj/item/clothing/head/centhat
name = "\improper CentCom hat"
icon_state = "centcom"
desc = "It's good to be emperor."
inhand_icon_state = "that"
flags_inv = 0
armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
strip_delay = 80
/obj/item/clothing/head/spacepolice
name = "space police cap"
desc = "A blue cap for patrolling the daily beat."
icon_state = "policecap_families"
inhand_icon_state = "policecap_families"
/obj/item/clothing/head/canada
name = "striped red tophat"
desc = "It smells like fresh donut holes. / <i>Il sent comme des trous de beignets frais.</i>"
icon_state = "canada"
inhand_icon_state = "canada"
/obj/item/clothing/head/redcoat
name = "redcoat's hat"
icon_state = "redcoat"
desc = "<i>'I guess it's a redhead.'</i>"
/obj/item/clothing/head/mailman
name = "mailman's hat"
icon_state = "mailman"
desc = "<i>'Right-on-time'</i> mail service head wear."
/obj/item/clothing/head/plaguedoctorhat
name = "plague doctor's hat"
desc = "These were once used by plague doctors. They're pretty much useless."
icon_state = "plaguedoctor"
permeability_coefficient = 0.01
/obj/item/clothing/head/nursehat
name = "nurse's hat"
desc = "It allows quick identification of trained medical personnel."
icon_state = "nursehat"
dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/nurse
/obj/item/clothing/head/bowler
name = "bowler-hat"
desc = "Gentleman, elite aboard!"
icon_state = "bowler"
inhand_icon_state = "bowler"
dynamic_hair_suffix = ""
/obj/item/clothing/head/bearpelt
name = "bear pelt hat"
desc = "Fuzzy."
icon_state = "bearpelt"
inhand_icon_state = "bearpelt"
/obj/item/clothing/head/flatcap
name = "flat cap"
desc = "A working man's cap."
icon_state = "beret_flat"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#8F7654"
inhand_icon_state = "detective"
/obj/item/clothing/head/hunter
name = "bounty hunting hat"
desc = "Ain't nobody gonna cheat the hangman in my town."
icon_state = "cowboy"
worn_icon_state = "hunter"
inhand_icon_state = "hunter"
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/santa
name = "santa hat"
desc = "On the first day of christmas my employer gave to me!"
icon_state = "santahatnorm"
inhand_icon_state = "that"
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
dog_fashion = /datum/dog_fashion/head/santa
/obj/item/clothing/head/jester
name = "jester hat"
desc = "A hat with bells, to add some merriness to the suit."
icon_state = "jester_hat"
dynamic_hair_suffix = ""
/obj/item/clothing/head/jester/alt
icon_state = "jester2"
/obj/item/clothing/head/rice_hat
name = "rice hat"
desc = "Welcome to the rice fields, motherfucker."
icon_state = "rice_hat"
/obj/item/clothing/head/lizard
name = "lizardskin cloche hat"
desc = "How many lizards died to make this hat? Not enough."
icon_state = "lizard"
/obj/item/clothing/head/scarecrow_hat
name = "scarecrow hat"
desc = "A simple straw hat."
icon_state = "scarecrow_hat"
/obj/item/clothing/head/pharaoh
name = "pharaoh hat"
desc = "Walk like an Egyptian."
icon_state = "pharoah_hat"
inhand_icon_state = "pharoah_hat"
/obj/item/clothing/head/nemes
name = "headdress of Nemes"
desc = "Lavish space tomb not included."
icon_state = "nemes_headdress"
/obj/item/clothing/head/delinquent
name = "delinquent hat"
desc = "Good grief."
icon_state = "delinquent"
/obj/item/clothing/head/intern
name = "\improper CentCom Head Intern beancap"
desc = "A horrifying mix of beanie and softcap in CentCom green. You'd have to be pretty desperate for power over your peers to agree to wear this."
icon_state = "intern_hat"
inhand_icon_state = "intern_hat"
/obj/item/clothing/head/coordinator
name = "coordinator cap"
desc = "A cap for a party coordinator, stylish!."
icon_state = "capcap"
inhand_icon_state = "that"
armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 35, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
/obj/item/clothing/head/jackbros
name = "frosty hat"
desc = "Hee-ho!"
icon_state = "JackFrostHat"
inhand_icon_state = "JackFrostHat"
/obj/item/clothing/head/weddingveil
name = "wedding veil"
desc = "A gauzy white veil."
icon_state = "weddingveil"
inhand_icon_state = "weddingveil"
/obj/item/clothing/head/centcom_cap
name = "\improper CentCom commander cap"
icon_state = "centcom_cap"
desc = "Worn by the finest of CentCom commanders. Inside the lining of the cap, lies two faint initials."
inhand_icon_state = "that"
flags_inv = 0
armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
strip_delay = (8 SECONDS)
/obj/item/clothing/head/human_leather
name = "human skin hat"
desc = "This will scare them. All will know my power."
icon_state = "human_leather"
inhand_icon_state = "human_leather"
/obj/item/clothing/head/ushanka
name = "ushanka"
desc = "Perfect for winter in Siberia, da?"
icon_state = "ushankadown"
inhand_icon_state = "ushankadown"
flags_inv = HIDEEARS|HIDEHAIR
var/earflaps = TRUE
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)
icon_state = "ushankaup"
inhand_icon_state = "ushankaup"
to_chat(user, span_notice("You raise the ear flaps on the ushanka."))
else
icon_state = "ushankadown"
inhand_icon_state = "ushankadown"
to_chat(user, span_notice("You lower the ear flaps on the ushanka."))
earflaps = !earflaps
+24
View File
@@ -0,0 +1,24 @@
/obj/item/clothing/head/justice
name = "justice hat"
desc = "Fight for what's righteous!"
icon_state = "justicered"
inhand_icon_state = "justicered"
clothing_flags = SNUG_FIT
flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/justice/blue
icon_state = "justiceblue"
inhand_icon_state = "justiceblue"
/obj/item/clothing/head/justice/yellow
icon_state = "justiceyellow"
inhand_icon_state = "justiceyellow"
/obj/item/clothing/head/justice/green
icon_state = "justicegreen"
inhand_icon_state = "justicegreen"
/obj/item/clothing/head/justice/pink
icon_state = "justicepink"
inhand_icon_state = "justicepink"
-551
View File
@@ -1,551 +0,0 @@
/obj/item/clothing/head/centhat
name = "\improper CentCom hat"
icon_state = "centcom"
desc = "It's good to be emperor."
inhand_icon_state = "that"
flags_inv = 0
armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
strip_delay = 80
/obj/item/clothing/head/spacepolice
name = "space police cap"
desc = "A blue cap for patrolling the daily beat."
icon_state = "policecap_families"
inhand_icon_state = "policecap_families"
/obj/item/clothing/head/powdered_wig
name = "powdered wig"
desc = "A powdered wig."
icon_state = "pwig"
inhand_icon_state = "pwig"
#define RABBIT_CD_TIME 30 SECONDS
/obj/item/clothing/head/that
name = "top-hat"
desc = "It's an amish looking hat."
icon_state = "tophat"
inhand_icon_state = "that"
dog_fashion = /datum/dog_fashion/head
throwforce = 1
/// Cooldown for how often we can pull rabbits out of here
COOLDOWN_DECLARE(rabbit_cooldown)
/obj/item/clothing/head/that/attackby(obj/item/hitby_item, mob/user, params)
. = ..()
if(istype(hitby_item, /obj/item/gun/magic/wand))
abracadabra(hitby_item, user)
/obj/item/clothing/head/that/proc/abracadabra(obj/item/hitby_wand, mob/magician)
if(!COOLDOWN_FINISHED(src, rabbit_cooldown))
to_chat(span_warning("You can't find another rabbit in [src]! Seems another hasn't gotten lost in there yet..."))
return
COOLDOWN_START(src, rabbit_cooldown, RABBIT_CD_TIME)
playsound(get_turf(src), 'sound/weapons/emitter.ogg', 70)
do_smoke(range=1, location=src, smoke_type=/obj/effect/particle_effect/smoke/quick)
if(prob(10))
magician.visible_message(span_danger("[magician] taps [src] with [hitby_wand], then reaches in and pulls out a bu- wait, those are bees!"), span_danger("You tap [src] with your [hitby_wand.name] and pull out... <b>BEES!</b>"))
var/wait_how_many_bees_did_that_guy_pull_out_of_his_hat = rand(4, 8)
for(var/b in 1 to wait_how_many_bees_did_that_guy_pull_out_of_his_hat)
var/mob/living/simple_animal/hostile/bee/barry = new(get_turf(magician))
barry.GiveTarget(magician)
if(prob(20))
barry.say(pick("BUZZ BUZZ", "PULLING A RABBIT OUT OF A HAT IS A TIRED TROPE", "I DIDN'T ASK TO BEE HERE"), forced = "bee hat")
else
magician.visible_message(span_notice("[magician] taps [src] with [hitby_wand], then reaches in and pulls out a bunny! Cute!"), span_notice("You tap [src] with your [hitby_wand.name] and pull out a cute bunny!"))
var/mob/living/simple_animal/rabbit/empty/bunbun = new(get_turf(magician))
bunbun.mob_try_pickup(magician, instant=TRUE)
#undef RABBIT_CD_TIME
/obj/item/clothing/head/canada
name = "striped red tophat"
desc = "It smells like fresh donut holes. / <i>Il sent comme des trous de beignets frais.</i>"
icon_state = "canada"
inhand_icon_state = "canada"
/obj/item/clothing/head/redcoat
name = "redcoat's hat"
icon_state = "redcoat"
desc = "<i>'I guess it's a redhead.'</i>"
/obj/item/clothing/head/mailman
name = "mailman's hat"
icon_state = "mailman"
desc = "<i>'Right-on-time'</i> mail service head wear."
/obj/item/clothing/head/plaguedoctorhat
name = "plague doctor's hat"
desc = "These were once used by plague doctors. They're pretty much useless."
icon_state = "plaguedoctor"
permeability_coefficient = 0.01
/obj/item/clothing/head/hasturhood
name = "hastur's hood"
desc = "It's <i>unspeakably</i> stylish."
icon_state = "hasturhood"
flags_inv = HIDEHAIR
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/nursehat
name = "nurse's hat"
desc = "It allows quick identification of trained medical personnel."
icon_state = "nursehat"
dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/nurse
/obj/item/clothing/head/syndicatefake
name = "black space-helmet replica"
icon_state = "syndicate-helm-black-red"
inhand_icon_state = "syndicate-helm-black-red"
desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/cueball
name = "cueball helmet"
desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?"
icon_state = "cueball"
inhand_icon_state="cueball"
clothing_flags = SNUG_FIT
flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/snowman
name = "snowman head"
desc = "A ball of white styrofoam. So festive."
icon_state = "snowman_h"
inhand_icon_state = "snowman_h"
clothing_flags = SNUG_FIT
flags_cover = HEADCOVERSEYES
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/justice
name = "justice hat"
desc = "Fight for what's righteous!"
icon_state = "justicered"
inhand_icon_state = "justicered"
clothing_flags = SNUG_FIT
flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/justice/blue
icon_state = "justiceblue"
inhand_icon_state = "justiceblue"
/obj/item/clothing/head/justice/yellow
icon_state = "justiceyellow"
inhand_icon_state = "justiceyellow"
/obj/item/clothing/head/justice/green
icon_state = "justicegreen"
inhand_icon_state = "justicegreen"
/obj/item/clothing/head/justice/pink
icon_state = "justicepink"
inhand_icon_state = "justicepink"
/obj/item/clothing/head/rabbitears
name = "rabbit ears"
desc = "Wearing these makes you look useless, and only good for your sex appeal."
icon_state = "bunny"
dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/rabbit
/obj/item/clothing/head/pirate
name = "pirate hat"
desc = "Yarr."
icon_state = "pirate"
inhand_icon_state = "pirate"
dog_fashion = /datum/dog_fashion/head/pirate
/obj/item/clothing/head/pirate
var/datum/language/piratespeak/L = new
/obj/item/clothing/head/pirate/equipped(mob/user, slot)
. = ..()
if(!ishuman(user))
return
if(slot == ITEM_SLOT_HEAD)
user.grant_language(/datum/language/piratespeak/, TRUE, TRUE, LANGUAGE_HAT)
to_chat(user, span_boldnotice("You suddenly know how to speak like a pirate!"))
/obj/item/clothing/head/pirate/dropped(mob/user)
. = ..()
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
if(H.get_item_by_slot(ITEM_SLOT_HEAD) == src && !QDELETED(src)) //This can be called as a part of destroy
user.remove_language(/datum/language/piratespeak/, TRUE, TRUE, LANGUAGE_HAT)
to_chat(user, span_boldnotice("You can no longer speak like a pirate."))
/obj/item/clothing/head/pirate/armored
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
/obj/item/clothing/head/pirate/captain
name = "pirate captain hat"
icon_state = "hgpiratecap"
inhand_icon_state = "hgpiratecap"
/obj/item/clothing/head/bandana
name = "pirate bandana"
desc = "Yarr."
icon_state = "bandana"
inhand_icon_state = "bandana"
dynamic_hair_suffix = ""
/obj/item/clothing/head/bandana/armored
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
/obj/item/clothing/head/bowler
name = "bowler-hat"
desc = "Gentleman, elite aboard!"
icon_state = "bowler"
inhand_icon_state = "bowler"
dynamic_hair_suffix = ""
/obj/item/clothing/head/witchwig
name = "witch costume wig"
desc = "Eeeee~heheheheheheh!"
icon_state = "witch"
inhand_icon_state = "witch"
flags_inv = HIDEHAIR
/obj/item/clothing/head/chicken
name = "chicken suit head"
desc = "Bkaw!"
icon_state = "chickenhead"
inhand_icon_state = "chickensuit"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/griffin
name = "griffon head"
desc = "Why not 'eagle head'? Who knows."
icon_state = "griffinhat"
inhand_icon_state = "griffinhat"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/bearpelt
name = "bear pelt hat"
desc = "Fuzzy."
icon_state = "bearpelt"
inhand_icon_state = "bearpelt"
/obj/item/clothing/head/xenos
name = "xenos helmet"
icon_state = "xenos"
inhand_icon_state = "xenos_helm"
desc = "A helmet made out of chitinous alien hide."
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
/obj/item/clothing/head/fedora
name = "fedora"
icon_state = "fedora"
inhand_icon_state = "fedora"
desc = "A really cool hat if you're a mobster. A really lame hat if you're not."
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/fedora
/obj/item/clothing/head/fedora/white
name = "white fedora"
icon_state = "fedora_white"
inhand_icon_state = "fedora_white"
/obj/item/clothing/head/fedora/beige
name = "beige fedora"
icon_state = "fedora_beige"
inhand_icon_state = "fedora_beige"
/obj/item/clothing/head/fedora/suicide_act(mob/user)
if(user.gender == FEMALE)
return 0
var/mob/living/carbon/human/H = user
user.visible_message(span_suicide("[user] is donning [src]! It looks like [user.p_theyre()] trying to be nice to girls."))
user.say("M'lady.", forced = "fedora suicide")
sleep(10)
H.facial_hairstyle = "Neckbeard"
return(BRUTELOSS)
/obj/item/clothing/head/sombrero
name = "sombrero"
icon_state = "sombrero"
inhand_icon_state = "sombrero"
desc = "You can practically taste the fiesta."
flags_inv = HIDEHAIR
dog_fashion = /datum/dog_fashion/head/sombrero
greyscale_config = /datum/greyscale_config/sombrero
greyscale_config_worn = /datum/greyscale_config/sombrero/worn
greyscale_config_inhand_left = /datum/greyscale_config/sombrero/lefthand
greyscale_config_inhand_right = /datum/greyscale_config/sombrero/righthand
/obj/item/clothing/head/sombrero/green
name = "green sombrero"
desc = "As elegant as a dancing cactus."
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
dog_fashion = null
greyscale_colors = "#13d968#ffffff"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/sombrero/shamebrero
name = "shamebrero"
icon_state = "shamebrero"
inhand_icon_state = "shamebrero"
desc = "Once it's on, it never comes off."
dog_fashion = null
greyscale_colors = "#d565d3#f8db18"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/sombrero/shamebrero/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT)
/obj/item/clothing/head/flatcap
name = "flat cap"
desc = "A working man's cap."
icon_state = "beret_flat"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#8F7654"
inhand_icon_state = "detective"
/obj/item/clothing/head/hunter
name = "bounty hunting hat"
desc = "Ain't nobody gonna cheat the hangman in my town."
icon_state = "cowboy"
worn_icon_state = "hunter"
inhand_icon_state = "hunter"
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 15, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/cone
desc = "This cone is trying to warn you of something!"
name = "warning cone"
icon = 'icons/obj/janitor.dmi'
icon_state = "cone"
inhand_icon_state = "cone"
force = 1
throwforce = 3
throw_speed = 2
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
attack_verb_continuous = list("warns", "cautions", "smashes")
attack_verb_simple = list("warn", "caution", "smash")
resistance_flags = NONE
dynamic_hair_suffix = ""
/obj/item/clothing/head/santa
name = "santa hat"
desc = "On the first day of christmas my employer gave to me!"
icon_state = "santahatnorm"
inhand_icon_state = "that"
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
dog_fashion = /datum/dog_fashion/head/santa
/obj/item/clothing/head/jester
name = "jester hat"
desc = "A hat with bells, to add some merriness to the suit."
icon_state = "jester_hat"
dynamic_hair_suffix = ""
/obj/item/clothing/head/jester/alt
icon_state = "jester2"
/obj/item/clothing/head/rice_hat
name = "rice hat"
desc = "Welcome to the rice fields, motherfucker."
icon_state = "rice_hat"
/obj/item/clothing/head/lizard
name = "lizardskin cloche hat"
desc = "How many lizards died to make this hat? Not enough."
icon_state = "lizard"
/obj/item/clothing/head/papersack
name = "paper sack hat"
desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness."
icon_state = "papersack"
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS|HIDESNOUT
/obj/item/clothing/head/papersack/smiley
name = "paper sack hat"
desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all."
icon_state = "papersack_smile"
/obj/item/clothing/head/crown
name = "crown"
desc = "A crown fit for a king, a petty king maybe."
icon_state = "crown"
armor = list(MELEE = 15, BULLET = 0, LASER = 0,ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50, WOUND = 5)
resistance_flags = FIRE_PROOF
dynamic_hair_suffix = ""
/obj/item/clothing/head/crown/fancy
name = "magnificent crown"
desc = "A crown worn by only the highest emperors of the <s>land</s> space."
icon_state = "fancycrown"
/obj/item/clothing/head/scarecrow_hat
name = "scarecrow hat"
desc = "A simple straw hat."
icon_state = "scarecrow_hat"
/obj/item/clothing/head/lobsterhat
name = "foam lobster head"
desc = "When everything's going to crab, protecting your head is the best choice."
icon_state = "lobster_hat"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/head/drfreezehat
name = "doctor freeze's wig"
desc = "A cool wig for cool people."
icon_state = "drfreeze_hat"
flags_inv = HIDEHAIR
/obj/item/clothing/head/pharaoh
name = "pharaoh hat"
desc = "Walk like an Egyptian."
icon_state = "pharoah_hat"
inhand_icon_state = "pharoah_hat"
/obj/item/clothing/head/nemes
name = "headdress of Nemes"
desc = "Lavish space tomb not included."
icon_state = "nemes_headdress"
/obj/item/clothing/head/delinquent
name = "delinquent hat"
desc = "Good grief."
icon_state = "delinquent"
/obj/item/clothing/head/frenchberet
name = "french beret"
desc = "A quality beret, infused with the aroma of chain-smoking, wine-swilling Parisians. You feel less inclined to engage in military conflict, for some reason."
icon_state = "beret"
greyscale_config = /datum/greyscale_config/beret
greyscale_config_worn = /datum/greyscale_config/beret/worn
greyscale_colors = "#972A2A"
dynamic_hair_suffix = ""
/obj/item/clothing/head/frenchberet/equipped(mob/M, slot)
. = ..()
if (slot == ITEM_SLOT_HEAD)
RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech)
else
UnregisterSignal(M, COMSIG_MOB_SAY)
/obj/item/clothing/head/frenchberet/dropped(mob/M)
. = ..()
UnregisterSignal(M, COMSIG_MOB_SAY)
/obj/item/clothing/head/frenchberet/proc/handle_speech(datum/source, mob/speech_args)
SIGNAL_HANDLER
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
message = " [message]"
var/list/french_words = strings("french_replacement.json", "french")
for(var/key in french_words)
var/value = french_words[key]
if(islist(value))
value = pick(value)
message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]")
message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]")
message = replacetextEx(message, " [key]", " [value]")
if(prob(3))
message += pick(" Honh honh honh!"," Honh!"," Zut Alors!")
speech_args[SPEECH_MESSAGE] = trim(message)
/obj/item/clothing/head/clownmitre
name = "Hat of the Honkmother"
desc = "It's hard for parishoners to see a banana peel on the floor when they're looking up at your glorious chapeau."
icon_state = "clownmitre"
/obj/item/clothing/head/kippah
name = "kippah"
desc = "Signals that you follow the Jewish Halakha. Keeps the head covered and the soul extra-Orthodox."
icon_state = "kippah"
/obj/item/clothing/head/medievaljewhat
name = "medieval Jewish hat"
desc = "A silly looking hat, intended to be placed on the heads of the station's oppressed religious minorities."
icon_state = "medievaljewhat"
/obj/item/clothing/head/taqiyahwhite
name = "white taqiyah"
desc = "An extra-mustahabb way of showing your devotion to Allah."
icon_state = "taqiyahwhite"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small
/obj/item/clothing/head/taqiyahred
name = "red taqiyah"
desc = "An extra-mustahabb way of showing your devotion to Allah."
icon_state = "taqiyahred"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small
/obj/item/clothing/head/shrine_wig
name = "shrine maiden's wig"
desc = "Purify in style!"
flags_inv = HIDEHAIR //bald
icon_state = "shrine_wig"
inhand_icon_state = "shrine_wig"
dynamic_hair_suffix = ""
worn_y_offset = 1
/obj/item/clothing/head/intern
name = "\improper CentCom Head Intern beancap"
desc = "A horrifying mix of beanie and softcap in CentCom green. You'd have to be pretty desperate for power over your peers to agree to wear this."
icon_state = "intern_hat"
inhand_icon_state = "intern_hat"
/obj/item/clothing/head/coordinator
name = "coordinator cap"
desc = "A cap for a party coordinator, stylish!."
icon_state = "capcap"
inhand_icon_state = "that"
armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 35, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
/obj/item/clothing/head/jackbros
name = "frosty hat"
desc = "Hee-ho!"
icon_state = "JackFrostHat"
inhand_icon_state = "JackFrostHat"
/obj/item/clothing/head/weddingveil
name = "wedding veil"
desc = "A gauzy white veil."
icon_state = "weddingveil"
inhand_icon_state = "weddingveil"
/obj/item/clothing/head/centcom_cap
name = "\improper CentCom commander cap"
icon_state = "centcom_cap"
desc = "Worn by the finest of CentCom commanders. Inside the lining of the cap, lies two faint initials."
inhand_icon_state = "that"
flags_inv = 0
armor = list(MELEE = 30, BULLET = 15, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
strip_delay = (8 SECONDS)
/obj/item/clothing/head/human_leather
name = "human skin hat"
desc = "This will scare them. All will know my power."
icon_state = "human_leather"
inhand_icon_state = "human_leather"
-435
View File
@@ -1,435 +0,0 @@
/*
* Contents:
* Welding mask
* Cakehat
* Ushanka
* Pumpkin head
* Kitty ears
* Cardborg disguise
* Wig
* Bronze hat
*/
/*
* 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
inhand_icon_state = "welding"
custom_materials = list(/datum/material/iron=1750, /datum/material/glass=400)
flash_protect = FLASH_PROTECTION_WELDER
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|HIDESNOUT
actions_types = list(/datum/action/item_action/toggle)
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
resistance_flags = FIRE_PROOF
clothing_flags = SNUG_FIT
/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"
inhand_icon_state = "hardhat0_cakehat"
hat_type = "cakehat"
lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi'
righthand_file = 'icons/mob/inhands/clothing_righthand.dmi'
hitsound = 'sound/weapons/tap.ogg'
var/hitsound_on = 'sound/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat
var/hitsound_off = 'sound/weapons/tap.ogg'
var/force_on = 15
var/throwforce_on = 15
var/damtype_on = BURN
flags_inv = HIDEEARS|HIDEHAIR
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
light_range = 2 //luminosity when on
light_system = MOVABLE_LIGHT
flags_cover = HEADCOVERSEYES
heat = 999
dog_fashion = /datum/dog_fashion/head
/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(mob/living/user)
..()
force = force_on
throwforce = throwforce_on
damtype = damtype_on
hitsound = hitsound_on
START_PROCESSING(SSobj, src)
/obj/item/clothing/head/hardhat/cakehat/turn_off(mob/living/user)
..()
force = 0
throwforce = 0
damtype = BRUTE
hitsound = hitsound_off
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/head/hardhat/cakehat/get_temperature()
return on * heat
/obj/item/clothing/head/hardhat/cakehat/energycake
name = "energy cake"
desc = "You put the energy sword on your cake. Brilliant."
icon_state = "hardhat0_energycake"
inhand_icon_state = "hardhat0_energycake"
hat_type = "energycake"
hitsound = 'sound/weapons/tap.ogg'
hitsound_on = 'sound/weapons/blade1.ogg'
hitsound_off = 'sound/weapons/tap.ogg'
damtype_on = BRUTE
force_on = 18 //same as epen (but much more obvious)
light_range = 3 //ditto
heat = 0
/obj/item/clothing/head/hardhat/cakehat/energycake/turn_on(mob/living/user)
playsound(user, 'sound/weapons/saberon.ogg', 5, TRUE)
to_chat(user, span_warning("You turn on \the [src]."))
..()
/obj/item/clothing/head/hardhat/cakehat/energycake/turn_off(mob/living/user)
playsound(user, 'sound/weapons/saberoff.ogg', 5, TRUE)
to_chat(user, span_warning("You turn off \the [src]."))
..()
/*
* Ushanka
*/
/obj/item/clothing/head/ushanka
name = "ushanka"
desc = "Perfect for winter in Siberia, da?"
icon_state = "ushankadown"
inhand_icon_state = "ushankadown"
flags_inv = HIDEEARS|HIDEHAIR
var/earflaps = TRUE
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)
icon_state = "ushankaup"
inhand_icon_state = "ushankaup"
to_chat(user, span_notice("You raise the ear flaps on the ushanka."))
else
icon_state = "ushankadown"
inhand_icon_state = "ushankadown"
to_chat(user, span_notice("You lower the ear flaps on the ushanka."))
earflaps = !earflaps
/*
* 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"
inhand_icon_state = "hardhat0_pumpkin"
hat_type = "pumpkin"
clothing_flags = SNUG_FIT
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
light_range = 2 //luminosity when on
flags_cover = HEADCOVERSEYES
light_color = "#fff2bf"
worn_y_offset = 1
/obj/item/clothing/head/hardhat/pumpkinhead/set_light_on(new_value)
. = ..()
if(isnull(.))
return
update_icon(UPDATE_OVERLAYS)
/obj/item/clothing/head/hardhat/pumpkinhead/update_overlays()
. = ..()
if(light_on)
. += emissive_appearance(icon, "carved_pumpkin-emissive", alpha = src.alpha)
/obj/item/clothing/head/hardhat/pumpkinhead/worn_overlays(isinhands)
. = ..()
if(!isinhands)
. += emissive_appearance(worn_icon, "carved_pumpkin-emissive", alpha = src.alpha, appearance_flags = KEEP_APART)
/obj/item/clothing/head/hardhat/pumpkinhead/blumpkin
name = "carved blumpkin"
desc = "A very blue jack o' lantern! Believed to ward off vengeful chemists."
icon_state = "hardhat0_blumpkin"
inhand_icon_state = "hardhat0_blumpkin"
hat_type = "blumpkin"
light_color = "#76ff8e"
/*
* 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/visual_equipped(mob/living/carbon/human/user, slot)
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
update_icon(ALL, user)
user.update_inv_head() //Color might have been changed by update_appearance.
..()
/obj/item/clothing/head/kitty/update_icon(updates=ALL, 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"
inhand_icon_state = "hardhat0_reindeer"
hat_type = "reindeer"
flags_inv = 0
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
light_range = 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"
inhand_icon_state = "cardborg_h"
clothing_flags = SNUG_FIT
flags_cover = HEADCOVERSEYES
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
dog_fashion = /datum/dog_fashion/head/cardborg
/obj/item/clothing/head/cardborg/equipped(mob/living/user, slot)
..()
if(ishuman(user) && slot == ITEM_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 = 'icons/mob/human_face.dmi' // default icon for all hairs
icon_state = "hair_vlong"
inhand_icon_state = "pwig"
worn_icon_state = "wig"
flags_inv = HIDEHAIR
color = "#000"
var/hairstyle = "Very Long Hair"
var/adjustablecolor = TRUE //can color be changed manually?
/obj/item/clothing/head/wig/Initialize(mapload)
. = ..()
update_appearance()
/obj/item/clothing/head/wig/equipped(mob/user, slot)
. = ..()
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
item_flags |= EXAMINE_SKIP
/obj/item/clothing/head/wig/dropped(mob/user)
. = ..()
item_flags &= ~EXAMINE_SKIP
/obj/item/clothing/head/wig/update_icon_state()
var/datum/sprite_accessory/hair_style = GLOB.hairstyles_list[hairstyle]
if(hair_style)
icon_state = hair_style.icon_state
return ..()
/obj/item/clothing/head/wig/worn_overlays(mutable_appearance/standing, isinhands = FALSE, file2use)
. = ..()
if(isinhands)
return
var/datum/sprite_accessory/hair = GLOB.hairstyles_list[hairstyle]
if(!hair)
return
var/mutable_appearance/hair_overlay = mutable_appearance(hair.icon, hair.icon_state, layer = -HAIR_LAYER, appearance_flags = RESET_COLOR)
hair_overlay.color = color
. += hair_overlay
// So that the wig actually blocks emissives.
var/mutable_appearance/hair_blocker = mutable_appearance(hair.icon, hair.icon_state, plane = EMISSIVE_PLANE, appearance_flags = KEEP_APART)
hair_blocker.color = GLOB.em_block_color
hair_overlay.overlays += hair_blocker
/obj/item/clothing/head/wig/attack_self(mob/user)
var/new_style = input(user, "Select a hairstyle", "Wig Styling") as null|anything in (GLOB.hairstyles_list - "Bald")
var/newcolor = adjustablecolor ? input(usr,"","Choose Color",color) as color|null : null
if(!user.canUseTopic(src, BE_CLOSE))
return
if(new_style && new_style != hairstyle)
hairstyle = new_style
user.visible_message(span_notice("[user] changes \the [src]'s hairstyle to [new_style]."), span_notice("You change \the [src]'s hairstyle to [new_style]."))
if(newcolor && newcolor != color) // only update if necessary
add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
update_appearance()
/obj/item/clothing/head/wig/afterattack(mob/living/carbon/human/target, mob/user)
. = ..()
if(!istype(target))
return
if(target.head)
var/obj/item/clothing/head = target.head
if((head.flags_inv & HIDEHAIR) && !istype(head, /obj/item/clothing/head/wig))
to_chat(user, span_warning("You can't get a good look at [target.p_their()] hair!"))
return
var/selected_hairstyle = null
var/selected_hairstyle_color = null
if(istype(target.head, /obj/item/clothing/head/wig))
var/obj/item/clothing/head/wig/wig = target.head
selected_hairstyle = wig.hairstyle
selected_hairstyle_color = wig.color
else if((HAIR in target.dna.species.species_traits) && target.hairstyle != "Bald")
selected_hairstyle = target.hairstyle
selected_hairstyle_color = "#[target.hair_color]"
if(selected_hairstyle)
to_chat(user, span_notice("You adjust the [src] to look just like [target.name]'s [selected_hairstyle]."))
add_atom_colour(selected_hairstyle_color, FIXED_COLOUR_PRIORITY)
hairstyle = selected_hairstyle
update_appearance()
/obj/item/clothing/head/wig/random/Initialize(mapload)
hairstyle = pick(GLOB.hairstyles_list - "Bald") //Don't want invisible wig
add_atom_colour("#[random_short_color()]", FIXED_COLOUR_PRIORITY)
. = ..()
/obj/item/clothing/head/wig/natural
name = "natural wig"
desc = "A bunch of hair without a head attached. This one changes color to match the hair of the wearer. Nothing natural about that."
color = "#FFF"
adjustablecolor = FALSE
custom_price = PAYCHECK_HARD
/obj/item/clothing/head/wig/natural/Initialize(mapload)
hairstyle = pick(GLOB.hairstyles_list - "Bald")
. = ..()
/obj/item/clothing/head/wig/natural/visual_equipped(mob/living/carbon/human/user, slot)
. = ..()
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
if (color != "#[user.hair_color]") // only update if necessary
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
update_appearance()
user.update_inv_head()
/obj/item/clothing/head/bronze
name = "bronze hat"
desc = "A crude helmet made out of bronze plates. It offers very little in the way of protection."
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_helmet_old"
clothing_flags = SNUG_FIT
flags_inv = HIDEEARS|HIDEHAIR
armor = list(MELEE = 5, BULLET = 0, LASER = -5, ENERGY = -15, BOMB = 10, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
/obj/item/clothing/head/foilhat
name = "tinfoil hat"
desc = "Thought control rays, psychotronic scanning. Don't mind that, I'm protected cause I made this hat."
icon_state = "foilhat"
inhand_icon_state = "foilhat"
armor = list(MELEE = 0, BULLET = 0, LASER = -5,ENERGY = -15, BOMB = 0, BIO = 0, RAD = -5, FIRE = 0, ACID = 0)
equip_delay_other = 140
clothing_flags = ANTI_TINFOIL_MANEUVER
var/datum/brain_trauma/mild/phobia/conspiracies/paranoia
var/warped = FALSE
/obj/item/clothing/head/foilhat/Initialize(mapload)
. = ..()
if(!warped)
AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, .proc/warp_up))
else
warp_up()
/obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot)
. = ..()
if(slot != ITEM_SLOT_HEAD || warped)
return
if(paranoia)
QDEL_NULL(paranoia)
paranoia = new()
user.gain_trauma(paranoia, TRAUMA_RESILIENCE_MAGIC)
to_chat(user, span_warning("As you don the foiled hat, an entire world of conspiracy theories and seemingly insane ideas suddenly rush into your mind. What you once thought unbelievable suddenly seems.. undeniable. Everything is connected and nothing happens just by accident. You know too much and now they're out to get you. "))
/obj/item/clothing/head/foilhat/MouseDrop(atom/over_object)
//God Im sorry
if(!warped && iscarbon(usr))
var/mob/living/carbon/C = usr
if(src == C.head)
to_chat(C, span_userdanger("Why would you want to take this off? Do you want them to get into your mind?!"))
return
return ..()
/obj/item/clothing/head/foilhat/dropped(mob/user)
. = ..()
if(paranoia)
QDEL_NULL(paranoia)
/obj/item/clothing/head/foilhat/proc/warp_up()
name = "scorched tinfoil hat"
desc = "A badly warped up hat. Quite unprobable this will still work against any of fictional and contemporary dangers it used to."
warped = TRUE
clothing_flags &= ~ANTI_TINFOIL_MANEUVER
if(!isliving(loc) || !paranoia)
return
var/mob/living/target = loc
if(target.get_item_by_slot(ITEM_SLOT_HEAD) != src)
return
QDEL_NULL(paranoia)
if(target.stat < UNCONSCIOUS)
to_chat(target, span_warning("Your zealous conspirationism rapidly dissipates as the donned hat warps up into a ruined mess. All those theories starting to sound like nothing but a ridicolous fanfare."))
/obj/item/clothing/head/foilhat/attack_hand(mob/user, list/modifiers)
if(!warped && iscarbon(user))
var/mob/living/carbon/C = user
if(src == C.head)
to_chat(user, span_userdanger("Why would you want to take this off? Do you want them to get into your mind?!"))
return
return ..()
/obj/item/clothing/head/foilhat/microwave_act(obj/machinery/microwave/M)
. = ..()
if(!warped)
warp_up()
+10
View File
@@ -0,0 +1,10 @@
/obj/item/clothing/head/papersack
name = "paper sack hat"
desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness."
icon_state = "papersack"
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS|HIDESNOUT
/obj/item/clothing/head/papersack/smiley
name = "paper sack hat"
desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all."
icon_state = "papersack_smile"
+48
View File
@@ -0,0 +1,48 @@
/obj/item/clothing/head/pirate
name = "pirate hat"
desc = "Yarr."
icon_state = "pirate"
inhand_icon_state = "pirate"
dog_fashion = /datum/dog_fashion/head/pirate
/obj/item/clothing/head/pirate
var/datum/language/piratespeak/L = new
/obj/item/clothing/head/pirate/equipped(mob/user, slot)
. = ..()
if(!ishuman(user))
return
if(slot == ITEM_SLOT_HEAD)
user.grant_language(/datum/language/piratespeak/, TRUE, TRUE, LANGUAGE_HAT)
to_chat(user, span_boldnotice("You suddenly know how to speak like a pirate!"))
/obj/item/clothing/head/pirate/dropped(mob/user)
. = ..()
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
if(H.get_item_by_slot(ITEM_SLOT_HEAD) == src && !QDELETED(src)) //This can be called as a part of destroy
user.remove_language(/datum/language/piratespeak/, TRUE, TRUE, LANGUAGE_HAT)
to_chat(user, span_boldnotice("You can no longer speak like a pirate."))
/obj/item/clothing/head/pirate/armored
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
/obj/item/clothing/head/pirate/captain
name = "pirate captain hat"
icon_state = "hgpiratecap"
inhand_icon_state = "hgpiratecap"
/obj/item/clothing/head/bandana
name = "pirate bandana"
desc = "Yarr."
icon_state = "bandana"
inhand_icon_state = "bandana"
dynamic_hair_suffix = ""
/obj/item/clothing/head/bandana/armored
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
+26
View File
@@ -0,0 +1,26 @@
/obj/item/clothing/head/clownmitre
name = "Hat of the Honkmother"
desc = "It's hard for parishoners to see a banana peel on the floor when they're looking up at your glorious chapeau."
icon_state = "clownmitre"
/obj/item/clothing/head/kippah
name = "kippah"
desc = "Signals that you follow the Jewish Halakha. Keeps the head covered and the soul extra-Orthodox."
icon_state = "kippah"
/obj/item/clothing/head/medievaljewhat
name = "medieval Jewish hat"
desc = "A silly looking hat, intended to be placed on the heads of the station's oppressed religious minorities."
icon_state = "medievaljewhat"
/obj/item/clothing/head/taqiyahwhite
name = "white taqiyah"
desc = "An extra-mustahabb way of showing your devotion to Allah."
icon_state = "taqiyahwhite"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small
/obj/item/clothing/head/taqiyahred
name = "red taqiyah"
desc = "An extra-mustahabb way of showing your devotion to Allah."
icon_state = "taqiyahred"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small
+34
View File
@@ -0,0 +1,34 @@
/obj/item/clothing/head/sombrero
name = "sombrero"
icon_state = "sombrero"
inhand_icon_state = "sombrero"
desc = "You can practically taste the fiesta."
flags_inv = HIDEHAIR
dog_fashion = /datum/dog_fashion/head/sombrero
greyscale_config = /datum/greyscale_config/sombrero
greyscale_config_worn = /datum/greyscale_config/sombrero/worn
greyscale_config_inhand_left = /datum/greyscale_config/sombrero/lefthand
greyscale_config_inhand_right = /datum/greyscale_config/sombrero/righthand
/obj/item/clothing/head/sombrero/green
name = "green sombrero"
desc = "As elegant as a dancing cactus."
flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS
dog_fashion = null
greyscale_colors = "#13d968#ffffff"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/sombrero/shamebrero
name = "shamebrero"
icon_state = "shamebrero"
inhand_icon_state = "shamebrero"
desc = "Once it's on, it never comes off."
dog_fashion = null
greyscale_colors = "#d565d3#f8db18"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/head/sombrero/shamebrero/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT)
+69
View File
@@ -0,0 +1,69 @@
/obj/item/clothing/head/foilhat
name = "tinfoil hat"
desc = "Thought control rays, psychotronic scanning. Don't mind that, I'm protected cause I made this hat."
icon_state = "foilhat"
inhand_icon_state = "foilhat"
armor = list(MELEE = 0, BULLET = 0, LASER = -5,ENERGY = -15, BOMB = 0, BIO = 0, RAD = -5, FIRE = 0, ACID = 0)
equip_delay_other = 140
clothing_flags = ANTI_TINFOIL_MANEUVER
var/datum/brain_trauma/mild/phobia/conspiracies/paranoia
var/warped = FALSE
/obj/item/clothing/head/foilhat/Initialize(mapload)
. = ..()
if(!warped)
AddComponent(/datum/component/anti_magic, FALSE, FALSE, TRUE, ITEM_SLOT_HEAD, 6, TRUE, null, CALLBACK(src, .proc/warp_up))
else
warp_up()
/obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot)
. = ..()
if(slot != ITEM_SLOT_HEAD || warped)
return
if(paranoia)
QDEL_NULL(paranoia)
paranoia = new()
user.gain_trauma(paranoia, TRAUMA_RESILIENCE_MAGIC)
to_chat(user, span_warning("As you don the foiled hat, an entire world of conspiracy theories and seemingly insane ideas suddenly rush into your mind. What you once thought unbelievable suddenly seems.. undeniable. Everything is connected and nothing happens just by accident. You know too much and now they're out to get you. "))
/obj/item/clothing/head/foilhat/MouseDrop(atom/over_object)
//God Im sorry
if(!warped && iscarbon(usr))
var/mob/living/carbon/C = usr
if(src == C.head)
to_chat(C, span_userdanger("Why would you want to take this off? Do you want them to get into your mind?!"))
return
return ..()
/obj/item/clothing/head/foilhat/dropped(mob/user)
. = ..()
if(paranoia)
QDEL_NULL(paranoia)
/obj/item/clothing/head/foilhat/proc/warp_up()
name = "scorched tinfoil hat"
desc = "A badly warped up hat. Quite unprobable this will still work against any of fictional and contemporary dangers it used to."
warped = TRUE
clothing_flags &= ~ANTI_TINFOIL_MANEUVER
if(!isliving(loc) || !paranoia)
return
var/mob/living/target = loc
if(target.get_item_by_slot(ITEM_SLOT_HEAD) != src)
return
QDEL_NULL(paranoia)
if(target.stat < UNCONSCIOUS)
to_chat(target, span_warning("Your zealous conspirationism rapidly dissipates as the donned hat warps up into a ruined mess. All those theories starting to sound like nothing but a ridicolous fanfare."))
/obj/item/clothing/head/foilhat/attack_hand(mob/user, list/modifiers)
if(!warped && iscarbon(user))
var/mob/living/carbon/wearer = user
if(src == wearer.head)
to_chat(user, span_userdanger("Why would you want to take this off? Do you want them to get into your mind?!"))
return
return ..()
/obj/item/clothing/head/foilhat/microwave_act(obj/machinery/microwave/M)
. = ..()
if(!warped)
warp_up()
+40
View File
@@ -0,0 +1,40 @@
#define RABBIT_CD_TIME 30 SECONDS
/obj/item/clothing/head/that
name = "top-hat"
desc = "It's an amish looking hat."
icon_state = "tophat"
inhand_icon_state = "that"
dog_fashion = /datum/dog_fashion/head
throwforce = 1
/// Cooldown for how often we can pull rabbits out of here
COOLDOWN_DECLARE(rabbit_cooldown)
/obj/item/clothing/head/that/attackby(obj/item/hitby_item, mob/user, params)
. = ..()
if(istype(hitby_item, /obj/item/gun/magic/wand))
abracadabra(hitby_item, user)
/obj/item/clothing/head/that/proc/abracadabra(obj/item/hitby_wand, mob/magician)
if(!COOLDOWN_FINISHED(src, rabbit_cooldown))
to_chat(span_warning("You can't find another rabbit in [src]! Seems another hasn't gotten lost in there yet..."))
return
COOLDOWN_START(src, rabbit_cooldown, RABBIT_CD_TIME)
playsound(get_turf(src), 'sound/weapons/emitter.ogg', 70)
do_smoke(range=1, location=src, smoke_type=/obj/effect/particle_effect/smoke/quick)
if(prob(10))
magician.visible_message(span_danger("[magician] taps [src] with [hitby_wand], then reaches in and pulls out a bu- wait, those are bees!"), span_danger("You tap [src] with your [hitby_wand.name] and pull out... <b>BEES!</b>"))
var/wait_how_many_bees_did_that_guy_pull_out_of_his_hat = rand(4, 8)
for(var/b in 1 to wait_how_many_bees_did_that_guy_pull_out_of_his_hat)
var/mob/living/simple_animal/hostile/bee/barry = new(get_turf(magician))
barry.GiveTarget(magician)
if(prob(20))
barry.say(pick("BUZZ BUZZ", "PULLING A RABBIT OUT OF A HAT IS A TIRED TROPE", "I DIDN'T ASK TO BEE HERE"), forced = "bee hat")
else
magician.visible_message(span_notice("[magician] taps [src] with [hitby_wand], then reaches in and pulls out a bunny! Cute!"), span_notice("You tap [src] with your [hitby_wand.name] and pull out a cute bunny!"))
var/mob/living/simple_animal/rabbit/empty/bunbun = new(get_turf(magician))
bunbun.mob_try_pickup(magician, instant=TRUE)
#undef RABBIT_CD_TIME
+19
View File
@@ -0,0 +1,19 @@
/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
inhand_icon_state = "welding"
custom_materials = list(/datum/material/iron=1750, /datum/material/glass=400)
flash_protect = FLASH_PROTECTION_WELDER
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|HIDESNOUT
actions_types = list(/datum/action/item_action/toggle)
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT
visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
resistance_flags = FIRE_PROOF
clothing_flags = SNUG_FIT
/obj/item/clothing/head/welding/attack_self(mob/user)
weldingvisortoggle(user)
+112
View File
@@ -0,0 +1,112 @@
/obj/item/clothing/head/wig
name = "wig"
desc = "A bunch of hair without a head attached."
icon = 'icons/mob/human_face.dmi' // default icon for all hairs
icon_state = "hair_vlong"
inhand_icon_state = "pwig"
worn_icon_state = "wig"
flags_inv = HIDEHAIR
color = "#000"
var/hairstyle = "Very Long Hair"
var/adjustablecolor = TRUE //can color be changed manually?
/obj/item/clothing/head/wig/Initialize(mapload)
. = ..()
update_appearance()
/obj/item/clothing/head/wig/equipped(mob/user, slot)
. = ..()
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
item_flags |= EXAMINE_SKIP
/obj/item/clothing/head/wig/dropped(mob/user)
. = ..()
item_flags &= ~EXAMINE_SKIP
/obj/item/clothing/head/wig/update_icon_state()
var/datum/sprite_accessory/hair_style = GLOB.hairstyles_list[hairstyle]
if(hair_style)
icon_state = hair_style.icon_state
return ..()
/obj/item/clothing/head/wig/worn_overlays(mutable_appearance/standing, isinhands = FALSE, file2use)
. = ..()
if(isinhands)
return
var/datum/sprite_accessory/hair = GLOB.hairstyles_list[hairstyle]
if(!hair)
return
var/mutable_appearance/hair_overlay = mutable_appearance(hair.icon, hair.icon_state, layer = -HAIR_LAYER, appearance_flags = RESET_COLOR)
hair_overlay.color = color
. += hair_overlay
// So that the wig actually blocks emissives.
var/mutable_appearance/hair_blocker = mutable_appearance(hair.icon, hair.icon_state, plane = EMISSIVE_PLANE, appearance_flags = KEEP_APART)
hair_blocker.color = GLOB.em_block_color
hair_overlay.overlays += hair_blocker
/obj/item/clothing/head/wig/attack_self(mob/user)
var/new_style = input(user, "Select a hairstyle", "Wig Styling") as null|anything in (GLOB.hairstyles_list - "Bald")
var/newcolor = adjustablecolor ? input(usr,"","Choose Color",color) as color|null : null
if(!user.canUseTopic(src, BE_CLOSE))
return
if(new_style && new_style != hairstyle)
hairstyle = new_style
user.visible_message(span_notice("[user] changes \the [src]'s hairstyle to [new_style]."), span_notice("You change \the [src]'s hairstyle to [new_style]."))
if(newcolor && newcolor != color) // only update if necessary
add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
update_appearance()
/obj/item/clothing/head/wig/afterattack(mob/living/carbon/human/target, mob/user)
. = ..()
if(!istype(target))
return
if(target.head)
var/obj/item/clothing/head = target.head
if((head.flags_inv & HIDEHAIR) && !istype(head, /obj/item/clothing/head/wig))
to_chat(user, span_warning("You can't get a good look at [target.p_their()] hair!"))
return
var/selected_hairstyle = null
var/selected_hairstyle_color = null
if(istype(target.head, /obj/item/clothing/head/wig))
var/obj/item/clothing/head/wig/wig = target.head
selected_hairstyle = wig.hairstyle
selected_hairstyle_color = wig.color
else if((HAIR in target.dna.species.species_traits) && target.hairstyle != "Bald")
selected_hairstyle = target.hairstyle
selected_hairstyle_color = "#[target.hair_color]"
if(selected_hairstyle)
to_chat(user, span_notice("You adjust the [src] to look just like [target.name]'s [selected_hairstyle]."))
add_atom_colour(selected_hairstyle_color, FIXED_COLOUR_PRIORITY)
hairstyle = selected_hairstyle
update_appearance()
/obj/item/clothing/head/wig/random/Initialize(mapload)
hairstyle = pick(GLOB.hairstyles_list - "Bald") //Don't want invisible wig
add_atom_colour("#[random_short_color()]", FIXED_COLOUR_PRIORITY)
. = ..()
/obj/item/clothing/head/wig/natural
name = "natural wig"
desc = "A bunch of hair without a head attached. This one changes color to match the hair of the wearer. Nothing natural about that."
color = "#FFF"
adjustablecolor = FALSE
custom_price = PAYCHECK_HARD
/obj/item/clothing/head/wig/natural/Initialize(mapload)
hairstyle = pick(GLOB.hairstyles_list - "Bald")
. = ..()
/obj/item/clothing/head/wig/natural/visual_equipped(mob/living/carbon/human/user, slot)
. = ..()
if(ishuman(user) && slot == ITEM_SLOT_HEAD)
if (color != "#[user.hair_color]") // only update if necessary
add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY)
update_appearance()
user.update_inv_head()
+76
View File
@@ -0,0 +1,76 @@
/obj/item/clothing/mask/bandana
name = "botany bandana"
desc = "A fine bandana with nanotech lining and a hydroponics pattern."
w_class = WEIGHT_CLASS_TINY
flags_cover = MASKCOVERSMOUTH
flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
visor_flags_cover = MASKCOVERSMOUTH | PEPPERPROOF
slot_flags = ITEM_SLOT_MASK
adjusted_flags = ITEM_SLOT_HEAD
icon_state = "bandbotany"
species_exception = list(/datum/species/golem)
/obj/item/clothing/mask/bandana/attack_self(mob/user)
adjustmask(user)
/obj/item/clothing/mask/bandana/AltClick(mob/user)
. = ..()
if(iscarbon(user))
var/mob/living/carbon/C = user
if((C.get_item_by_slot(ITEM_SLOT_HEAD == src)) || (C.get_item_by_slot(ITEM_SLOT_MASK) == src))
to_chat(user, span_warning("You can't tie [src] while wearing it!"))
return
if(slot_flags & ITEM_SLOT_HEAD)
to_chat(user, span_warning("You must undo [src] before you can tie it into a neckerchief!"))
else
if(user.is_holding(src))
var/obj/item/clothing/neck/neckerchief/nk = new(src)
nk.name = "[name] neckerchief"
nk.desc = "[desc] It's tied up like a neckerchief."
nk.icon_state = icon_state
nk.item_flags = item_flags
nk.worn_icon = 'icons/misc/hidden.dmi' //hide underlying neckerchief object while it applies its own mutable appearance
nk.sourceBandanaType = src.type
var/currentHandIndex = user.get_held_index_of_item(src)
user.transferItemToLoc(src, null)
user.put_in_hand(nk, currentHandIndex)
user.visible_message(span_notice("[user] ties [src] up like a neckerchief."), span_notice("You tie [src] up like a neckerchief."))
qdel(src)
else
to_chat(user, span_warning("You must be holding [src] in order to tie it!"))
/obj/item/clothing/mask/bandana/red
name = "red bandana"
desc = "A fine red bandana with nanotech lining."
icon_state = "bandred"
/obj/item/clothing/mask/bandana/blue
name = "blue bandana"
desc = "A fine blue bandana with nanotech lining."
icon_state = "bandblue"
/obj/item/clothing/mask/bandana/green
name = "green bandana"
desc = "A fine green bandana with nanotech lining."
icon_state = "bandgreen"
/obj/item/clothing/mask/bandana/gold
name = "gold bandana"
desc = "A fine gold bandana with nanotech lining."
icon_state = "bandgold"
/obj/item/clothing/mask/bandana/black
name = "black bandana"
desc = "A fine black bandana with nanotech lining."
icon_state = "bandblack"
/obj/item/clothing/mask/bandana/skull
name = "skull bandana"
desc = "A fine black bandana with nanotech lining and a skull emblem."
icon_state = "bandskull"
/obj/item/clothing/mask/bandana/durathread
name = "durathread bandana"
desc = "A bandana made from durathread, you wish it would provide some protection to its wearer, but it's far too thin..."
icon_state = "banddurathread"
+19
View File
@@ -0,0 +1,19 @@
/obj/item/clothing/mask/joy
name = "joy mask"
desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout."
icon_state = "joy"
flags_inv = HIDESNOUT
/obj/item/clothing/mask/mummy
name = "mummy mask"
desc = "Ancient bandages."
icon_state = "mummy_mask"
inhand_icon_state = "mummy_mask"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/mask/scarecrow
name = "sack mask"
desc = "A burlap sack with eyeholes."
icon_state = "scarecrow_sack"
inhand_icon_state = "scarecrow_sack"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
+22
View File
@@ -0,0 +1,22 @@
/obj/item/clothing/mask/gondola
name = "gondola mask"
desc = "Genuine gondola fur."
icon_state = "gondola"
inhand_icon_state = "gondola"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
w_class = WEIGHT_CLASS_SMALL
modifies_speech = TRUE
/obj/item/clothing/mask/gondola/handle_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
message = " [message]"
var/list/spurdo_words = strings("spurdo_replacement.json", "spurdo")
for(var/key in spurdo_words)
var/value = spurdo_words[key]
if(islist(value))
value = pick(value)
message = replacetextEx(message,regex(uppertext(key),"g"), "[uppertext(value)]")
message = replacetextEx(message,regex(capitalize(key),"g"), "[capitalize(value)]")
message = replacetextEx(message,regex(key,"g"), "[value]")
speech_args[SPEECH_MESSAGE] = trim(message)
@@ -1,209 +0,0 @@
/obj/item/clothing/mask/muzzle
name = "muzzle"
desc = "To stop that awful noise."
icon_state = "muzzle"
inhand_icon_state = "blindfold"
clothing_flags = BLOCKS_SPEECH
flags_cover = MASKCOVERSMOUTH
w_class = WEIGHT_CLASS_SMALL
gas_transfer_coefficient = 0.9
equip_delay_other = 20
/obj/item/clothing/mask/muzzle/attack_paw(mob/user, list/modifiers)
if(iscarbon(user))
var/mob/living/carbon/carbon_user = user
if(src == carbon_user.wear_mask)
to_chat(user, span_warning("You need help taking this off!"))
return
..()
/obj/item/clothing/mask/breathmuzzle
name = "surgery mask"
desc = "To silence those pesky patients before putting them under."
icon_state = "breathmuzzle"
inhand_icon_state = "breathmuzzle"
body_parts_covered = NONE
clothing_flags = MASKINTERNALS | BLOCKS_SPEECH
gas_transfer_coefficient = 0.1
permeability_coefficient = 0.01
equip_delay_other = 25 // my sprite has 4 straps, a-la a head harness. takes a while to equip, longer than a muzzle
/obj/item/clothing/mask/breathmuzzle/attack_paw(mob/user, list/modifiers)
// The breathmuzzle is similar enough to a regular muzzle that similar rules would apply to both.
if(iscarbon(user))
var/mob/living/carbon/carbon_user = user
if(src == carbon_user.wear_mask)
to_chat(user, span_warning("You need help taking this off!"))
return
..()
/obj/item/clothing/mask/surgical
name = "sterile mask"
desc = "A sterile mask designed to help prevent the spread of diseases."
icon_state = "sterile"
inhand_icon_state = "sterile"
w_class = WEIGHT_CLASS_TINY
flags_inv = HIDEFACE|HIDESNOUT
flags_cover = MASKCOVERSMOUTH
visor_flags_inv = HIDEFACE|HIDESNOUT
visor_flags_cover = MASKCOVERSMOUTH
gas_transfer_coefficient = 0.9
permeability_coefficient = 0.01
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 25, RAD = 0, FIRE = 0, ACID = 0)
actions_types = list(/datum/action/item_action/adjust)
/obj/item/clothing/mask/surgical/attack_self(mob/user)
adjustmask(user)
/obj/item/clothing/mask/fakemoustache
name = "fake moustache"
desc = "Warning: moustache is fake."
icon_state = "fake-moustache"
w_class = WEIGHT_CLASS_TINY
flags_inv = HIDEFACE
species_exception = list(/datum/species/golem)
/obj/item/clothing/mask/fakemoustache/italian
name = "italian moustache"
desc = "Made from authentic Italian moustache hairs. Gives the wearer an irresistable urge to gesticulate wildly."
modifies_speech = TRUE
/obj/item/clothing/mask/fakemoustache/italian/handle_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
message = " [message]"
var/list/italian_words = strings("italian_replacement.json", "italian")
for(var/key in italian_words)
var/value = italian_words[key]
if(islist(value))
value = pick(value)
message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]")
message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]")
message = replacetextEx(message, " [key]", " [value]")
if(prob(3))
message += pick(" Ravioli, ravioli, give me the formuoli!"," Mamma-mia!"," Mamma-mia! That's a spicy meat-ball!", " La la la la la funiculi funicula!")
speech_args[SPEECH_MESSAGE] = trim(message)
/obj/item/clothing/mask/joy
name = "joy mask"
desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout."
icon_state = "joy"
flags_inv = HIDESNOUT
/obj/item/clothing/mask/bandana
name = "botany bandana"
desc = "A fine bandana with nanotech lining and a hydroponics pattern."
w_class = WEIGHT_CLASS_TINY
flags_cover = MASKCOVERSMOUTH
flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT
visor_flags_cover = MASKCOVERSMOUTH | PEPPERPROOF
slot_flags = ITEM_SLOT_MASK
adjusted_flags = ITEM_SLOT_HEAD
icon_state = "bandbotany"
species_exception = list(/datum/species/golem)
/obj/item/clothing/mask/bandana/attack_self(mob/user)
adjustmask(user)
/obj/item/clothing/mask/bandana/AltClick(mob/user)
. = ..()
if(iscarbon(user))
var/mob/living/carbon/C = user
if((C.get_item_by_slot(ITEM_SLOT_HEAD == src)) || (C.get_item_by_slot(ITEM_SLOT_MASK) == src))
to_chat(user, span_warning("You can't tie [src] while wearing it!"))
return
if(slot_flags & ITEM_SLOT_HEAD)
to_chat(user, span_warning("You must undo [src] before you can tie it into a neckerchief!"))
else
if(user.is_holding(src))
var/obj/item/clothing/neck/neckerchief/nk = new(src)
nk.name = "[name] neckerchief"
nk.desc = "[desc] It's tied up like a neckerchief."
nk.icon_state = icon_state
nk.item_flags = item_flags
nk.worn_icon = 'icons/misc/hidden.dmi' //hide underlying neckerchief object while it applies its own mutable appearance
nk.sourceBandanaType = src.type
var/currentHandIndex = user.get_held_index_of_item(src)
user.transferItemToLoc(src, null)
user.put_in_hand(nk, currentHandIndex)
user.visible_message(span_notice("[user] ties [src] up like a neckerchief."), span_notice("You tie [src] up like a neckerchief."))
qdel(src)
else
to_chat(user, span_warning("You must be holding [src] in order to tie it!"))
/obj/item/clothing/mask/bandana/red
name = "red bandana"
desc = "A fine red bandana with nanotech lining."
icon_state = "bandred"
/obj/item/clothing/mask/bandana/blue
name = "blue bandana"
desc = "A fine blue bandana with nanotech lining."
icon_state = "bandblue"
/obj/item/clothing/mask/bandana/green
name = "green bandana"
desc = "A fine green bandana with nanotech lining."
icon_state = "bandgreen"
/obj/item/clothing/mask/bandana/gold
name = "gold bandana"
desc = "A fine gold bandana with nanotech lining."
icon_state = "bandgold"
/obj/item/clothing/mask/bandana/black
name = "black bandana"
desc = "A fine black bandana with nanotech lining."
icon_state = "bandblack"
/obj/item/clothing/mask/bandana/skull
name = "skull bandana"
desc = "A fine black bandana with nanotech lining and a skull emblem."
icon_state = "bandskull"
/obj/item/clothing/mask/bandana/durathread
name = "durathread bandana"
desc = "A bandana made from durathread, you wish it would provide some protection to its wearer, but it's far too thin..."
icon_state = "banddurathread"
/obj/item/clothing/mask/mummy
name = "mummy mask"
desc = "Ancient bandages."
icon_state = "mummy_mask"
inhand_icon_state = "mummy_mask"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/mask/scarecrow
name = "sack mask"
desc = "A burlap sack with eyeholes."
icon_state = "scarecrow_sack"
inhand_icon_state = "scarecrow_sack"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
/obj/item/clothing/mask/gondola
name = "gondola mask"
desc = "Genuine gondola fur."
icon_state = "gondola"
inhand_icon_state = "gondola"
flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
w_class = WEIGHT_CLASS_SMALL
modifies_speech = TRUE
/obj/item/clothing/mask/gondola/handle_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
message = " [message]"
var/list/spurdo_words = strings("spurdo_replacement.json", "spurdo")
for(var/key in spurdo_words)
var/value = spurdo_words[key]
if(islist(value))
value = pick(value)
message = replacetextEx(message,regex(uppertext(key),"g"), "[uppertext(value)]")
message = replacetextEx(message,regex(capitalize(key),"g"), "[capitalize(value)]")
message = replacetextEx(message,regex(key,"g"), "[value]")
speech_args[SPEECH_MESSAGE] = trim(message)
+31
View File
@@ -0,0 +1,31 @@
/obj/item/clothing/mask/fakemoustache
name = "fake moustache"
desc = "Warning: moustache is fake."
icon_state = "fake-moustache"
w_class = WEIGHT_CLASS_TINY
flags_inv = HIDEFACE
species_exception = list(/datum/species/golem)
/obj/item/clothing/mask/fakemoustache/italian
name = "italian moustache"
desc = "Made from authentic Italian moustache hairs. Gives the wearer an irresistable urge to gesticulate wildly."
modifies_speech = TRUE
/obj/item/clothing/mask/fakemoustache/italian/handle_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
message = " [message]"
var/list/italian_words = strings("italian_replacement.json", "italian")
for(var/key in italian_words)
var/value = italian_words[key]
if(islist(value))
value = pick(value)
message = replacetextEx(message, " [uppertext(key)]", " [uppertext(value)]")
message = replacetextEx(message, " [capitalize(key)]", " [capitalize(value)]")
message = replacetextEx(message, " [key]", " [value]")
if(prob(3))
message += pick(" Ravioli, ravioli, give me the formuoli!"," Mamma-mia!"," Mamma-mia! That's a spicy meat-ball!", " La la la la la funiculi funicula!")
speech_args[SPEECH_MESSAGE] = trim(message)
+29
View File
@@ -0,0 +1,29 @@
/obj/item/clothing/mask/muzzle
name = "muzzle"
desc = "To stop that awful noise."
icon_state = "muzzle"
inhand_icon_state = "blindfold"
clothing_flags = BLOCKS_SPEECH
flags_cover = MASKCOVERSMOUTH
w_class = WEIGHT_CLASS_SMALL
gas_transfer_coefficient = 0.9
equip_delay_other = 20
/obj/item/clothing/mask/muzzle/attack_paw(mob/user, list/modifiers)
if(iscarbon(user))
var/mob/living/carbon/carbon_user = user
if(src == carbon_user.wear_mask)
to_chat(user, span_warning("You need help taking this off!"))
return
..()
/obj/item/clothing/mask/muzzle/breath
name = "surgery mask"
desc = "To silence those pesky patients before putting them under."
icon_state = "breathmuzzle"
inhand_icon_state = "breathmuzzle"
body_parts_covered = NONE
clothing_flags = MASKINTERNALS | BLOCKS_SPEECH
gas_transfer_coefficient = 0.1
permeability_coefficient = 0.01
equip_delay_other = 25 // my sprite has 4 straps, a-la a head harness. takes a while to equip, longer than a muzzle
+17
View File
@@ -0,0 +1,17 @@
/obj/item/clothing/mask/surgical
name = "sterile mask"
desc = "A sterile mask designed to help prevent the spread of diseases."
icon_state = "sterile"
inhand_icon_state = "sterile"
w_class = WEIGHT_CLASS_TINY
flags_inv = HIDEFACE|HIDESNOUT
flags_cover = MASKCOVERSMOUTH
visor_flags_inv = HIDEFACE|HIDESNOUT
visor_flags_cover = MASKCOVERSMOUTH
gas_transfer_coefficient = 0.9
permeability_coefficient = 0.01
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 25, RAD = 0, FIRE = 0, ACID = 0)
actions_types = list(/datum/action/item_action/adjust)
/obj/item/clothing/mask/surgical/attack_self(mob/user)
adjustmask(user)
+94
View File
@@ -0,0 +1,94 @@
/obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses
name = "combat boots"
desc = "High speed, low drag combat boots."
icon_state = "jackboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, RAD = 0, FIRE = 70, ACID = 50)
strip_delay = 40
resistance_flags = NONE
permeability_coefficient = 0.05 //Thick soles, and covers the ankle
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 12 SECONDS
/obj/item/clothing/shoes/combat/sneakboots
name = "sneakboots"
desc = "These boots have special noise cancelling soles. Perfect for stealth, if it wasn't for the color scheme."
icon_state = "sneakboots"
inhand_icon_state = "sneakboots"
w_class = WEIGHT_CLASS_SMALL
resistance_flags = FIRE_PROOF | ACID_PROOF
clothing_traits = list(TRAIT_SILENT_FOOTSTEPS)
/obj/item/clothing/shoes/combat/swat //overpowered boots for death squads
name = "\improper SWAT boots"
desc = "High speed, no drag combat boots."
permeability_coefficient = 0.01
clothing_flags = NOSLIP
armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 30, RAD = 30, FIRE = 90, ACID = 50)
/obj/item/clothing/shoes/jackboots
name = "jackboots"
desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
icon_state = "jackboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
strip_delay = 30
equip_delay_other = 50
resistance_flags = NONE
permeability_coefficient = 0.05 //Thick soles, and covers the ankle
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
can_be_tied = FALSE
/obj/item/clothing/shoes/jackboots/fast
slowdown = -1
/obj/item/clothing/shoes/winterboots
name = "winter boots"
desc = "Boots lined with 'synthetic' animal fur."
icon_state = "winterboots"
inhand_icon_state = "winterboots"
permeability_coefficient = 0.15
cold_protection = FEET|LEGS
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET|LEGS
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
/obj/item/clothing/shoes/winterboots/ice_boots
name = "ice hiking boots"
desc = "A pair of winter boots with special grips on the bottom, designed to prevent slipping on frozen surfaces."
icon_state = "iceboots"
inhand_icon_state = "iceboots"
clothing_flags = NOSLIP_ICE
/obj/item/clothing/shoes/workboots
name = "work boots"
desc = "Nanotrasen-issue Engineering lace-up work boots for the especially blue-collar."
icon_state = "workboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
permeability_coefficient = 0.15
strip_delay = 20
equip_delay_other = 40
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
species_exception = list(/datum/species/golem/uranium)
/obj/item/clothing/shoes/workboots/mining
name = "mining boots"
desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed."
icon_state = "explorer"
resistance_flags = FIRE_PROOF
/obj/item/clothing/shoes/russian
name = "russian boots"
desc = "Comfy shoes."
icon_state = "rus_shoes"
inhand_icon_state = "rus_shoes"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
+47
View File
@@ -0,0 +1,47 @@
/obj/item/clothing/shoes/clown_shoes
desc = "The prankster's standard-issue clowning shoes. Damn, they're huge! Ctrl-click to toggle waddle dampeners."
name = "clown shoes"
icon_state = "clown"
inhand_icon_state = "clown_shoes"
slowdown = SHOES_SLOWDOWN+1
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown
var/enabled_waddle = TRUE
lace_time = 20 SECONDS // how the hell do these laces even work??
species_exception = list(/datum/species/golem/bananium)
/obj/item/clothing/shoes/clown_shoes/Initialize()
. = ..()
LoadComponent(/datum/component/squeak, list('sound/effects/clownstep1.ogg'=1,'sound/effects/clownstep2.ogg'=1), 50, falloff_exponent = 20) //die off quick please
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0)
/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot)
. = ..()
if(slot == ITEM_SLOT_FEET)
if(enabled_waddle)
user.AddElement(/datum/element/waddling)
if(is_clown_job(user.mind?.assigned_role))
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "clownshoes", /datum/mood_event/clownshoes)
/obj/item/clothing/shoes/clown_shoes/dropped(mob/user)
. = ..()
user.RemoveElement(/datum/element/waddling)
if(is_clown_job(user.mind?.assigned_role))
SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "clownshoes")
/obj/item/clothing/shoes/clown_shoes/CtrlClick(mob/living/user)
if(!isliving(user))
return
if(user.get_active_held_item() != src)
to_chat(user, span_warning("You must hold the [src] in your hand to do this!"))
return
if (!enabled_waddle)
to_chat(user, span_notice("You switch off the waddle dampeners!"))
enabled_waddle = TRUE
else
to_chat(user, span_notice("You switch on the waddle dampeners!"))
enabled_waddle = FALSE
/obj/item/clothing/shoes/clown_shoes/jester
name = "jester shoes"
desc = "A court jester's shoes, updated with modern squeaking technology."
icon_state = "jester_shoes"
+65
View File
@@ -0,0 +1,65 @@
/obj/item/clothing/shoes/roman
name = "roman sandals"
desc = "Sandals with buckled leather straps on it."
icon_state = "roman"
inhand_icon_state = "roman"
strip_delay = 100
equip_delay_other = 100
permeability_coefficient = 0.9
can_be_tied = FALSE
/obj/item/clothing/shoes/griffin
name = "griffon boots"
desc = "A pair of costume boots fashioned after bird talons."
icon_state = "griffinboots"
inhand_icon_state = "griffinboots"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
/obj/item/clothing/shoes/singery
name = "yellow performer's boots"
desc = "These boots were made for dancing."
icon_state = "ysing"
equip_delay_other = 50
/obj/item/clothing/shoes/singerb
name = "blue performer's boots"
desc = "These boots were made for dancing."
icon_state = "bsing"
equip_delay_other = 50
/obj/item/clothing/shoes/bronze
name = "bronze boots"
desc = "A giant, clunky pair of shoes crudely made out of bronze. Why would anyone wear these?"
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_treads"
can_be_tied = FALSE
/obj/item/clothing/shoes/bronze/Initialize()
. = ..()
AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
/obj/item/clothing/shoes/cookflops
desc = "All this talk of antags, greytiding, and griefing... I just wanna grill for god's sake!"
name = "grilling sandals"
icon_state = "cookflops"
can_be_tied = FALSE
species_exception = list(/datum/species/golem)
/obj/item/clothing/shoes/yakuza
name = "tojo clan shoes"
desc = "Steel-toed and intimidating."
icon_state = "MajimaShoes"
inhand_icon_state = "MajimaShoes_worn"
/obj/item/clothing/shoes/jackbros
name = "frosty boots"
desc = "For when you're stepping on up to the plate."
icon_state = "JackFrostShoes"
inhand_icon_state = "JackFrostShoes_worn"
/obj/item/clothing/shoes/swagshoes
name = "swag shoes"
desc = "They got me for my foams!"
icon_state = "SwagShoes"
inhand_icon_state = "SwagShoes"
+95
View File
@@ -0,0 +1,95 @@
/obj/item/clothing/shoes/cowboy
name = "cowboy boots"
desc = "A small sticker lets you know they've been inspected for snakes, It is unclear how long ago the inspection took place..."
icon_state = "cowboy_brown"
permeability_coefficient = 0.05 //these are quite tall
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
custom_price = PAYCHECK_EASY
var/list/occupants = list()
var/max_occupants = 4
can_be_tied = FALSE
/obj/item/clothing/shoes/cowboy/Initialize()
. = ..()
if(prob(2))
var/mob/living/simple_animal/hostile/retaliate/snake/bootsnake = new/mob/living/simple_animal/hostile/retaliate/snake(src)
occupants += bootsnake
/obj/item/clothing/shoes/cowboy/equipped(mob/living/carbon/user, slot)
. = ..()
RegisterSignal(user, COMSIG_LIVING_SLAM_TABLE, .proc/table_slam)
if(slot == ITEM_SLOT_FEET)
for(var/mob/living/occupant in occupants)
occupant.forceMove(user.drop_location())
user.visible_message(span_warning("[user] recoils as something slithers out of [src]."), span_userdanger("You feel a sudden stabbing pain in your [pick("foot", "toe", "ankle")]!"))
user.Knockdown(20) //Is one second paralyze better here? I feel you would fall on your ass in some fashion.
user.apply_damage(5, BRUTE, pick(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
if(istype(occupant, /mob/living/simple_animal/hostile/retaliate))
user.reagents.add_reagent(/datum/reagent/toxin, 7)
occupants.Cut()
/obj/item/clothing/shoes/cowboy/dropped(mob/living/user)
. = ..()
UnregisterSignal(user, COMSIG_LIVING_SLAM_TABLE)
/obj/item/clothing/shoes/cowboy/proc/table_slam(mob/living/source, obj/structure/table/the_table)
SIGNAL_HANDLER
INVOKE_ASYNC(src, .proc/handle_table_slam, source)
/obj/item/clothing/shoes/cowboy/proc/handle_table_slam(mob/living/user)
user.say(pick("Hot damn!", "Hoo-wee!", "Got-dang!"), spans = list(SPAN_YELL), forced=TRUE)
user.client?.give_award(/datum/award/achievement/misc/hot_damn, user)
/obj/item/clothing/shoes/cowboy/MouseDrop_T(mob/living/target, mob/living/user)
. = ..()
if(!(user.mobility_flags & MOBILITY_USE) || user.stat != CONSCIOUS || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user) || !user.Adjacent(target) || target.stat == DEAD)
return
if(occupants.len >= max_occupants)
to_chat(user, span_warning("[src] are full!"))
return
if(istype(target, /mob/living/simple_animal/hostile/retaliate/snake) || istype(target, /mob/living/simple_animal/hostile/headcrab) || istype(target, /mob/living/carbon/alien/larva))
occupants += target
target.forceMove(src)
to_chat(user, span_notice("[target] slithers into [src]."))
/obj/item/clothing/shoes/cowboy/container_resist_act(mob/living/user)
if(!do_after(user, 10, target = user))
return
user.forceMove(user.drop_location())
occupants -= user
/obj/item/clothing/shoes/cowboy/white
name = "white cowboy boots"
icon_state = "cowboy_white"
/obj/item/clothing/shoes/cowboy/black
name = "black cowboy boots"
desc = "You get the feeling someone might have been hanged in these boots."
icon_state = "cowboy_black"
/obj/item/clothing/shoes/cowboy/fancy
name = "bilton wrangler boots"
desc = "A pair of authentic haute couture boots from Japanifornia. You doubt they have ever been close to cattle."
icon_state = "cowboy_fancy"
permeability_coefficient = 0.08
/obj/item/clothing/shoes/cowboy/lizard
name = "lizard skin boots"
desc = "You can hear a faint hissing from inside the boots; you hope it is just a mournful ghost."
icon_state = "lizardboots_green"
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 40, ACID = 0) //lizards like to stay warm
/obj/item/clothing/shoes/cowboy/lizard/masterwork
name = "\improper Hugs-The-Feet lizard skin boots"
desc = "A pair of masterfully crafted lizard skin boots. Finally a good application for the station's most bothersome inhabitants."
icon_state = "lizardboots_blue"
/obj/effect/spawner/lootdrop/lizardboots
name = "random lizard boot quality"
desc = "Which ever gets picked, the lizard race loses"
icon = 'icons/obj/clothing/shoes.dmi'
icon_state = "lizardboots_green"
loot = list(
/obj/item/clothing/shoes/cowboy/lizard = 7,
/obj/item/clothing/shoes/cowboy/lizard/masterwork = 1)
+21
View File
@@ -0,0 +1,21 @@
/obj/item/clothing/shoes/cult
name = "\improper Nar'Sien invoker boots"
desc = "A pair of boots worn by the followers of Nar'Sie."
icon_state = "cult"
inhand_icon_state = "cult"
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
lace_time = 10 SECONDS
/obj/item/clothing/shoes/cult/alt
name = "cultist boots"
icon_state = "cultalt"
/obj/item/clothing/shoes/cult/alt/ghost
item_flags = DROPDEL
/obj/item/clothing/shoes/cult/alt/ghost/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
+29
View File
@@ -0,0 +1,29 @@
/obj/item/clothing/shoes/galoshes
desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces."
name = "galoshes"
icon_state = "galoshes"
permeability_coefficient = 0.01
clothing_flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
strip_delay = 30
equip_delay_other = 50
resistance_flags = NONE
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 40, ACID = 75)
can_be_bloody = FALSE
custom_price = PAYCHECK_EASY * 3
can_be_tied = FALSE
/obj/item/clothing/shoes/galoshes/dry
name = "absorbent galoshes"
desc = "A pair of purple rubber boots, designed to prevent slipping on wet surfaces while also drying them."
icon_state = "galoshes_dry"
/obj/item/clothing/shoes/galoshes/dry/Initialize()
. = ..()
RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/on_step)
/obj/item/clothing/shoes/galoshes/dry/proc/on_step()
SIGNAL_HANDLER
var/turf/open/t_loc = get_turf(src)
SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY)
+71
View File
@@ -0,0 +1,71 @@
/obj/item/clothing/shoes/gunboots //admin boots that fire gunshots randomly while walking
name = "gunboots"
desc = "This is what all those research points added up to, the ultimate workplace hazard."
icon_state = "jackboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
/// What projectile do we shoot?
var/projectile_type = /obj/projectile/bullet/c10mm
/// Each step, this is the chance we fire a shot
var/shot_prob = 50
/obj/item/clothing/shoes/gunboots/Initialize()
. = ..()
RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/check_step)
/obj/item/clothing/shoes/gunboots/equipped(mob/user, slot)
. = ..()
if(slot == ITEM_SLOT_FEET)
RegisterSignal(user, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/check_kick)
else
UnregisterSignal(user, COMSIG_HUMAN_MELEE_UNARMED_ATTACK)
/obj/item/clothing/shoes/gunboots/dropped(mob/user)
if(user)
UnregisterSignal(user, COMSIG_HUMAN_MELEE_UNARMED_ATTACK)
return ..()
/// After each step, check if we randomly fire a shot
/obj/item/clothing/shoes/gunboots/proc/check_step(mob/user)
SIGNAL_HANDLER
if(!prob(shot_prob))
return
INVOKE_ASYNC(src, .proc/fire_shot)
/// Stomping on someone while wearing gunboots shoots them point blank
/obj/item/clothing/shoes/gunboots/proc/check_kick(mob/living/carbon/human/kicking_person, atom/attacked_atom, proximity)
SIGNAL_HANDLER
if(!isliving(attacked_atom))
return
var/mob/living/attacked_living = attacked_atom
if(attacked_living.body_position == LYING_DOWN)
INVOKE_ASYNC(src, .proc/fire_shot, attacked_living)
/// Actually fire a shot. If no target is provided, just fire off in a random direction
/obj/item/clothing/shoes/gunboots/proc/fire_shot(atom/target)
if(!isliving(loc))
return
var/mob/living/wearer = loc
var/obj/projectile/shot = new projectile_type(get_turf(wearer))
if(!target)
target = get_offset_target_turf(get_turf(wearer), rand(-3, 3), rand(-3,3))
//Shooting Code:
shot.original = target
shot.fired_from = src
shot.firer = wearer // don't hit ourself that would be really annoying
shot.impacted = list(wearer = TRUE)
shot.def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) // they're fired from boots after all
shot.preparePixelProjectile(target, wearer)
if(!shot.suppressed)
wearer.visible_message(span_danger("[wearer]'s [name] fires \a [shot]!"), "", blind_message = span_hear("You hear a gunshot!"), vision_distance=COMBAT_MESSAGE_RANGE)
shot.fire()
/obj/item/clothing/shoes/gunboots/disabler
name = "disaboots"
projectile_type = /obj/projectile/beam/disabler
+40
View File
@@ -0,0 +1,40 @@
/obj/item/clothing/shoes/bhop
name = "jump boots"
desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement."
icon_state = "jetboots"
inhand_icon_state = "jetboots"
resistance_flags = FIRE_PROOF
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
actions_types = list(/datum/action/item_action/bhop)
permeability_coefficient = 0.05
strip_delay = 30
var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles
var/jumpspeed = 3
var/recharging_rate = 60 //default 6 seconds between each dash
var/recharging_time = 0 //time until next dash
/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, action)
if(!isliving(user))
return
if(recharging_time > world.time)
to_chat(user, span_warning("The boot's internal propulsion needs to recharge still!"))
return
var/atom/target = get_edge_target_turf(user, user.dir) //gets the user's direction
if (user.throw_at(target, jumpdistance, jumpspeed, spin = FALSE, diagonals_first = TRUE))
playsound(src, 'sound/effects/stealthoff.ogg', 50, TRUE, TRUE)
user.visible_message(span_warning("[usr] dashes forward into the air!"))
recharging_time = world.time + recharging_rate
else
to_chat(user, span_warning("Something prevents you from dashing forward!"))
/obj/item/clothing/shoes/bhop/rocket
name = "rocket boots"
desc = "Very special boots with built-in rocket thrusters! SHAZBOT!"
icon_state = "rocketboots"
inhand_icon_state = "rocketboots"
actions_types = list(/datum/action/item_action/bhop/brocket)
jumpdistance = 20 //great for throwing yourself into walls and people at high speeds
jumpspeed = 5
@@ -0,0 +1,30 @@
/obj/item/clothing/shoes/kindle_kicks
name = "Kindle Kicks"
desc = "They'll sure kindle something in you, and it's not childhood nostalgia..."
icon_state = "kindleKicks"
inhand_icon_state = "kindleKicks"
actions_types = list(/datum/action/item_action/kindle_kicks)
light_system = MOVABLE_LIGHT
light_range = 2
light_power = 3
light_on = FALSE
var/lightCycle = 0
var/active = FALSE
/obj/item/clothing/shoes/kindle_kicks/ui_action_click(mob/user, action)
if(active)
return
active = TRUE
set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255)))
set_light_on(active)
addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS)
/obj/item/clothing/shoes/kindle_kicks/proc/lightUp(mob/user)
if(lightCycle < 15)
set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255)))
lightCycle++
addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS)
else
lightCycle = 0
active = FALSE
set_light_on(active)
+5
View File
@@ -0,0 +1,5 @@
/obj/item/clothing/shoes/laceup
name = "laceup shoes"
desc = "The height of fashion, and they're pre-polished!"
icon_state = "laceups"
equip_delay_other = 50
@@ -1,626 +0,0 @@
/obj/item/clothing/shoes/sneakers/mime
name = "mime shoes"
greyscale_colors = "#ffffff#ffffff"
/obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses
name = "combat boots"
desc = "High speed, low drag combat boots."
icon_state = "jackboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 10, RAD = 0, FIRE = 70, ACID = 50)
strip_delay = 40
resistance_flags = NONE
permeability_coefficient = 0.05 //Thick soles, and covers the ankle
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 12 SECONDS
/obj/item/clothing/shoes/combat/sneakboots
name = "sneakboots"
desc = "These boots have special noise cancelling soles. Perfect for stealth, if it wasn't for the color scheme."
icon_state = "sneakboots"
inhand_icon_state = "sneakboots"
w_class = WEIGHT_CLASS_SMALL
resistance_flags = FIRE_PROOF | ACID_PROOF
clothing_traits = list(TRAIT_SILENT_FOOTSTEPS)
/obj/item/clothing/shoes/combat/swat //overpowered boots for death squads
name = "\improper SWAT boots"
desc = "High speed, no drag combat boots."
permeability_coefficient = 0.01
clothing_flags = NOSLIP
armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 30, RAD = 30, FIRE = 90, ACID = 50)
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain wooden sandals."
name = "sandals"
icon_state = "wizard"
custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 0.5)
strip_delay = 5
equip_delay_other = 50
permeability_coefficient = 0.9
can_be_tied = FALSE
species_exception = list(/datum/species/golem)
/obj/item/clothing/shoes/sneakers/marisa
desc = "A pair of magic black shoes."
name = "magic shoes"
worn_icon_state = "marisa"
greyscale_colors = "#545454#ffffff"
greyscale_config = /datum/greyscale_config/sneakers_marisa
greyscale_config_worn = null
strip_delay = 5
equip_delay_other = 50
permeability_coefficient = 0.9
can_be_tied = FALSE
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/sandal/magic
name = "magical sandals"
desc = "A pair of sandals imbued with magic."
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/galoshes
desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces."
name = "galoshes"
icon_state = "galoshes"
permeability_coefficient = 0.01
clothing_flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
strip_delay = 30
equip_delay_other = 50
resistance_flags = NONE
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 40, ACID = 75)
can_be_bloody = FALSE
custom_price = PAYCHECK_EASY * 3
can_be_tied = FALSE
/obj/item/clothing/shoes/galoshes/dry
name = "absorbent galoshes"
desc = "A pair of purple rubber boots, designed to prevent slipping on wet surfaces while also drying them."
icon_state = "galoshes_dry"
/obj/item/clothing/shoes/galoshes/dry/Initialize()
. = ..()
RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/on_step)
/obj/item/clothing/shoes/galoshes/dry/proc/on_step()
SIGNAL_HANDLER
var/turf/open/t_loc = get_turf(src)
SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY)
/obj/item/clothing/shoes/clown_shoes
desc = "The prankster's standard-issue clowning shoes. Damn, they're huge! Ctrl-click to toggle waddle dampeners."
name = "clown shoes"
icon_state = "clown"
inhand_icon_state = "clown_shoes"
slowdown = SHOES_SLOWDOWN+1
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown
var/enabled_waddle = TRUE
lace_time = 20 SECONDS // how the hell do these laces even work??
species_exception = list(/datum/species/golem/bananium)
/obj/item/clothing/shoes/clown_shoes/Initialize()
. = ..()
LoadComponent(/datum/component/squeak, list('sound/effects/clownstep1.ogg'=1,'sound/effects/clownstep2.ogg'=1), 50, falloff_exponent = 20) //die off quick please
AddElement(/datum/element/swabable, CELL_LINE_TABLE_CLOWN, CELL_VIRUS_TABLE_GENERIC, rand(2,3), 0)
/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot)
. = ..()
if(slot == ITEM_SLOT_FEET)
if(enabled_waddle)
user.AddElement(/datum/element/waddling)
if(is_clown_job(user.mind?.assigned_role))
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "clownshoes", /datum/mood_event/clownshoes)
/obj/item/clothing/shoes/clown_shoes/dropped(mob/user)
. = ..()
user.RemoveElement(/datum/element/waddling)
if(is_clown_job(user.mind?.assigned_role))
SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "clownshoes")
/obj/item/clothing/shoes/clown_shoes/CtrlClick(mob/living/user)
if(!isliving(user))
return
if(user.get_active_held_item() != src)
to_chat(user, span_warning("You must hold the [src] in your hand to do this!"))
return
if (!enabled_waddle)
to_chat(user, span_notice("You switch off the waddle dampeners!"))
enabled_waddle = TRUE
else
to_chat(user, span_notice("You switch on the waddle dampeners!"))
enabled_waddle = FALSE
/obj/item/clothing/shoes/clown_shoes/jester
name = "jester shoes"
desc = "A court jester's shoes, updated with modern squeaking technology."
icon_state = "jester_shoes"
/obj/item/clothing/shoes/jackboots
name = "jackboots"
desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time."
icon_state = "jackboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
strip_delay = 30
equip_delay_other = 50
resistance_flags = NONE
permeability_coefficient = 0.05 //Thick soles, and covers the ankle
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
can_be_tied = FALSE
/obj/item/clothing/shoes/jackboots/fast
slowdown = -1
/obj/item/clothing/shoes/winterboots
name = "winter boots"
desc = "Boots lined with 'synthetic' animal fur."
icon_state = "winterboots"
inhand_icon_state = "winterboots"
permeability_coefficient = 0.15
cold_protection = FEET|LEGS
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET|LEGS
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
/obj/item/clothing/shoes/winterboots/ice_boots
name = "ice hiking boots"
desc = "A pair of winter boots with special grips on the bottom, designed to prevent slipping on frozen surfaces."
icon_state = "iceboots"
inhand_icon_state = "iceboots"
clothing_flags = NOSLIP_ICE
/obj/item/clothing/shoes/workboots
name = "work boots"
desc = "Nanotrasen-issue Engineering lace-up work boots for the especially blue-collar."
icon_state = "workboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
permeability_coefficient = 0.15
strip_delay = 20
equip_delay_other = 40
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
species_exception = list(/datum/species/golem/uranium)
/obj/item/clothing/shoes/workboots/mining
name = "mining boots"
desc = "Steel-toed mining boots for mining in hazardous environments. Very good at keeping toes uncrushed."
icon_state = "explorer"
resistance_flags = FIRE_PROOF
/obj/item/clothing/shoes/cult
name = "\improper Nar'Sien invoker boots"
desc = "A pair of boots worn by the followers of Nar'Sie."
icon_state = "cult"
inhand_icon_state = "cult"
cold_protection = FEET
min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
heat_protection = FEET
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
lace_time = 10 SECONDS
/obj/item/clothing/shoes/cult/alt
name = "cultist boots"
icon_state = "cultalt"
/obj/item/clothing/shoes/cult/alt/ghost
item_flags = DROPDEL
/obj/item/clothing/shoes/cult/alt/ghost/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
/obj/item/clothing/shoes/sneakers/cyborg
name = "cyborg boots"
desc = "Shoes for a cyborg costume."
greyscale_colors = "#4e4e4e#4e4e4e"
/obj/item/clothing/shoes/laceup
name = "laceup shoes"
desc = "The height of fashion, and they're pre-polished!"
icon_state = "laceups"
equip_delay_other = 50
/obj/item/clothing/shoes/roman
name = "roman sandals"
desc = "Sandals with buckled leather straps on it."
icon_state = "roman"
inhand_icon_state = "roman"
strip_delay = 100
equip_delay_other = 100
permeability_coefficient = 0.9
can_be_tied = FALSE
/obj/item/clothing/shoes/griffin
name = "griffon boots"
desc = "A pair of costume boots fashioned after bird talons."
icon_state = "griffinboots"
inhand_icon_state = "griffinboots"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
/obj/item/clothing/shoes/bhop
name = "jump boots"
desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement."
icon_state = "jetboots"
inhand_icon_state = "jetboots"
resistance_flags = FIRE_PROOF
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
actions_types = list(/datum/action/item_action/bhop)
permeability_coefficient = 0.05
strip_delay = 30
var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles
var/jumpspeed = 3
var/recharging_rate = 60 //default 6 seconds between each dash
var/recharging_time = 0 //time until next dash
/obj/item/clothing/shoes/bhop/ui_action_click(mob/user, action)
if(!isliving(user))
return
if(recharging_time > world.time)
to_chat(user, span_warning("The boot's internal propulsion needs to recharge still!"))
return
var/atom/target = get_edge_target_turf(user, user.dir) //gets the user's direction
if (user.throw_at(target, jumpdistance, jumpspeed, spin = FALSE, diagonals_first = TRUE))
playsound(src, 'sound/effects/stealthoff.ogg', 50, TRUE, TRUE)
user.visible_message(span_warning("[usr] dashes forward into the air!"))
recharging_time = world.time + recharging_rate
else
to_chat(user, span_warning("Something prevents you from dashing forward!"))
/obj/item/clothing/shoes/bhop/rocket
name = "rocket boots"
desc = "Very special boots with built-in rocket thrusters! SHAZBOT!"
icon_state = "rocketboots"
inhand_icon_state = "rocketboots"
actions_types = list(/datum/action/item_action/bhop/brocket)
jumpdistance = 20 //great for throwing yourself into walls and people at high speeds
jumpspeed = 5
/obj/item/clothing/shoes/singery
name = "yellow performer's boots"
desc = "These boots were made for dancing."
icon_state = "ysing"
equip_delay_other = 50
/obj/item/clothing/shoes/singerb
name = "blue performer's boots"
desc = "These boots were made for dancing."
icon_state = "bsing"
equip_delay_other = 50
/obj/item/clothing/shoes/bronze
name = "bronze boots"
desc = "A giant, clunky pair of shoes crudely made out of bronze. Why would anyone wear these?"
icon = 'icons/obj/clothing/clockwork_garb.dmi'
icon_state = "clockwork_treads"
can_be_tied = FALSE
/obj/item/clothing/shoes/bronze/Initialize()
. = ..()
AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
/obj/item/clothing/shoes/wheelys
name = "Wheely-Heels"
desc = "Uses patented retractable wheel technology. Never sacrifice speed for style - not that this provides much of either." //Thanks Fel
worn_icon_state = "wheelys"
greyscale_colors = "#545454#ffffff"
icon_state = "sneakers"
greyscale_config = /datum/greyscale_config/sneakers_wheelys
inhand_icon_state = "wheelys"
worn_icon = 'icons/mob/large-worn-icons/64x64/feet.dmi'
worn_x_dimension = 64
worn_y_dimension = 64
clothing_flags = LARGE_WORN_ICON
actions_types = list(/datum/action/item_action/wheelys)
///False means wheels are not popped out
var/wheelToggle = FALSE
///The vehicle associated with the shoes
var/obj/vehicle/ridden/scooter/skateboard/wheelys/wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys
/obj/item/clothing/shoes/wheelys/Initialize()
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)
wheels = new wheels(null)
wheels.link_shoes(src)
/obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action)
if(!isliving(user))
return
if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys))
to_chat(user, span_warning("You must be wearing the wheely-heels to use them!"))
return
if(!(wheels.is_occupant(user)))
wheelToggle = FALSE
if(wheelToggle)
wheels.unbuckle_mob(user)
wheelToggle = FALSE
return
wheels.forceMove(get_turf(user))
wheels.buckle_mob(user)
wheelToggle = TRUE
/obj/item/clothing/shoes/wheelys/dropped(mob/user)
if(wheelToggle)
wheels.unbuckle_mob(user)
wheelToggle = FALSE
..()
/obj/item/clothing/shoes/wheelys/proc/toggle_wheels(status)
if (status)
worn_icon_state = "[initial(worn_icon_state)]-on"
else
worn_icon_state = "[initial(worn_icon_state)]"
playsound(src, 'sound/weapons/tap.ogg', 10, TRUE)
update_appearance()
/obj/item/clothing/shoes/wheelys/Destroy()
QDEL_NULL(wheels)
. = ..()
/obj/item/clothing/shoes/wheelys/rollerskates
name = "roller skates"
desc = "An EightO brand pair of roller skates. The wheels are retractable, though're quite bulky to walk in."
icon_state = "rollerskates"
greyscale_colors = null
greyscale_config = null
worn_icon_state = "rollerskates"
slowdown = SHOES_SLOWDOWN+1
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/rollerskates
custom_premium_price = PAYCHECK_EASY * 5
custom_price = PAYCHECK_EASY * 5
/obj/item/clothing/shoes/wheelys/skishoes
name = "ski shoes"
desc = "A pair of shoes equipped with foldable skis! Very handy to move in snowy environments unimpeded."
icon_state = "skishoes"
greyscale_colors = null
greyscale_config = null
worn_icon_state = "skishoes"
slowdown = SHOES_SLOWDOWN+1
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/skishoes
custom_premium_price = PAYCHECK_EASY * 1.6
custom_price = PAYCHECK_EASY * 1.6
/obj/item/clothing/shoes/kindle_kicks
name = "Kindle Kicks"
desc = "They'll sure kindle something in you, and it's not childhood nostalgia..."
icon_state = "kindleKicks"
inhand_icon_state = "kindleKicks"
actions_types = list(/datum/action/item_action/kindle_kicks)
light_system = MOVABLE_LIGHT
light_range = 2
light_power = 3
light_on = FALSE
var/lightCycle = 0
var/active = FALSE
/obj/item/clothing/shoes/kindle_kicks/ui_action_click(mob/user, action)
if(active)
return
active = TRUE
set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255)))
set_light_on(active)
addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS)
/obj/item/clothing/shoes/kindle_kicks/proc/lightUp(mob/user)
if(lightCycle < 15)
set_light_color(rgb(rand(0, 255), rand(0, 255), rand(0, 255)))
lightCycle++
addtimer(CALLBACK(src, .proc/lightUp), 0.5 SECONDS)
else
lightCycle = 0
active = FALSE
set_light_on(active)
/obj/item/clothing/shoes/russian
name = "russian boots"
desc = "Comfy shoes."
icon_state = "rus_shoes"
inhand_icon_state = "rus_shoes"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
lace_time = 8 SECONDS
/obj/item/clothing/shoes/cowboy
name = "cowboy boots"
desc = "A small sticker lets you know they've been inspected for snakes, It is unclear how long ago the inspection took place..."
icon_state = "cowboy_brown"
permeability_coefficient = 0.05 //these are quite tall
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
custom_price = PAYCHECK_EASY
var/list/occupants = list()
var/max_occupants = 4
can_be_tied = FALSE
/obj/item/clothing/shoes/cowboy/Initialize()
. = ..()
if(prob(2))
var/mob/living/simple_animal/hostile/retaliate/snake/bootsnake = new/mob/living/simple_animal/hostile/retaliate/snake(src)
occupants += bootsnake
/obj/item/clothing/shoes/cowboy/equipped(mob/living/carbon/user, slot)
. = ..()
RegisterSignal(user, COMSIG_LIVING_SLAM_TABLE, .proc/table_slam)
if(slot == ITEM_SLOT_FEET)
for(var/mob/living/occupant in occupants)
occupant.forceMove(user.drop_location())
user.visible_message(span_warning("[user] recoils as something slithers out of [src]."), span_userdanger("You feel a sudden stabbing pain in your [pick("foot", "toe", "ankle")]!"))
user.Knockdown(20) //Is one second paralyze better here? I feel you would fall on your ass in some fashion.
user.apply_damage(5, BRUTE, pick(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
if(istype(occupant, /mob/living/simple_animal/hostile/retaliate))
user.reagents.add_reagent(/datum/reagent/toxin, 7)
occupants.Cut()
/obj/item/clothing/shoes/cowboy/dropped(mob/living/user)
. = ..()
UnregisterSignal(user, COMSIG_LIVING_SLAM_TABLE)
/obj/item/clothing/shoes/cowboy/proc/table_slam(mob/living/source, obj/structure/table/the_table)
SIGNAL_HANDLER
INVOKE_ASYNC(src, .proc/handle_table_slam, source)
/obj/item/clothing/shoes/cowboy/proc/handle_table_slam(mob/living/user)
user.say(pick("Hot damn!", "Hoo-wee!", "Got-dang!"), spans = list(SPAN_YELL), forced=TRUE)
user.client?.give_award(/datum/award/achievement/misc/hot_damn, user)
/obj/item/clothing/shoes/cowboy/MouseDrop_T(mob/living/target, mob/living/user)
. = ..()
if(!(user.mobility_flags & MOBILITY_USE) || user.stat != CONSCIOUS || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user) || !user.Adjacent(target) || target.stat == DEAD)
return
if(occupants.len >= max_occupants)
to_chat(user, span_warning("[src] are full!"))
return
if(istype(target, /mob/living/simple_animal/hostile/retaliate/snake) || istype(target, /mob/living/simple_animal/hostile/headcrab) || istype(target, /mob/living/carbon/alien/larva))
occupants += target
target.forceMove(src)
to_chat(user, span_notice("[target] slithers into [src]."))
/obj/item/clothing/shoes/cowboy/container_resist_act(mob/living/user)
if(!do_after(user, 10, target = user))
return
user.forceMove(user.drop_location())
occupants -= user
/obj/item/clothing/shoes/cowboy/white
name = "white cowboy boots"
icon_state = "cowboy_white"
/obj/item/clothing/shoes/cowboy/black
name = "black cowboy boots"
desc = "You get the feeling someone might have been hanged in these boots."
icon_state = "cowboy_black"
/obj/item/clothing/shoes/cowboy/fancy
name = "bilton wrangler boots"
desc = "A pair of authentic haute couture boots from Japanifornia. You doubt they have ever been close to cattle."
icon_state = "cowboy_fancy"
permeability_coefficient = 0.08
/obj/item/clothing/shoes/cowboy/lizard
name = "lizard skin boots"
desc = "You can hear a faint hissing from inside the boots; you hope it is just a mournful ghost."
icon_state = "lizardboots_green"
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 40, ACID = 0) //lizards like to stay warm
/obj/item/clothing/shoes/cowboy/lizard/masterwork
name = "\improper Hugs-The-Feet lizard skin boots"
desc = "A pair of masterfully crafted lizard skin boots. Finally a good application for the station's most bothersome inhabitants."
icon_state = "lizardboots_blue"
/obj/effect/spawner/lootdrop/lizardboots
name = "random lizard boot quality"
desc = "Which ever gets picked, the lizard race loses"
icon = 'icons/obj/clothing/shoes.dmi'
icon_state = "lizardboots_green"
loot = list(
/obj/item/clothing/shoes/cowboy/lizard = 7,
/obj/item/clothing/shoes/cowboy/lizard/masterwork = 1)
/obj/item/clothing/shoes/cookflops
desc = "All this talk of antags, greytiding, and griefing... I just wanna grill for god's sake!"
name = "grilling sandals"
icon_state = "cookflops"
can_be_tied = FALSE
species_exception = list(/datum/species/golem)
/obj/item/clothing/shoes/yakuza
name = "tojo clan shoes"
desc = "Steel-toed and intimidating."
icon_state = "MajimaShoes"
inhand_icon_state = "MajimaShoes_worn"
/obj/item/clothing/shoes/jackbros
name = "frosty boots"
desc = "For when you're stepping on up to the plate."
icon_state = "JackFrostShoes"
inhand_icon_state = "JackFrostShoes_worn"
/obj/item/clothing/shoes/swagshoes
name = "swag shoes"
desc = "They got me for my foams!"
icon_state = "SwagShoes"
inhand_icon_state = "SwagShoes"
/obj/item/clothing/shoes/gunboots //admin boots that fire gunshots randomly while walking
name = "gunboots"
desc = "This is what all those research points added up to, the ultimate workplace hazard."
icon_state = "jackboots"
inhand_icon_state = "jackboots"
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
/// What projectile do we shoot?
var/projectile_type = /obj/projectile/bullet/c10mm
/// Each step, this is the chance we fire a shot
var/shot_prob = 50
/obj/item/clothing/shoes/gunboots/Initialize()
. = ..()
RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, .proc/check_step)
/obj/item/clothing/shoes/gunboots/equipped(mob/user, slot)
. = ..()
if(slot == ITEM_SLOT_FEET)
RegisterSignal(user, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/check_kick)
else
UnregisterSignal(user, COMSIG_HUMAN_MELEE_UNARMED_ATTACK)
/obj/item/clothing/shoes/gunboots/dropped(mob/user)
if(user)
UnregisterSignal(user, COMSIG_HUMAN_MELEE_UNARMED_ATTACK)
return ..()
/// After each step, check if we randomly fire a shot
/obj/item/clothing/shoes/gunboots/proc/check_step(mob/user)
SIGNAL_HANDLER
if(!prob(shot_prob))
return
INVOKE_ASYNC(src, .proc/fire_shot)
/// Stomping on someone while wearing gunboots shoots them point blank
/obj/item/clothing/shoes/gunboots/proc/check_kick(mob/living/carbon/human/kicking_person, atom/attacked_atom, proximity)
SIGNAL_HANDLER
if(!isliving(attacked_atom))
return
var/mob/living/attacked_living = attacked_atom
if(attacked_living.body_position == LYING_DOWN)
INVOKE_ASYNC(src, .proc/fire_shot, attacked_living)
/// Actually fire a shot. If no target is provided, just fire off in a random direction
/obj/item/clothing/shoes/gunboots/proc/fire_shot(atom/target)
if(!isliving(loc))
return
var/mob/living/wearer = loc
var/obj/projectile/shot = new projectile_type(get_turf(wearer))
if(!target)
target = get_offset_target_turf(get_turf(wearer), rand(-3, 3), rand(-3,3))
//Shooting Code:
shot.original = target
shot.fired_from = src
shot.firer = wearer // don't hit ourself that would be really annoying
shot.impacted = list(wearer = TRUE)
shot.def_zone = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) // they're fired from boots after all
shot.preparePixelProjectile(target, wearer)
if(!shot.suppressed)
wearer.visible_message(span_danger("[wearer]'s [name] fires \a [shot]!"), "", blind_message = span_hear("You hear a gunshot!"), vision_distance=COMBAT_MESSAGE_RANGE)
shot.fire()
/obj/item/clothing/shoes/gunboots/disabler
name = "disaboots"
projectile_type = /obj/projectile/beam/disabler
+15
View File
@@ -0,0 +1,15 @@
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain wooden sandals."
name = "sandals"
icon_state = "wizard"
custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 0.5)
strip_delay = 5
equip_delay_other = 50
permeability_coefficient = 0.9
can_be_tied = FALSE
species_exception = list(/datum/species/golem)
/obj/item/clothing/shoes/sandal/magic
name = "magical sandals"
desc = "A pair of sandals imbued with magic."
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -101,3 +101,25 @@
to_chat(c, span_warning("You need help taking these off!"))
return
return ..()
/obj/item/clothing/shoes/sneakers/mime
name = "mime shoes"
greyscale_colors = "#ffffff#ffffff"
/obj/item/clothing/shoes/sneakers/marisa
desc = "A pair of magic black shoes."
name = "magic shoes"
worn_icon_state = "marisa"
greyscale_colors = "#545454#ffffff"
greyscale_config = /datum/greyscale_config/sneakers_marisa
greyscale_config_worn = null
strip_delay = 5
equip_delay_other = 50
permeability_coefficient = 0.9
can_be_tied = FALSE
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/shoes/sneakers/cyborg
name = "cyborg boots"
desc = "Shoes for a cyborg costume."
greyscale_colors = "#4e4e4e#4e4e4e"
+81
View File
@@ -0,0 +1,81 @@
/obj/item/clothing/shoes/wheelys
name = "Wheely-Heels"
desc = "Uses patented retractable wheel technology. Never sacrifice speed for style - not that this provides much of either." //Thanks Fel
worn_icon_state = "wheelys"
greyscale_colors = "#545454#ffffff"
icon_state = "sneakers"
greyscale_config = /datum/greyscale_config/sneakers_wheelys
inhand_icon_state = "wheelys"
worn_icon = 'icons/mob/large-worn-icons/64x64/feet.dmi'
worn_x_dimension = 64
worn_y_dimension = 64
clothing_flags = LARGE_WORN_ICON
actions_types = list(/datum/action/item_action/wheelys)
///False means wheels are not popped out
var/wheelToggle = FALSE
///The vehicle associated with the shoes
var/obj/vehicle/ridden/scooter/skateboard/wheelys/wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys
/obj/item/clothing/shoes/wheelys/Initialize()
. = ..()
AddElement(/datum/element/update_icon_updates_onmob)
wheels = new wheels(null)
wheels.link_shoes(src)
/obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action)
if(!isliving(user))
return
if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys))
to_chat(user, span_warning("You must be wearing the wheely-heels to use them!"))
return
if(!(wheels.is_occupant(user)))
wheelToggle = FALSE
if(wheelToggle)
wheels.unbuckle_mob(user)
wheelToggle = FALSE
return
wheels.forceMove(get_turf(user))
wheels.buckle_mob(user)
wheelToggle = TRUE
/obj/item/clothing/shoes/wheelys/dropped(mob/user)
if(wheelToggle)
wheels.unbuckle_mob(user)
wheelToggle = FALSE
..()
/obj/item/clothing/shoes/wheelys/proc/toggle_wheels(status)
if (status)
worn_icon_state = "[initial(worn_icon_state)]-on"
else
worn_icon_state = "[initial(worn_icon_state)]"
playsound(src, 'sound/weapons/tap.ogg', 10, TRUE)
update_appearance()
/obj/item/clothing/shoes/wheelys/Destroy()
QDEL_NULL(wheels)
. = ..()
/obj/item/clothing/shoes/wheelys/rollerskates
name = "roller skates"
desc = "An EightO brand pair of roller skates. The wheels are retractable, though're quite bulky to walk in."
icon_state = "rollerskates"
greyscale_colors = null
greyscale_config = null
worn_icon_state = "rollerskates"
slowdown = SHOES_SLOWDOWN+1
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/rollerskates
custom_premium_price = PAYCHECK_EASY * 5
custom_price = PAYCHECK_EASY * 5
/obj/item/clothing/shoes/wheelys/skishoes
name = "ski shoes"
desc = "A pair of shoes equipped with foldable skis! Very handy to move in snowy environments unimpeded."
icon_state = "skishoes"
greyscale_colors = null
greyscale_config = null
worn_icon_state = "skishoes"
slowdown = SHOES_SLOWDOWN+1
wheels = /obj/vehicle/ridden/scooter/skateboard/wheelys/skishoes
custom_premium_price = PAYCHECK_EASY * 1.6
custom_price = PAYCHECK_EASY * 1.6
@@ -0,0 +1,107 @@
/obj/item/clothing/suit/space/hardsuit/berserker
name = "berserker hardsuit"
desc = "Voices echo from the hardsuit, driving the user insane."
icon_state = "hardsuit-berserker"
inhand_icon_state = "hardsuit-berserker"
slowdown = 0
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/berserker
armor = list(MELEE = 30, BULLET = 10, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 10, FIRE = 100, ACID = 100)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife, /obj/item/kinetic_crusher, /obj/item/resonator, /obj/item/melee/transforming/cleaving_saw)
/obj/item/clothing/suit/space/hardsuit/berserker/Initialize()
. = ..()
AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE, ITEM_SLOT_OCLOTHING)
/obj/item/clothing/suit/space/hardsuit/berserker/RemoveHelmet()
var/obj/item/clothing/head/helmet/space/hardsuit/berserker/helm = helmet
if(helm?.berserk_active)
return
return ..()
#define MAX_BERSERK_CHARGE 100
#define PROJECTILE_HIT_MULTIPLIER 1.5
#define DAMAGE_TO_CHARGE_SCALE 0.25
#define CHARGE_DRAINED_PER_SECOND 5
#define BERSERK_MELEE_ARMOR_ADDED 50
#define BERSERK_ATTACK_SPEED_MODIFIER 0.25
/obj/item/clothing/head/helmet/space/hardsuit/berserker
name = "berserker helmet"
desc = "Peering into the eyes of the helmet is enough to seal damnation."
icon_state = "hardsuit0-berserker"
inhand_icon_state = "hardsuit0-berserker"
hardsuit_type = "berserker"
armor = list(MELEE = 30, BULLET = 10, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 10, FIRE = 100, ACID = 100)
actions_types = list(/datum/action/item_action/berserk_mode)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
/// Current charge of berserk, goes from 0 to 100
var/berserk_charge = 0
/// Status of berserk
var/berserk_active = FALSE
/obj/item/clothing/head/helmet/space/hardsuit/berserker/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
/obj/item/clothing/head/helmet/space/hardsuit/berserker/examine()
. = ..()
. += span_notice("Berserk mode is [berserk_charge]% charged.")
/obj/item/clothing/head/helmet/space/hardsuit/berserker/process(delta_time)
. = ..()
if(berserk_active)
berserk_charge = clamp(berserk_charge - CHARGE_DRAINED_PER_SECOND * delta_time, 0, MAX_BERSERK_CHARGE)
if(!berserk_charge)
if(ishuman(loc))
end_berserk(loc)
/obj/item/clothing/head/helmet/space/hardsuit/berserker/dropped(mob/user)
. = ..()
end_berserk(user)
/obj/item/clothing/head/helmet/space/hardsuit/berserker/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(berserk_active)
return
var/berserk_value = damage * DAMAGE_TO_CHARGE_SCALE
if(attack_type == PROJECTILE_ATTACK)
berserk_value *= PROJECTILE_HIT_MULTIPLIER
berserk_charge = clamp(round(berserk_charge + berserk_value), 0, MAX_BERSERK_CHARGE)
if(berserk_charge >= MAX_BERSERK_CHARGE)
to_chat(owner, span_notice("Berserk mode is fully charged."))
/// Starts berserk, giving the wearer 50 melee armor, doubled attacking speed, NOGUNS trait, adding a color and giving them the berserk movespeed modifier
/obj/item/clothing/head/helmet/space/hardsuit/berserker/proc/berserk_mode(mob/living/carbon/human/user)
to_chat(user, span_warning("You enter berserk mode."))
playsound(user, 'sound/magic/staff_healing.ogg', 50)
user.add_movespeed_modifier(/datum/movespeed_modifier/berserk)
user.physiology.armor.melee += BERSERK_MELEE_ARMOR_ADDED
user.next_move_modifier *= BERSERK_ATTACK_SPEED_MODIFIER
user.add_atom_colour(COLOR_BUBBLEGUM_RED, TEMPORARY_COLOUR_PRIORITY)
ADD_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT)
ADD_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT)
berserk_active = TRUE
/// Ends berserk, reverting the changes from the proc [berserk_mode]
/obj/item/clothing/head/helmet/space/hardsuit/berserker/proc/end_berserk(mob/living/carbon/human/user)
if(!berserk_active)
return
to_chat(user, span_warning("You exit berserk mode."))
playsound(user, 'sound/magic/summonitems_generic.ogg', 50)
user.remove_movespeed_modifier(/datum/movespeed_modifier/berserk)
user.physiology.armor.melee -= BERSERK_MELEE_ARMOR_ADDED
user.next_move_modifier /= BERSERK_ATTACK_SPEED_MODIFIER
user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, COLOR_BUBBLEGUM_RED)
REMOVE_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT)
REMOVE_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT)
berserk_active = FALSE
#undef MAX_BERSERK_CHARGE
#undef PROJECTILE_HIT_MULTIPLIER
#undef DAMAGE_TO_CHARGE_SCALE
#undef CHARGE_DRAINED_PER_SECOND
#undef BERSERK_MELEE_ARMOR_ADDED
#undef BERSERK_ATTACK_SPEED_MODIFIER
@@ -0,0 +1,10 @@
/obj/item/clothing/suit/space/hunter
name = "bounty hunting suit"
desc = "A custom version of the MK.II SWAT suit, modified to look rugged and tough. Works as a space suit, if you can find a helmet."
icon_state = "hunter"
inhand_icon_state = "swat_suit"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
armor = list(MELEE = 60, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100)
strip_delay = 130
resistance_flags = FIRE_PROOF | ACID_PROOF
cell = /obj/item/stock_parts/cell/hyper
@@ -0,0 +1,21 @@
/obj/item/clothing/head/helmet/space/freedom
name = "eagle helmet"
desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle."
icon_state = "griffinhat"
inhand_icon_state = "griffinhat"
armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 100, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF | FIRE_PROOF
/obj/item/clothing/suit/space/freedom
name = "eagle suit"
desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be integrated into the suit and the wings appear to be stuck in 'freedom' mode."
icon_state = "freedom"
inhand_icon_state = "freedom"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
armor = list(MELEE = 20, BULLET = 40, LASER = 30,ENERGY = 40, BOMB = 100, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF | FIRE_PROOF
slowdown = 0
@@ -764,6 +764,245 @@
listeningTo = null
return ..()
//Deathsquad
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad
name = "MK.III SWAT Helmet"
desc = "An advanced tactical space helmet."
icon_state = "deathsquad"
inhand_icon_state = "deathsquad"
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 20)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
actions_types = list()
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user)
return
/obj/item/clothing/suit/space/hardsuit/deathsquad
name = "MK.III SWAT Suit"
desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back."
icon_state = "deathsquad"
inhand_icon_state = "swat_suit"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 20)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad
dog_fashion = /datum/dog_fashion/back/deathsquad
cell = /obj/item/stock_parts/cell/bluespace
//Emergency Response Team suits
/obj/item/clothing/head/helmet/space/hardsuit/ert
name = "emergency response team commander helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has blue highlights."
icon_state = "hardsuit0-ert_commander"
inhand_icon_state = "hardsuit0-ert_commander"
hardsuit_type = "ert_commander"
armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
strip_delay = 130
light_range = 7
resistance_flags = FIRE_PROOF
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
/obj/item/clothing/head/helmet/space/hardsuit/ert/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
/obj/item/clothing/suit/space/hardsuit/ert
name = "emergency response team commander hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has blue highlights. Offers superb protection against environmental hazards."
icon_state = "ert_command"
inhand_icon_state = "ert_command"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
slowdown = 0
strip_delay = 130
resistance_flags = FIRE_PROOF
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
cell = /obj/item/stock_parts/cell/bluespace
// ERT suit's gets EMP Protection
/obj/item/clothing/suit/space/hardsuit/ert/Initialize()
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_CONTENTS)
//ERT Security
/obj/item/clothing/head/helmet/space/hardsuit/ert/sec
name = "emergency response team security helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has red highlights."
icon_state = "hardsuit0-ert_security"
inhand_icon_state = "hardsuit0-ert_security"
hardsuit_type = "ert_security"
/obj/item/clothing/suit/space/hardsuit/ert/sec
name = "emergency response team security hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has red highlights. Offers superb protection against environmental hazards."
icon_state = "ert_security"
inhand_icon_state = "ert_security"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec
//ERT Engineering
/obj/item/clothing/head/helmet/space/hardsuit/ert/engi
name = "emergency response team engineering helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has orange highlights."
icon_state = "hardsuit0-ert_engineer"
inhand_icon_state = "hardsuit0-ert_engineer"
hardsuit_type = "ert_engineer"
/obj/item/clothing/suit/space/hardsuit/ert/engi
name = "emergency response team engineering hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has orange highlights. Offers superb protection against environmental hazards."
icon_state = "ert_engineer"
inhand_icon_state = "ert_engineer"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi
//ERT Medical
/obj/item/clothing/head/helmet/space/hardsuit/ert/med
name = "emergency response team medical helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has white highlights."
icon_state = "hardsuit0-ert_medical"
inhand_icon_state = "hardsuit0-ert_medical"
hardsuit_type = "ert_medical"
/obj/item/clothing/suit/space/hardsuit/ert/med
name = "emergency response team medical hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has white highlights. Offers superb protection against environmental hazards."
icon_state = "ert_medical"
inhand_icon_state = "ert_medical"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med
//ERT Janitor
/obj/item/clothing/head/helmet/space/hardsuit/ert/jani
name = "emergency response team janitorial helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has purple highlights."
icon_state = "hardsuit0-ert_janitor"
inhand_icon_state = "hardsuit0-ert_janitor"
hardsuit_type = "ert_janitor"
/obj/item/clothing/suit/space/hardsuit/ert/jani
name = "emergency response team janitorial hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has purple highlights. Offers superb protection against environmental hazards. This one has extra clips for holding various janitorial tools."
icon_state = "ert_janitor"
inhand_icon_state = "ert_janitor"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/jani
allowed = list(/obj/item/tank/internals, /obj/item/storage/bag/trash, /obj/item/melee/flyswatter, /obj/item/mop, /obj/item/holosign_creator, /obj/item/reagent_containers/glass/bucket, /obj/item/reagent_containers/spray/chemsprayer/janitor)
//ERT Clown
/obj/item/clothing/head/helmet/space/hardsuit/ert/clown
name = "emergency response team clown helmet"
desc = "The integrated helmet of an ERT hardsuit, this one is colourful!"
icon_state = "hardsuit0-ert_clown"
inhand_icon_state = "hardsuit0-ert_clown"
hardsuit_type = "ert_clown"
/obj/item/clothing/suit/space/hardsuit/ert/clown
name = "emergency response team clown hardsuit"
desc = "The non-standard issue hardsuit of the ERT, this one is colourful! Offers superb protection against environmental hazards. Does not offer superb protection against a ravaging crew."
icon_state = "ert_clown"
inhand_icon_state = "ert_clown"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/clown
allowed = list(/obj/item/tank/internals, /obj/item/bikehorn, /obj/item/instrument, /obj/item/food/grown/banana, /obj/item/grown/bananapeel)
//Paranormal ERT
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
name = "paranormal response team helmet"
desc = "A helmet worn by those who deal with paranormal threats for a living."
icon_state = "hardsuit0-prt"
inhand_icon_state = "hardsuit0-prt"
hardsuit_type = "prt"
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
actions_types = list()
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/space/hardsuit/ert/paranormal
name = "paranormal response team hardsuit"
desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats."
icon_state = "knight_grey"
inhand_icon_state = "knight_grey"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize()
. = ..()
AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE, ITEM_SLOT_OCLOTHING)
//Inquisitor
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
name = "inquisitor's hardsuit"
icon_state = "hardsuit-inq"
inhand_icon_state = "hardsuit-inq"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
name = "inquisitor's helmet"
icon_state = "hardsuit0-inq"
inhand_icon_state = "hardsuit0-inq"
hardsuit_type = "inq"
//Carpsuit, bestsuit, lovesuit
/obj/item/clothing/head/helmet/space/hardsuit/carp
name = "carp helmet"
desc = "Spaceworthy and it looks like a space carp's head, smells like one too."
icon_state = "carp_helm"
inhand_icon_state = "syndicate"
armor = list(MELEE = -20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 75, FIRE = 60, ACID = 75) //As whimpy as a space carp
light_system = NO_LIGHT_SUPPORT
light_range = 0 //luminosity when on
actions_types = list()
flags_inv = HIDEEARS|HIDEHAIR|HIDEFACIALHAIR //facial hair will clip with the helm, this'll need a dynamic_fhair_suffix at some point.
/obj/item/clothing/head/helmet/space/hardsuit/carp/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
/obj/item/clothing/suit/space/hardsuit/carp
name = "carp space suit"
desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows."
icon_state = "carp_suit"
inhand_icon_state = "space_suit_syndicate"
slowdown = 0 //Space carp magic, never stop believing
armor = list(MELEE = -20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 75, FIRE = 60, ACID = 75) //As whimpy whimpy whoo
allowed = list(/obj/item/tank/internals, /obj/item/gun/ballistic/rifle/boltaction/harpoon) //I'm giving you a hint here
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp
/obj/item/clothing/head/helmet/space/hardsuit/carp/equipped(mob/living/carbon/human/user, slot)
..()
if (slot == ITEM_SLOT_HEAD)
user.faction |= "carp"
/obj/item/clothing/head/helmet/space/hardsuit/carp/dropped(mob/living/carbon/human/user)
..()
if (user.head == src)
user.faction -= "carp"
/obj/item/clothing/suit/space/hardsuit/carp/old
name = "battered carp space suit"
desc = "It's covered in bite marks and scratches, yet seems to be still perfectly functional."
slowdown = 1
//Combat medic
/obj/item/clothing/head/helmet/space/hardsuit/combatmedic
name = "endemic combat medic helmet"
desc = "The integrated helmet of the combat medic hardsuit, this has a bright, glowing facemask."
icon_state = "hardsuit0-combatmedic"
inhand_icon_state = "hardsuit0-combatmedic"
armor = list(MELEE = 35, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 5, BIO = 100, RAD = 50, FIRE = 65, ACID = 75)
hardsuit_type = "combatmedic"
/obj/item/clothing/suit/space/hardsuit/combatmedic
name = "endemic combat medic hardsuit"
desc = "The standard issue hardsuit of infectious disease officers, before the formation of ERT teams. This model is labeled 'Veradux'."
icon_state = "combatmedic"
inhand_icon_state = "combatmedic"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/combatmedic
armor = list(MELEE = 35, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 5, BIO = 100, RAD = 50, FIRE = 65, ACID = 75)
allowed = list(/obj/item/gun, /obj/item/melee/baton, /obj/item/circular_saw, /obj/item/tank/internals, /obj/item/storage/box/pillbottles,\
/obj/item/storage/firstaid, /obj/item/stack/medical/gauze, /obj/item/stack/medical/suture, /obj/item/stack/medical/mesh, /obj/item/storage/bag/chemistry)
/////////////SHIELDED//////////////////////////////////
/obj/item/clothing/suit/space/hardsuit/shielded
@@ -1,566 +0,0 @@
//miscellaneous spacesuits
/*
Contains:
Captain's spacesuit
Death squad's hardsuit
SWAT suit
Officer's beret/spacesuit
NASA Voidsuit
Father Christmas' magical clothes
Pirate's spacesuit
ERT hardsuit: command, sec, engi, med, janitor
EVA spacesuit
Freedom's spacesuit (freedom from vacuum's oppression)
Carp hardsuit
Bounty hunter hardsuit
Blackmarket combat medic hardsuit
*/
//Death squad armored space suits, not hardsuits!
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad
name = "MK.III SWAT Helmet"
desc = "An advanced tactical space helmet."
icon_state = "deathsquad"
inhand_icon_state = "deathsquad"
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 20)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
actions_types = list()
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user)
return
/obj/item/clothing/suit/space/hardsuit/deathsquad
name = "MK.III SWAT Suit"
desc = "A prototype designed to replace the ageing MK.II SWAT suit. Based on the streamlined MK.II model, the traditional ceramic and graphene plate construction was replaced with plasteel, allowing superior armor against most threats. There's room for some kind of energy projection device on the back."
icon_state = "deathsquad"
inhand_icon_state = "swat_suit"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 20)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad
dog_fashion = /datum/dog_fashion/back/deathsquad
cell = /obj/item/stock_parts/cell/bluespace
//NEW SWAT suit
/obj/item/clothing/suit/space/swat
name = "MK.I SWAT Suit"
desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!"
icon_state = "heavy"
inhand_icon_state = "swat_suit"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
armor = list(MELEE = 40, BULLET = 30, LASER = 30,ENERGY = 40, BOMB = 50, BIO = 90, RAD = 20, FIRE = 100, ACID = 100, WOUND = 15)
strip_delay = 120
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/head/helmet/space/beret
name = "officer's beret"
desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space."
icon_state = "beret_badge"
greyscale_colors = "#972A2A#F2F2F2"
dynamic_hair_suffix = "+generic"
dynamic_fhair_suffix = "+generic"
flags_inv = 0
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 15)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/suit/space/officer
name = "officer's jacket"
desc = "An armored, space-proof jacket used in special operations."
icon_state = "detective"
inhand_icon_state = "det_suit"
blood_overlay_type = "coat"
slowdown = 0
flags_inv = 0
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 15)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
//NASA Voidsuit
/obj/item/clothing/head/helmet/space/nasavoid
name = "NASA Void Helmet"
desc = "An old, NASA CentCom branch designed, dark red space suit helmet."
icon_state = "void"
inhand_icon_state = "void"
/obj/item/clothing/suit/space/nasavoid
name = "NASA Voidsuit"
icon_state = "void"
inhand_icon_state = "void"
desc = "An old, NASA CentCom branch designed, dark red space suit."
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool)
/obj/item/clothing/head/helmet/space/nasavoid/old
name = "Engineering Void Helmet"
desc = "A CentCom engineering dark red space suit helmet. While old and dusty, it still gets the job done."
icon_state = "void"
inhand_icon_state = "void"
/obj/item/clothing/suit/space/nasavoid/old
name = "Engineering Voidsuit"
icon_state = "void"
inhand_icon_state = "void"
desc = "A CentCom engineering dark red space suit. Age has degraded the suit making it difficult to move around in."
slowdown = 4
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool)
//Space santa outfit suit
/obj/item/clothing/head/helmet/space/santahat
name = "Santa's hat"
desc = "Ho ho ho. Merrry X-mas!"
icon_state = "santahat"
flags_cover = HEADCOVERSEYES
dog_fashion = /datum/dog_fashion/head/santa
/obj/item/clothing/suit/space/santa
name = "Santa's suit"
desc = "Festive!"
icon_state = "santa"
inhand_icon_state = "santa"
slowdown = 0
allowed = list(/obj/item) //for stuffing exta special presents
//Space pirate outfit
/obj/item/clothing/head/helmet/space/pirate
name = "modified EVA helmet"
desc = "A modified helmet to allow space pirates to intimidate their customers whilst staying safe from the void. Comes with some additional protection."
icon_state = "spacepirate"
inhand_icon_state = "spacepiratehelmet"
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
/obj/item/clothing/head/helmet/space/pirate/bandana
icon_state = "spacebandana"
inhand_icon_state = "spacepiratehelmet"
/obj/item/clothing/suit/space/pirate
name = "modified EVA suit"
desc = "A modified suit to allow space pirates to board shuttles and stations while avoiding the maw of the void. Comes with additional protection, and is lighter to move in."
icon_state = "spacepirate"
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/transforming/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
slowdown = 0
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
//Emergency Response Team suits
/obj/item/clothing/head/helmet/space/hardsuit/ert
name = "emergency response team commander helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has blue highlights."
icon_state = "hardsuit0-ert_commander"
inhand_icon_state = "hardsuit0-ert_commander"
hardsuit_type = "ert_commander"
armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
strip_delay = 130
light_range = 7
resistance_flags = FIRE_PROOF
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
/obj/item/clothing/head/helmet/space/hardsuit/ert/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
/obj/item/clothing/suit/space/hardsuit/ert
name = "emergency response team commander hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has blue highlights. Offers superb protection against environmental hazards."
icon_state = "ert_command"
inhand_icon_state = "ert_command"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
armor = list(MELEE = 65, BULLET = 50, LASER = 50, ENERGY = 60, BOMB = 50, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
slowdown = 0
strip_delay = 130
resistance_flags = FIRE_PROOF
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
cell = /obj/item/stock_parts/cell/bluespace
// ERT suit's gets EMP Protection
/obj/item/clothing/suit/space/hardsuit/ert/Initialize()
. = ..()
AddElement(/datum/element/empprotection, EMP_PROTECT_CONTENTS)
//ERT Security
/obj/item/clothing/head/helmet/space/hardsuit/ert/sec
name = "emergency response team security helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has red highlights."
icon_state = "hardsuit0-ert_security"
inhand_icon_state = "hardsuit0-ert_security"
hardsuit_type = "ert_security"
/obj/item/clothing/suit/space/hardsuit/ert/sec
name = "emergency response team security hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has red highlights. Offers superb protection against environmental hazards."
icon_state = "ert_security"
inhand_icon_state = "ert_security"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec
//ERT Engineering
/obj/item/clothing/head/helmet/space/hardsuit/ert/engi
name = "emergency response team engineering helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has orange highlights."
icon_state = "hardsuit0-ert_engineer"
inhand_icon_state = "hardsuit0-ert_engineer"
hardsuit_type = "ert_engineer"
/obj/item/clothing/suit/space/hardsuit/ert/engi
name = "emergency response team engineering hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has orange highlights. Offers superb protection against environmental hazards."
icon_state = "ert_engineer"
inhand_icon_state = "ert_engineer"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi
//ERT Medical
/obj/item/clothing/head/helmet/space/hardsuit/ert/med
name = "emergency response team medical helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has white highlights."
icon_state = "hardsuit0-ert_medical"
inhand_icon_state = "hardsuit0-ert_medical"
hardsuit_type = "ert_medical"
/obj/item/clothing/suit/space/hardsuit/ert/med
name = "emergency response team medical hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has white highlights. Offers superb protection against environmental hazards."
icon_state = "ert_medical"
inhand_icon_state = "ert_medical"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med
//ERT Janitor
/obj/item/clothing/head/helmet/space/hardsuit/ert/jani
name = "emergency response team janitorial helmet"
desc = "The integrated helmet of an ERT hardsuit, this one has purple highlights."
icon_state = "hardsuit0-ert_janitor"
inhand_icon_state = "hardsuit0-ert_janitor"
hardsuit_type = "ert_janitor"
/obj/item/clothing/suit/space/hardsuit/ert/jani
name = "emergency response team janitorial hardsuit"
desc = "The standard issue hardsuit of the ERT, this one has purple highlights. Offers superb protection against environmental hazards. This one has extra clips for holding various janitorial tools."
icon_state = "ert_janitor"
inhand_icon_state = "ert_janitor"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/jani
allowed = list(/obj/item/tank/internals, /obj/item/storage/bag/trash, /obj/item/melee/flyswatter, /obj/item/mop, /obj/item/holosign_creator, /obj/item/reagent_containers/glass/bucket, /obj/item/reagent_containers/spray/chemsprayer/janitor)
//ERT Clown
/obj/item/clothing/head/helmet/space/hardsuit/ert/clown
name = "emergency response team clown helmet"
desc = "The integrated helmet of an ERT hardsuit, this one is colourful!"
icon_state = "hardsuit0-ert_clown"
inhand_icon_state = "hardsuit0-ert_clown"
hardsuit_type = "ert_clown"
/obj/item/clothing/suit/space/hardsuit/ert/clown
name = "emergency response team clown hardsuit"
desc = "The non-standard issue hardsuit of the ERT, this one is colourful! Offers superb protection against environmental hazards. Does not offer superb protection against a ravaging crew."
icon_state = "ert_clown"
inhand_icon_state = "ert_clown"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/clown
allowed = list(/obj/item/tank/internals, /obj/item/bikehorn, /obj/item/instrument, /obj/item/food/grown/banana, /obj/item/grown/bananapeel)
/obj/item/clothing/suit/space/eva
name = "EVA suit"
icon_state = "space"
inhand_icon_state = "s_suit"
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 100, RAD = 20, FIRE = 50, ACID = 65)
/obj/item/clothing/head/helmet/space/eva
name = "EVA helmet"
icon_state = "space"
inhand_icon_state = "space"
desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
flash_protect = FLASH_PROTECTION_NONE
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 100, RAD = 20, FIRE = 50, ACID = 65)
/obj/item/clothing/head/helmet/space/eva/examine(mob/user)
. = ..()
. += span_notice("You can start constructing a critter sized mecha with a [span_bold("cyborg leg")].")
/obj/item/clothing/head/helmet/space/eva/attackby(obj/item/attacked_with, mob/user, params)
. = ..()
if(.)
return
if(!istype(attacked_with, /obj/item/bodypart/l_leg/robot) && !istype(attacked_with, /obj/item/bodypart/r_leg/robot))
return
if(ismob(loc))
user.balloon_alert(user, "drop the helmet first!")
return
user.balloon_alert(user, "leg attached")
new /obj/item/bot_assembly/vim(loc)
qdel(attacked_with)
qdel(src)
/obj/item/clothing/head/helmet/space/freedom
name = "eagle helmet"
desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle."
icon_state = "griffinhat"
inhand_icon_state = "griffinhat"
armor = list(MELEE = 20, BULLET = 40, LASER = 30, ENERGY = 40, BOMB = 100, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF | FIRE_PROOF
/obj/item/clothing/suit/space/freedom
name = "eagle suit"
desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be integrated into the suit and the wings appear to be stuck in 'freedom' mode."
icon_state = "freedom"
inhand_icon_state = "freedom"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
armor = list(MELEE = 20, BULLET = 40, LASER = 30,ENERGY = 40, BOMB = 100, BIO = 100, RAD = 100, FIRE = 80, ACID = 80)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = ACID_PROOF | FIRE_PROOF
slowdown = 0
//Carpsuit, bestsuit, lovesuit
/obj/item/clothing/head/helmet/space/hardsuit/carp
name = "carp helmet"
desc = "Spaceworthy and it looks like a space carp's head, smells like one too."
icon_state = "carp_helm"
inhand_icon_state = "syndicate"
armor = list(MELEE = -20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 75, FIRE = 60, ACID = 75) //As whimpy as a space carp
light_system = NO_LIGHT_SUPPORT
light_range = 0 //luminosity when on
actions_types = list()
flags_inv = HIDEEARS|HIDEHAIR|HIDEFACIALHAIR //facial hair will clip with the helm, this'll need a dynamic_fhair_suffix at some point.
/obj/item/clothing/head/helmet/space/hardsuit/carp/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
/obj/item/clothing/suit/space/hardsuit/carp
name = "carp space suit"
desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows."
icon_state = "carp_suit"
inhand_icon_state = "space_suit_syndicate"
slowdown = 0 //Space carp magic, never stop believing
armor = list(MELEE = -20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 75, FIRE = 60, ACID = 75) //As whimpy whimpy whoo
allowed = list(/obj/item/tank/internals, /obj/item/gun/ballistic/rifle/boltaction/harpoon) //I'm giving you a hint here
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp
/obj/item/clothing/head/helmet/space/hardsuit/carp/equipped(mob/living/carbon/human/user, slot)
..()
if (slot == ITEM_SLOT_HEAD)
user.faction |= "carp"
/obj/item/clothing/head/helmet/space/hardsuit/carp/dropped(mob/living/carbon/human/user)
..()
if (user.head == src)
user.faction -= "carp"
/obj/item/clothing/suit/space/hardsuit/carp/old
name = "battered carp space suit"
desc = "It's covered in bite marks and scratches, yet seems to be still perfectly functional."
slowdown = 1
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
name = "paranormal response team helmet"
desc = "A helmet worn by those who deal with paranormal threats for a living."
icon_state = "hardsuit0-prt"
inhand_icon_state = "hardsuit0-prt"
hardsuit_type = "prt"
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
actions_types = list()
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/space/hardsuit/ert/paranormal
name = "paranormal response team hardsuit"
desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats."
icon_state = "knight_grey"
inhand_icon_state = "knight_grey"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize()
. = ..()
AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE, ITEM_SLOT_OCLOTHING)
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
name = "inquisitor's hardsuit"
icon_state = "hardsuit-inq"
inhand_icon_state = "hardsuit-inq"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
name = "inquisitor's helmet"
icon_state = "hardsuit0-inq"
inhand_icon_state = "hardsuit0-inq"
hardsuit_type = "inq"
/obj/item/clothing/suit/space/hardsuit/berserker
name = "berserker hardsuit"
desc = "Voices echo from the hardsuit, driving the user insane."
icon_state = "hardsuit-berserker"
inhand_icon_state = "hardsuit-berserker"
slowdown = 0
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/berserker
armor = list(MELEE = 30, BULLET = 10, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 10, FIRE = 100, ACID = 100)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife, /obj/item/kinetic_crusher, /obj/item/resonator, /obj/item/melee/transforming/cleaving_saw)
/obj/item/clothing/suit/space/hardsuit/berserker/Initialize()
. = ..()
AddComponent(/datum/component/anti_magic, TRUE, TRUE, TRUE, ITEM_SLOT_OCLOTHING)
/obj/item/clothing/suit/space/hardsuit/berserker/RemoveHelmet()
var/obj/item/clothing/head/helmet/space/hardsuit/berserker/helm = helmet
if(helm?.berserk_active)
return
return ..()
#define MAX_BERSERK_CHARGE 100
#define PROJECTILE_HIT_MULTIPLIER 1.5
#define DAMAGE_TO_CHARGE_SCALE 0.25
#define CHARGE_DRAINED_PER_SECOND 5
#define BERSERK_MELEE_ARMOR_ADDED 50
#define BERSERK_ATTACK_SPEED_MODIFIER 0.25
/obj/item/clothing/head/helmet/space/hardsuit/berserker
name = "berserker helmet"
desc = "Peering into the eyes of the helmet is enough to seal damnation."
icon_state = "hardsuit0-berserker"
inhand_icon_state = "hardsuit0-berserker"
hardsuit_type = "berserker"
armor = list(MELEE = 30, BULLET = 10, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 100, RAD = 10, FIRE = 100, ACID = 100)
actions_types = list(/datum/action/item_action/berserk_mode)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
/// Current charge of berserk, goes from 0 to 100
var/berserk_charge = 0
/// Status of berserk
var/berserk_active = FALSE
/obj/item/clothing/head/helmet/space/hardsuit/berserker/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
/obj/item/clothing/head/helmet/space/hardsuit/berserker/examine()
. = ..()
. += span_notice("Berserk mode is [berserk_charge]% charged.")
/obj/item/clothing/head/helmet/space/hardsuit/berserker/process(delta_time)
. = ..()
if(berserk_active)
berserk_charge = clamp(berserk_charge - CHARGE_DRAINED_PER_SECOND * delta_time, 0, MAX_BERSERK_CHARGE)
if(!berserk_charge)
if(ishuman(loc))
end_berserk(loc)
/obj/item/clothing/head/helmet/space/hardsuit/berserker/dropped(mob/user)
. = ..()
end_berserk(user)
/obj/item/clothing/head/helmet/space/hardsuit/berserker/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(berserk_active)
return
var/berserk_value = damage * DAMAGE_TO_CHARGE_SCALE
if(attack_type == PROJECTILE_ATTACK)
berserk_value *= PROJECTILE_HIT_MULTIPLIER
berserk_charge = clamp(round(berserk_charge + berserk_value), 0, MAX_BERSERK_CHARGE)
if(berserk_charge >= MAX_BERSERK_CHARGE)
to_chat(owner, span_notice("Berserk mode is fully charged."))
/// Starts berserk, giving the wearer 50 melee armor, doubled attacking speed, NOGUNS trait, adding a color and giving them the berserk movespeed modifier
/obj/item/clothing/head/helmet/space/hardsuit/berserker/proc/berserk_mode(mob/living/carbon/human/user)
to_chat(user, span_warning("You enter berserk mode."))
playsound(user, 'sound/magic/staff_healing.ogg', 50)
user.add_movespeed_modifier(/datum/movespeed_modifier/berserk)
user.physiology.armor.melee += BERSERK_MELEE_ARMOR_ADDED
user.next_move_modifier *= BERSERK_ATTACK_SPEED_MODIFIER
user.add_atom_colour(COLOR_BUBBLEGUM_RED, TEMPORARY_COLOUR_PRIORITY)
ADD_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT)
ADD_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT)
berserk_active = TRUE
/// Ends berserk, reverting the changes from the proc [berserk_mode]
/obj/item/clothing/head/helmet/space/hardsuit/berserker/proc/end_berserk(mob/living/carbon/human/user)
if(!berserk_active)
return
to_chat(user, span_warning("You exit berserk mode."))
playsound(user, 'sound/magic/summonitems_generic.ogg', 50)
user.remove_movespeed_modifier(/datum/movespeed_modifier/berserk)
user.physiology.armor.melee -= BERSERK_MELEE_ARMOR_ADDED
user.next_move_modifier /= BERSERK_ATTACK_SPEED_MODIFIER
user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, COLOR_BUBBLEGUM_RED)
REMOVE_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT)
REMOVE_TRAIT(src, TRAIT_NODROP, BERSERK_TRAIT)
berserk_active = FALSE
#undef MAX_BERSERK_CHARGE
#undef PROJECTILE_HIT_MULTIPLIER
#undef DAMAGE_TO_CHARGE_SCALE
#undef CHARGE_DRAINED_PER_SECOND
#undef BERSERK_MELEE_ARMOR_ADDED
#undef BERSERK_ATTACK_SPEED_MODIFIER
/obj/item/clothing/head/helmet/space/fragile
name = "emergency space helmet"
desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable."
icon_state = "syndicate-helm-orange"
inhand_icon_state = "syndicate-helm-orange"
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 0, ACID = 0)
strip_delay = 65
/obj/item/clothing/suit/space/fragile
name = "emergency space suit"
desc = "A bulky, air-tight suit meant to protect the user during emergency situations. It doesn't look very durable."
var/torn = FALSE
icon_state = "syndicate-orange"
inhand_icon_state = "syndicate-orange"
slowdown = 2
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 0, ACID = 0)
strip_delay = 65
/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(!torn && prob(50))
to_chat(owner, span_warning("[src] tears from the damage, breaking the air-tight seal!"))
clothing_flags &= ~STOPSPRESSUREDAMAGE
name = "torn [src]."
desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit."
torn = TRUE
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, TRUE)
playsound(loc, 'sound/effects/refill.ogg', 50, TRUE)
/obj/item/clothing/suit/space/hunter
name = "bounty hunting suit"
desc = "A custom version of the MK.II SWAT suit, modified to look rugged and tough. Works as a space suit, if you can find a helmet."
icon_state = "hunter"
inhand_icon_state = "swat_suit"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
armor = list(MELEE = 60, BULLET = 40, LASER = 40, ENERGY = 50, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100)
strip_delay = 130
resistance_flags = FIRE_PROOF | ACID_PROOF
cell = /obj/item/stock_parts/cell/hyper
//We can either be alive monsters or dead monsters, you choose.
/obj/item/clothing/head/helmet/space/hardsuit/combatmedic
name = "endemic combat medic helmet"
desc = "The integrated helmet of the combat medic hardsuit, this has a bright, glowing facemask."
icon_state = "hardsuit0-combatmedic"
inhand_icon_state = "hardsuit0-combatmedic"
armor = list(MELEE = 35, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 5, BIO = 100, RAD = 50, FIRE = 65, ACID = 75)
hardsuit_type = "combatmedic"
/obj/item/clothing/suit/space/hardsuit/combatmedic
name = "endemic combat medic hardsuit"
desc = "The standard issue hardsuit of infectious disease officers, before the formation of ERT teams. This model is labeled 'Veradux'."
icon_state = "combatmedic"
inhand_icon_state = "combatmedic"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/combatmedic
armor = list(MELEE = 35, BULLET = 10, LASER = 20, ENERGY = 30, BOMB = 5, BIO = 100, RAD = 50, FIRE = 65, ACID = 75)
allowed = list(/obj/item/gun, /obj/item/melee/baton, /obj/item/circular_saw, /obj/item/tank/internals, /obj/item/storage/box/pillbottles,\
/obj/item/storage/firstaid, /obj/item/stack/medical/gauze, /obj/item/stack/medical/suture, /obj/item/stack/medical/mesh, /obj/item/storage/bag/chemistry)
@@ -0,0 +1,23 @@
/obj/item/clothing/head/helmet/space/pirate
name = "modified EVA helmet"
desc = "A modified helmet to allow space pirates to intimidate their customers whilst staying safe from the void. Comes with some additional protection."
icon_state = "spacepirate"
inhand_icon_state = "spacepiratehelmet"
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
/obj/item/clothing/head/helmet/space/pirate/bandana
icon_state = "spacebandana"
inhand_icon_state = "spacepiratehelmet"
/obj/item/clothing/suit/space/pirate
name = "modified EVA suit"
desc = "A modified suit to allow space pirates to board shuttles and stations while avoiding the maw of the void. Comes with additional protection, and is lighter to move in."
icon_state = "spacepirate"
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/transforming/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
slowdown = 0
armor = list(MELEE = 30, BULLET = 50, LASER = 30,ENERGY = 40, BOMB = 30, BIO = 30, RAD = 30, FIRE = 60, ACID = 75)
strip_delay = 40
equip_delay_other = 20
+15
View File
@@ -0,0 +1,15 @@
/obj/item/clothing/head/helmet/space/santahat
name = "Santa's hat"
desc = "Ho ho ho. Merrry X-mas!"
icon_state = "santahat"
flags_cover = HEADCOVERSEYES
dog_fashion = /datum/dog_fashion/head/santa
/obj/item/clothing/suit/space/santa
name = "Santa's suit"
desc = "Festive!"
icon_state = "santa"
inhand_icon_state = "santa"
slowdown = 0
allowed = list(/obj/item) //for stuffing exta special presents
@@ -0,0 +1,90 @@
//NASA Voidsuit
/obj/item/clothing/head/helmet/space/nasavoid
name = "NASA Void Helmet"
desc = "An old, NASA CentCom branch designed, dark red space suit helmet."
icon_state = "void"
inhand_icon_state = "void"
/obj/item/clothing/suit/space/nasavoid
name = "NASA Voidsuit"
icon_state = "void"
inhand_icon_state = "void"
desc = "An old, NASA CentCom branch designed, dark red space suit."
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool)
/obj/item/clothing/head/helmet/space/nasavoid/old
name = "Engineering Void Helmet"
desc = "A CentCom engineering dark red space suit helmet. While old and dusty, it still gets the job done."
icon_state = "void"
inhand_icon_state = "void"
/obj/item/clothing/suit/space/nasavoid/old
name = "Engineering Voidsuit"
icon_state = "void"
inhand_icon_state = "void"
desc = "A CentCom engineering dark red space suit. Age has degraded the suit making it difficult to move around in."
slowdown = 4
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/multitool)
//EVA suit
/obj/item/clothing/suit/space/eva
name = "EVA suit"
icon_state = "space"
inhand_icon_state = "s_suit"
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 100, RAD = 20, FIRE = 50, ACID = 65)
/obj/item/clothing/head/helmet/space/eva
name = "EVA helmet"
icon_state = "space"
inhand_icon_state = "space"
desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
flash_protect = FLASH_PROTECTION_NONE
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 100, RAD = 20, FIRE = 50, ACID = 65)
/obj/item/clothing/head/helmet/space/eva/examine(mob/user)
. = ..()
. += span_notice("You can start constructing a critter sized mecha with a [span_bold("cyborg leg")].")
/obj/item/clothing/head/helmet/space/eva/attackby(obj/item/attacked_with, mob/user, params)
. = ..()
if(.)
return
if(!istype(attacked_with, /obj/item/bodypart/l_leg/robot) && !istype(attacked_with, /obj/item/bodypart/r_leg/robot))
return
if(ismob(loc))
user.balloon_alert(user, "drop the helmet first!")
return
user.balloon_alert(user, "leg attached")
new /obj/item/bot_assembly/vim(loc)
qdel(attacked_with)
qdel(src)
//Emergency suit
/obj/item/clothing/head/helmet/space/fragile
name = "emergency space helmet"
desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable."
icon_state = "syndicate-helm-orange"
inhand_icon_state = "syndicate-helm-orange"
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 0, ACID = 0)
strip_delay = 65
/obj/item/clothing/suit/space/fragile
name = "emergency space suit"
desc = "A bulky, air-tight suit meant to protect the user during emergency situations. It doesn't look very durable."
var/torn = FALSE
icon_state = "syndicate-orange"
inhand_icon_state = "syndicate-orange"
slowdown = 2
armor = list(MELEE = 5, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 10, FIRE = 0, ACID = 0)
strip_delay = 65
/obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(!torn && prob(50))
to_chat(owner, span_warning("[src] tears from the damage, breaking the air-tight seal!"))
clothing_flags &= ~STOPSPRESSUREDAMAGE
name = "torn [src]."
desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit."
torn = TRUE
playsound(loc, 'sound/weapons/slashmiss.ogg', 50, TRUE)
playsound(loc, 'sound/effects/refill.ogg', 50, TRUE)
@@ -0,0 +1,27 @@
/obj/item/clothing/head/helmet/space/beret
name = "officer's beret"
desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space."
icon_state = "beret_badge"
greyscale_colors = "#972A2A#F2F2F2"
dynamic_hair_suffix = "+generic"
dynamic_fhair_suffix = "+generic"
flags_inv = 0
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 15)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
/obj/item/clothing/suit/space/officer
name = "officer's jacket"
desc = "An armored, space-proof jacket used in special operations."
icon_state = "detective"
inhand_icon_state = "det_suit"
blood_overlay_type = "coat"
slowdown = 0
flags_inv = 0
w_class = WEIGHT_CLASS_NORMAL
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, RAD = 100, FIRE = 100, ACID = 100, WOUND = 15)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
+9
View File
@@ -0,0 +1,9 @@
/obj/item/clothing/suit/space/swat
name = "MK.I SWAT Suit"
desc = "A tactical space suit first developed in a joint effort by the defunct IS-ERI and Nanotrasen in 20XX for military space operations. A tried and true workhorse, it is very difficult to move in but offers robust protection against all threats!"
icon_state = "heavy"
inhand_icon_state = "swat_suit"
allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/kitchen/knife/combat)
armor = list(MELEE = 40, BULLET = 30, LASER = 30,ENERGY = 40, BOMB = 50, BIO = 90, RAD = 20, FIRE = 100, ACID = 100, WOUND = 15)
strip_delay = 120
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -0,0 +1,49 @@
/obj/item/clothing/head/hooded/ablative
name = "ablative hood"
desc = "Hood hopefully belonging to an ablative trenchcoat. Includes a visor for cool-o-vision."
icon_state = "ablativehood"
armor = list(MELEE = 10, BULLET = 10, LASER = 60, ENERGY = 60, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
strip_delay = 30
var/hit_reflect_chance = 50
/obj/item/clothing/head/hooded/ablative/equipped(mob/living/carbon/human/user, slot)
..()
to_chat(user, "As you put on the hood, a visor shifts into place and starts analyzing the people around you. Neat!")
ADD_TRAIT(user, TRAIT_SECURITY_HUD, HELMET_TRAIT)
var/datum/atom_hud/H = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
H.add_hud_to(user)
/obj/item/clothing/head/hooded/ablative/dropped(mob/living/carbon/human/user)
..()
to_chat(user, "You take off the hood, removing the visor in the process and disabling its integrated hud.")
REMOVE_TRAIT(user, TRAIT_SECURITY_HUD, HELMET_TRAIT)
var/datum/atom_hud/H = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
H.remove_hud_from(user)
/obj/item/clothing/head/hooded/ablative/IsReflect(def_zone)
if(def_zone != BODY_ZONE_HEAD) //If not shot where ablative is covering you, you don't get the reflection bonus!
return FALSE
if (prob(hit_reflect_chance))
return TRUE
/obj/item/clothing/suit/hooded/ablative
name = "ablative trenchcoat"
desc = "Experimental trenchcoat specially crafted to reflect and absorb laser and disabler shots. Don't expect it to do all that much against an axe or a shotgun, however."
icon_state = "ablativecoat"
inhand_icon_state = "ablativecoat"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
armor = list(MELEE = 10, BULLET = 10, LASER = 60, ENERGY = 60, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
hoodtype = /obj/item/clothing/head/hooded/ablative
strip_delay = 30
equip_delay_other = 40
var/hit_reflect_chance = 50
/obj/item/clothing/suit/hooded/ablative/Initialize()
. = ..()
allowed = GLOB.security_vest_allowed
/obj/item/clothing/suit/hooded/ablative/IsReflect(def_zone)
if(!(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))) //If not shot where ablative is covering you, you don't get the reflection bonus!
return FALSE
if (prob(hit_reflect_chance))
return TRUE
@@ -1,36 +1,3 @@
/*
* Contains:
* Lasertag
* Costume
* Misc
*/
/*
* Lasertag
*/
/obj/item/clothing/suit/bluetag
name = "blue laser tag armor"
desc = "A piece of plastic armor. It has sensors that react to red light." //Lasers are concentrated light
icon_state = "bluetag"
inhand_icon_state = "bluetag"
blood_overlay_type = "armor"
body_parts_covered = CHEST
allowed = list (/obj/item/gun/energy/laser/bluetag)
resistance_flags = NONE
/obj/item/clothing/suit/redtag
name = "red laser tag armor"
desc = "A piece of plastic armor. It has sensors that react to blue light."
icon_state = "redtag"
inhand_icon_state = "redtag"
blood_overlay_type = "armor"
body_parts_covered = CHEST
allowed = list (/obj/item/gun/energy/laser/redtag)
resistance_flags = NONE
/*
* Costume
*/
/obj/item/clothing/suit/hooded/flashsuit
name = "flashy costume"
desc = "What did you expect?"
@@ -70,7 +37,6 @@
strip_delay = 40
equip_delay_other = 20
/obj/item/clothing/suit/cyborg_suit
name = "cyborg suit"
desc = "Suit for a cyborg costume."
@@ -80,7 +46,6 @@
fire_resist = T0C+5200
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/justice
name = "justice suit"
desc = "this pretty much looks ridiculous" //Needs no fixing
@@ -89,7 +54,6 @@
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
armor = list(MELEE = 35, BULLET = 30, LASER = 30, ENERGY = 40, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
/obj/item/clothing/suit/judgerobe
name = "judge's robe"
desc = "This robe commands authority."
@@ -99,7 +63,6 @@
allowed = list(/obj/item/storage/fancy/cigarettes, /obj/item/stack/spacecash)
flags_inv = HIDEJUMPSUIT
/obj/item/clothing/suit/apron/overalls
name = "coveralls"
desc = "A set of denim overalls."
@@ -133,7 +96,6 @@
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/imperium_monk
name = "\improper Imperium monk suit"
desc = "Have YOU killed a xeno today?"
@@ -143,7 +105,6 @@
flags_inv = HIDESHOES|HIDEJUMPSUIT
allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen)
/obj/item/clothing/suit/chickensuit
name = "chicken suit"
desc = "A suit made long ago by the ancient empire KFC."
@@ -152,7 +113,6 @@
body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET
flags_inv = HIDESHOES|HIDEJUMPSUIT
/obj/item/clothing/suit/monkeysuit
name = "monkey suit"
desc = "A suit that looks like a primate."
@@ -208,7 +168,6 @@
I.add_overlay(mutable_appearance('icons/mob/robots.dmi', "robot_e")) //gotta look realistic
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "standard_borg_disguise", I) //you look like a robot to robots! (including yourself because you're totally a robot)
/obj/item/clothing/suit/snowman
name = "snowman outfit"
desc = "Two white spheres covered in white glitter. 'Tis the season."
@@ -358,128 +317,12 @@
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDEJUMPSUIT
/*
* Misc
*/
/obj/item/clothing/suit/straight_jacket
name = "straight jacket"
desc = "A suit that completely restrains the wearer. Manufactured by Antyphun Corp." //Straight jacket is antifun
icon_state = "straight_jacket"
inhand_icon_state = "straight_jacket"
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
clothing_flags = DANGEROUS_OBJECT
equip_delay_self = 50
strip_delay = 60
breakouttime = 5 MINUTES
/obj/item/clothing/suit/ianshirt
name = "worn shirt"
desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in."
icon_state = "ianshirt"
inhand_icon_state = "ianshirt"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/nerdshirt
name = "gamer shirt"
desc = "A baggy shirt with vintage game character Phanic the Weasel. Why would anyone wear this?"
icon_state = "nerdshirt"
inhand_icon_state = "nerdshirt"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat.
name = "Vape Naysh shirt"
desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironically?"
icon_state = "vapeshirt"
inhand_icon_state = "vapeshirt"
/obj/item/clothing/suit/striped_sweater
name = "striped sweater"
desc = "Reminds you of someone, but you just can't put your finger on it..."
icon_state = "waldo_shirt"
inhand_icon_state = "waldo_shirt"
/obj/item/clothing/suit/jacket
name = "bomber jacket"
desc = "Aviators not included."
icon_state = "bomberjacket"
inhand_icon_state = "brownjsuit"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/leather
name = "leather jacket"
desc = "Pompadour not included."
icon_state = "leatherjacket"
inhand_icon_state = "hostrench"
resistance_flags = NONE
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio)
species_exception = list(/datum/species/golem/bone) //bad to the bone
/obj/item/clothing/suit/jacket/leather/overcoat
name = "leather overcoat"
desc = "That's a damn fine coat."
icon_state = "leathercoat"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
cold_protection = CHEST|GROIN|ARMS|LEGS
/obj/item/clothing/suit/jacket/puffer
name = "puffer jacket"
desc = "A thick jacket with a rubbery, water-resistant shell."
icon_state = "pufferjacket"
inhand_icon_state = "hostrench"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 50, RAD = 0, FIRE = 0, ACID = 0)
species_exception = list(/datum/species/golem/bone)
/obj/item/clothing/suit/jacket/puffer/vest
name = "puffer vest"
desc = "A thick vest with a rubbery, water-resistant shell."
icon_state = "puffervest"
inhand_icon_state = "armor"
body_parts_covered = CHEST|GROIN
cold_protection = CHEST|GROIN
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 30, RAD = 0, FIRE = 0, ACID = 0)
/obj/item/clothing/suit/jacket/miljacket
name = "military jacket"
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
icon_state = "militaryjacket"
inhand_icon_state = "militaryjacket"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio)
/obj/item/clothing/suit/jacket/letterman
name = "letterman jacket"
desc = "A classic brown letterman jacket. Looks pretty hot and heavy."
icon_state = "letterman"
inhand_icon_state = "letterman"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/letterman_red
name = "red letterman jacket"
desc = "A letterman jacket in a sick red color. Radical."
icon_state = "letterman_red"
inhand_icon_state = "letterman_red"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/letterman_syndie
name = "blood-red letterman jacket"
desc = "Oddly, this jacket seems to have a large S on the back..."
icon_state = "letterman_s"
inhand_icon_state = "letterman_s"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/letterman_nanotrasen
name = "blue letterman jacket"
desc = "A blue letterman jacket with a proud Nanotrasen N on the back. The tag says that it was made in Space China."
icon_state = "letterman_n"
inhand_icon_state = "letterman_n"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/dracula
name = "dracula coat"
desc = "Looks like this belongs in a very old movie set."
@@ -514,23 +357,6 @@
inhand_icon_state = "pharoah"
body_parts_covered = CHEST|GROIN
/obj/item/clothing/suit/caution
name = "wet floor sign"
desc = "Caution! Wet Floor!"
icon_state = "caution"
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
force = 1
throwforce = 3
throw_speed = 2
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
body_parts_covered = CHEST|GROIN
attack_verb_continuous = list("warns", "cautions", "smashes")
attack_verb_simple = list("warn", "caution", "smash")
armor = list(MELEE = 5, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/changshan_red
name = "red changshan"
desc = "A gorgeously embroidered silk shirt."
@@ -559,56 +385,6 @@
inhand_icon_state = "cheongsam_blue"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
/obj/item/clothing/head/hooded/ablative
name = "ablative hood"
desc = "Hood hopefully belonging to an ablative trenchcoat. Includes a visor for cool-o-vision."
icon_state = "ablativehood"
armor = list(MELEE = 10, BULLET = 10, LASER = 60, ENERGY = 60, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
strip_delay = 30
var/hit_reflect_chance = 50
/obj/item/clothing/head/hooded/ablative/equipped(mob/living/carbon/human/user, slot)
..()
to_chat(user, "As you put on the hood, a visor shifts into place and starts analyzing the people around you. Neat!")
ADD_TRAIT(user, TRAIT_SECURITY_HUD, HELMET_TRAIT)
var/datum/atom_hud/H = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
H.add_hud_to(user)
/obj/item/clothing/head/hooded/ablative/dropped(mob/living/carbon/human/user)
..()
to_chat(user, "You take off the hood, removing the visor in the process and disabling its integrated hud.")
REMOVE_TRAIT(user, TRAIT_SECURITY_HUD, HELMET_TRAIT)
var/datum/atom_hud/H = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
H.remove_hud_from(user)
/obj/item/clothing/head/hooded/ablative/IsReflect(def_zone)
if(def_zone != BODY_ZONE_HEAD) //If not shot where ablative is covering you, you don't get the reflection bonus!
return FALSE
if (prob(hit_reflect_chance))
return TRUE
/obj/item/clothing/suit/hooded/ablative
name = "ablative trenchcoat"
desc = "Experimental trenchcoat specially crafted to reflect and absorb laser and disabler shots. Don't expect it to do all that much against an axe or a shotgun, however."
icon_state = "ablativecoat"
inhand_icon_state = "ablativecoat"
body_parts_covered = CHEST|GROIN|LEGS|ARMS
armor = list(MELEE = 10, BULLET = 10, LASER = 60, ENERGY = 60, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
hoodtype = /obj/item/clothing/head/hooded/ablative
strip_delay = 30
equip_delay_other = 40
var/hit_reflect_chance = 50
/obj/item/clothing/suit/hooded/ablative/Initialize()
. = ..()
allowed = GLOB.security_vest_allowed
/obj/item/clothing/suit/hooded/ablative/IsReflect(def_zone)
if(!(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))) //If not shot where ablative is covering you, you don't get the reflection bonus!
return FALSE
if (prob(hit_reflect_chance))
return TRUE
/obj/item/clothing/suit/bronze
name = "bronze suit"
desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice."
@@ -616,37 +392,6 @@
icon_state = "clockwork_cuirass_old"
armor = list(MELEE = 5, BULLET = 0, LASER = -5, ENERGY = -15, BOMB = 10, BIO = 0, RAD = 0, FIRE = 20, ACID = 20)
/obj/item/clothing/suit/ghost_sheet
name = "ghost sheet"
desc = "The hands float by themselves, so it's extra spooky."
icon_state = "ghost_sheet"
inhand_icon_state = "ghost_sheet"
throwforce = 0
throw_speed = 1
throw_range = 2
w_class = WEIGHT_CLASS_TINY
flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
alternate_worn_layer = UNDER_HEAD_LAYER
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/ghost_sheet/spooky
name = "spooky ghost"
desc = "This is obviously just a bedsheet, but maybe try it on?"
user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150)
alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire
/obj/item/clothing/suit/toggle/suspenders/blue
name = "blue suspenders"
desc = "The symbol of hard labor and dirty jobs."
icon = 'icons/obj/clothing/belts.dmi'
greyscale_colors = "#0000ff"
/obj/item/clothing/suit/toggle/suspenders/gray
name = "gray suspenders"
desc = "The symbol of hard labor and dirty jobs."
icon = 'icons/obj/clothing/belts.dmi'
greyscale_colors = "#888888"
/obj/item/clothing/suit/hooded/mysticrobe
name = "mystic's robe"
desc = "Wearing this makes you feel more attuned with the nature of the universe... as well as a bit more irresponsible. "
@@ -692,4 +437,3 @@
icon_state = "DutchJacket"
inhand_icon_state = "DutchJacket"
body_parts_covered = ARMS
+18
View File
@@ -0,0 +1,18 @@
/obj/item/clothing/suit/ghost_sheet
name = "ghost sheet"
desc = "The hands float by themselves, so it's extra spooky."
icon_state = "ghost_sheet"
inhand_icon_state = "ghost_sheet"
throwforce = 0
throw_speed = 1
throw_range = 2
w_class = WEIGHT_CLASS_TINY
flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT
alternate_worn_layer = UNDER_HEAD_LAYER
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/ghost_sheet/spooky
name = "spooky ghost"
desc = "This is obviously just a bedsheet, but maybe try it on?"
user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150)
alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire
+79
View File
@@ -0,0 +1,79 @@
/obj/item/clothing/suit/jacket
name = "bomber jacket"
desc = "Aviators not included."
icon_state = "bomberjacket"
inhand_icon_state = "brownjsuit"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio)
body_parts_covered = CHEST|GROIN|ARMS
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/leather
name = "leather jacket"
desc = "Pompadour not included."
icon_state = "leatherjacket"
inhand_icon_state = "hostrench"
resistance_flags = NONE
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio)
species_exception = list(/datum/species/golem/bone) //bad to the bone
/obj/item/clothing/suit/jacket/leather/overcoat
name = "leather overcoat"
desc = "That's a damn fine coat."
icon_state = "leathercoat"
body_parts_covered = CHEST|GROIN|ARMS|LEGS
cold_protection = CHEST|GROIN|ARMS|LEGS
/obj/item/clothing/suit/jacket/puffer
name = "puffer jacket"
desc = "A thick jacket with a rubbery, water-resistant shell."
icon_state = "pufferjacket"
inhand_icon_state = "hostrench"
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 50, RAD = 0, FIRE = 0, ACID = 0)
species_exception = list(/datum/species/golem/bone)
/obj/item/clothing/suit/jacket/puffer/vest
name = "puffer vest"
desc = "A thick vest with a rubbery, water-resistant shell."
icon_state = "puffervest"
inhand_icon_state = "armor"
body_parts_covered = CHEST|GROIN
cold_protection = CHEST|GROIN
armor = list(MELEE = 0, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 30, RAD = 0, FIRE = 0, ACID = 0)
/obj/item/clothing/suit/jacket/miljacket
name = "military jacket"
desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable."
icon_state = "militaryjacket"
inhand_icon_state = "militaryjacket"
allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/radio)
/obj/item/clothing/suit/jacket/letterman
name = "letterman jacket"
desc = "A classic brown letterman jacket. Looks pretty hot and heavy."
icon_state = "letterman"
inhand_icon_state = "letterman"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/letterman_red
name = "red letterman jacket"
desc = "A letterman jacket in a sick red color. Radical."
icon_state = "letterman_red"
inhand_icon_state = "letterman_red"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/letterman_syndie
name = "blood-red letterman jacket"
desc = "Oddly, this jacket seems to have a large S on the back..."
icon_state = "letterman_s"
inhand_icon_state = "letterman_s"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/jacket/letterman_nanotrasen
name = "blue letterman jacket"
desc = "A blue letterman jacket with a proud Nanotrasen N on the back. The tag says that it was made in Space China."
icon_state = "letterman_n"
inhand_icon_state = "letterman_n"
species_exception = list(/datum/species/golem)
+12
View File
@@ -132,6 +132,18 @@
greyscale_colors = "#ff0000"
flags_1 = IS_PLAYER_COLORABLE_1
/obj/item/clothing/suit/toggle/suspenders/blue
name = "blue suspenders"
desc = "The symbol of hard labor and dirty jobs."
icon = 'icons/obj/clothing/belts.dmi'
greyscale_colors = "#0000ff"
/obj/item/clothing/suit/toggle/suspenders/gray
name = "gray suspenders"
desc = "The symbol of hard labor and dirty jobs."
icon = 'icons/obj/clothing/belts.dmi'
greyscale_colors = "#888888"
//Security
/obj/item/clothing/suit/security/officer
name = "security officer's jacket"
+19
View File
@@ -0,0 +1,19 @@
/obj/item/clothing/suit/bluetag
name = "blue laser tag armor"
desc = "A piece of plastic armor. It has sensors that react to red light." //Lasers are concentrated light
icon_state = "bluetag"
inhand_icon_state = "bluetag"
blood_overlay_type = "armor"
body_parts_covered = CHEST
allowed = list (/obj/item/gun/energy/laser/bluetag)
resistance_flags = NONE
/obj/item/clothing/suit/redtag
name = "red laser tag armor"
desc = "A piece of plastic armor. It has sensors that react to blue light."
icon_state = "redtag"
inhand_icon_state = "redtag"
blood_overlay_type = "armor"
body_parts_covered = CHEST
allowed = list (/obj/item/gun/energy/laser/redtag)
resistance_flags = NONE
+19
View File
@@ -0,0 +1,19 @@
/obj/item/clothing/suit/ianshirt
name = "worn shirt"
desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in."
icon_state = "ianshirt"
inhand_icon_state = "ianshirt"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/nerdshirt
name = "gamer shirt"
desc = "A baggy shirt with vintage game character Phanic the Weasel. Why would anyone wear this?"
icon_state = "nerdshirt"
inhand_icon_state = "nerdshirt"
species_exception = list(/datum/species/golem)
/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat.
name = "Vape Naysh shirt"
desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironically?"
icon_state = "vapeshirt"
inhand_icon_state = "vapeshirt"
@@ -0,0 +1,11 @@
/obj/item/clothing/suit/straight_jacket
name = "straight jacket"
desc = "A suit that completely restrains the wearer. Manufactured by Antyphun Corp." //Straight jacket is antifun
icon_state = "straight_jacket"
inhand_icon_state = "straight_jacket"
body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
clothing_flags = DANGEROUS_OBJECT
equip_delay_self = 50
strip_delay = 60
breakouttime = 5 MINUTES
+16
View File
@@ -0,0 +1,16 @@
/obj/item/clothing/suit/caution
name = "wet floor sign"
desc = "Caution! Wet Floor!"
icon_state = "caution"
lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi'
force = 1
throwforce = 3
throw_speed = 2
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
body_parts_covered = CHEST|GROIN
attack_verb_continuous = list("warns", "cautions", "smashes")
attack_verb_simple = list("warn", "caution", "smash")
armor = list(MELEE = 5, BULLET = 0, LASER = 0,ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 0, ACID = 0)
species_exception = list(/datum/species/golem)
+56 -8
View File
@@ -2043,28 +2043,51 @@
#include "code\modules\clothing\glasses\engine_goggles.dm"
#include "code\modules\clothing\glasses\hud.dm"
#include "code\modules\clothing\gloves\_gloves.dm"
#include "code\modules\clothing\gloves\bone.dm"
#include "code\modules\clothing\gloves\botany.dm"
#include "code\modules\clothing\gloves\boxing.dm"
#include "code\modules\clothing\gloves\color.dm"
#include "code\modules\clothing\gloves\miscellaneous.dm"
#include "code\modules\clothing\gloves\combat.dm"
#include "code\modules\clothing\gloves\plasmaman.dm"
#include "code\modules\clothing\gloves\special.dm"
#include "code\modules\clothing\gloves\tacklers.dm"
#include "code\modules\clothing\head\_head.dm"
#include "code\modules\clothing\head\animalears.dm"
#include "code\modules\clothing\head\beanie.dm"
#include "code\modules\clothing\head\cakehat.dm"
#include "code\modules\clothing\head\collectable.dm"
#include "code\modules\clothing\head\cone.dm"
#include "code\modules\clothing\head\costume.dm"
#include "code\modules\clothing\head\crown.dm"
#include "code\modules\clothing\head\fedora.dm"
#include "code\modules\clothing\head\frenchberet.dm"
#include "code\modules\clothing\head\hardhat.dm"
#include "code\modules\clothing\head\hat.dm"
#include "code\modules\clothing\head\helmet.dm"
#include "code\modules\clothing\head\jobs.dm"
#include "code\modules\clothing\head\misc.dm"
#include "code\modules\clothing\head\misc_special.dm"
#include "code\modules\clothing\head\justice.dm"
#include "code\modules\clothing\head\papersack.dm"
#include "code\modules\clothing\head\pirate.dm"
#include "code\modules\clothing\head\religious.dm"
#include "code\modules\clothing\head\soft_caps.dm"
#include "code\modules\clothing\head\sombrero.dm"
#include "code\modules\clothing\head\tinfoilhat.dm"
#include "code\modules\clothing\head\tophat.dm"
#include "code\modules\clothing\head\welding.dm"
#include "code\modules\clothing\head\wig.dm"
#include "code\modules\clothing\masks\_masks.dm"
#include "code\modules\clothing\masks\animal_masks.dm"
#include "code\modules\clothing\masks\bandana.dm"
#include "code\modules\clothing\masks\boxing.dm"
#include "code\modules\clothing\masks\breath.dm"
#include "code\modules\clothing\masks\costume.dm"
#include "code\modules\clothing\masks\gas_filter.dm"
#include "code\modules\clothing\masks\gasmask.dm"
#include "code\modules\clothing\masks\gondola.dm"
#include "code\modules\clothing\masks\hailer.dm"
#include "code\modules\clothing\masks\miscellaneous.dm"
#include "code\modules\clothing\masks\moustache.dm"
#include "code\modules\clothing\masks\muzzle.dm"
#include "code\modules\clothing\masks\surgical.dm"
#include "code\modules\clothing\neck\_neck.dm"
#include "code\modules\clothing\outfits\ert.dm"
#include "code\modules\clothing\outfits\event.dm"
@@ -2074,26 +2097,51 @@
#include "code\modules\clothing\outfits\vv_outfit.dm"
#include "code\modules\clothing\shoes\_shoes.dm"
#include "code\modules\clothing\shoes\bananashoes.dm"
#include "code\modules\clothing\shoes\colour.dm"
#include "code\modules\clothing\shoes\boots.dm"
#include "code\modules\clothing\shoes\clown.dm"
#include "code\modules\clothing\shoes\costume.dm"
#include "code\modules\clothing\shoes\cowboy.dm"
#include "code\modules\clothing\shoes\cult.dm"
#include "code\modules\clothing\shoes\galoshes.dm"
#include "code\modules\clothing\shoes\gunboots.dm"
#include "code\modules\clothing\shoes\jumpboots.dm"
#include "code\modules\clothing\shoes\kindlekicks.dm"
#include "code\modules\clothing\shoes\laceup.dm"
#include "code\modules\clothing\shoes\magboots.dm"
#include "code\modules\clothing\shoes\miscellaneous.dm"
#include "code\modules\clothing\shoes\sandals.dm"
#include "code\modules\clothing\shoes\sneakers.dm"
#include "code\modules\clothing\shoes\wheelys.dm"
#include "code\modules\clothing\spacesuits\_spacesuits.dm"
#include "code\modules\clothing\spacesuits\berserker.dm"
#include "code\modules\clothing\spacesuits\bountyhunter.dm"
#include "code\modules\clothing\spacesuits\chronosuit.dm"
#include "code\modules\clothing\spacesuits\freedom.dm"
#include "code\modules\clothing\spacesuits\hardsuit.dm"
#include "code\modules\clothing\spacesuits\miscellaneous.dm"
#include "code\modules\clothing\spacesuits\pirate.dm"
#include "code\modules\clothing\spacesuits\plasmamen.dm"
#include "code\modules\clothing\spacesuits\santa.dm"
#include "code\modules\clothing\spacesuits\softsuit.dm"
#include "code\modules\clothing\spacesuits\specialops.dm"
#include "code\modules\clothing\spacesuits\swat.dm"
#include "code\modules\clothing\spacesuits\syndi.dm"
#include "code\modules\clothing\suits\_suits.dm"
#include "code\modules\clothing\suits\ablativecoat.dm"
#include "code\modules\clothing\suits\armor.dm"
#include "code\modules\clothing\suits\bio.dm"
#include "code\modules\clothing\suits\chaplainsuits.dm"
#include "code\modules\clothing\suits\cloaks.dm"
#include "code\modules\clothing\suits\costume.dm"
#include "code\modules\clothing\suits\ghostsheet.dm"
#include "code\modules\clothing\suits\jacket.dm"
#include "code\modules\clothing\suits\jobs.dm"
#include "code\modules\clothing\suits\labcoat.dm"
#include "code\modules\clothing\suits\miscellaneous.dm"
#include "code\modules\clothing\suits\lasertag.dm"
#include "code\modules\clothing\suits\reactive_armour.dm"
#include "code\modules\clothing\suits\shirt.dm"
#include "code\modules\clothing\suits\straightjacket.dm"
#include "code\modules\clothing\suits\toggles.dm"
#include "code\modules\clothing\suits\utility.dm"
#include "code\modules\clothing\suits\wetfloor.dm"
#include "code\modules\clothing\suits\wintercoats.dm"
#include "code\modules\clothing\suits\wiz_robe.dm"
#include "code\modules\clothing\under\_under.dm"