Vox mutantrace, vox clothing, minor surgery mod for mutantrace specific surgery steps. Fixed captain's jacket sprite.

This commit is contained in:
Zuhayr
2013-06-05 17:35:38 +09:30
parent 114e04ee9f
commit 06f04e6374
19 changed files with 163 additions and 15 deletions
@@ -811,6 +811,8 @@
return "Tajaran"
if("skrell")
return "Skrell"
if("vox")
return "Vox"
if("plant")
return "Mobile vegetation"
if("golem")
@@ -826,6 +828,8 @@
return "Skrell"
else if(src.dna.mutantrace == "tajaran")
return "Tajaran"
else if(src.dna.mutantrace == "vox")
return "vox"
/mob/living/carbon/proc/update_mutantrace_languages()
if(src.dna)
@@ -835,6 +839,8 @@
src.skrell_talk_understand = 1
else if(src.dna.mutantrace == "tajaran")
src.tajaran_talk_understand = 1
else if(src.dna.mutantrace == "vox")
src.vox_talk_understand = 1
/mob/living/carbon/human/proc/play_xylophone()
if(!src.xylophone)
@@ -1105,4 +1111,4 @@
.=..()
if(istype(feet_blood_DNA, /list) && feet_blood_DNA.len)
del(feet_blood_DNA)
return 1
return 1
+18 -1
View File
@@ -392,6 +392,7 @@
var/SA_para_min = 1
var/SA_sleep_min = 5
var/oxygen_used = 0
var/nitrogen_used = 0
var/breath_pressure = (breath.total_moles()*R_IDEAL_GAS_EQUATION*breath.temperature)/BREATH_VOLUME
//Partial pressure of the O2 in our breath
@@ -401,8 +402,10 @@
// And CO2, lets say a PP of more than 10 will be bad (It's a little less really, but eh, being passed out all round aint no fun)
var/CO2_pp = (breath.carbon_dioxide/breath.total_moles())*breath_pressure // Tweaking to fit the hacky bullshit I've done with atmo -- TLE
//var/CO2_pp = (breath.carbon_dioxide/breath.total_moles())*0.5 // The default pressure value
// Nitrogen, for Vox.
var/Nitrogen_pp = (breath.nitrogen/breath.total_moles())*breath_pressure
if(O2_pp < safe_oxygen_min) // Too little oxygen
if(O2_pp < safe_oxygen_min && src.dna.mutantrace!="vox") // Too little oxygen
if(prob(20))
spawn(0) emote("gasp")
if(O2_pp > 0)
@@ -420,6 +423,19 @@
oxyloss += 5*ratio
oxygen_used = breath.oxygen*ratio/6
oxygen_alert = max(oxygen_alert, 1)*/
else if(Nitrogen_pp < safe_oxygen_min && src.dna.mutantrace=="vox") //Vox breathe nitrogen, not oxygen.
if(prob(20))
spawn(0) emote("gasp")
if(Nitrogen_pp > 0)
var/ratio = safe_oxygen_min/Nitrogen_pp
adjustOxyLoss(min(5*ratio, HUMAN_MAX_OXYLOSS))
failed_last_breath = 1
nitrogen_used = breath.nitrogen*ratio/6
else
adjustOxyLoss(HUMAN_MAX_OXYLOSS)
failed_last_breath = 1
oxygen_alert = max(oxygen_alert, 1)
else // We're in safe limits
failed_last_breath = 0
adjustOxyLoss(-5)
@@ -427,6 +443,7 @@
oxygen_alert = 0
breath.oxygen -= oxygen_used
breath.nitrogen -= nitrogen_used
breath.carbon_dioxide += oxygen_used
//CO2 does not affect failed_last_breath. So if there was enough oxygen in the air but too much co2, this will hurt you, but only once per 4 ticks, instead of once per tick.
@@ -313,6 +313,8 @@ proc/get_damage_icon_part(damage_state, body_part)
//Eyes
if(!skeleton)
var/icon/eyes_s = new/icon('icons/mob/human_face.dmi', "eyes_s")
if(src.get_species()=="Vox")
eyes_s = new/icon('icons/mob/human_face.dmi', "vox_eyes_s")
eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
stand_icon.Blend(eyes_s, ICON_OVERLAY)
@@ -442,6 +444,9 @@ proc/get_damage_icon_part(damage_state, body_part)
if("skrell")
race_icon = 'icons/mob/human_races/r_skrell.dmi'
deform_icon = 'icons/mob/human_races/r_def_skrell.dmi'
if("vox")
race_icon = 'icons/mob/human_races/r_vox.dmi'
deform_icon = 'icons/mob/human_races/r_def_vox.dmi'
else
race_icon = 'icons/mob/human_races/r_human.dmi'
deform_icon = 'icons/mob/human_races/r_def_human.dmi'
+12 -3
View File
@@ -18,6 +18,7 @@ var/list/department_radio_keys = list(
":k" = "skrell", "#k" = "skrell", ".k" = "skrell",
":j" = "tajaran", "#j" = "tajaran", ".j" = "tajaran",
":o" = "soghun", "#o" = "soghun", ".o" = "soghun",
":v" = "vox", "#v" = "vox", ".v" = "vox",
":R" = "right hand", "#R" = "right hand", ".R" = "right hand",
":L" = "left hand", "#L" = "left hand", ".L" = "left hand",
@@ -37,6 +38,7 @@ var/list/department_radio_keys = list(
":K" = "skrell", "#K" = "skrell", ".K" = "skrell",
":J" = "tajaran", "#J" = "tajaran", ".J" = "tajaran",
":O" = "soghun", "#O" = "soghun", ".O" = "soghun",
":V" = "vox", "#V" = "vox", ".V" = "vox",
//kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
@@ -185,6 +187,7 @@ var/list/department_radio_keys = list(
var/is_speaking_skrell = 0
var/is_speaking_soghun = 0
var/is_speaking_taj = 0
var/is_speaking_vox = 0
var/is_speaking_radio = 0
switch (message_mode)
@@ -283,6 +286,10 @@ var/list/department_radio_keys = list(
if(skrell_talk_understand || universal_speak)
is_speaking_skrell = 1
if ("vox")
if(vox_talk_understand || universal_speak)
is_speaking_vox = 1
if("changeling")
if(mind && mind.changeling)
for(var/mob/Changeling in mob_list)
@@ -370,7 +377,7 @@ var/list/department_radio_keys = list(
for (var/M in listening)
if(hascall(M,"say_understands"))
if (M:say_understands(src) && !is_speaking_skrell && !is_speaking_soghun && !is_speaking_taj)
if (M:say_understands(src) && !is_speaking_skrell && !is_speaking_soghun && !is_speaking_vox && !is_speaking_taj)
heard_a += M
else if(ismob(M))
if(is_speaking_skrell && (M:skrell_talk_understand || M:universal_speak))
@@ -379,6 +386,8 @@ var/list/department_radio_keys = list(
heard_a += M
else if(is_speaking_taj && (M:tajaran_talk_understand || M:universal_speak))
heard_a += M
else if(is_speaking_vox && (M:vox_talk_understand || M:universal_speak))
heard_a += M
else
heard_b += M
else
@@ -394,7 +403,7 @@ var/list/department_radio_keys = list(
var/rendered = null
if (length(heard_a))
var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj)
var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox)
if (italics)
message_a = "<i>[message_a]</i>"
@@ -419,7 +428,7 @@ var/list/department_radio_keys = list(
message_b = voice_message
else
message_b = stars(message)
message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj)
message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox)
if (italics)
message_b = "<i>[message_b]</i>"
+1
View File
@@ -211,6 +211,7 @@
var/tajaran_talk_understand = 0
var/soghun_talk_understand = 0
var/skrell_talk_understand = 0
var/vox_talk_understand = 0
var/has_limbs = 1 //Whether this mob have any limbs he can move with
var/can_stand = 1 //Whether this mob have ability to stand
@@ -349,6 +349,10 @@
if(is_alien_whitelisted(src, "Skrell"|| !config.usealienwhitelist))
new_character.dna.mutantrace = "skrell"
new_character.skrell_talk_understand = 1
if(client.prefs.species == "Vox")
if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist))
new_character.dna.mutantrace = "vox"
new_character.vox_talk_understand = 1
if(ticker.random_players)
new_character.gender = pick(MALE, FEMALE)
@@ -144,6 +144,8 @@ datum/preferences
icobase = 'icons/mob/human_races/r_lizard.dmi'
if("Skrell")
icobase = 'icons/mob/human_races/r_skrell.dmi'
if("Vox")
icobase = 'icons/mob/human_races/r_vox.dmi'
else
icobase = 'icons/mob/human_races/r_human.dmi'
preview_icon = new /icon(icobase, "torso_[g]")
@@ -172,6 +174,9 @@ datum/preferences
preview_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes_s")
if(species=="Vox")
eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "vox_eyes_s")
eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
@@ -306,7 +306,7 @@
name = "Shaved"
icon_state = "bald"
gender = NEUTER
species_allowed = list("Human","Unathi","Tajaran","Skrell")
species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox")
watson
name = "Watson Mustache"
@@ -493,6 +493,11 @@
icon_state = "hair_messy"
species_allowed = list("Tajaran")
vox_quills_short
name = "Short Vox Quills"
icon_state = "vox_shortquills"
species_allowed = list("Vox")
/datum/sprite_accessory/facial_hair
taj_sideburns
+3 -1
View File
@@ -69,7 +69,7 @@
return 1
return 0
/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran)
/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran,var/is_speaking_vox)
if(!text)
return "says, \"...\""; //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code
//tcomms code is still runtiming somewhere here
@@ -80,6 +80,8 @@
return "<span class='say_quote'>warbles</span>, \"<span class='skrell'>[text]</span>\"";
if (is_speaking_tajaran)
return "<span class='say_quote'>mrowls</span>, \"<span class='tajaran'>[text]</span>\"";
if (is_speaking_vox)
return "<span class='say_quote'>chirps</span>, \"<span class='vox'>[text]</span>\"";
//Needs Virus2
// if (src.disease_symptoms & DISEASE_HOARSE)
// return "rasps, \"[text]\"";