Files
Yogstation/code/modules/clothing/head/jobs.dm
AMyriad c988369ab4 Scrubs the second "m" from the last mentions of "Centcomm" and the capital "T" from all mentions of "NanoTrasen" (#21043)
* Update wanted_message.json

* Update yogs_ion_laws.json

* this too

* Update cryopod.dm

* Update headset.dm

* Update topic.dm

* Update nuclearbomb.dm

* Update corpse.dm

* Update expressconsole.dm

* Update jobs.dm

* Update miscellaneous.dm

* Update captain.dm

* Update machine_vending.dm

* Update gimmick_objectives.txt

* Update infiltration.dm

* Update parts.dm

* think I did this right

* no apparently I didn't

if this works, it only dies on mapping stuff

* fixed?

* tests the linter to see if the grep catches this

* test didn't work, reverts last commit

* test #2: does it detect case sensitivity?

* test worked, I think it's done!

* Update check_grep.sh

* Update check_grep.sh

* Update check_grep.sh
2023-12-05 20:13:20 -06:00

354 lines
13 KiB
Plaintext

//defines the drill hat's yelling setting
#define DRILL_DEFAULT "default"
#define DRILL_SHOUTING "shouting"
#define DRILL_YELLING "yelling"
#define DRILL_CANADIAN "canadian"
//Chef
/obj/item/clothing/head/chefhat
name = "chef's hat"
item_state = "chefhat" //yogs - changed from "chef" to "chefhat"
icon_state = "chef"
desc = "The commander in chef's head wear."
strip_delay = 10
equip_delay_other = 10
dynamic_hair_suffix = ""
dog_fashion = /datum/dog_fashion/head/chef
/obj/item/clothing/head/chefhat/suicide_act(mob/user)
user.visible_message(span_suicide("[user] is donning [src]! It looks like [user.p_theyre()] trying to become a chef."))
user.say("Bork Bork Bork!", forced = "chef hat suicide")
sleep(2 SECONDS)
user.visible_message(span_suicide("[user] climbs into an imaginary oven!"))
user.say("BOOORK!", forced = "chef hat suicide")
playsound(user, 'sound/machines/ding.ogg', 50, 1)
return(FIRELOSS)
//Captain
/obj/item/clothing/head/caphat
name = "captain's hat"
desc = "It's good to be the king."
icon_state = "captain"
item_state = "that"
flags_inv = 0
armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50, WOUND = 5)
strip_delay = 60
dog_fashion = /datum/dog_fashion/head/captain
//Captain: This is no longer space-worthy
/obj/item/clothing/head/caphat/parade
name = "captain's parade cap"
desc = "Worn only by Captains with an abundance of class."
icon_state = "capcap"
dog_fashion = null
//Head of Personnel
/obj/item/clothing/head/hopcap
name = "head of personnel's cap"
icon_state = "hopcap"
desc = "The symbol of true bureaucratic micromanagement."
armor = list(MELEE = 25, BULLET = 15, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 50, ACID = 50)
dog_fashion = /datum/dog_fashion/head/hop
//Chaplain
/obj/item/clothing/head/nun_hood
name = "nun hood"
desc = "Maximum piety in this star system."
icon_state = "nun_hood"
flags_inv = HIDEHAIR
flags_cover = HEADCOVERSEYES
/obj/item/clothing/head/bishopmitre
name = "bishop mitre"
desc = "An opulent hat that functions as a radio to God. Or as a lightning rod, depending on who you ask."
icon_state = "bishopmitre"
//Detective
/obj/item/clothing/head/fedora/det_hat
name = "detective's fedora"
desc = "There's only one man who can sniff out the dirty stench of crime, and he's likely wearing this hat. Woven with lightly protective fibers."
armor = list(MELEE = 25, BULLET = 5, LASER = 25, ENERGY = 10, BOMB = 0, BIO = 0, RAD = 0, FIRE = 30, ACID = 50, WOUND = 5)
icon_state = "detective"
var/candy_cooldown = 0
pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/fedora/detective
dog_fashion = /datum/dog_fashion/head/detective
/obj/item/clothing/head/fedora/det_hat/Initialize(mapload)
. = ..()
new /obj/item/reagent_containers/food/drinks/flask/det(src)
/obj/item/clothing/head/fedora/det_hat/examine(mob/user)
. = ..()
. += span_notice("Alt-click to take a candy corn.")
/obj/item/clothing/head/fedora/det_hat/AltClick(mob/user)
if(user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
..()
if(loc == user)
if(candy_cooldown < world.time)
var/obj/item/reagent_containers/food/snacks/candy_corn/CC = new /obj/item/reagent_containers/food/snacks/candy_corn(src)
user.put_in_hands(CC)
to_chat(user, "You slip a candy corn from your hat.")
candy_cooldown = world.time+1200
else
to_chat(user, "You just took a candy corn! You should wait a couple minutes, lest you burn through your stash.")
/obj/item/clothing/head/fedora/det_hat/grey
name = "detective's grey fedora"
desc = "A darker tone of P.I. headwear for those thick-skinned detectives. Woven with lightly protective fibers."
icon_state = "fedora"
/obj/item/clothing/head/det_hat/evil
name = "suspicious fedora"
icon_state = "syndicate_fedora"
desc = "A suspicious black fedora with a red band. It can be activated in-hand to extend or retract razor blades which cause significant damage when thrown. Also heavily armored."
armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 70, ACID = 90, WOUND = 20)
throw_speed = 4
sharpness = SHARP_NONE
hitsound = 'sound/weapons/genhit.ogg'
attack_verb = list("poked", "tipped")
embedding = list("embed_chance" = 0) //Zero percent chance to embed
var/extended = 0
var/mob/living/carbon/fedora_man
var/returning = FALSE
/obj/item/clothing/head/det_hat/evil/attack_self(mob/user)
extended = !extended
playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1)
if(extended)
force = 15
armour_penetration = 15
throwforce = 40
wound_bonus = -10
bare_wound_bonus = 10
sharpness = SHARP_EDGED
w_class = WEIGHT_CLASS_BULKY //Kinda hard to put a razorblade hat in your bag innit
icon_state = "syndicate_fedora_sharp"
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut", "tipped")
hitsound = 'sound/weapons/bladeslice.ogg'
hattable = FALSE //So you don't accidentally throw it onto somebody's head instead of decapitating them
item_flags = UNCATCHABLE //so it isn't just immediately caught
else
force = 0
throwforce = 0
sharpness = SHARP_NONE
w_class = WEIGHT_CLASS_NORMAL
icon_state = "syndicate_fedora"
attack_verb = list("poked", "tipped")
hitsound = 'sound/weapons/genhit.ogg'
hattable = TRUE
item_flags = NONE
/obj/item/clothing/head/det_hat/evil/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(fedora_man && hit_atom == fedora_man)
if(fedora_man.put_in_hands(src))
fedora_man.throw_mode_on()
return
else
return ..()
. = ..()
if(fedora_man && returning)
returning = FALSE //only try to return once
if(get_turf(src) == get_turf(fedora_man))//don't try to return if the tile it hit is literally under the thrower
return
addtimer(CALLBACK(src, PROC_REF(comeback)), 1, TIMER_UNIQUE)//delay the return by such a small amount
/obj/item/clothing/head/det_hat/evil/proc/comeback()
throw_at(fedora_man, throw_range+3, throw_speed)
/obj/item/clothing/head/det_hat/evil/throw_at(atom/target, range, speed, mob/thrower, spin=0, diagonals_first = 0, datum/callback/callback, force, quickstart = TRUE)
if(thrower && iscarbon(thrower))
fedora_man = thrower
fedora_man.changeNext_move(CLICK_CD_MELEE)//longer cooldown
returning = TRUE
. = ..()
//Mime
/obj/item/clothing/head/beret
name = "beret"
desc = "A beret, a mime's favorite headwear."
icon_state = "beret"
dog_fashion = /datum/dog_fashion/head/beret
dynamic_hair_suffix = ""
/obj/item/clothing/head/beret/vintage
name = "vintage beret"
desc = "A well-worn beret."
icon_state = "vintageberet"
dog_fashion = null
/obj/item/clothing/head/beret/archaic
name = "archaic beret"
desc = "An absolutely ancient beret, allegedly worn by the first mime to ever step foot on a Nanotrasen station."
icon_state = "archaicberet"
dog_fashion = null
/obj/item/clothing/head/beret/black
name = "black beret"
desc = "A black beret, perfect for war veterans and dark, brooding, anti-hero mimes."
icon_state = "beretblack"
/obj/item/clothing/head/beret/highlander
desc = "That was white fabric. <i>Was.</i>"
dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES
/obj/item/clothing/head/beret/highlander/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, HIGHLANDER)
/obj/item/clothing/head/beret/emt
name = "EMT beret"
desc = "A beret with a dark turquoise color and a reflective cross on the top."
icon_state = "emtberet"
/obj/item/clothing/head/beret/emt/green
name = "green EMT beret"
desc = "A beret with a green color and a reflective cross on the top."
icon_state = "emtgrberet"
/obj/item/clothing/head/beret/durathread
name = "durathread beret"
desc = "A beret made from durathread, its resilient fibres provide some protection to the wearer."
icon_state = "beretdurathread"
armor = list(MELEE = 15, BULLET = 5, LASER = 15, ENERGY = 5, BOMB = 10, BIO = 0, RAD = 0, FIRE = 30, ACID = 5, WOUND = 5)
//Security
/obj/item/clothing/head/HoS
name = "head of security cap"
desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge."
icon_state = "hoscap"
armor = list(MELEE = 40, BULLET = 30, LASER = 25, ENERGY = 10, BOMB = 25, BIO = 10, RAD = 0, FIRE = 50, ACID = 60, WOUND = 10)
strip_delay = 80
dynamic_hair_suffix = ""
/obj/item/clothing/head/HoS/syndicate
name = "syndicate cap"
desc = "A black cap fit for a high ranking syndicate officer."
/obj/item/clothing/head/HoS/beret
name = "head of security beret"
desc = "A robust beret for the Head of Security, for looking stylish while not sacrificing protection."
icon_state = "hosberetblack"
/obj/item/clothing/head/HoS/beret/syndicate
name = "syndicate beret"
desc = "A black beret with thick armor padding inside. Stylish and robust."
/obj/item/clothing/head/warden
name = "warden's police hat"
desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts."
icon_state = "policehelm"
armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 30, ACID = 60, WOUND = 6)
strip_delay = 60
dog_fashion = /datum/dog_fashion/head/warden
/obj/item/clothing/head/warden/drill
name = "warden's campaign hat"
desc = "A special armored campaign hat with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection."
icon_state = "wardendrill"
item_state = "wardendrill"
dog_fashion = null
var/mode = DRILL_DEFAULT
/obj/item/clothing/head/warden/drill/screwdriver_act(mob/living/carbon/human/user, obj/item/I)
if(..())
return TRUE
switch(mode)
if(DRILL_DEFAULT)
to_chat(user, span_notice("You set the voice circuit to the middle position."))
mode = DRILL_SHOUTING
if(DRILL_SHOUTING)
to_chat(user, span_notice("You set the voice circuit to the last position."))
mode = DRILL_YELLING
if(DRILL_YELLING)
to_chat(user, span_notice("You set the voice circuit to the first position."))
mode = DRILL_DEFAULT
if(DRILL_CANADIAN)
to_chat(user, span_danger("You adjust voice circuit but nothing happens, probably because it's broken."))
return TRUE
/obj/item/clothing/head/warden/drill/wirecutter_act(mob/living/user, obj/item/I)
if(mode != DRILL_CANADIAN)
to_chat(user, span_danger("You broke the voice circuit!"))
mode = DRILL_CANADIAN
return TRUE
/obj/item/clothing/head/warden/drill/equipped(mob/M, slot)
. = ..()
if (slot == ITEM_SLOT_HEAD)
RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech))
else
UnregisterSignal(M, COMSIG_MOB_SAY)
/obj/item/clothing/head/warden/drill/dropped(mob/M)
. = ..()
UnregisterSignal(M, COMSIG_MOB_SAY)
/obj/item/clothing/head/warden/drill/proc/handle_speech(datum/source, mob/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
switch (mode)
if(DRILL_SHOUTING)
message += "!"
if(DRILL_YELLING)
message += "!!"
if(DRILL_CANADIAN)
message = " [message]"
var/list/canadian_words = strings("canadian_replacement.json", "canadian")
for(var/key in canadian_words)
var/value = canadian_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(30))
message += pick(", eh?", ", EH?")
speech_args[SPEECH_MESSAGE] = message
/obj/item/clothing/head/beret/sec
name = "security beret"
desc = "A robust beret with the security insignia emblazoned on it. Uses reinforced fabric to offer sufficient protection."
icon_state = "beret_badge"
armor = list(MELEE = 40, BULLET = 30, LASER = 30,ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 20, ACID = 50, WOUND = 4)
strip_delay = 60
dog_fashion = null
/obj/item/clothing/head/beret/sec/navyhos
name = "head of security's beret"
desc = "A special beret with the Head of Security's insignia emblazoned on it. A symbol of excellence, a badge of courage, a mark of distinction."
icon_state = "hosberet"
/obj/item/clothing/head/beret/sec/navywarden
name = "warden's beret"
desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class."
icon_state = "wardenberet"
armor = list(MELEE = 40, BULLET = 30, LASER = 30, ENERGY = 10, BOMB = 25, BIO = 0, RAD = 0, FIRE = 30, ACID = 50, WOUND = 6)
strip_delay = 60
/obj/item/clothing/head/beret/sec/navyofficer
desc = "A special beret with the security insignia emblazoned on it. For officers with class."
icon_state = "officerberet"
/obj/item/clothing/head/beret/sec/centcom
name = "\improper CentCom beret"
desc = "A special beret with the Nanotrasen logo emblazoned on it. For where no man has gone before."
icon_state = "official"
//Curator
/obj/item/clothing/head/fedora/curator
name = "treasure hunter's fedora"
desc = "You got red text today kid, but it doesn't mean you have to like it."
icon_state = "curator"
#undef DRILL_DEFAULT
#undef DRILL_SHOUTING
#undef DRILL_YELLING
#undef DRILL_CANADIAN