mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-12 01:43:40 +00:00
* Imaginary friend refactor (#71058) ## About The Pull Request This makes imaginary friends less janky. It adds many QoL features like runechat and typing indicators, fixes jankyness that results from a runtime. You can now even emote and whisper as an imaginary friend which adds countless RP possibilities that weren't available before.        ## Why It's Good For The Game It makes an old feature better. ## Changelog 🆑 Riggle qol: Imaginary friends now have runechat, typing indicators and emotes! qol: Imaginary friends can point and spin fix: Fixed a bug with imaginary friends where ghosts would stay after aghosting refactor: Imaginary friend code massively improved refactor: Imaginary friends now support multiple friends at the same time! admin: Imaginary friends no longer bypass filters /🆑 * Imaginary friend refactor Co-authored-by: Riggle <27156122+RigglePrime@users.noreply.github.com>
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
// Camera mob, used by AI camera and blob.
|
|
/mob/camera
|
|
name = "camera mob"
|
|
density = FALSE
|
|
move_force = INFINITY
|
|
move_resist = INFINITY
|
|
status_flags = GODMODE // You can't damage it.
|
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
|
see_in_dark = 7
|
|
invisibility = INVISIBILITY_ABSTRACT // No one can see us
|
|
sight = SEE_SELF | SEE_BLACKNESS
|
|
move_on_shuttle = FALSE
|
|
/// Toggles if the camera can use emotes
|
|
var/has_emotes = FALSE
|
|
|
|
/mob/camera/Initialize(mapload)
|
|
. = ..()
|
|
SSpoints_of_interest.make_point_of_interest(src)
|
|
|
|
/mob/camera/experience_pressure_difference()
|
|
return
|
|
|
|
/mob/camera/canUseStorage()
|
|
return FALSE
|
|
|
|
/mob/camera/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/camera/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/camera/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/camera/emote(act, m_type=1, message = null, intentional = FALSE, force_silence = FALSE)
|
|
if(has_emotes)
|
|
return ..()
|
|
return FALSE
|