diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index c55ec430e3..9645c156f1 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -96,6 +96,8 @@ avoid code duplication. This includes items that may sometimes act as a standard return 0 if(M == user && user.a_intent != I_HURT) return 0 + if(M.is_incorporeal()) // CHOMPEdit - No attacking phased entities :) + return 0 ///////////////////////// user.lastattacked = M diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index fca4988493..ce99f7c76f 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -199,6 +199,8 @@ steam.start() -- spawns the effect return 0 if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M + if(!M.get_organ(O_LUNGS)) // CHOMPedit - Making sure smoke doesn't affect lungless people + return 0 if(H.head && (H.head.item_flags & AIRTIGHT)) return 0 return 1 diff --git a/code/game/objects/weapons.dm b/code/game/objects/weapons.dm index ce48d03783..cc9e2fa5c7 100644 --- a/code/game/objects/weapons.dm +++ b/code/game/objects/weapons.dm @@ -37,8 +37,6 @@ continue if(!attack_can_reach(user, SM, 1)) continue - if(SM.is_incorporeal()) // CHOMPADD - Don't cleave phased entities. - continue if(resolve_attackby(SM, user, attack_modifier = 0.5)) // Hit them with the weapon. This won't cause recursive cleaving due to the cleaving variable being set to true. hit_mobs++ diff --git a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm index bb5b90836e..fa98e02685 100644 --- a/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm +++ b/code/modules/mob/living/carbon/human/species/shadekin/shadekin.dm @@ -164,6 +164,7 @@ H.adjustBruteLoss(-(H.getBruteLoss() * 0.75)) H.adjustToxLoss(-(H.getToxLoss() * 0.75)) H.adjustCloneLoss(-(H.getCloneLoss() * 0.75)) + H.germ_level = 0 // CHOMPAdd - Take away the germs, or we'll die AGAIN H.vessel.add_reagent("blood",blood_volume-H.vessel.total_volume) for(var/obj/item/organ/external/bp in H.organs) bp.bandage() diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 41bc6b2fb5..ac09a62ec8 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -48,7 +48,7 @@ default behaviour is: return 0 /mob/living/Bump(atom/movable/AM) - if(now_pushing || !loc || buckled == AM) + if(now_pushing || !loc || buckled == AM || AM.is_incorporeal()) // CHOMPEdit - This should take care of phase interactions... return now_pushing = 1 if (istype(AM, /mob/living)) diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm index ad5571edfb..60525a7010 100644 --- a/code/modules/vore/resizing/resize_vr.dm +++ b/code/modules/vore/resizing/resize_vr.dm @@ -237,8 +237,6 @@ var/datum/sprite_accessory/tail/taur/tail = H.tail_style src_message = tail.msg_owner_help_run tmob_message = tail.msg_prey_help_run - if(tmob.is_incorporeal()) // CHOMPEdit - Nothing to step over. - return TRUE //Smaller person stepping under larger person else if(get_effective_size(TRUE) < tmob.get_effective_size(TRUE) && ishuman(tmob)) @@ -249,8 +247,6 @@ var/datum/sprite_accessory/tail/taur/tail = H.tail_style src_message = tail.msg_prey_stepunder tmob_message = tail.msg_owner_stepunder - if(tmob.is_incorporeal()) // CHOMPEdit - Can't run between what's not there - return TRUE if(src_message) to_chat(src, "[STEP_TEXT_OWNER(src_message)]")