diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index cccd4aa92e9..f76b28159ed 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -11,6 +11,7 @@ var/list/global_huds /datum/hud/var/obj/screen/help_intent /datum/global_hud + var/obj/screen/vr_control var/obj/screen/druggy var/obj/screen/blurry var/list/vimpaired @@ -48,6 +49,13 @@ var/list/global_huds blurry.layer = 17 blurry.mouse_opacity = 0 + vr_control = new /obj/screen() + vr_control.icon = 'icons/mob/screen/full.dmi' + vr_control.icon_state = "vr_control" + vr_control.screen_loc = "1,1" + vr_control.mouse_opacity = 0 + vr_control.alpha = 120 + nvg = setup_overlay("scanline", "#06ff00") thermal = setup_overlay("scanline", "#ff0000") meson = setup_overlay("scanline", "#9fd800") diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index e2b2f4c8cd4..00cc6c52cae 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -342,7 +342,13 @@ mymob.flash.mouse_opacity = 0 hud_elements |= mymob.flash - mymob.pain = new /obj/screen( null ) + mymob.pain = new /obj/screen() + mymob.pain.icon = 'icons/mob/screen/full.dmi' + mymob.pain.icon_state = null + mymob.pain.name = "pain" + mymob.pain.screen_loc = "1,1" + mymob.pain.mouse_opacity = 0 + hud_elements |= mymob.pain mymob.zone_sel = new /obj/screen/zone_sel( null ) mymob.zone_sel.icon = ui_style diff --git a/code/controllers/subsystems/virtual_reality.dm b/code/controllers/subsystems/virtual_reality.dm index cb6bd89babe..97a107fa1f0 100644 --- a/code/controllers/subsystems/virtual_reality.dm +++ b/code/controllers/subsystems/virtual_reality.dm @@ -81,6 +81,8 @@ target.verbs += /mob/living/proc/body_return target.languages = M.languages + if(target.client) + target.client.screen |= global_hud.vr_control to_chat(target, span("notice", "Connection established, system suite active and calibrated.")) to_chat(target, span("warning", "To exit this mode, use the \"Return to Body\" verb in the IC tab.")) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index f4ededed067..6ca0b1ac7c2 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -987,7 +987,11 @@ return "" /mob/proc/flash_weak_pain() - flick("weak_pain",pain) + flick("weak_pain", pain) + +/mob/living/carbon/human/flash_weak_pain() + if(can_feel_pain()) + flick("weak_pain", pain) /mob/proc/Jitter(amount) jitteriness = max(jitteriness,amount,0) diff --git a/code/modules/organs/pain.dm b/code/modules/organs/pain.dm index ddd1d4d71c3..a708f4b0aae 100644 --- a/code/modules/organs/pain.dm +++ b/code/modules/organs/pain.dm @@ -1,5 +1,9 @@ -mob/proc/flash_pain() - flick("pain",pain) +/mob/proc/flash_pain() + flick("pain", pain) + +/mob/living/carbon/human/flash_pain() + if(can_feel_pain()) + flick("pain", pain) mob/var/list/pain_stored = list() mob/var/last_pain_message = "" diff --git a/html/changelogs/geeves-full_overlay_stuff.yml b/html/changelogs/geeves-full_overlay_stuff.yml new file mode 100644 index 00000000000..d2315e5cf08 --- /dev/null +++ b/html/changelogs/geeves-full_overlay_stuff.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Full pain overlays have been added, or rather fixed, since they never worked before. They're just small flashes of pain with an accompanying overlay." + - rscadd: "Remotely controlled stuff will now have a neat scanline overlay, a gentle reminder that this isn't your actual physical body." \ No newline at end of file diff --git a/icons/mob/screen/full.dmi b/icons/mob/screen/full.dmi index 10c96e23c6c..97d2a29d930 100644 Binary files a/icons/mob/screen/full.dmi and b/icons/mob/screen/full.dmi differ