Files
Bloop a4f053f0d9 Fixes emote singletons being mutated, and actually makes use of the type_override arg (#94178)
## About The Pull Request

So this nice way of explicitly override an emote type exists, but for
some reason it is not properly used and mostly nonfunctional.

Custom emotes, a perfect use case for these, was just... mutating the
singleton and then resetting it back, instead of actually making use of
args.

Sinful. Just sinful.

<details><summary> It does work, note the type override from the prompt
making its way where needed. </summary>

<img width="209" height="206" alt="dreamseeker_DRS9nFqoQP"
src="https://github.com/user-attachments/assets/35cbac9b-600f-4060-938e-519e110f330d"
/>

<img width="308" height="493" alt="Code_ZQfaj3GGSu"
src="https://github.com/user-attachments/assets/6847e070-d11f-4a32-90fa-edbb5e869e13"
/>

</details>

## Why It's Good For The Game

Fixes a likely oversight/coding skill issue. Improves code modularity.

## Changelog

Nothing anyone would notice, if this is working correctly.
2025-11-30 13:38:51 -06:00

55 lines
1.5 KiB
Plaintext

/// Eye mob, used by cameras and overminds such as blobs.
/mob/eye
name = "eye mob"
density = FALSE
move_force = INFINITY
move_resist = INFINITY
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
invisibility = INVISIBILITY_ABSTRACT // No one can see us
sight = SEE_SELF
status_flags = NONE
/// Toggles if the eye can move on shuttles
var/move_on_shuttle = FALSE
/// Toggles if the eye can use emotes
var/has_emotes = FALSE
/mob/eye/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_GODMODE, INNATE_TRAIT)
SSpoints_of_interest.make_point_of_interest(src)
if(!move_on_shuttle)
ADD_TRAIT(src, TRAIT_BLOCK_SHUTTLE_MOVEMENT, INNATE_TRAIT)
/mob/eye/experience_pressure_difference()
return
/mob/eye/canUseStorage()
return FALSE
/mob/eye/up()
set name = "Move Upwards"
set category = "IC"
if(zMove(UP, z_move_flags = ZMOVE_FEEDBACK))
to_chat(src, span_notice("You move upwards."))
/mob/eye/down()
set name = "Move Down"
set category = "IC"
if(zMove(DOWN, z_move_flags = ZMOVE_FEEDBACK))
to_chat(src, span_notice("You move down."))
/mob/eye/can_z_move(direction, turf/start, turf/destination, z_move_flags = NONE, mob/living/rider)
z_move_flags |= ZMOVE_IGNORE_OBSTACLES //cameras do not respect these FLOORS you speak so much of
return ..()
/mob/eye/emote(act, type_override = EMOTE_VISIBLE, message = null, intentional = FALSE, force_silence = FALSE, forced = FALSE)
if(has_emotes)
return ..()
return FALSE
/mob/eye/update_sight()
lighting_color_cutoffs = list(lighting_cutoff_red, lighting_cutoff_green, lighting_cutoff_blue)
return ..()