diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index f2bbb5df6c1..63cf67b20e6 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -19,6 +19,10 @@ //Lower left, persistant menu #define ui_inventory "WEST:6,SOUTH:5" +//Middle left indicators +#define ui_lingchemdisplay "WEST:6,CENTER-1:15" +#define ui_lingstingdisplay "WEST:6,CENTER-3:11" + //Lower center, persistant menu #define ui_sstore1 "CENTER-5:10,SOUTH:5" #define ui_id "CENTER-4:12,SOUTH:5" diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index bd1d4dd579a..162f1fc4418 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -94,6 +94,8 @@ var/datum/global_hud/global_hud = new() var/hotkey_ui_hidden = 0 //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons) var/obj/screen/lingchemdisplay + var/obj/screen/lingstingdisplay + var/obj/screen/blobpwrdisplay var/obj/screen/blobhealthdisplay var/obj/screen/vampire_blood_display @@ -235,6 +237,8 @@ datum/hud/New(mob/owner) src.client.screen -= src.internals src.client.screen -= src.healthdoll src.client.screen -= src.gun_setting_icon + src.client.screen -= src.hud_used.lingstingdisplay + src.client.screen -= src.hud_used.lingchemdisplay //These ones are not a part of 'adding', 'other' or 'hotkeybuttons' but we want them gone. src.client.screen -= src.zone_sel //zone_sel is a mob variable for some reason. @@ -255,6 +259,10 @@ datum/hud/New(mob/owner) src.client.screen |= src.internals if(src.gun_setting_icon) src.client.screen |= src.gun_setting_icon + if(src.hud_used.lingstingdisplay) + src.client.screen |= src.hud_used.lingstingdisplay + if(src.hud_used.lingchemdisplay) + src.client.screen |= src.hud_used.lingchemdisplay src.hud_used.action_intent.screen_loc = ui_acti //Restore intent selection to the original position src.client.screen += src.zone_sel //This one is a special snowflake diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 0c36b29db06..7236feb439f 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -25,6 +25,20 @@ var/mob/living/carbon/human/H = usr H.quick_equip() +/obj/screen/ling + invisibility = 101 + +/obj/screen/ling/sting + name = "current sting" + +/obj/screen/ling/sting/Click() + var/mob/living/carbon/U = usr + U.unset_sting() + +/obj/screen/ling/chems + name = "chemical storage" + icon_state = "power_display" + /datum/hud/proc/human_hud(var/ui_style='icons/mob/screen1_White.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255) src.adding = list() @@ -404,6 +418,12 @@ mymob.pullin.screen_loc = ui_pull_resist src.hotkeybuttons += mymob.pullin + lingchemdisplay = new /obj/screen/ling/chems() + lingchemdisplay.screen_loc = ui_lingchemdisplay + + lingstingdisplay = new /obj/screen/ling/sting() + lingstingdisplay.screen_loc = ui_lingstingdisplay + mymob.blind = new /obj/screen() mymob.blind.icon = 'icons/mob/screen1_full.dmi' mymob.blind.icon_state = "blackimageoverlay" @@ -460,7 +480,7 @@ mymob.client.screen = list() - 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, mymob.gun_setting_icon) //, 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, mymob.gun_setting_icon, lingchemdisplay, lingstingdisplay) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach ) mymob.client.screen += src.adding + src.hotkeybuttons mymob.client.screen += mymob.client.void inventory_shown = 0; diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index 85f91e53e30..18b45befa88 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -239,6 +239,12 @@ mymob.pullin.screen_loc = ui_pull_resist src.hotkeybuttons += mymob.pullin + lingchemdisplay = new /obj/screen/ling/chems() + lingchemdisplay.screen_loc = ui_lingchemdisplay + + lingstingdisplay = new /obj/screen/ling/sting() + lingstingdisplay.screen_loc = ui_lingstingdisplay + mymob.blind = new /obj/screen() mymob.blind.icon = 'icons/mob/screen1_full.dmi' mymob.blind.icon_state = "blackimageoverlay" @@ -296,7 +302,7 @@ mymob.client.screen = list() - 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, mymob.gun_setting_icon) //, 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, mymob.gun_setting_icon, lingchemdisplay, lingstingdisplay) //, mymob.hands, mymob.rest, mymob.sleep) //, mymob.mach ) mymob.client.screen += src.adding + src.hotkeybuttons mymob.client.screen += mymob.client.void diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index ee6c6f50645..86fd12a5069 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -411,6 +411,9 @@ var/list/sting_paths mind.changeling.purchasedpowers -= p p.on_refund(src) remove_language("Changeling") + if(hud_used) + hud_used.lingstingdisplay.icon_state = null + hud_used.lingstingdisplay.invisibility = 101 /datum/changeling/proc/has_sting(obj/effect/proc_holder/changeling/power) for(var/obj/effect/proc_holder/changeling/P in purchasedpowers) diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 050f9a74b8e..dbfb14f66d7 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -16,10 +16,14 @@ /obj/effect/proc_holder/changeling/sting/proc/set_sting(var/mob/user) user << "We prepare our sting, use alt+click or middle mouse button on target to sting them." user.mind.changeling.chosen_sting = src + user.hud_used.lingstingdisplay.icon_state = sting_icon + user.hud_used.lingstingdisplay.invisibility = 0 /obj/effect/proc_holder/changeling/sting/proc/unset_sting(var/mob/user) user << "We retract our sting, we can't sting anyone for now." user.mind.changeling.chosen_sting = null + user.hud_used.lingstingdisplay.icon_state = null + user.hud_used.lingstingdisplay.invisibility = 101 /mob/living/carbon/proc/unset_sting() if(mind && mind.changeling && mind.changeling.chosen_sting) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index f9546827a42..8bb8599949d 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1059,8 +1059,13 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc return /mob/living/carbon/human/handle_changeling() - if(mind && mind.changeling) - mind.changeling.regenerate() + if(mind && hud_used) + if(mind.changeling) + mind.changeling.regenerate() + hud_used.lingchemdisplay.invisibility = 0 + hud_used.lingchemdisplay.maptext = "
[round(mind.changeling.chem_charges)]
" + else + hud_used.lingchemdisplay.invisibility = 101 /mob/living/carbon/human/handle_shock() ..() diff --git a/icons/mob/screen1.dmi b/icons/mob/screen1.dmi index b6a84df335a..27f7a09e530 100644 Binary files a/icons/mob/screen1.dmi and b/icons/mob/screen1.dmi differ