diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index a961c5df067..7e25943ea11 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -181,30 +181,32 @@ Diagnostic HUDs! ************************************************/ -//For the charge meter! -/proc/RoundCell(var/charge) - var/icon_name = "" - switch(charge) - if(0.75 to INFINITY) - icon_name = "batthigh" - if(0.5 to 0.75) - icon_name = "battmed" - if(0.25 to 0.5) - icon_name = "battlow" - if(0.01 to 0.25) - icon_name = "battwarn" +//For Diag health and cell bars! +/proc/RoundDiagBar(value) + switch(value * 100) + if(95 to INFINITY) + return "max" + if(80 to 100) + return "good" + if(60 to 80) + return "high" + if(40 to 60) + return "med" + if(20 to 40) + return "low" + if(1 to 20) + return "crit" else - icon_name = "battempty" - return icon_name - + return "dead" + return "dead" //Sillycone hooks /mob/living/silicon/proc/diag_hud_set_health() var/image/holder = hud_list[DIAG_HUD] if(stat == DEAD) - holder.icon_state = "hudhealth-100" + holder.icon_state = "huddiagdead" else - holder.icon_state = "hud[RoundHealth(health/maxHealth*100)]" + holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" /mob/living/silicon/proc/diag_hud_set_status() var/image/holder = hud_list[DIAG_STAT_HUD] @@ -220,8 +222,8 @@ /mob/living/silicon/robot/proc/diag_hud_set_borgcell() var/image/holder = hud_list[DIAG_BATT_HUD] if (cell) - var/chargelvl = cell.charge/cell.maxcharge - holder.icon_state = "hud[RoundCell(chargelvl)]" + var/chargelvl = (cell.charge/cell.maxcharge) + holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" else holder.icon_state = "hudnobatt" @@ -230,26 +232,18 @@ ~~~~~~~~~~~~~~~~~~~~~*/ /obj/mecha/proc/diag_hud_set_mechhealth() var/image/holder = hud_list[DIAG_MECH_HUD] - var/mechhealth = (health/initial(health))*100 - switch(mechhealth) - if(75 to 100) - holder.icon_state = "hudmechgood" - if(50 to 74) - holder.icon_state = "hudmechmed" - if(25 to 49) - holder.icon_state = "hudmechbad" - if(0 to 24) - holder.icon_state = "hudmechcrit" + holder.icon_state = "huddiag[RoundDiagBar(health/initial(health))]" /obj/mecha/proc/diag_hud_set_mechcell() var/image/holder = hud_list[DIAG_BATT_HUD] if (cell) var/chargelvl = cell.charge/cell.maxcharge - holder.icon_state = "hud[RoundCell(chargelvl)]" + holder.icon_state = "hudbatt[RoundDiagBar(chargelvl)]" else holder.icon_state = "hudnobatt" + /obj/mecha/proc/diag_hud_set_mechstat() var/image/holder = hud_list[DIAG_STAT_HUD] holder.icon_state = null diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index 85350a95213..00d15ce022c 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -31,6 +31,7 @@ uneq_all() stat = UNCONSCIOUS update_headlamp(1) + diag_hud_set_borgcell() /mob/living/silicon/robot/handle_regular_status_updates() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index db105c3dceb..cb46e615cc5 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -482,6 +482,7 @@ cell = W user << "You insert the power cell." update_icons() + diag_hud_set_borgcell() else if (wires.IsInteractionTool(W)) if (wiresexposed) @@ -713,6 +714,7 @@ user << "You remove \the [cell]." cell = null update_icons() + diag_hud_set_borgcell() if(!opened) if(..()) // hulk attack diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 62021d6ef31..fc9ad17f13f 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ