Merge branch 'master' of https://github.com/tgstation/-tg-station into pr/2192

Conflicts:
	code/modules/clothing/head/misc.dm
This commit is contained in:
Cheridan
2014-01-02 10:00:58 -06:00
24 changed files with 572 additions and 582 deletions
+5
View File
@@ -72,6 +72,11 @@ BLIND // can't see anything
body_parts_covered = HEAD
slot_flags = SLOT_MASK
//Override this to modify speech like luchador masks.
/obj/item/clothing/mask/proc/speechModification(message)
return message
//Shoes
/obj/item/clothing/shoes
name = "shoes"
+20 -9
View File
@@ -4,6 +4,7 @@
name = "\improper Centcom hat"
icon_state = "centcom"
desc = "It's good to be emperor."
flags = FPRINT|TABLEPASS
item_state = "that"
/obj/item/clothing/head/powdered_wig
@@ -17,47 +18,52 @@
desc = "It's an amish looking hat."
icon_state = "tophat"
item_state = "that"
flags = FPRINT|TABLEPASS
/obj/item/clothing/head/redcoat
name = "redcoat's hat"
icon_state = "redcoat"
desc = "<i>'I guess it's a redhead.'</i>"
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/mailman
name = "mailman's hat"
icon_state = "mailman"
desc = "<i>'Right-on-time'</i> mail service head wear."
flags = FPRINT | TABLEPASS
/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"
flags = FPRINT | TABLEPASS
permeability_coefficient = 0.01
/obj/item/clothing/head/hasturhood
name = "hastur's hood"
desc = "It's unspeakably stylish"
icon_state = "hasturhood"
flags = HEADCOVERSEYES|BLOCKHAIR
flags = FPRINT|TABLEPASS|HEADCOVERSEYES|BLOCKHAIR
/obj/item/clothing/head/nursehat
name = "nurse's hat"
desc = "It allows quick identification of trained medical personnel."
icon_state = "nursehat"
flags = FPRINT|TABLEPASS
/obj/item/clothing/head/syndicatefake
name = "red space-helmet replica"
icon_state = "syndicate"
item_state = "syndicate"
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!"
flags = BLOCKHAIR
flags = FPRINT | TABLEPASS | BLOCKHAIR
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
/obj/item/clothing/head/cueball
name = "cueball helmet"
desc = "A large, featureless white orb mean to be worn on your head. How do you even see out of this thing?"
icon_state = "cueball"
flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
item_state="cueball"
flags_inv = 0
@@ -66,6 +72,7 @@
desc = "It's an amish looking armored top hat."
icon_state = "tophat"
item_state = "that"
flags = FPRINT|TABLEPASS
flags_inv = 0
/obj/item/clothing/head/greenbandana
@@ -73,6 +80,7 @@
desc = "It's a green bandana with some fine nanotech lining."
icon_state = "greenbandana"
item_state = "greenbandana"
flags = FPRINT|TABLEPASS
flags_inv = 0
/obj/item/clothing/head/cardborg
@@ -80,7 +88,7 @@
desc = "A helmet made out of a box."
icon_state = "cardborg_h"
item_state = "cardborg_h"
flags = HEADCOVERSEYES | HEADCOVERSMOUTH
flags = FPRINT | TABLEPASS | HEADCOVERSEYES | HEADCOVERSMOUTH
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
/obj/item/clothing/head/justice
@@ -88,7 +96,7 @@
desc = "fight for what's righteous!"
icon_state = "justicered"
item_state = "justicered"
flags = HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
flags = FPRINT|TABLEPASS|HEADCOVERSEYES|HEADCOVERSMOUTH|BLOCKHAIR
/obj/item/clothing/head/justice/blue
icon_state = "justiceblue"
@@ -110,6 +118,7 @@
name = "rabbit ears"
desc = "Wearing these makes you looks useless, and only good for your sex appeal."
icon_state = "bunny"
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/flatcap
name = "flat cap"
@@ -140,32 +149,34 @@
desc = "Gentleman, elite aboard!"
icon_state = "bowler"
item_state = "bowler"
flags = FPRINT | TABLEPASS
/obj/item/clothing/head/witchwig
name = "witch costume wig"
desc = "Eeeee~heheheheheheh!"
icon_state = "witch"
item_state = "witch"
flags = BLOCKHAIR
flags = FPRINT | TABLEPASS | BLOCKHAIR
/obj/item/clothing/head/chicken
name = "chicken suit head"
desc = "Bkaw!"
icon_state = "chickenhead"
item_state = "chickensuit"
flags = BLOCKHAIR
flags = FPRINT | TABLEPASS | BLOCKHAIR
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
/obj/item/clothing/head/bearpelt
name = "bear pelt hat"
desc = "Fuzzy."
icon_state = "bearpelt"
item_state = "bearpelt"
flags = BLOCKHAIR
flags = FPRINT | TABLEPASS | BLOCKHAIR
/obj/item/clothing/head/xenos
name = "xenos helmet"
icon_state = "xenos"
item_state = "xenos_helm"
desc = "A helmet made out of chitinous alien hide."
flags = BLOCKHAIR
flags = FPRINT | TABLEPASS | BLOCKHAIR
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
+23
View File
@@ -16,6 +16,29 @@
flags_inv = HIDEFACE
w_class = 2
/obj/item/clothing/mask/luchador/speechModification(message)
if(copytext(message, 1, 2) != "*")
message = replacetext(message, "captain", "CAPITÁN")
message = replacetext(message, "station", "ESTACIÓN")
message = replacetext(message, "sir", "SEÑOR")
message = replacetext(message, "the ", "el ")
message = replacetext(message, "my ", "mi ")
message = replacetext(message, "is ", "es ")
message = replacetext(message, "it's", "es")
message = replacetext(message, "friend", "amigo")
message = replacetext(message, "buddy", "amigo")
message = replacetext(message, "hello", "hola")
message = replacetext(message, " hot", " caliente")
message = replacetext(message, " very ", " muy ")
message = replacetext(message, "sword", "espada")
message = replacetext(message, "library", "biblioteca")
message = replacetext(message, "traitor", "traidor")
message = replacetext(message, "wizard", "mago")
message = uppertext(message) //Things end up looking better this way (no mixed cases), and it fits the macho wrestler image.
if(prob(25))
message += " OLE!"
return message
/obj/item/clothing/mask/luchador/tecnicos
name = "Tecnicos Mask"
desc = "Worn by robust fighters who uphold justice and fight honorably."
+22
View File
@@ -199,6 +199,28 @@
item_state = "s-ninja_mask"
vchange = 1
/obj/item/clothing/mask/gas/voice/space_ninja/speechModification(message)
if(voice == "Unknown")
if(copytext(message, 1, 2) != "*")
var/list/temp_message = text2list(message, " ")
var/list/pick_list = list()
for(var/i = 1, i <= temp_message.len, i++)
pick_list += i
for(var/i=1, i <= abs(temp_message.len/3), i++)
var/H = pick(pick_list)
if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
temp_message[H] = ninjaspeak(temp_message[H])
pick_list -= H
message = dd_list2text(temp_message, " ")
message = replacetext(message, "o", "¤")
message = replacetext(message, "p", "þ")
message = replacetext(message, "l", "£")
message = replacetext(message, "s", "§")
message = replacetext(message, "u", "µ")
message = replacetext(message, "b", "ß")
return message
/obj/item/clothing/mask/gas/clown_hat
name = "clown wig and mask"
desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask."
+7 -1
View File
@@ -55,4 +55,10 @@
flags = BLOCKHAIR
flags_inv = HIDEFACE
w_class = 2
var/voicechange = 0
var/voicechange = 0
/obj/item/clothing/mask/horsehead/speechModification(message)
if(voicechange)
if(!(copytext(message, 1, 2) == "*" || (usr.mind && usr.mind.changeling && (copytext(message, 1, 3) == ":g" || copytext(message, 1, 3) == ":G" || copytext(message, 1, 3) == ":ï"))))
message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")
return message
@@ -458,13 +458,12 @@
target_zone = user.zone_sel.selecting
// If targeting the head, see if the head item is thin enough.
// If targeting anything else, see if the wear suit is thin enough.
switch(target_zone)
if("head")
if(head && head.flags & THICKMATERIAL)
. = 0
else
if(wear_suit && wear_suit.flags & THICKMATERIAL)
. = 0
if(above_neck(target_zone))
if(head && head.flags & THICKMATERIAL)
. = 0
else
if(wear_suit && wear_suit.flags & THICKMATERIAL)
. = 0
if(!. && error_msg && user)
// Might need re-wording.
user << "<span class='alert'>There is no exposed flesh or thin material [target_zone == "head" ? "on their head" : "on their body"].</span>"
user << "<span class='alert'>There is no exposed flesh or thin material [above_neck(target_zone) ? "on their head" : "on their body"].</span>"
+5 -5
View File
@@ -996,15 +996,15 @@
if(hurtdamage)
var/image/I
switch(hurtdamage)
if(10 to 25)
if(35 to 45)
I = image("icon" = 'icons/mob/screen_full.dmi', "icon_state" = "brutedamageoverlay1")
if(25 to 40)
if(45 to 55)
I = image("icon" = 'icons/mob/screen_full.dmi', "icon_state" = "brutedamageoverlay2")
if(40 to 55)
if(55 to 65)
I = image("icon" = 'icons/mob/screen_full.dmi', "icon_state" = "brutedamageoverlay3")
if(55 to 70)
if(65 to 75)
I = image("icon" = 'icons/mob/screen_full.dmi', "icon_state" = "brutedamageoverlay4")
if(70 to 85)
if(75 to 85)
I = image("icon" = 'icons/mob/screen_full.dmi', "icon_state" = "brutedamageoverlay5")
if(85 to INFINITY)
I = image("icon" = 'icons/mob/screen_full.dmi', "icon_state" = "brutedamageoverlay6")
+1 -46
View File
@@ -55,52 +55,7 @@
message = dd_list2text(temp_message, " ")
if(wear_mask)
if(istype(wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja) && wear_mask:voice == "Unknown")
if(copytext(message, 1, 2) != "*")
var/list/temp_message = text2list(message, " ")
var/list/pick_list = list()
for(var/i = 1, i <= temp_message.len, i++)
pick_list += i
for(var/i=1, i <= abs(temp_message.len/3), i++)
var/H = pick(pick_list)
if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
temp_message[H] = ninjaspeak(temp_message[H])
pick_list -= H
message = dd_list2text(temp_message, " ")
message = replacetext(message, "o", "¤")
message = replacetext(message, "p", "þ")
message = replacetext(message, "l", "£")
message = replacetext(message, "s", "§")
message = replacetext(message, "u", "µ")
message = replacetext(message, "b", "ß")
else if(istype(wear_mask, /obj/item/clothing/mask/luchador))
if(copytext(message, 1, 2) != "*")
message = replacetext(message, "captain", "CAPITÁN")
message = replacetext(message, "station", "ESTACIÓN")
message = replacetext(message, "sir", "SEÑOR")
message = replacetext(message, "the ", "el ")
message = replacetext(message, "my ", "mi ")
message = replacetext(message, "is ", "es ")
message = replacetext(message, "it's", "es")
message = replacetext(message, "friend", "amigo")
message = replacetext(message, "buddy", "amigo")
message = replacetext(message, "hello", "hola")
message = replacetext(message, " hot", " caliente")
message = replacetext(message, " very ", " muy ")
message = replacetext(message, "sword", "espada")
message = replacetext(message, "library", "biblioteca")
message = replacetext(message, "traitor", "traidor")
message = replacetext(message, "wizard", "mago")
message = uppertext(message) //Things end up looking better this way (no mixed cases), and it fits the macho wrestler image.
if(prob(25))
message += " OLE!"
else if(istype(wear_mask, /obj/item/clothing/mask/horsehead))
var/obj/item/clothing/mask/horsehead/hoers = wear_mask
if(hoers.voicechange)
if(!(copytext(message, 1, 2) == "*" || (mind && mind.changeling && (copytext(message, 1, 3) == ":g" || copytext(message, 1, 3) == ":G" || copytext(message, 1, 3) == ":ï"))))
message = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!")
message = wear_mask.speechModification(message)
if ((HULK in mutations) && health >= 25 && length(message))
if(copytext(message, 1, 2) != "*")
@@ -44,24 +44,8 @@
var/italics = 1
var/message_range = 1
if(istype(src.wear_mask, /obj/item/clothing/mask/gas/voice/space_ninja)&&src.wear_mask:voice=="Unknown")
if(copytext(message, 1, 2) != "*")
var/list/temp_message = text2list(message, " ")
var/list/pick_list = list()
for(var/i = 1, i <= temp_message.len, i++)
pick_list += i
for(var/i=1, i <= abs(temp_message.len/3), i++)
var/H = pick(pick_list)
if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
temp_message[H] = ninjaspeak(temp_message[H])
pick_list -= H
message = dd_list2text(temp_message, " ")
message = replacetext(message, "o", "¤")
message = replacetext(message, "p", "þ")
message = replacetext(message, "l", "£")
message = replacetext(message, "s", "§")
message = replacetext(message, "u", "µ")
message = replacetext(message, "b", "ß")
if(src.wear_mask)
message = wear_mask.speechModification(message)
if (src.stuttering)
message = stutter(message)
+1 -14
View File
@@ -142,20 +142,7 @@ var/list/department_radio_keys = list(
// :downs:
if (getBrainLoss() >= 60)
message = replacetext(message, " am ", " ")
message = replacetext(message, " is ", " ")
message = replacetext(message, " are ", " ")
message = replacetext(message, "you", "u")
message = replacetext(message, "help", "halp")
message = replacetext(message, "grief", "grife")
message = replacetext(message, "space", "spess")
message = replacetext(message, "carp", "crap")
message = replacetext(message, "reason", "raisin")
if(prob(50))
message = uppertext(message)
message += "[stutter(pick("!", "!!", "!!!"))]"
if(!stuttering && prob(15))
message = stutter(message)
message = derpspeech(message, stuttering)
if (stuttering)
message = stutter(message)
+23
View File
@@ -169,6 +169,12 @@ proc/isorgan(A)
return zone
/proc/above_neck(zone)
var/list/zones = list("head", "mouth", "eyes")
if(zones.Find(zone))
return 1
else
return 0
/proc/stars(n, pr)
if (pr == null)
@@ -215,6 +221,23 @@ proc/isorgan(A)
p++//for each letter p is increased to find where the next letter will be.
return copytext(sanitize(t),1,MAX_MESSAGE_LEN)
/proc/derpspeech(message, stuttering)
message = replacetext(message, " am ", " ")
message = replacetext(message, " is ", " ")
message = replacetext(message, " are ", " ")
message = replacetext(message, "you", "u")
message = replacetext(message, "help", "halp")
message = replacetext(message, "grief", "grife")
message = replacetext(message, "space", "spess")
message = replacetext(message, "carp", "crap")
message = replacetext(message, "reason", "raisin")
if(prob(50))
message = uppertext(message)
message += "[stutter(pick("!", "!!", "!!!"))]"
if(!stuttering && prob(15))
message = stutter(message)
return message
proc/Gibberish(t, p)//t is the inputted message, and any value higher than 70 for p will cause letters to be replaced instead of added
/* Turn text into complete gibberish! */
@@ -80,7 +80,7 @@
on_hit(var/atom/target, var/blocked = 0, var/hit_zone)
if(istype(target, /mob/living/carbon))
var/mob/living/carbon/M = target
if(M.can_inject(target_zone = hit_zone)) // Pass the hit zone to see if it can inject by whether it hit the head or the body.
if(M.can_inject(null,0,hit_zone)) // Pass the hit zone to see if it can inject by whether it hit the head or the body.
reagents.trans_to(M, reagents.total_volume)
return 1
else
@@ -193,6 +193,9 @@ proc/wabbajack(mob/living/M)
for (var/obj/effect/proc_holder/spell/S in M.spell_list)
new_mob.spell_list += new S.type
new_mob.attack_log = M.attack_log
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>[M.real_name] ([M.ckey]) became [new_mob.real_name].</font>")
new_mob.a_intent = "harm"
if(M.mind)
M.mind.transfer_to(new_mob)