diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index eef7231eb2..b9ce4c7f5a 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -134,12 +134,6 @@ // A is a turf or is on a turf, or in something on a turf (pen in a box); but not something in something on a turf (pen in a box in a backpack) sdepth = A.storage_depth_turf() if(isturf(A) || isturf(A.loc) || (sdepth != -1 && sdepth <= 1)) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = src - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN if(A.Adjacent(src) || (W && W.attack_can_reach(src, A, W.reach)) ) // see adjacent.dm if(W) // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example) @@ -188,6 +182,9 @@ /mob/living/UnarmedAttack(var/atom/A, var/proximity_flag) + if(is_incorporeal()) + return 0 + if(!ticker) to_chat(src, "You cannot attack people before the game has started.") return 0 diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 88fe9dbf1c..a35abf8c37 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -138,12 +138,8 @@ return /obj/effect/ebeam/deadly/Crossed(atom/A) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = A - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(A.is_incorporeal()) + return ..() A.ex_act(1) @@ -163,12 +159,8 @@ on_contact(A) /obj/effect/ebeam/reactive/Crossed(atom/A) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = A - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(A.is_incorporeal()) + return ..() on_contact(A) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 87035942c4..6b206c6d02 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -519,6 +519,9 @@ return TRUE return FALSE +/atom/proc/is_incorporeal() + return FALSE + /atom/proc/drop_location() var/atom/L = loc if(!L) diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 633b1f4d02..7ce4b2e86d 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -132,22 +132,6 @@ anchored = 1.0 var/spawnable = null -/obj/effect/gateway/Bumped(mob/M as mob|obj) - spawn(0) - return - return - -/obj/effect/gateway/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN - spawn(0) - return - return - /obj/effect/gateway/active light_range=5 light_color="#ff0000" @@ -176,12 +160,8 @@ qdel(src) /obj/effect/gateway/active/Crossed(var/atom/A) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = A - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(A.is_incorporeal()) + return if(!istype(A, /mob/living)) return diff --git a/code/game/objects/effects/chem/foam.dm b/code/game/objects/effects/chem/foam.dm index e89355086f..f51dc9e4b1 100644 --- a/code/game/objects/effects/chem/foam.dm +++ b/code/game/objects/effects/chem/foam.dm @@ -74,12 +74,8 @@ qdel(src) /obj/effect/effect/foam/Crossed(var/atom/movable/AM) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(AM.is_incorporeal()) + return if(metal) return if(istype(AM, /mob/living)) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index f9c70c9f16..1d740abb68 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -70,12 +70,8 @@ var/global/list/image/splatter_cache=list() desc = initial(desc) /obj/effect/decal/cleanable/blood/Crossed(mob/living/carbon/human/perp) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = perp - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(perp.is_incorporeal()) + return if (!istype(perp)) return if(amount < 1) diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index b7d45a9cb3..7d5275cbcd 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -185,12 +185,8 @@ steam.start() -- spawns the effect qdel(src) /obj/effect/effect/smoke/Crossed(mob/living/carbon/M as mob ) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = M - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(M.is_incorporeal()) + return ..() if(istype(M)) affect(M) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index fb4117ef44..2cca71b9de 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -35,13 +35,9 @@ explode() ..() -/obj/effect/mine/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/effect/mine/Crossed(atom/movable/AM as mob|obj) + if(AM.is_incorporeal()) + return Bumped(AM) /obj/effect/mine/Bumped(mob/M as mob|obj) diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index 1a9488a0a6..514385b774 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -20,13 +20,9 @@ GLOBAL_LIST_BOILERPLATE(all_portals, /obj/effect/portal) return return -/obj/effect/portal/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/effect/portal/Crossed(atom/movable/AM as mob|obj) + if(AM.is_incorporeal()) + return if(istype(AM,/mob) && !(istype(AM,/mob/living))) return //do not send ghosts, zshadows, ai eyes, etc spawn(0) diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm index 870656d92e..a3c3c242c2 100644 --- a/code/game/objects/effects/step_triggers.dm +++ b/code/game/objects/effects/step_triggers.dm @@ -12,13 +12,9 @@ /obj/effect/step_trigger/proc/Trigger(var/atom/movable/A) return 0 -/obj/effect/step_trigger/Crossed(H as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = H - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/effect/step_trigger/Crossed(atom/movable/H as mob|obj) + if(H.is_incorporeal()) + return ..() if(!H) return diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 6a5fcc2a98..5149d6fa67 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -1468,13 +1468,9 @@ var/global/list/obj/item/device/pda/PDAs = list() QDEL_NULL(src.pai) return ..() -/obj/item/device/pda/clown/Crossed(AM as mob|obj) //Clown PDA is slippery. - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/item/device/pda/clown/Crossed(atom/movable/AM as mob|obj) //Clown PDA is slippery. + if(AM.is_incorporeal()) + return if (istype(AM, /mob/living)) var/mob/living/M = AM diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 850de74ba4..927d21c646 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -355,13 +355,9 @@ playsound(src, 'sound/effects/snap.ogg', 50, 1) qdel(src) -/obj/item/toy/snappop/Crossed(H as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = H - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/item/toy/snappop/Crossed(atom/movable/H as mob|obj) + if(H.is_incorporeal()) + return if((ishuman(H))) //i guess carp and shit shouldn't set them off var/mob/living/carbon/M = H if(M.m_intent == "run") diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index 890e557f50..1f53e64e77 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -8,13 +8,9 @@ /* * Banana Peals */ -/obj/item/weapon/bananapeel/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/item/weapon/bananapeel/Crossed(atom/movable/AM as mob|obj) + if(AM.is_incorporeal()) + return if (istype(AM, /mob/living)) var/mob/living/M = AM M.slip("the [src.name]",4) @@ -29,13 +25,9 @@ /obj/item/weapon/soap/proc/wet() reagents.add_reagent("cleaner", 5) -/obj/item/weapon/soap/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/item/weapon/soap/Crossed(atom/movable/AM as mob|obj) + if(AM.is_incorporeal()) + return if (istype(AM, /mob/living)) var/mob/living/M = AM M.slip("the [src.name]",3) diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm index f98959ff2e..e2394537f3 100644 --- a/code/game/objects/items/weapons/material/shards.dm +++ b/code/game/objects/items/weapons/material/shards.dm @@ -106,14 +106,10 @@ qdel(src) return -/obj/item/weapon/material/shard/Crossed(AM as mob|obj) +/obj/item/weapon/material/shard/Crossed(atom/movable/AM as mob|obj) ..() - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(AM.is_incorporeal()) + return if(isliving(AM)) var/mob/M = AM diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm index ab71c0cec5..1f9397e705 100644 --- a/code/game/objects/items/weapons/traps.dm +++ b/code/game/objects/items/weapons/traps.dm @@ -107,13 +107,9 @@ deployed = 0 can_buckle = initial(can_buckle) -/obj/item/weapon/beartrap/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/item/weapon/beartrap/Crossed(atom/movable/AM as mob|obj) + if(AM.is_incorporeal()) + return if(deployed && isliving(AM)) var/mob/living/L = AM if(L.m_intent == "run") diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 5c606422d7..26e040c7e9 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -87,14 +87,8 @@ return ..() /obj/structure/catwalk/Crossed() - //VOREStation Edit begin: SHADEKIN - var/mob/SK = usr - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN . = ..() - if(isliving(usr)) + if(isliving(usr) && !usr.is_incorporeal()) playsound(src, pick('sound/effects/footstep/catwalk1.ogg', 'sound/effects/footstep/catwalk2.ogg', 'sound/effects/footstep/catwalk3.ogg', 'sound/effects/footstep/catwalk4.ogg', 'sound/effects/footstep/catwalk5.ogg'), 25, 1) /obj/structure/catwalk/CheckExit(atom/movable/O, turf/target) diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 441367c80d..d815fea765 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -104,12 +104,8 @@ /obj/item/device/assembly_holder/Crossed(atom/movable/AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(AM.is_incorporeal()) + return if(a_left) a_left.Crossed(AM) if(a_right) diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 75985f7822..8da3fbc21b 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -242,12 +242,8 @@ return /obj/effect/beam/i_beam/Crossed(atom/movable/AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(AM.is_incorporeal()) + return if(istype(AM, /obj/effect/beam)) return spawn(0) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 0257b6cf87..be78782b29 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -82,13 +82,9 @@ ..() -/obj/item/device/assembly/mousetrap/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/obj/item/device/assembly/mousetrap/Crossed(atom/movable/AM as mob|obj) + if(AM.is_incorporeal()) + return if(armed) if(ishuman(AM)) var/mob/living/carbon/H = AM diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 0a25a1fae1..1692de2f65 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -157,12 +157,8 @@ overlays |= plant_icon /obj/item/weapon/reagent_containers/food/snacks/grown/Crossed(var/mob/living/M) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = M - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(M.is_incorporeal()) + return if(seed && seed.get_trait(TRAIT_JUICY) == 2) if(istype(M)) diff --git a/code/modules/hydroponics/spreading/spreading_response.dm b/code/modules/hydroponics/spreading/spreading_response.dm index bab7131466..8c694c8b00 100644 --- a/code/modules/hydroponics/spreading/spreading_response.dm +++ b/code/modules/hydroponics/spreading/spreading_response.dm @@ -20,12 +20,8 @@ manual_unbuckle(user) /obj/effect/plant/Crossed(atom/movable/O) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = O - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(O.is_incorporeal()) + return if(isliving(O)) trodden_on(O) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6d9bc28f77..d1bd905d4d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -243,12 +243,8 @@ // this handles mulebots and vehicles // and now mobs on fire /mob/living/carbon/human/Crossed(var/atom/movable/AM) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(AM.is_incorporeal()) + return if(istype(AM, /mob/living/bot/mulebot)) var/mob/living/bot/mulebot/MB = AM MB.runOver(src) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 9f57be114b..50caac91c0 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -224,10 +224,8 @@ // Handle footstep sounds /mob/living/carbon/human/handle_footstep(var/turf/T) - //VOREStation Edit begin: SHADEKIN - if(shadekin_phasing_check()) + if(is_incorporeal()) return - //VOREStation Edit end: SHADEKIN if(!config.footstep_volume || !T.footstep_sounds || !T.footstep_sounds.len) return // Future Upgrades - Multi species support diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 568e978f72..3a44c18bd3 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -618,10 +618,8 @@ //Stuff like the xenomorph's plasma regen happens here. species.handle_environment_special(src) - //VOREStation Edit begin: SHADEKIN - if(shadekin_phasing_check()) + if(is_incorporeal()) return - //VOREStation Edit end: SHADEKIN //Moved pressure calculations here for use in skip-processing check. var/pressure = environment.return_pressure() diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm index 7d354db330..cc69297e6a 100644 --- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm +++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin_abilities.dm @@ -1,5 +1,10 @@ /datum/power/shadekin +/mob/living/carbon/human/is_incorporeal() + if(ability_flags & AB_PHASE_SHIFTED) //Shadekin + return TRUE + return ..() + ///////////////////// /// PHASE SHIFT /// ///////////////////// @@ -62,6 +67,7 @@ //Shifting in if(ability_flags & AB_PHASE_SHIFTED) ability_flags &= ~AB_PHASE_SHIFTED + mouse_opacity = 2 name = real_name for(var/belly in vore_organs) var/obj/belly/B = belly @@ -108,6 +114,7 @@ //Shifting out else ability_flags |= AB_PHASE_SHIFTED + mouse_opacity = 0 custom_emote(1,"phases out!") name = "Something" @@ -130,47 +137,6 @@ density = FALSE force_max_speed = TRUE -/mob/living/carbon/human/UnarmedAttack() - if(shadekin_phasing_check()) - return FALSE //Nope. - - . = ..() - -/mob/living/carbon/human/can_fall() - if(shadekin_phasing_check()) - return FALSE //Nope! - - return ..() - -/mob/living/carbon/human/zMove(direction) - if(shadekin_phasing_check()) - var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) - if(destination) - forceMove(destination) - return TRUE //Yup. - - return ..() - -/mob/proc/shadekin_phasing_check() - var/mob/living/simple_mob/shadekin/s_SK = src - if(istype(s_SK)) - if(s_SK.ability_flags & AB_PHASE_SHIFTED) - return TRUE - var/mob/living/carbon/human/h_SK = src - if(istype(h_SK)) - if(h_SK.ability_flags & AB_PHASE_SHIFTED) - return TRUE - return FALSE - -/* -/mob/living/carbon/human/MouseDrop_T(atom/dropping, mob/user) - if(ability_flags & AB_PHASE_SHIFTED) - return FALSE //Nope! - - return ..() -*/ - - ////////////////////////// /// REGENERATE OTHER /// ////////////////////////// diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm index dc37871aca..a5e58e2510 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/passive/mouse.dm @@ -54,13 +54,9 @@ icon_rest = "mouse_[body_color]_sleep" desc = "A small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself." -/mob/living/simple_mob/animal/passive/mouse/Crossed(AM as mob|obj) - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN +/mob/living/simple_mob/animal/passive/mouse/Crossed(atom/movable/AM as mob|obj) + if(AM.is_incorporeal()) + return if( ishuman(AM) ) if(!stat) var/mob/M = AM diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm index 21e0683b3c..491d0011d2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/ability_procs.dm @@ -19,6 +19,7 @@ //Shifting in if(ability_flags & AB_PHASE_SHIFTED) ability_flags &= ~AB_PHASE_SHIFTED + mouse_opacity = 2 name = real_name for(var/belly in vore_organs) var/obj/belly/B = belly @@ -70,6 +71,7 @@ //Shifting out else ability_flags |= AB_PHASE_SHIFTED + mouse_opacity = 0 custom_emote(1,"phases out!") real_name = name name = "Something" diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm index f8025167b7..a494d00590 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/shadekin/shadekin.dm @@ -245,6 +245,11 @@ if((. = ..())) handle_shade() +/mob/living/simple_mob/shadekin/is_incorporeal() + if(ability_flags & AB_PHASE_SHIFTED) + return TRUE + return FALSE + /mob/living/simple_mob/shadekin/handle_atmos() if(ability_flags & AB_PHASE_SHIFTED) return diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index fae3f2cb61..0e4a326cab 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -389,10 +389,8 @@ ///Return 1 for movement 0 for none /mob/proc/Process_Spacemove(var/check_drift = 0) - //VOREStation Edit begin: SHADEKIN - if(shadekin_phasing_check()) + if(is_incorporeal()) return - //VOREStation Edit end: SHADEKIN if(!Check_Dense_Object()) //Nothing to push off of so end here update_floating(0) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 59ef1182d0..4918a8a61c 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -29,6 +29,10 @@ to_chat(src, "There is nothing of interest in this direction.") return 0 + if(is_incorporeal()) + forceMove(destination) + return 1 + if(!start.CanZPass(src, direction)) to_chat(src, "\The [start] is in the way.") return 0 @@ -273,6 +277,8 @@ return FALSE /mob/living/can_fall() + if(is_incorporeal()) + return FALSE if(hovering) return FALSE return ..() diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index b3b70aa7af..679beb7125 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -219,12 +219,8 @@ Range() /obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. - //VOREStation Edit begin: SHADEKIN - var/mob/SK = AM - if(istype(SK)) - if(SK.shadekin_phasing_check()) - return - //VOREStation Edit end: SHADEKIN + if(AM.is_incorporeal()) + return ..() if(isliving(AM) && !(pass_flags & PASSMOB)) var/mob/living/L = AM