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"