From 05bfb16407088e75bf3309322d2fe4a5b174e812 Mon Sep 17 00:00:00 2001 From: Will <7099514+Willburd@users.noreply.github.com> Date: Sun, 27 Apr 2025 19:35:27 -0400 Subject: [PATCH] pai zmovement for climbing ladders, space and scaffolding (#17621) * pai zmovement for climbing ladders, space and scaffolding * . --------- Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> --- code/modules/mob/dead/observer/observer.dm | 4 ++++ code/modules/mob/living/silicon/pai/pai_vr.dm | 6 ++++++ code/modules/multiz/movement.dm | 10 ++++++++++ 3 files changed, 20 insertions(+) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index d666a38d993..cd41747a394 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -103,6 +103,10 @@ /mob/observer/dead/Initialize(mapload, aghost = FALSE) appearance = loc + invisibility = initial(invisibility) + layer = initial(layer) + plane = initial(plane) + alpha = initial(alpha) admin_ghosted = aghost see_in_dark = world.view //I mean. I don't even know if byond has occlusion culling... but... diff --git a/code/modules/mob/living/silicon/pai/pai_vr.dm b/code/modules/mob/living/silicon/pai/pai_vr.dm index 195e14983ed..a9a5543439a 100644 --- a/code/modules/mob/living/silicon/pai/pai_vr.dm +++ b/code/modules/mob/living/silicon/pai/pai_vr.dm @@ -287,6 +287,12 @@ /mob/living/silicon/pai/UnarmedAttack(atom/A, proximity_flag) . = ..() + if(istype(A,/obj/structure/ladder)) + // Zmovement already allows these to be used with the verbs anyway + var/obj/structure/ladder/L = A + L.attack_hand(src) + return + if(!ismob(A) || A == src) return diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 0d5e6c05e9c..cfaf314985a 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -255,6 +255,16 @@ if(T.density) return TRUE +/mob/living/silicon/pai/can_ztravel() + if(incapacitated()) + return FALSE + + if(Process_Spacemove()) + return TRUE + + if(!restrained()) + return TRUE + // TODO - Leshana Experimental //Execution by grand piano!