diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 8f6f80d064f..b0ba6b304aa 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -91,8 +91,9 @@ //Middle right (status indicators) #define ui_nutrition "EAST-1:28,CENTER-3:11" #define ui_temp "EAST-1:28,CENTER-2:13" -#define ui_health "EAST-1:28,CENTER-1:15" -#define ui_internal "EAST-1:28,CENTER:17" +#define ui_healthdoll "EAST-1:28,CENTER-1:15" +#define ui_health "EAST-1:28,CENTER:17" +#define ui_internal "EAST-1:28,CENTER+1:19" //borgs and aliens #define ui_borg_health "EAST-1:28,CENTER-1:15" //borgs have the health display where humans have the pressure damage indicator. diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 70769bf9200..ac6f4c89414 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -228,6 +228,7 @@ datum/hud/New(mob/owner) mymob.client.screen += mymob.bodytemp //As are the rest of these... mymob.client.screen += mymob.fire mymob.client.screen += mymob.healths + mymob.client.screen += mymob.healthdoll mymob.client.screen += mymob.internals mymob.client.screen += mymob.nutrition_icon mymob.client.screen += mymob.oxygen @@ -280,6 +281,7 @@ datum/hud/New(mob/owner) mymob.client.screen -= mymob.bodytemp mymob.client.screen -= mymob.fire mymob.client.screen -= mymob.healths + mymob.client.screen -= mymob.healthdoll mymob.client.screen -= mymob.internals mymob.client.screen -= mymob.nutrition_icon mymob.client.screen -= mymob.oxygen diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 5b4b2c7fc09..37002c8025e 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -285,6 +285,10 @@ mymob.healths.name = "health" mymob.healths.screen_loc = ui_health + mymob.healthdoll = new /obj/screen() + mymob.healthdoll.name = "health doll" + mymob.healthdoll.screen_loc = ui_healthdoll + mymob.nutrition_icon = new /obj/screen() mymob.nutrition_icon.icon_state = "nutrition0" mymob.nutrition_icon.name = "nutrition" @@ -332,7 +336,7 @@ mymob.client.screen = null - mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.damageoverlay, lingchemdisplay, lingstingdisplay) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach ) + mymob.client.screen += list( mymob.throw_icon, mymob.zone_sel, mymob.oxygen, mymob.pressure, mymob.toxin, mymob.bodytemp, mymob.internals, mymob.fire, mymob.healths, mymob.healthdoll, mymob.nutrition_icon, mymob.pullin, mymob.blind, mymob.flash, mymob.damageoverlay, lingchemdisplay, lingstingdisplay) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach ) mymob.client.screen += adding + hotkeybuttons inventory_shown = 0; diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index f0eb93ee6c2..a0cb006913b 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -511,6 +511,29 @@ if(0 to 20) H.healths.icon_state = "health5" else H.healths.icon_state = "health6" + if(H.healthdoll) + H.healthdoll.overlays.Cut() + if(H.stat == DEAD) + H.healthdoll.icon_state = "healthdoll_DEAD" + else + H.healthdoll.icon_state = "healthdoll_OVERLAY" + for(var/obj/item/organ/limb/L in H.organs) + var/damage = L.burn_dam + L.brute_dam + var/comparison = (L.max_damage/5) + var/icon_num = 0 + if(damage) + icon_num = 1 + if(damage > (comparison)) + icon_num = 2 + if(damage > (comparison*2)) + icon_num = 3 + if(damage > (comparison*3)) + icon_num = 4 + if(damage > (comparison*4)) + icon_num = 5 + if(icon_num) + H.healthdoll.overlays += image('icons/mob/screen_gen.dmi',"[L.name][icon_num]") + if(H.nutrition_icon) switch(H.nutrition) if(450 to INFINITY) H.nutrition_icon.icon_state = "nutrition0" diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 6b66ca59f6e..20a575fea58 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -32,6 +32,7 @@ */ var/obj/screen/zone_sel/zone_sel = null var/obj/screen/leap_icon = null + var/obj/screen/healthdoll = null var/damageoverlaytemp = 0 var/computer_id = null diff --git a/html/changelogs/Paprka-injurydoll.yml b/html/changelogs/Paprka-injurydoll.yml new file mode 100644 index 00000000000..835f656c2a6 --- /dev/null +++ b/html/changelogs/Paprka-injurydoll.yml @@ -0,0 +1,5 @@ +author: Paprika +delete-after: True +changes: + - rscadd: "Added a new injury doll to go along with the overall health meter. This will show you locational overall limb-based burn/brute damage, so you can tell the difference between being hurt with burn/brute or toxins/stamina damage which does not affect limbs." + - tweak: "Reverted some UI icons back to their older status and changed some around for readability. Thank you for your feedback." \ No newline at end of file diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index f68b69a987a..1126ea7226d 100644 Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ diff --git a/icons/mob/screen_gen_old.dmi b/icons/mob/screen_gen_old.dmi index fc1872ad594..24a8493e76d 100644 Binary files a/icons/mob/screen_gen_old.dmi and b/icons/mob/screen_gen_old.dmi differ