diff --git a/modular_chomp/code/modules/mob/living/emote.dm b/modular_chomp/code/modules/mob/living/emote.dm
new file mode 100644
index 0000000000..c5f36f01c8
--- /dev/null
+++ b/modular_chomp/code/modules/mob/living/emote.dm
@@ -0,0 +1,9 @@
+world/New()
+ . = ..()
+ //add stuff to default emote vars specifically for chomp.
+
+ //human default emotes
+ _human_default_emotes += /decl/emote/audible/wheeze
+
+ //simple_mob default emotes
+ _simple_mob_default_emotes += /decl/emote/audible/wheeze
\ No newline at end of file
diff --git a/modular_chomp/code/modules/mob/living/simple_mob/simple_mob.dm b/modular_chomp/code/modules/mob/living/simple_mob/simple_mob.dm
index 9a4622ebec..75bbf9ab2a 100644
--- a/modular_chomp/code/modules/mob/living/simple_mob/simple_mob.dm
+++ b/modular_chomp/code/modules/mob/living/simple_mob/simple_mob.dm
@@ -8,7 +8,7 @@
//spitting projectiles
var/spitting = 0
- var/spit_projectile = null // what out spit projecitle is. Can be anything
+ var/spit_projectile = null // what our spit projectile is. Can be anything
/mob/living/simple_mob/RangedAttack(var/atom/A)
if(!isnull(spit_projectile) && spitting)
diff --git a/modular_chomp/code/modules/mob/living/simple_mob/simple_mob_abilities.dm b/modular_chomp/code/modules/mob/living/simple_mob/simple_mob_abilities.dm
index 49a561bd9f..97e8fc607f 100644
--- a/modular_chomp/code/modules/mob/living/simple_mob/simple_mob_abilities.dm
+++ b/modular_chomp/code/modules/mob/living/simple_mob/simple_mob_abilities.dm
@@ -19,10 +19,16 @@
//spitting
var/spit_delay = 20 // maximum spit fire rate
- var/last_spit = 0
+ var/spit_last = 0
var/icon_overlay_spit = null // spit iconstate
var/icon_overlay_spit_pounce = null // spit while pouncing
+ //speen
+ var/speen_last = 0
+ var/speen_delay = 80 // maximum spin spam
+
+
+
/mob/living/simple_mob/update_icon()
. = ..()
//use prepounce or pounce sprites, if any
@@ -87,7 +93,7 @@
spiticon = icon_overlay_spit_pounce
if(spiticon)
- var/image/I = image(icon, icon_overlay_spit)
+ var/image/I = image(icon, spiticon)
I.appearance_flags |= (RESET_COLOR|PIXEL_SCALE)
I.plane = MOB_PLANE
I.layer = MOB_LAYER
@@ -220,11 +226,11 @@
if(isnull(spit_projectile))
return
- if((last_spit + spit_delay) > world.time) //To prevent YATATATATATAT spitting.
+ if((spit_last + spit_delay) > world.time) //To prevent YATATATATATAT spitting.
to_chat(src, "You have not yet prepared your chemical glands. You must wait before spitting again.")
return
else
- last_spit = world.time
+ spit_last = world.time
if(spitting && incapacitated(INCAPACITATION_DISABLED))
to_chat(src, "You cannot spit in your current state.")
@@ -245,13 +251,12 @@
set category = "Abilities"
if(spitting)
- to_chat(src, "You stop preparing to spit.")
+ to_chat(src, "You stop preparing to spit.")
spitting = 0
else
- last_spit = world.time
spitting = 1
spit_projectile = /obj/item/projectile/energy/neurotoxin
- to_chat(src, "You prepare to spit neurotoxin.")
+ to_chat(src, "You prepare to spit neurotoxin.")
update_icon()
/mob/living/simple_mob/proc/acidspit()
@@ -260,13 +265,12 @@
set category = "Abilities"
if(spitting)
- to_chat(src, "You stop preparing to spit.")
+ to_chat(src, "You stop preparing to spit.")
spitting = 0
else
- last_spit = world.time
spitting = 1
spit_projectile = /obj/item/projectile/energy/acid
- to_chat(src, "You prepare to spit acid.")
+ to_chat(src, "You prepare to spit acid.")
update_icon()
/mob/living/simple_mob/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
@@ -275,7 +279,7 @@
set category = "Abilities"
if(!(O in oview(1)))
- to_chat(src, "[O] is too far away.")
+ to_chat(src, "[O] is too far away.")
return
// OBJ CHECK
@@ -297,7 +301,7 @@
cannot_melt = 1 //Gurgs : Everything that isn't a object, simulated wall, or simulated floor is assumed to be acid immune. Includes weird things like unsimulated floors and space.
if(cannot_melt)
- to_chat(src, "You cannot dissolve this object.")
+ to_chat(src, "You cannot dissolve this object.")
return
new /obj/effect/alien/acid(get_turf(O), O)
@@ -307,6 +311,15 @@
// spin blatantly stolen from BlackMajor's bigdragon
/mob/living/simple_mob/proc/speen(var/range = 2)
+ set name = "Spin Attack"
+ set desc = "Spins to strike enemies away from you."
+ set category = "Abilities"
+
+ if(world.time < speen_last)
+ to_chat(src, "You cannot spin again so soon.")
+ return
+
+ speen_last = world.time + speen_delay
var/list/thrownatoms = list()
for(var/mob/living/victim in oview(range, src))
thrownatoms += victim
@@ -318,7 +331,6 @@
addtimer(CALLBACK(src, .proc/speen_throw, am), 1)
playsound(src, "sound/weapons/punchmiss.ogg", 50, 1)
-//Split repulse into two parts so I can recycle this later
/mob/living/simple_mob/proc/speen_throw(var/atom/movable/AM, var/gentle = 0, var/damage = 10)
var/maxthrow = 7
var/atom/throwtarget
diff --git a/modular_chomp/icons/mob/xenoqueen_64.dmi b/modular_chomp/icons/mob/xenoqueen_64.dmi
index c859802e70..863aeb84ad 100644
Binary files a/modular_chomp/icons/mob/xenoqueen_64.dmi and b/modular_chomp/icons/mob/xenoqueen_64.dmi differ
diff --git a/vorestation.dme b/vorestation.dme
index e8b35050a9..34d5552779 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -4482,6 +4482,7 @@
#include "modular_chomp\code\modules\clothing\spacesuits\rig\rig.dm"
#include "modular_chomp\code\modules\emotes\definitions\audiable.dm"
#include "modular_chomp\code\modules\mob\holder.dm"
+#include "modular_chomp\code\modules\mob\living\emote.dm"
#include "modular_chomp\code\modules\mob\living\carbon\human\species\species.dm"
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\protean\_protean_defines.dm"
#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\protean\protean_blob.dm"