diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm
index 8146ab7fbe..3ddbd0117c 100644
--- a/code/modules/antagonists/morph/morph.dm
+++ b/code/modules/antagonists/morph/morph.dm
@@ -27,12 +27,14 @@
see_in_dark = 8
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
vision_range = 1 // Only attack when target is close
- wander = 0
+ wander = FALSE
attacktext = "glomps"
attack_sound = 'sound/effects/blobattack.ogg'
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2)
var/morphed = FALSE
+ var/melee_damage_disguised = 0
+ var/eat_while_disguised = FALSE
var/atom/movable/form = null
var/morph_time = 0
var/static/list/blacklist_typecache = typecacheof(list(
@@ -75,11 +77,14 @@
return !is_type_in_typecache(A, blacklist_typecache) && (isobj(A) || ismob(A))
/mob/living/simple_animal/hostile/morph/proc/eat(atom/movable/A)
+ if(morphed && !eat_while_disguised)
+ to_chat(src, "You can not eat anything while you are disguised!")
+ return FALSE
if(A && A.loc != src)
visible_message("[src] swallows [A] whole!")
A.forceMove(src)
- return 1
- return 0
+ return TRUE
+ return FALSE
/mob/living/simple_animal/hostile/morph/ShiftClickOn(atom/movable/A)
if(morph_time <= world.time && !stat)
@@ -109,8 +114,8 @@
pixel_x = initial(pixel_x)
//Morphed is weaker
- melee_damage_lower = 5
- melee_damage_upper = 5
+ melee_damage_lower = melee_damage_disguised
+ melee_damage_upper = melee_damage_disguised
speed = 0
morph_time = world.time + MORPH_COOLDOWN
@@ -181,10 +186,13 @@
/mob/living/simple_animal/hostile/morph/can_track(mob/living/user)
if(morphed)
- return 0
+ return FALSE
return ..()
/mob/living/simple_animal/hostile/morph/AttackingTarget()
+ if(!melee_damage_disguised)
+ to_chat(src, "You can not attack while disguised!")
+ return
if(isliving(target)) //Eat Corpses to regen health
var/mob/living/L = target
if(L.stat == DEAD)