This commit is contained in:
DJSnapshot
2013-08-23 06:45:23 -07:00
25 changed files with 331 additions and 190 deletions

View File

@@ -1,4 +1,4 @@
/mob/living/carbon/alien/humanoid/emote(var/act)
/mob/living/carbon/alien/humanoid/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -9,10 +9,25 @@
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
var/m_type = 1
var/message
switch(act)
if ("me")
if(silent)
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "\red You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
if (stat)
return
if(!(message))
return
return custom_emote(m_type, message)
if ("custom")
return custom_emote(m_type, message)
if("sign")
if (!src.restrained())
message = text("<B>The alien</B> signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null))

View File

@@ -1,4 +1,4 @@
/mob/living/carbon/alien/larva/emote(var/act)
/mob/living/carbon/alien/larva/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -9,10 +9,25 @@
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
var/m_type = 1
var/message
switch(act)
if ("me")
if(silent)
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "\red You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
if (stat)
return
if(!(message))
return
return custom_emote(m_type, message)
if ("custom")
return custom_emote(m_type, message)
if("sign")
if (!src.restrained())
message = text("<B>The alien</B> signs[].", (text2num(param) ? text(" the number []", text2num(param)) : null))

View File

@@ -12,6 +12,23 @@
if(src.stat == DEAD)
return
switch(act)
if ("me")
if(silent)
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "\red You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
if (stat)
return
if(!(message))
return
return custom_emote(m_type, message)
if ("custom")
return custom_emote(m_type, message)
if ("alarm")
src << "You sound an alarm."
message = "<B>[src]</B> sounds an alarm."

View File

@@ -63,7 +63,7 @@
else
alert("Unable to use this emote, must be either hearable or visible.")
return
message = "<B>[src]</B> [input]"
return custom_emote(m_type, message)
if ("me")
if(silent)
@@ -78,7 +78,7 @@
return
if(!(message))
return
message = "<B>[src]</B> [message]"
return custom_emote(m_type, message)
if ("salute")
if (!src.buckled)

View File

@@ -282,40 +282,43 @@
wound_descriptors[this_wound_desc] += W.amount
continue
wound_descriptors[this_wound_desc] = W.amount
var/list/flavor_text = list()
var/list/no_exclude = list("gaping wound", "big gaping wound", "massive wound", "large bruise",\
"huge bruise", "massive bruise", "severe burn", "large burn", "deep burn", "carbonised area")
for(var/wound in wound_descriptors)
switch(wound_descriptors[wound])
if(1)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]"
else
flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]"
if(2)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s"
else
flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s"
if(3 to 5)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has several [wound]s"
else
flavor_text += " several [wound]s"
if(6 to INFINITY)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has a bunch of [wound]s"
else
flavor_text += " a ton of [wound]\s"
var/flavor_text_string = ""
for(var/text = 1, text <= flavor_text.len, text++)
if(text == flavor_text.len && flavor_text.len > 1)
flavor_text_string += ", and"
else if(flavor_text.len > 1 && text > 1)
flavor_text_string += ","
flavor_text_string += flavor_text[text]
flavor_text_string += " on [t_his] [temp.display_name].</span><br>"
wound_flavor_text["[temp.display_name]"] = flavor_text_string
if(wound_descriptors.len)
var/list/flavor_text = list()
var/list/no_exclude = list("gaping wound", "big gaping wound", "massive wound", "large bruise",\
"huge bruise", "massive bruise", "severe burn", "large burn", "deep burn", "carbonised area")
for(var/wound in wound_descriptors)
switch(wound_descriptors[wound])
if(1)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]"
else
flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a [wound]"
if(2)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s"
else
flavor_text += "[prob(10) && !(wound in no_exclude) ? " what might be" : ""] a pair of [wound]s"
if(3 to 5)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has several [wound]s"
else
flavor_text += " several [wound]s"
if(6 to INFINITY)
if(!flavor_text.len)
flavor_text += "<span class='warning'>[t_He] has a bunch of [wound]s"
else
flavor_text += " a ton of [wound]\s"
var/flavor_text_string = ""
for(var/text = 1, text <= flavor_text.len, text++)
if(text == flavor_text.len && flavor_text.len > 1)
flavor_text_string += ", and"
else if(flavor_text.len > 1 && text > 1)
flavor_text_string += ","
flavor_text_string += flavor_text[text]
flavor_text_string += " on [t_his] [temp.display_name].</span><br>"
wound_flavor_text["[temp.display_name]"] = flavor_text_string
else
wound_flavor_text["[temp.display_name]"] = ""
if(temp.status & ORGAN_BLEEDING)
is_bleeding["[temp.display_name]"] = 1
else

View File

@@ -347,21 +347,25 @@ proc/get_damage_icon_part(damage_state, body_part)
if(f_style)
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
if(facial_hair_style)
if(facial_hair_style && src.species.name in facial_hair_style.species_allowed)
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l")
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
if(facial_hair_style.do_colouration)
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
facial_l.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
face_standing.Blend(facial_s, ICON_OVERLAY)
face_lying.Blend(facial_l, ICON_OVERLAY)
if(h_style && !(head && (head.flags & BLOCKHEADHAIR)))
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
if(hair_style)
if(hair_style && src.species.name in hair_style.species_allowed)
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l")
hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
if(hair_style.do_colouration)
hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
hair_l.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
face_standing.Blend(hair_s, ICON_OVERLAY)
face_lying.Blend(hair_l, ICON_OVERLAY)

View File

@@ -1,4 +1,4 @@
/mob/living/carbon/slime/emote(var/act, var/type, var/desc)
/mob/living/carbon/slime/emote(var/act,var/m_type=1,var/message = null)
if (findtext(act, "-", 1, null))
@@ -9,14 +9,24 @@
if(findtext(act,"s",-1) && !findtext(act,"_",-2))//Removes ending s's unless they are prefixed with a '_'
act = copytext(act,1,length(act))
var/m_type = 1
var/message
switch(act)
if ("me")
return custom_emote(m_type, desc)
if(silent)
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "\red You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
if (stat)
return
if(!(message))
return
return custom_emote(m_type, message)
if ("custom")
return custom_emote(m_type, desc)
return custom_emote(m_type, message)
if("moan")
message = "<B>The [src.name]</B> moans."
m_type = 2

View File

@@ -1,4 +1,4 @@
/mob/living/carbon/monkey/emote(var/act, var/type, var/desc)
/mob/living/carbon/monkey/emote(var/act,var/m_type=1,var/message = null)
var/param = null
if (findtext(act, "-", 1, null))
@@ -10,15 +10,26 @@
act = copytext(act,1,length(act))
var/muzzled = istype(src.wear_mask, /obj/item/clothing/mask/muzzle)
var/m_type = 1
var/message
switch(act)
if ("me")
return custom_emote(m_type, desc)
if(silent)
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "\red You cannot send IC messages (muted)."
return
if (src.client.handle_spam_prevention(message,MUTE_IC))
return
if (stat)
return
if(!(message))
return
return custom_emote(m_type, message)
if ("custom")
return custom_emote(m_type, desc)
return custom_emote(m_type, message)
if("sign")
if (!src.restrained())

View File

@@ -350,7 +350,7 @@
if(client.prefs.species)
chosen_species = all_species[client.prefs.species]
if(chosen_species)
if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & WHITELISTED))
if(is_alien_whitelisted(src, client.prefs.species) || !config.usealienwhitelist || !(chosen_species.flags & WHITELISTED) || (client.holder.rights & R_ADMIN) )// Have to recheck admin due to no usr at roundstart. Latejoins are fine though.
new_character.set_species(client.prefs.species)
if(chosen_species.language)
new_character.add_language(chosen_species.language)

View File

@@ -7,8 +7,8 @@ datum/preferences
else
gender = FEMALE
s_tone = random_skin_tone()
h_style = random_hair_style(gender)
f_style = random_facial_hair_style(gender)
h_style = random_hair_style(gender, species)
f_style = random_facial_hair_style(gender, species)
randomize_hair_color("hair")
randomize_hair_color("facial")
randomize_eyes_color()

View File

@@ -28,9 +28,12 @@
// Determines if the accessory will be skipped or included in random hair generations
var/gender = NEUTER
// Restrict some styles to specific races
// Restrict some styles to specific species
var/list/species_allowed = list("Human")
// Whether or not the accessory can be affected by colouration
var/do_colouration = 1
/*
////////////////////////////
@@ -386,117 +389,139 @@
name = "Long Unathi Spines"
icon_state = "soghun_longspines"
species_allowed = list("Unathi")
do_colouration = 0
una_spines_short
name = "Short Unathi Spines"
icon_state = "soghun_shortspines"
species_allowed = list("Unathi")
do_colouration = 0
una_frills_long
name = "Long Unathi Frills"
icon_state = "soghun_longfrills"
species_allowed = list("Unathi")
do_colouration = 0
una_frills_short
name = "Short Unathi Frills"
icon_state = "soghun_shortfrill"
species_allowed = list("Unathi")
do_colouration = 0
una_horns
name = "Unathi Horns"
icon_state = "soghun_horns"
species_allowed = list("Unathi")
do_colouration = 0
skr_tentacle_m
name = "Skrell Male Tentacles"
icon_state = "skrell_hair_m"
species_allowed = list("Skrell")
gender = MALE
do_colouration = 0
skr_tentacle_f
name = "Skrell Female Tentacles"
icon_state = "skrell_hair_f"
species_allowed = list("Skrell")
gender = FEMALE
do_colouration = 0
skr_gold_m
name = "Gold plated Skrell Male Tentacles"
icon_state = "skrell_goldhair_m"
species_allowed = list("Skrell")
gender = MALE
do_colouration = 0
skr_gold_f
name = "Gold chained Skrell Female Tentacles"
icon_state = "skrell_goldhair_f"
species_allowed = list("Skrell")
gender = FEMALE
do_colouration = 0
skr_clothtentacle_m
name = "Cloth draped Skrell Male Tentacles"
icon_state = "skrell_clothhair_m"
species_allowed = list("Skrell")
gender = MALE
do_colouration = 0
skr_clothtentacle_f
name = "Cloth draped Skrell Female Tentacles"
icon_state = "skrell_clothhair_f"
species_allowed = list("Skrell")
gender = FEMALE
do_colouration = 0
taj_ears
name = "Tajaran Ears"
icon_state = "ears_plain"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_clean
name = "Tajara Clean"
icon_state = "hair_clean"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_shaggy
name = "Tajara Shaggy"
icon_state = "hair_shaggy"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_mohawk
name = "Tajaran Mohawk"
icon_state = "hair_mohawk"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_plait
name = "Tajara Plait"
icon_state = "hair_plait"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_straight
name = "Tajara Straight"
icon_state = "hair_straight"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_long
name = "Tajara Long"
icon_state = "hair_long"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_rattail
name = "Tajara Rat Tail"
icon_state = "hair_rattail"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_spiky
name = "Tajara Spiky"
icon_state = "hair_tajspiky"
species_allowed = list("Tajaran")
do_colouration = 0
taj_ears_messy
name = "Tajara Messy"
icon_state = "hair_messy"
species_allowed = list("Tajaran")
do_colouration = 0
vox_quills_short
name = "Short Vox Quills"
icon_state = "vox_shortquills"
species_allowed = list("Vox")
do_colouration = 0
/datum/sprite_accessory/facial_hair
@@ -504,31 +529,37 @@
name = "Tajara Sideburns"
icon_state = "facial_mutton"
species_allowed = list("Tajaran")
do_colouration = 0
taj_mutton
name = "Tajara Mutton"
icon_state = "facial_mutton"
species_allowed = list("Tajaran")
do_colouration = 0
taj_pencilstache
name = "Tajara Pencilstache"
icon_state = "facial_pencilstache"
species_allowed = list("Tajaran")
do_colouration = 0
taj_moustache
name = "Tajara Moustache"
icon_state = "facial_moustache"
species_allowed = list("Tajaran")
do_colouration = 0
taj_goatee
name = "Tajara Goatee"
icon_state = "facial_goatee"
species_allowed = list("Tajaran")
do_colouration = 0
taj_smallstache
name = "Tajara Smallsatche"
icon_state = "facial_smallstache"
species_allowed = list("Tajaran")
do_colouration = 0
//skin styles - WIP
//going to have to re-integrate this with surgery