mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-12 02:32:10 +00:00
## About The Pull Request Adds an arg in huds' screens to add the hud owner in the Initialize, instead of manually setting it every time we need to. This is already done in ``New()`` for lobby screens, which I left intact as lobby screens are used for new players, and are given out before atoms are Initialized. Everything else, however, uses Initialize, so it does not mess with any other args in their own Initializes (like the Escape menu). This also allows us to set the screens' HUDs as a private var, to ensure this won't be messed with in the future. Lastly I replaced instances of ``client`` with ``cannon_client`` to be consistent with a lot of other parts of hud code. ## Why It's Good For The Game Huds are easy to break when they do not have a hud owner, and for something as important as that I believe it should be something you opt-out of when you don't want it, rather than something you opt-into by manually setting hud owner every time. This cuts down on a lot of copy paste in hud code for humans, aliens, etc. ## Changelog 🆑 refactor: Huds now have their hud owner set in Initialize /🆑
53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
/atom/movable/screen/tutorial_instruction
|
|
icon = 'icons/effects/alphacolors.dmi'
|
|
icon_state = "white"
|
|
color = COLOR_NEARLY_ALL_BLACK
|
|
alpha = 0
|
|
screen_loc = "TOP-2,CENTER"
|
|
layer = TUTORIAL_INSTRUCTIONS_LAYER
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
|
|
var/client/client
|
|
var/atom/movable/screen/tutorial_instruction_text/instruction_text
|
|
|
|
/atom/movable/screen/tutorial_instruction/Initialize(mapload, datum/hud/hud_owner, message, client/client)
|
|
. = ..()
|
|
|
|
transform = transform.Scale(36, 2.5)
|
|
|
|
src.client = client
|
|
animate(src, alpha = 245, time = 0.8 SECONDS, easing = SINE_EASING)
|
|
|
|
instruction_text = new(src, null, message, client)
|
|
vis_contents += instruction_text
|
|
|
|
/atom/movable/screen/tutorial_instruction/Destroy()
|
|
client = null
|
|
QDEL_NULL(instruction_text)
|
|
|
|
return ..()
|
|
|
|
/atom/movable/screen/tutorial_instruction/proc/change_message(message)
|
|
instruction_text.change_message(message)
|
|
|
|
/atom/movable/screen/tutorial_instruction_text
|
|
maptext_height = 480
|
|
maptext_y = -2
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
layer = TUTORIAL_INSTRUCTIONS_LAYER
|
|
|
|
/atom/movable/screen/tutorial_instruction_text/Initialize(mapload, datum/hud/hud_owner, message, client/client)
|
|
. = ..()
|
|
|
|
var/view = client?.view_size.getView()
|
|
maptext_width = view ? view_to_pixels(view)[1] : 480
|
|
pixel_x = (maptext_width - world.icon_size) * -0.5
|
|
|
|
change_message(message)
|
|
|
|
/atom/movable/screen/tutorial_instruction_text/proc/change_message(message)
|
|
message = MAPTEXT_VCR_OSD_MONO("<span style='font-size: 22px; text-align: center'>[message]</span>")
|
|
|
|
animate(src, alpha = 0, time = (maptext ? 0.5 SECONDS : 0), easing = SINE_EASING)
|
|
animate(alpha = 255, time = 0.5 SECONDS, maptext = message)
|