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)
|
spawn(0)
|
||||||
// Decouple the view to the turf on drop, or we'll be stuck on the mob that dropped us forever
|
// Decouple the view to the turf on drop, or we'll be stuck on the mob that dropped us forever
|
||||||
if(!QDELETED(cache_mob))
|
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.eye = release_turf // Yes--
|
||||||
cache_mob.client.perspective = EYE_PERSPECTIVE // --this is required too.
|
cache_mob.client.perspective = EYE_PERSPECTIVE // --this is required too.
|
||||||
if(!isturf(cache_mob.loc)) // For stuff like paicards
|
if(!isturf(cache_mob.loc)) // For stuff like paicards
|
||||||
|
|||||||
@@ -76,6 +76,26 @@
|
|||||||
will_sleep = FALSE
|
will_sleep = FALSE
|
||||||
will_blind = 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
|
/// Remote view that relays movement to the remote_view_target
|
||||||
/datum/remote_view_config/relay_movement
|
/datum/remote_view_config/relay_movement
|
||||||
relay_movement = TRUE
|
relay_movement = TRUE
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ Works together with spawning an observer, noted above.
|
|||||||
//RS Port #658 End
|
//RS Port #658 End
|
||||||
|
|
||||||
/mob/proc/ghostize(var/can_reenter_corpse = 1, var/aghost = FALSE)
|
/mob/proc/ghostize(var/can_reenter_corpse = 1, var/aghost = FALSE)
|
||||||
|
reset_perspective(src) // End any remoteview we're in
|
||||||
if(key)
|
if(key)
|
||||||
if(ishuman(src))
|
if(ishuman(src))
|
||||||
var/mob/living/carbon/human/H = src
|
var/mob/living/carbon/human/H = src
|
||||||
|
|||||||
@@ -306,10 +306,10 @@
|
|||||||
if(remote_comp?.looking_at_target_already(loc))
|
if(remote_comp?.looking_at_target_already(loc))
|
||||||
return FALSE
|
return FALSE
|
||||||
if(isitem(loc) || isbelly(loc)) // Requires more careful handling than structures because they are held by mobs
|
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
|
return TRUE
|
||||||
if(loc.flags & REMOTEVIEW_ON_ENTER) // Handle atoms that begin a remote view upon entering them.
|
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 TRUE
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user