mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-13 11:43:31 +00:00
[MIRROR] Stunned In Object View Decouple fix (#11946)
Co-authored-by: Will <7099514+Willburd@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
d467852d05
commit
2a00e09d93
@@ -474,7 +474,7 @@
|
||||
spawn(0)
|
||||
// Decouple the view to the turf on drop, or we'll be stuck on the mob that dropped us forever
|
||||
if(!QDELETED(cache_mob))
|
||||
cache_mob.AddComponent(/datum/component/remote_view, release_turf)
|
||||
cache_mob.AddComponent(/datum/component/remote_view, focused_on = release_turf, vconfig_path = /datum/remote_view_config/turf_decoupling)
|
||||
cache_mob.client.eye = release_turf // Yes--
|
||||
cache_mob.client.perspective = EYE_PERSPECTIVE // --this is required too.
|
||||
if(!isturf(cache_mob.loc)) // For stuff like paicards
|
||||
|
||||
@@ -76,6 +76,26 @@
|
||||
will_sleep = FALSE
|
||||
will_blind = FALSE
|
||||
|
||||
/// Remote view that handles being inside of an object. This ignores stuns and other effects, as you are remaining within the object anyway.
|
||||
/datum/remote_view_config/inside_object
|
||||
forbid_movement = TRUE
|
||||
will_death = TRUE
|
||||
will_stun = FALSE
|
||||
will_weaken = FALSE
|
||||
will_paralyze = FALSE
|
||||
will_sleep = FALSE
|
||||
will_blind = FALSE
|
||||
|
||||
/// Remote view that only allows decoupling a turf view by movement. Seperate from effect_immune to allow for easier removal in the future if the underlying issue that makes this needed is someday fixed
|
||||
/datum/remote_view_config/turf_decoupling
|
||||
forbid_movement = TRUE
|
||||
will_death = TRUE
|
||||
will_stun = FALSE
|
||||
will_weaken = FALSE
|
||||
will_paralyze = FALSE
|
||||
will_sleep = FALSE
|
||||
will_blind = FALSE
|
||||
|
||||
/// Remote view that relays movement to the remote_view_target
|
||||
/datum/remote_view_config/relay_movement
|
||||
relay_movement = TRUE
|
||||
|
||||
@@ -183,6 +183,7 @@ Works together with spawning an observer, noted above.
|
||||
//RS Port #658 End
|
||||
|
||||
/mob/proc/ghostize(var/can_reenter_corpse = 1, var/aghost = FALSE)
|
||||
reset_perspective(src) // End any remoteview we're in
|
||||
if(key)
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
|
||||
@@ -306,10 +306,10 @@
|
||||
if(remote_comp?.looking_at_target_already(loc))
|
||||
return FALSE
|
||||
if(isitem(loc) || isbelly(loc)) // Requires more careful handling than structures because they are held by mobs
|
||||
AddComponent(/datum/component/remote_view/mob_holding_item, focused_on = loc, vconfig_path = null)
|
||||
AddComponent(/datum/component/remote_view/mob_holding_item, focused_on = loc, vconfig_path = /datum/remote_view_config/inside_object)
|
||||
return TRUE
|
||||
if(loc.flags & REMOTEVIEW_ON_ENTER) // Handle atoms that begin a remote view upon entering them.
|
||||
AddComponent(/datum/component/remote_view, focused_on = loc, vconfig_path = null)
|
||||
AddComponent(/datum/component/remote_view, focused_on = loc, vconfig_path = /datum/remote_view_config/inside_object)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user