Adds in limb replacement surgery, robolimbs, and all the crap for them. They can take more damage, require wires and welder to repair, but malfunction when they get more damaged, and explode when destroyed.

This commit is contained in:
SkyMarshal
2012-04-11 15:42:54 -07:00
parent cbad550bf1
commit d03228bc6e
23 changed files with 301 additions and 71 deletions

View File

@@ -243,7 +243,29 @@
if(temp.destroyed)
wound_flavor_text["[temp.display_name]"] = "<span class='warning'><b>[t_He] is missing [t_his] [temp.display_name].</b></span>\n"
continue
if(temp.wounds)
if(temp.robot)
if(!(temp.brute_dam + temp.burn_dam))
wound_flavor_text["[temp.display_name]"] = "<span class='warning'>[t_He] has a robot arm!</span>\n"
else
wound_flavor_text["[temp.display_name]"] = "<span class='warning'>[t_He] has a robot arm, it has"
switch(temp.brute_dam)
if(0)
wound_flavor_text["[temp.display_name]"] += ""
else if(0 to 20)
wound_flavor_text["[temp.display_name]"] += " some dents"
else if(20 to INFINITY)
wound_flavor_text["[temp.display_name]"] += pick(" a lot of dents"," severe denting")
if(temp.brute_dam && temp.brute_dam)
wound_flavor_text["[temp.display_name]"] += " and"
switch(temp.burn_dam)
if(0)
wound_flavor_text["[temp.display_name]"] += ""
else if(0 to 20)
wound_flavor_text["[temp.display_name]"] += " some burns"
else if(20 to INFINITY)
wound_flavor_text["[temp.display_name]"] += pick(" a lot of burns"," severe melting")
wound_flavor_text["[temp.display_name]"] += "!</span>\n"
else if(temp.wounds)
var/list/wounds = list(list(),list(),list(),list(),list(),list())
for(var/datum/organ/wound/w in temp.wounds)
switch(w.healing_state)
@@ -429,50 +451,59 @@
flavor_text_string += flavor_text[text]
flavor_text_string += " on [t_his] [named].</span><br>"
wound_flavor_text["[named]"] = flavor_text_string
if(wound_flavor_text["head"] && !skipmask && !(wear_mask && istype(wear_mask, /obj/item/clothing/mask/gas)))
var/display_chest = 0
var/display_shoes = 0
var/display_gloves = 0
if(wound_flavor_text["head"] && (is_destroyed["head"] || (!skipmask && !(wear_mask && istype(wear_mask, /obj/item/clothing/mask/gas)))))
msg += wound_flavor_text["head"]
else if(is_bleeding["head"])
msg += "<span class='warning'>[src] has blood running down [t_his] face!</span>\n"
if(wound_flavor_text["chest"] && !w_uniform && !skipjumpsuit)
if(wound_flavor_text["chest"] && !w_uniform && !skipjumpsuit) //No need. A missing chest gibs you.
msg += wound_flavor_text["chest"]
else if(is_bleeding["chest"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left arm"] && !w_uniform && !skipjumpsuit)
display_chest = 1
if(wound_flavor_text["left arm"] && (is_destroyed["left arm"] || (!w_uniform && !skipjumpsuit)))
msg += wound_flavor_text["left arm"]
else if(is_bleeding["left arm"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left hand"] && !gloves && !skipgloves)
display_chest = 1
if(wound_flavor_text["left hand"] && (is_destroyed["left hand"] || (!gloves && !skipgloves)))
msg += wound_flavor_text["left hand"]
else if(is_bleeding["left hand"])
msg += "<span class='warning'>[src] has blood running from under [t_his] gloves!</span>\n"
if(wound_flavor_text["right arm"] && !w_uniform && !skipjumpsuit)
display_gloves = 1
if(wound_flavor_text["right arm"] && (is_destroyed["right arm"] || (!w_uniform && !skipjumpsuit)))
msg += wound_flavor_text["right arm"]
else if(is_bleeding["right arm"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["right hand"] && !gloves && !skipgloves)
display_chest = 1
if(wound_flavor_text["right hand"] && (is_destroyed["right hand"] || (!gloves && !skipgloves)))
msg += wound_flavor_text["right hand"]
else if(is_bleeding["right hand"])
msg += "<span class='warning'>[src] has blood running from under [t_his] gloves!</span>\n"
if(wound_flavor_text["groin"] && !w_uniform && !skipjumpsuit)
display_gloves = 1
if(wound_flavor_text["groin"] && (is_destroyed["groin"] || (!w_uniform && !skipjumpsuit)))
msg += wound_flavor_text["groin"]
else if(is_bleeding["groin"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left leg"] && !w_uniform && !skipjumpsuit)
display_chest = 1
if(wound_flavor_text["left leg"] && (is_destroyed["left leg"] || (!w_uniform && !skipjumpsuit)))
msg += wound_flavor_text["left leg"]
else if(is_bleeding["left leg"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["left foot"]&& !shoes && !skipshoes)
display_chest = 1
if(wound_flavor_text["left foot"]&& (is_destroyed["left foot"] || (!shoes && !skipshoes)))
msg += wound_flavor_text["left foot"]
else if(is_bleeding["left foot"])
msg += "<span class='warning'>[src] has blood running from [t_his] shoes!</span>\n"
if(wound_flavor_text["right leg"] && !w_uniform && !skipjumpsuit)
display_shoes = 1
if(wound_flavor_text["right leg"] && (is_destroyed["right leg"] || (!w_uniform && !skipjumpsuit)))
msg += wound_flavor_text["right leg"]
else if(is_bleeding["right leg"])
msg += "<span class='warning'>[src] has blood soaking through from under [t_his] clothing!</span>\n"
if(wound_flavor_text["right foot"]&& !shoes && !skipshoes)
display_chest = 1
if(wound_flavor_text["right foot"]&& (is_destroyed["right foot"] || (!shoes && !skipshoes)))
msg += wound_flavor_text["right foot"]
else if(is_bleeding["right foot"])
msg += "<span class='warning'>[src] has blood running from [t_his] shoes!</span>\n"
display_shoes = 1
if(display_chest)
msg += "<span class='warning'><b>[src] has blood soaking through from under [t_his] clothing!</b></span>\n"
if(display_shoes)
msg += "<span class='warning'><b>[src] has blood running from [t_his] shoes!</b></span>\n"
if(display_gloves)
msg += "<span class='warning'><b>[src] has blood running from under [t_his] gloves!</b></span>\n"
// if(w.bleeding)

View File

@@ -496,8 +496,12 @@
&& !istype(part, /datum/organ/external/chest) \
&& !istype(part, /datum/organ/external/head) \
&& !part.destroyed)
stand_icon.Blend(new /icon('tajaran.dmi', "[part.icon_name]_s"), ICON_OVERLAY)
lying_icon.Blend(new /icon('tajaran.dmi', "[part.icon_name]_l"), ICON_OVERLAY)
var/icon/temp = new /icon('tajaran.dmi', "[part.icon_name]_s")
if(part.robot) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
stand_icon.Blend(temp, ICON_OVERLAY)
temp = new /icon('tajaran.dmi', "[part.icon_name]_l")
if(part.robot) temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
lying_icon.Blend(temp , ICON_OVERLAY)
stand_icon.Blend(new /icon('tajaran.dmi', "groin_[g]_s"), ICON_OVERLAY)
lying_icon.Blend(new /icon('tajaran.dmi', "groin_[g]_l"), ICON_OVERLAY)