Assorted Shadekin Fixes (#19253)

* no flashes in phase

* flashbangs in phase

* phased shadekin don't explode

* phased shadekin aren't emped

* no splurting phased kin either

* can't change medical equipment in phase

* forbid phased mob mounting

* prevent an exploit

* do it here too

* another pr

* minimize whitespace

* minimize
This commit is contained in:
Will
2026-03-09 00:38:13 +01:00
committed by GitHub
parent e10b708ac4
commit 0d5db7f957
9 changed files with 26 additions and 2 deletions
@@ -167,6 +167,9 @@
RigPanel(R)
/mob/living/carbon/human/ex_act(severity)
if(is_incorporeal()) // Can't explode shadekin in phase
return
if(!blinded)
flash_eyes()
@@ -149,6 +149,8 @@
return 0 //only carbon liveforms have this proc
/mob/living/emp_act(severity, recursive)
if(is_incorporeal()) // Can't emp shadekin in phase
return
if(LAZYLEN(modifiers))
for(var/datum/modifier/M in modifiers)
@@ -1441,6 +1441,8 @@
/mob/living/silicon/robot/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
if(forced)
return ..() // Skip our checks
if(is_incorporeal(src) || is_incorporeal(M))
return FALSE
if(lying)
return FALSE
if(!ishuman(M))
@@ -134,6 +134,9 @@
// Exploding.
/mob/living/simple_mob/ex_act(severity)
if(is_incorporeal()) // Can't explode shadekin in phase
return
if(!blinded)
flash_eyes()
@@ -93,6 +93,8 @@
/mob/living/carbon/human/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE)
if(forced)
return ..() // Skip our checks
if(is_incorporeal(src) || is_incorporeal(M))
return FALSE
if(!istaurtail(tail_style))
return FALSE
else
+2
View File
@@ -367,6 +367,8 @@
/datum/reagents/proc/touch_mob(var/mob/target)
if(!target || !istype(target))
return
if(target.is_incorporeal()) // I really cannot imagine any scenario in which you would want reagent touch clouds to affect phased shadekin, so putting it here instead of higher up.
return
for(var/datum/reagent/current in reagent_list)
current.touch_mob(target, current.volume)