Merge pull request #5981 from CHOMPStation2/upstream-merge-14720

[MIRROR] Speed and stuff
This commit is contained in:
Nadyr
2023-03-31 18:50:30 -04:00
committed by GitHub
103 changed files with 943 additions and 401 deletions

View File

@@ -292,7 +292,6 @@ var/global/list/semirandom_mob_spawner_decisions = list()
), ),
list(/mob/living/simple_mob/vore/solargrub), list(/mob/living/simple_mob/vore/solargrub),
list(/mob/living/simple_mob/vore/woof), list(/mob/living/simple_mob/vore/woof),
list(/mob/living/simple_mob/vore/alienanimals/teppi),
list(/mob/living/simple_mob/vore/alienanimals/space_ghost), list(/mob/living/simple_mob/vore/alienanimals/space_ghost),
list(/mob/living/simple_mob/vore/alienanimals/catslug), list(/mob/living/simple_mob/vore/alienanimals/catslug),
list(/mob/living/simple_mob/vore/alienanimals/space_jellyfish), list(/mob/living/simple_mob/vore/alienanimals/space_jellyfish),

View File

@@ -1,234 +1,240 @@
/decl/emote/audible/awoo /decl/emote/audible/awoo
key = "awoo" key = "awoo"
emote_message_3p = "lets out an awoo." emote_message_3p = "lets out an awoo."
emote_sound = 'sound/voice/awoo.ogg' emote_sound = 'sound/voice/awoo.ogg'
/decl/emote/audible/awoo2 /decl/emote/audible/awoo2
key = "awoo2" key = "awoo2"
emote_message_3p = "lets out an awoo." emote_message_3p = "lets out an awoo."
emote_sound = 'sound/voice/long_awoo.ogg' emote_sound = 'sound/voice/long_awoo.ogg'
/decl/emote/audible/growl /decl/emote/audible/growl
key = "growl" key = "growl"
emote_message_3p = "lets out a growl." emote_message_3p = "lets out a growl."
emote_sound = 'sound/voice/growl.ogg' emote_sound = 'sound/voice/growl.ogg'
/decl/emote/audible/woof /decl/emote/audible/woof
key = "woof" key = "woof"
emote_message_3p = "lets out a woof." emote_message_3p = "lets out a woof."
emote_sound = 'sound/voice/woof.ogg' emote_sound = 'sound/voice/woof.ogg'
/decl/emote/audible/woof2 /decl/emote/audible/woof2
key = "woof2" key = "woof2"
emote_message_3p = "lets out a woof." emote_message_3p = "lets out a woof."
emote_sound = 'sound/voice/woof2.ogg' emote_sound = 'sound/voice/woof2.ogg'
/decl/emote/audible/nya /decl/emote/audible/nya
key = "nya" key = "nya"
emote_message_3p = "lets out a nya." emote_message_3p = "lets out a nya."
emote_sound = 'sound/voice/nya.ogg' emote_sound = 'sound/voice/nya.ogg'
/decl/emote/audible/mrowl /decl/emote/audible/mrowl
key = "mrowl" key = "mrowl"
emote_message_3p = "mrowls." emote_message_3p = "mrowls."
emote_sound = 'sound/voice/mrow.ogg' emote_sound = 'sound/voice/mrow.ogg'
/decl/emote/audible/peep /decl/emote/audible/peep
key = "peep" key = "peep"
emote_message_3p = "peeps like a bird." emote_message_3p = "peeps like a bird."
emote_sound = 'sound/voice/peep.ogg' emote_sound = 'sound/voice/peep.ogg'
/decl/emote/audible/chirp /decl/emote/audible/chirp
key = "chirp" key = "chirp"
emote_message_3p = "chirps!" emote_message_3p = "chirps!"
emote_sound = 'sound/misc/nymphchirp.ogg' emote_sound = 'sound/misc/nymphchirp.ogg'
sound_vary = FALSE sound_vary = FALSE
/decl/emote/audible/hoot /decl/emote/audible/hoot
key = "hoot" key = "hoot"
emote_message_3p = "hoots!" emote_message_3p = "hoots!"
emote_sound = 'sound/voice/hoot.ogg' emote_sound = 'sound/voice/hoot.ogg'
/decl/emote/audible/weh /decl/emote/audible/weh
key = "weh" key = "weh"
emote_message_3p = "lets out a weh." emote_message_3p = "lets out a weh."
emote_sound = 'sound/voice/weh.ogg' emote_sound = 'sound/voice/weh.ogg'
/decl/emote/audible/merp /decl/emote/audible/merp
key = "merp" key = "merp"
emote_message_3p = "lets out a merp." emote_message_3p = "lets out a merp."
emote_sound = 'sound/voice/merp.ogg' emote_sound = 'sound/voice/merp.ogg'
/decl/emote/audible/myarp /decl/emote/audible/myarp
key = "myarp" key = "myarp"
emote_message_3p = "lets out a myarp." emote_message_3p = "lets out a myarp."
emote_sound = 'sound/voice/myarp.ogg' emote_sound = 'sound/voice/myarp.ogg'
/decl/emote/audible/bark /decl/emote/audible/bark
key = "bark" key = "bark"
emote_message_3p = "lets out a bark." emote_message_3p = "lets out a bark."
emote_sound = 'sound/voice/bark2.ogg' emote_sound = 'sound/voice/bark2.ogg'
/decl/emote/audible/bork /decl/emote/audible/bork
key = "bork" key = "bork"
emote_message_3p = "lets out a bork." emote_message_3p = "lets out a bork."
emote_sound = 'sound/voice/bork.ogg' emote_sound = 'sound/voice/bork.ogg'
/decl/emote/audible/mrow /decl/emote/audible/mrow
key = "mrow" key = "mrow"
emote_message_3p = "lets out a mrow." emote_message_3p = "lets out a mrow."
emote_sound = 'sound/voice/mrow.ogg' emote_sound = 'sound/voice/mrow.ogg'
/decl/emote/audible/hypno /decl/emote/audible/hypno
key = "hypno" key = "hypno"
emote_message_3p = "lets out a mystifying tone." emote_message_3p = "lets out a mystifying tone."
emote_sound = 'sound/voice/hypno.ogg' emote_sound = 'sound/voice/hypno.ogg'
/decl/emote/audible/hiss /decl/emote/audible/hiss
key = "hiss" key = "hiss"
emote_message_3p = "lets out a hiss." emote_message_3p = "lets out a hiss."
emote_sound = 'sound/voice/hiss.ogg' emote_sound = 'sound/voice/hiss.ogg'
/decl/emote/audible/rattle /decl/emote/audible/rattle
key = "rattle" key = "rattle"
emote_message_3p = "rattles!" emote_message_3p = "rattles!"
emote_sound = 'sound/voice/rattle.ogg' emote_sound = 'sound/voice/rattle.ogg'
/decl/emote/audible/squeak /decl/emote/audible/squeak
key = "squeak" key = "squeak"
emote_message_3p = "lets out a squeak." emote_message_3p = "lets out a squeak."
emote_sound = 'sound/effects/mouse_squeak.ogg' emote_sound = 'sound/effects/mouse_squeak.ogg'
/decl/emote/audible/geck /decl/emote/audible/geck
key = "geck" key = "geck"
emote_message_3p = "geckers!" emote_message_3p = "geckers!"
emote_sound = 'sound/voice/geck.ogg' emote_sound = 'sound/voice/geck.ogg'
/decl/emote/audible/baa /decl/emote/audible/baa
key = "baa" key = "baa"
emote_message_3p = "lets out a baa." emote_message_3p = "lets out a baa."
emote_sound = 'sound/voice/baa.ogg' emote_sound = 'sound/voice/baa.ogg'
/decl/emote/audible/baa2 /decl/emote/audible/baa2
key = "baa2" key = "baa2"
emote_message_3p = "bleats." emote_message_3p = "bleats."
emote_sound = 'sound/voice/baa2.ogg' emote_sound = 'sound/voice/baa2.ogg'
/* /*
/decl/emote/audible/deathgasp2 /decl/emote/audible/deathgasp2
key = "deathgasp2" key = "deathgasp2"
emote_message_3p = "[species.get_death_message()]" emote_message_3p = "[species.get_death_message()]"
m_type = 1 m_type = 1
emote_sound = 'sound/voice/deathgasp2.ogg' emote_sound = 'sound/voice/deathgasp2.ogg'
*/ */
/decl/emote/audible/mar /decl/emote/audible/mar
key = "mar" key = "mar"
emote_message_3p = "lets out a mar." emote_message_3p = "lets out a mar."
emote_sound = 'sound/voice/mar.ogg' emote_sound = 'sound/voice/mar.ogg'
/decl/emote/audible/wurble /decl/emote/audible/wurble
key = "wurble" key = "wurble"
emote_message_3p = "lets out a wurble." emote_message_3p = "lets out a wurble."
emote_sound = 'sound/voice/wurble.ogg' emote_sound = 'sound/voice/wurble.ogg'
/decl/emote/audible/snort /decl/emote/audible/snort
key = "snort" key = "snort"
emote_message_3p = "snorts!" emote_message_3p = "snorts!"
emote_sound = 'sound/voice/Snort.ogg' emote_sound = 'sound/voice/Snort.ogg'
sound_vary = FALSE sound_vary = FALSE
/decl/emote/audible/meow /decl/emote/audible/meow
key = "meow" key = "meow"
emote_message_3p = "gently meows!" emote_message_3p = "gently meows!"
emote_sound = 'sound/voice/Meow.ogg' emote_sound = 'sound/voice/Meow.ogg'
sound_vary = FALSE sound_vary = FALSE
/decl/emote/audible/moo /decl/emote/audible/moo
key = "moo" key = "moo"
emote_message_3p = "takes a breath and lets out a moo." emote_message_3p = "takes a breath and lets out a moo."
emote_sound = 'sound/voice/Moo.ogg' emote_sound = 'sound/voice/Moo.ogg'
/decl/emote/audible/croak /decl/emote/audible/croak
key = "croak" key = "croak"
emote_message_3p = "rumbles their throat, puffs their cheeks and croaks." emote_message_3p = "rumbles their throat, puffs their cheeks and croaks."
emote_sound = 'sound/voice/croak_frog.ogg' emote_sound = 'sound/voice/croak_frog.ogg'
/decl/emote/audible/gao /decl/emote/audible/gao
key = "gao" key = "gao"
emote_message_3p = "lets out a gao." emote_message_3p = "lets out a gao."
emote_sound = 'sound/voice/gao.ogg' emote_sound = 'sound/voice/gao.ogg'
/decl/emote/audible/cackle /decl/emote/audible/cackle
key = "cackle" key = "cackle"
emote_message_3p = "cackles hysterically!" emote_message_3p = "cackles hysterically!"
emote_sound = 'sound/voice/YeenCackle.ogg' emote_sound = 'sound/voice/YeenCackle.ogg'
/decl/emote/audible/spiderchitter /decl/emote/audible/spiderchitter
key = "spiderchitter" key = "spiderchitter"
emote_message_3p = "chitters." emote_message_3p = "chitters."
emote_sound = 'sound/voice/spiderchitter.ogg' emote_sound = 'sound/voice/spiderchitter.ogg'
/decl/emote/audible/spiderpurr /decl/emote/audible/spiderpurr
key = "spiderpurr" key = "spiderpurr"
emote_message_3p = "purrs." emote_message_3p = "purrs."
emote_sound = 'sound/voice/spiderpurr.ogg' emote_sound = 'sound/voice/spiderpurr.ogg'
/decl/emote/audible/squeaky /decl/emote/audible/squeaky
key = "squeaky" key = "squeaky"
emote_message_3p = "squeaks." emote_message_3p = "squeaks."
emote_sound = 'sound/items/drop/plushie.ogg' emote_sound = 'sound/items/drop/plushie.ogg'
/decl/emote/audible/mothscream /decl/emote/audible/mothscream
key = "mothscream" key = "mothscream"
emote_message_3p ="screams" emote_message_3p ="screams"
emote_sound = 'sound/voice/moth/scream_moth.ogg' emote_sound = 'sound/voice/moth/scream_moth.ogg'
/decl/emote/audible/mothchitter /decl/emote/audible/mothchitter
key = "mothchitter" key = "mothchitter"
emote_message_3p = "chitters" emote_message_3p = "chitters"
emote_sound = 'sound/voice/moth/moth_chitter.ogg' emote_sound = 'sound/voice/moth/moth_chitter.ogg'
/decl/emote/audible/mothlaugh /decl/emote/audible/mothlaugh
key = "mothlaugh" key = "mothlaugh"
emote_message_3p = "laughs" emote_message_3p = "laughs"
emote_sound = 'sound/voice/moth/moth_laugh.ogg' emote_sound = 'sound/voice/moth/moth_laugh.ogg'
/decl/emote/audible/gyoh /decl/emote/audible/gyoh
key = "gyoh" key = "gyoh"
emote_message_3p = "gyohs." emote_message_3p = "gyohs."
emote_sound = 'sound/voice/teppi/whine1.ogg' emote_sound = 'sound/voice/teppi/whine1.ogg'
var/list/bigsound = list('sound/voice/teppi/gyooh1.ogg', 'sound/voice/teppi/gyooh2.ogg', 'sound/voice/teppi/gyooh3.ogg', 'sound/voice/teppi/gyooh4.ogg', 'sound/voice/teppi/gyooh5.ogg','sound/voice/teppi/gyooh6.ogg') var/list/bigsound = list('sound/voice/teppi/gyooh1.ogg', 'sound/voice/teppi/gyooh2.ogg', 'sound/voice/teppi/gyooh3.ogg', 'sound/voice/teppi/gyooh4.ogg', 'sound/voice/teppi/gyooh5.ogg','sound/voice/teppi/gyooh6.ogg')
var/list/smolsound = list('sound/voice/teppi/whine1.ogg', 'sound/voice/teppi/whine2.ogg') var/list/smolsound = list('sound/voice/teppi/whine1.ogg', 'sound/voice/teppi/whine2.ogg')
/decl/emote/audible/gyoh/get_emote_sound(var/mob/living/user) /decl/emote/audible/gyoh/get_emote_sound(var/mob/living/user)
if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi)) if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi))
if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi/baby)) if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi/baby))
emote_sound = pick(smolsound) emote_sound = pick(smolsound)
else else
emote_sound = pick(bigsound) emote_sound = pick(bigsound)
else if(istype(user, /mob/living/silicon/pai)) else if(istype(user, /mob/living/silicon/pai))
var/mob/living/silicon/pai/me = user var/mob/living/silicon/pai/me = user
if(me.chassis == "teppi") if(me.chassis == "teppi")
emote_sound = pick(bigsound) emote_sound = pick(bigsound)
else else if(user.size_multiplier >= 1.5)
emote_sound = pick(smolsound) emote_sound = pick(bigsound)
else if(user.size_multiplier >= 1.5) else
emote_sound = pick(bigsound) emote_sound = pick(smolsound)
else else if(user.size_multiplier >= 1.5)
emote_sound = pick(smolsound) emote_sound = pick(bigsound)
. = ..() else
emote_sound = pick(smolsound)
. = ..()
/decl/emote/audible/rumble /decl/emote/audible/rumble
key = "rumble" key = "rumble"
emote_message_3p = "rumbles contentedly." emote_message_3p = "rumbles contentedly."
emote_sound = 'sound/voice/teppi/whine1.ogg' emote_sound = 'sound/voice/teppi/whine1.ogg'
var/list/bigsound = list('sound/voice/teppi/rumble.ogg') var/list/bigsound = list('sound/voice/teppi/rumble.ogg')
var/list/smolsound = list('sound/voice/teppi/cute_rumble.ogg') var/list/smolsound = list('sound/voice/teppi/cute_rumble.ogg')
/decl/emote/audible/rumble/get_emote_sound(var/mob/living/user) /decl/emote/audible/rumble/get_emote_sound(var/mob/living/user)
if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi)) if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi))
if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi/baby)) if(istype(user, /mob/living/simple_mob/vore/alienanimals/teppi/baby))
emote_sound = pick(smolsound) emote_sound = pick(smolsound)
else else
emote_sound = pick(bigsound) emote_sound = pick(bigsound)
else if(istype(user, /mob/living/silicon/pai)) else if(istype(user, /mob/living/silicon/pai))
var/mob/living/silicon/pai/me = user var/mob/living/silicon/pai/me = user
if(me.chassis == "teppi") if(me.chassis == "teppi")
emote_sound = pick(bigsound) emote_sound = pick(bigsound)
else if(user.size_multiplier >= 1.5) else if(user.size_multiplier >= 1.5)
emote_sound = pick(bigsound) emote_sound = pick(bigsound)
else else
emote_sound = pick(smolsound) emote_sound = pick(smolsound)
. = ..() else if(user.size_multiplier >= 1.5)
emote_sound = pick(bigsound)
else
emote_sound = pick(smolsound)
. = ..()
/decl/emote/audible/coyawoo /decl/emote/audible/coyawoo
key = "coyawoo" key = "coyawoo"
emote_message_3p = "lets out a scraggly awoo." emote_message_3p = "lets out a scraggly awoo."
emote_sound = 'sound/voice/coyoteawoo.ogg' emote_sound = 'sound/voice/coyoteawoo.ogg'
/decl/emote/audible/coyawoo2 /decl/emote/audible/coyawoo2
key = "coyawoo2" key = "coyawoo2"
emote_message_3p = "lets out a pronounced, scraggly awoo." emote_message_3p = "lets out a pronounced, scraggly awoo."
emote_sound = 'sound/voice/coyoteawoo2.ogg' emote_sound = 'sound/voice/coyoteawoo2.ogg'
/decl/emote/audible/coyawoo3 /decl/emote/audible/coyawoo3
key = "coyawoo3" key = "coyawoo3"
emote_message_3p = "yaps and lets out a scraggly awoo." emote_message_3p = "yaps and lets out a scraggly awoo."
emote_sound = 'sound/voice/coyoteawoo3.ogg' emote_sound = 'sound/voice/coyoteawoo3.ogg'
/decl/emote/audible/coyawoo4 /decl/emote/audible/coyawoo4
key = "coyawoo4" key = "coyawoo4"
emote_message_3p = "yaps several times, and lets out a short, scraggly awoo." emote_message_3p = "yaps several times, and lets out a short, scraggly awoo."
emote_sound = 'sound/voice/coyoteawoo4.ogg' emote_sound = 'sound/voice/coyoteawoo4.ogg'
/decl/emote/audible/coyawoo5 /decl/emote/audible/coyawoo5
key = "coyawoo5" key = "coyawoo5"
emote_message_3p = "lets out a scraggly, whine-awoo." emote_message_3p = "lets out a scraggly, whine-awoo."
emote_sound = 'sound/voice/coyoteawoo5.ogg' emote_sound = 'sound/voice/coyoteawoo5.ogg'

View File

@@ -556,4 +556,4 @@
return TRUE return TRUE
else if(humanform.say_understands(other, speaking)) //So they're speaking something other than promethean or sign, let's just ask our original mob if it understands else if(humanform.say_understands(other, speaking)) //So they're speaking something other than promethean or sign, let's just ask our original mob if it understands
return TRUE return TRUE
else return FALSE else return FALSE

View File

@@ -0,0 +1,504 @@
// Simple animal nanogoopeyness
/mob/living/simple_mob/protean_blob
name = "protean blob"
desc = "Some sort of big viscous pool of jelly."
tt_desc = "Animated nanogoop"
icon = 'icons/mob/species/protean/protean.dmi'
icon_state = "to_puddle"
icon_living = "puddle2"
icon_rest = "rest"
icon_dead = "puddle"
faction = "neutral"
maxHealth = 200
health = 200
say_list_type = /datum/say_list/protean_blob
show_stat_health = FALSE //We will do it ourselves
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
harm_intent_damage = 2
melee_damage_lower = 5
melee_damage_upper = 5
attacktext = list("slashed")
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
maxbodytemp = 900
movement_cooldown = 1
var/mob/living/carbon/human/humanform
var/obj/item/organ/internal/nano/refactory/refactory
var/datum/modifier/healing
var/obj/prev_left_hand
var/obj/prev_right_hand
var/human_brute = 0
var/human_burn = 0
player_msg = "In this form, you can move a little faster, your health will regenerate as long as you have metal in you, and you can ventcrawl!"
can_buckle = TRUE //Blobsurfing
/datum/say_list/protean_blob
speak = list("Blrb?","Sqrsh.","Glrsh!")
emote_hear = list("squishes softly","spluts quietly","makes wet noises")
emote_see = list("shifts wetly","undulates placidly")
//Constructor allows passing the human to sync damages
/mob/living/simple_mob/protean_blob/New(var/newloc, var/mob/living/carbon/human/H)
..()
if(H)
humanform = H
updatehealth()
refactory = locate() in humanform.internal_organs
verbs |= /mob/living/proc/ventcrawl
verbs |= /mob/living/proc/hide
else
update_icon()
/mob/living/simple_mob/protean_blob/Login()
. = ..()
copy_from_prefs_vr(bellies = FALSE) //Load vore prefs
/mob/living/simple_mob/protean_blob/Destroy()
humanform = null
refactory = null
vore_organs = null
vore_selected = null
if(healing)
healing.expire()
return ..()
/mob/living/simple_mob/protean_blob/say_understands(var/mob/other, var/datum/language/speaking = null)
// The parent of this proc and its parent are SHAMS and should be rewritten, but I'm not up to it right now.
if(!speaking)
return TRUE // can understand common, they're like, a normal person thing
return ..()
/mob/living/simple_mob/protean_blob/speech_bubble_appearance()
return "synthetic"
/mob/living/simple_mob/protean_blob/get_available_emotes()
return global._robot_default_emotes.Copy()
/mob/living/simple_mob/protean_blob/init_vore()
return //Don't make a random belly, don't waste your time
/mob/living/simple_mob/protean_blob/isSynthetic()
return TRUE // yup
/mob/living/simple_mob/protean_blob/Stat()
..()
if(humanform)
humanform.species.Stat(humanform)
/mob/living/simple_mob/protean_blob/update_icon()
if(humanform)
//Still have a refactory
if(istype(refactory))
icon_living = "puddle2"
//Else missing one
else
icon_living = "puddle1"
//Not human-based
else
icon_living = "puddle0"
..()
/mob/living/simple_mob/protean_blob/updatehealth()
if(!humanform)
return ..()
//Set the max
maxHealth = humanform.getMaxHealth()*2 //HUMANS, and their 'double health', bleh.
//Set us to their health, but, human health ignores robolimbs so we do it 'the hard way'
human_brute = humanform.getActualBruteLoss()
human_burn = humanform.getActualFireLoss()
health = maxHealth - humanform.getOxyLoss() - humanform.getToxLoss() - humanform.getCloneLoss() - human_brute - human_burn
//Alive, becoming dead
if((stat < DEAD) && (health <= 0))
death()
//Overhealth
if(health > getMaxHealth())
health = getMaxHealth()
//Grab any other interesting values
confused = humanform.confused
radiation = humanform.radiation
paralysis = humanform.paralysis
//Update our hud if we have one
if(healths)
if(stat != DEAD)
var/heal_per = (health / getMaxHealth()) * 100
switch(heal_per)
if(100 to INFINITY)
healths.icon_state = "health0"
if(80 to 100)
healths.icon_state = "health1"
if(60 to 80)
healths.icon_state = "health2"
if(40 to 60)
healths.icon_state = "health3"
if(20 to 40)
healths.icon_state = "health4"
if(0 to 20)
healths.icon_state = "health5"
else
healths.icon_state = "health6"
else
healths.icon_state = "health7"
// All the damage and such to the blob translates to the human
/mob/living/simple_mob/protean_blob/apply_effect(var/effect = 0, var/effecttype = STUN, var/blocked = 0, var/check_protection = 1)
if(humanform)
return humanform.apply_effect(effect, effecttype, blocked, check_protection)
else
return ..()
/mob/living/simple_mob/protean_blob/adjustBruteLoss(var/amount,var/include_robo)
amount *= 1.5
if(humanform)
return humanform.adjustBruteLoss(amount)
else
return ..()
/mob/living/simple_mob/protean_blob/adjustFireLoss(var/amount,var/include_robo)
amount *= 1.5
if(humanform)
return humanform.adjustFireLoss(amount)
else
return ..()
/mob/living/simple_mob/protean_blob/adjustToxLoss(amount)
if(humanform)
return humanform.adjustToxLoss(amount)
else
return ..()
/mob/living/simple_mob/protean_blob/adjustOxyLoss(amount)
if(humanform)
return humanform.adjustOxyLoss(amount)
else
return ..()
/mob/living/simple_mob/protean_blob/adjustHalLoss(amount)
if(humanform)
return humanform.adjustHalLoss(amount)
else
return ..()
/mob/living/simple_mob/protean_blob/adjustCloneLoss(amount)
if(humanform)
return humanform.adjustCloneLoss(amount)
else
return ..()
/mob/living/simple_mob/protean_blob/emp_act(severity)
if(humanform)
return humanform.emp_act(severity)
else
return ..()
/mob/living/simple_mob/protean_blob/ex_act(severity)
if(humanform)
return humanform.ex_act(severity)
else
return ..()
/mob/living/simple_mob/protean_blob/rad_act(severity)
if(humanform)
return humanform.ex_act(severity)
else
return ..()
/mob/living/simple_mob/protean_blob/bullet_act(obj/item/projectile/P)
if(humanform)
return humanform.bullet_act(P)
else
return ..()
/mob/living/simple_mob/protean_blob/death(gibbed, deathmessage = "dissolves away, leaving only a few spare parts!")
if(humanform)
humanform.death(gibbed, deathmessage)
else
animate(src, alpha = 0, time = 2 SECONDS)
sleep(2 SECONDS)
if(!QDELETED(src)) // Human's handle death should have taken us, but maybe we were adminspawned or something without a human counterpart
qdel(src)
/mob/living/simple_mob/protean_blob/Life()
. = ..()
if(. && istype(refactory) && humanform)
if(!healing && (human_brute || human_burn) && refactory.get_stored_material(MAT_STEEL) >= 100)
healing = humanform.add_modifier(/datum/modifier/protean/steel, origin = refactory)
else if(healing && !(human_brute || human_burn))
healing.expire()
healing = null
/mob/living/simple_mob/protean_blob/lay_down()
..()
if(resting)
animate(src,alpha = 40,time = 1 SECOND)
mouse_opacity = 0
plane = ABOVE_OBJ_PLANE
else
mouse_opacity = 1
icon_state = "wake"
animate(src,alpha = 255,time = 1 SECOND)
plane = MOB_PLANE
sleep(7)
update_icon()
//Potential glob noms
if(can_be_drop_pred) //Toggleable in vore panel
var/list/potentials = living_mobs(0)
if(potentials.len)
var/mob/living/target = pick(potentials)
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
if(target.buckled)
target.buckled.unbuckle_mob(target, force = TRUE)
target.forceMove(vore_selected)
to_chat(target,"<span class='warning'>\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
/mob/living/simple_mob/protean_blob/attack_target(var/atom/A)
if(refactory && istype(A,/obj/item/stack/material))
var/obj/item/stack/material/S = A
var/substance = S.material.name
var allowed = FALSE
for(var/material in PROTEAN_EDIBLE_MATERIALS)
if(material == substance) allowed = TRUE
if(!allowed)
return
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
else
return ..()
/mob/living/simple_mob/protean_blob/attackby(var/obj/item/O, var/mob/user)
if(refactory && istype(O,/obj/item/stack/material))
var/obj/item/stack/material/S = O
var/substance = S.material.name
var allowed = FALSE
for(var/material in PROTEAN_EDIBLE_MATERIALS)
if(material == substance) allowed = TRUE
if(!allowed)
return
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
else
return ..()
/mob/living/simple_mob/protean_blob/MouseEntered(location,control,params)
if(resting)
return
..()
var/global/list/disallowed_protean_accessories = list(
/obj/item/clothing/accessory/holster,
/obj/item/clothing/accessory/storage,
/obj/item/clothing/accessory/armor
)
// Helpers - Unsafe, WILL perform change.
/mob/living/carbon/human/proc/nano_intoblob(force)
if(!force && !isturf(loc))
to_chat(src,"<span class='warning'>You can't change forms while inside something.</span>")
return
var/panel_was_up = FALSE
if(client?.statpanel == "Protean")
panel_was_up = TRUE
handle_grasp() //It's possible to blob out before some key parts of the life loop. This results in things getting dropped at null. TODO: Fix the code so this can be done better.
remove_micros(src, src) //Living things don't fare well in roblobs.
if(buckled)
buckled.unbuckle_mob()
if(LAZYLEN(buckled_mobs))
for(var/buckledmob in buckled_mobs)
riding_datum.force_dismount(buckledmob)
if(pulledby)
pulledby.stop_pulling()
stop_pulling()
//Record where they should go
var/atom/creation_spot = drop_location()
//Create our new blob
var/mob/living/simple_mob/protean_blob/blob = new(creation_spot,src)
//Drop all our things
var/list/things_to_drop = contents.Copy()
var/list/things_to_not_drop = list(w_uniform,nif,l_store,r_store,wear_id,l_ear,r_ear) //And whatever else we decide for balancing.
/* No for now, because insta-pepperspray or flash on unblob
if(l_hand && l_hand.w_class <= ITEMSIZE_SMALL) //Hands but only if small or smaller
things_to_not_drop += l_hand
if(r_hand && r_hand.w_class <= ITEMSIZE_SMALL)
things_to_not_drop += r_hand
*/
things_to_drop -= things_to_not_drop //Crunch the lists
things_to_drop -= organs //Mah armbs
things_to_drop -= internal_organs //Mah sqeedily spooch
for(var/obj/item/I in things_to_drop) //rip hoarders
if(I.protean_drop_whitelist)
continue
drop_from_inventory(I)
if(w_uniform && istype(w_uniform,/obj/item/clothing)) //No webbings tho. We do this after in case a suit was in the way
var/obj/item/clothing/uniform = w_uniform
if(LAZYLEN(uniform.accessories))
for(var/obj/item/clothing/accessory/A in uniform.accessories)
if(is_type_in_list(A, disallowed_protean_accessories))
uniform.remove_accessory(null,A) //First param is user, but adds fingerprints and messages
//Size update
blob.transform = matrix()*size_multiplier
blob.size_multiplier = size_multiplier
if(l_hand) blob.prev_left_hand = l_hand //Won't save them if dropped above, but necessary if handdrop is disabled.
if(r_hand) blob.prev_right_hand = r_hand
//Put our owner in it (don't transfer var/mind)
blob.ckey = ckey
blob.ooc_notes = ooc_notes
temporary_form = blob
//Mail them to nullspace
moveToNullspace()
//Message
blob.visible_message("<b>[src.name]</b> collapses into a gooey blob!")
//Duration of the to_puddle iconstate that the blob starts with
sleep(13)
blob.update_icon() //Will remove the collapse anim
//Transfer vore organs
blob.vore_organs = vore_organs
blob.vore_selected = vore_selected
for(var/obj/belly/B as anything in vore_organs)
B.forceMove(blob)
B.owner = blob
//We can still speak our languages!
blob.languages = languages.Copy()
//Flip them to the protean panel
if(panel_was_up)
client?.statpanel = "Protean"
//Return our blob in case someone wants it
return blob
//For some reason, there's no way to force drop all the mobs grabbed. This ought to fix that. And be moved elsewhere. Call with caution, doesn't handle cycles.
/proc/remove_micros(var/src, var/mob/root)
for(var/obj/item/I in src)
remove_micros(I, root) //Recursion. I'm honestly depending on there being no containment loop, but at the cost of performance that can be fixed too.
if(istype(I, /obj/item/weapon/holder))
root.remove_from_mob(I)
/mob/living/carbon/human/proc/nano_outofblob(var/mob/living/simple_mob/protean_blob/blob, force)
if(!istype(blob))
return
if(!force && !isturf(blob.loc))
to_chat(blob,"<span class='warning'>You can't change forms while inside something.</span>")
return
var/panel_was_up = FALSE
if(client?.statpanel == "Protean")
panel_was_up = TRUE
if(buckled)
buckled.unbuckle_mob()
if(LAZYLEN(buckled_mobs))
for(var/buckledmob in buckled_mobs)
riding_datum.force_dismount(buckledmob)
if(pulledby)
pulledby.stop_pulling()
stop_pulling()
//Stop healing if we are
if(blob.healing)
blob.healing.expire()
//Play the animation
blob.icon_state = "from_puddle"
//Message
blob.visible_message("<b>[src.name]</b> reshapes into a humanoid appearance!")
//Duration of above animation
sleep(8)
//Record where they should go
var/atom/reform_spot = blob.drop_location()
//Size update
resize(blob.size_multiplier, FALSE, ignore_prefs = TRUE)
//Move them back where the blob was
forceMove(reform_spot)
//Put our owner in it (don't transfer var/mind)
ckey = blob.ckey
ooc_notes = blob.ooc_notes // Lets give the protean any updated notes from blob form.
temporary_form = null
//Transfer vore organs
vore_selected = blob.vore_selected
for(var/obj/belly/B as anything in blob.vore_organs)
B.forceMove(src)
B.owner = src
if(blob.prev_left_hand) put_in_l_hand(blob.prev_left_hand) //The restore for when reforming.
if(blob.prev_right_hand) put_in_r_hand(blob.prev_right_hand)
Life(1) //Fix my blindness right meow //Has to be moved up here, there exists a circumstance where blob could be deleted without vore organs moving right.
//Get rid of friend blob
qdel(blob)
//Flip them to the protean panel
if(panel_was_up)
client?.statpanel = "Protean"
//Return ourselves in case someone wants it
return src
/mob/living/simple_mob/protean_blob/CanStumbleVore(mob/living/target)
if(target == humanform)
return FALSE
return ..()
/mob/living/simple_mob/protean_blob/CanStumbleVore(mob/living/target)
if(target == humanform)
return FALSE
return ..()
/mob/living/carbon/human/CanStumbleVore(mob/living/target)
if(istype(target, /mob/living/simple_mob/protean_blob))
var/mob/living/simple_mob/protean_blob/PB = target
if(PB.humanform == src)
return FALSE
return ..()

View File

@@ -47,7 +47,7 @@
var/has_langs = list(LANGUAGE_GALCOM)// Text name of their language if they speak something other than galcom. They speak the first one. var/has_langs = list(LANGUAGE_GALCOM)// Text name of their language if they speak something other than galcom. They speak the first one.
//Movement things. //Movement things.
var/movement_cooldown = 5 // Lower is faster. var/movement_cooldown = 1 //VOREStation Edit - 1 is slower than normal human speed // Lower is faster.
var/movement_sound = null // If set, will play this sound when it moves on its own will. var/movement_sound = null // If set, will play this sound when it moves on its own will.
var/turn_sound = null // If set, plays the sound when the mob's dir changes in most cases. var/turn_sound = null // If set, plays the sound when the mob's dir changes in most cases.
var/movement_shake_radius = 0 // If set, moving will shake the camera of all living mobs within this radius slightly. var/movement_shake_radius = 0 // If set, moving will shake the camera of all living mobs within this radius slightly.

View File

@@ -32,7 +32,7 @@ GLOBAL_VAR_INIT(jellyfish_count, 0)
health = 100 health = 100
nutrition = 150 nutrition = 150
pass_flags = PASSTABLE pass_flags = PASSTABLE
movement_cooldown = 3.25 movement_cooldown = 1
see_in_dark = 10 see_in_dark = 10

View File

@@ -20,7 +20,7 @@
faction = "space mouse" faction = "space mouse"
maxHealth = 20 maxHealth = 20
health = 20 health = 20
movement_cooldown = 1 movement_cooldown = -1
see_in_dark = 10 see_in_dark = 10
@@ -81,7 +81,7 @@
movement_cooldown = initial(movement_cooldown) movement_cooldown = initial(movement_cooldown)
/mob/living/simple_mob/vore/alienanimals/dustjumper/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay) /mob/living/simple_mob/vore/alienanimals/dustjumper/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay)
. = ..() . = ..()
movement_cooldown = 50 movement_cooldown = 10
/datum/ai_holder/simple_mob/melee/evasive/dustjumper /datum/ai_holder/simple_mob/melee/evasive/dustjumper
hostile = FALSE hostile = FALSE

View File

@@ -21,7 +21,7 @@
maxHealth = 100000 maxHealth = 100000
health = 100000 health = 100000
movement_cooldown = 50 movement_cooldown = 10
see_in_dark = 10 see_in_dark = 10
@@ -155,7 +155,7 @@
restless = TRUE restless = TRUE
hazard_pickup_chance *= 1.5 hazard_pickup_chance *= 1.5
hazard_drop_chance *= 1.5 hazard_drop_chance *= 1.5
movement_cooldown = 1 movement_cooldown = -1
ai_holder.base_wander_delay = 2 ai_holder.base_wander_delay = 2
ai_holder.wander_delay = 2 ai_holder.wander_delay = 2
ai_holder.wander = TRUE ai_holder.wander = TRUE
@@ -185,7 +185,7 @@
. = ..() . = ..()
var/mob/living/simple_mob/vore/overmap/spacewhale/W = holder var/mob/living/simple_mob/vore/overmap/spacewhale/W = holder
if(stance == STANCE_FIGHT) if(stance == STANCE_FIGHT)
W.movement_cooldown = 0 W.movement_cooldown = -2
W.child_om_marker.glide_size = 0 W.child_om_marker.glide_size = 0
if(stance == STANCE_IDLE) if(stance == STANCE_IDLE)
W.hazard_pickup_chance = initial(W.hazard_pickup_chance) W.hazard_pickup_chance = initial(W.hazard_pickup_chance)

View File

@@ -25,7 +25,7 @@
faction = "space ghost" faction = "space ghost"
maxHealth = 50 maxHealth = 50
health = 50 health = 50
movement_cooldown = 3.25 movement_cooldown = 0
see_in_dark = 10 see_in_dark = 10
@@ -139,7 +139,7 @@
faction = "space ghost" faction = "space ghost"
maxHealth = 5 maxHealth = 5
health = 5 health = 5
movement_cooldown = 1 movement_cooldown = -1
see_in_dark = 10 see_in_dark = 10
alpha = 128 alpha = 128

View File

@@ -20,7 +20,7 @@
faction = "space turtle" faction = "space turtle"
maxHealth = 1000 maxHealth = 1000
health = 1000 health = 1000
movement_cooldown = 20 movement_cooldown = 10
see_in_dark = 10 see_in_dark = 10

View File

@@ -20,7 +20,7 @@
status_flags = CANPUSH status_flags = CANPUSH
pass_flags = PASSTABLE pass_flags = PASSTABLE
movement_cooldown = 5 movement_cooldown = 1.5
universal_understand = TRUE universal_understand = TRUE
can_be_antagged = TRUE can_be_antagged = TRUE
@@ -30,7 +30,7 @@
var/mob/living/carbon/human/host = null // The humanoid host for the brain worm. var/mob/living/carbon/human/host = null // The humanoid host for the brain worm.
var/mob/living/captive_brain/host_brain // Used for swapping control of the body back and forth. var/mob/living/captive_brain/host_brain // Used for swapping control of the body back and forth.
var/roundstart = FALSE // If true, spawning won't try to pull a ghost. var/roundstart = FALSE // If true, spawning won't try to pull a ghost.
var/antag = TRUE // If false, will avoid setting up objectives and events var/antag = TRUE // If false, will avoid setting up objectives and events
@@ -39,7 +39,7 @@
var/true_name = null // String used when speaking among other worms. var/true_name = null // String used when speaking among other worms.
var/controlling = FALSE // Used in human death ceck. var/controlling = FALSE // Used in human death ceck.
var/docile = FALSE // Sugar can stop borers from acting. var/docile = FALSE // Sugar can stop borers from acting.
var/has_reproduced = FALSE var/has_reproduced = FALSE
var/used_dominate // world.time when the dominate power was last used. var/used_dominate // world.time when the dominate power was last used.
@@ -273,4 +273,4 @@
/decl/mob_organ_names/borer /decl/mob_organ_names/borer
hit_zones = list("head", "central segment", "tail segment") hit_zones = list("head", "central segment", "tail segment")

View File

@@ -73,7 +73,7 @@
maxHealth = 200 maxHealth = 200
health = 200 health = 200
pass_flags = PASSTABLE pass_flags = PASSTABLE
movement_cooldown = 10 movement_cooldown = 3
movement_sound = 'sound/effects/spider_loop.ogg' movement_sound = 'sound/effects/spider_loop.ogg'
poison_resist = 0.5 poison_resist = 0.5

View File

@@ -5,7 +5,7 @@
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 15 melee_damage_upper = 15
movement_cooldown = 4 movement_cooldown = 3
/mob/living/simple_mob/animal/giant_spider/frost/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/frost/broodling/Initialize()
. = ..() . = ..()
@@ -23,7 +23,7 @@
taser_kill = TRUE taser_kill = TRUE
base_attack_cooldown = 20 base_attack_cooldown = 20
movement_cooldown = 5 movement_cooldown = -1
/mob/living/simple_mob/animal/giant_spider/electric/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/electric/broodling/Initialize()
. = ..() . = ..()
@@ -38,7 +38,7 @@
maxHealth = 40 maxHealth = 40
health = 40 health = 40
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/animal/giant_spider/hunter/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/hunter/broodling/Initialize()
. = ..() . = ..()
@@ -53,7 +53,7 @@
maxHealth = 40 maxHealth = 40
health = 40 health = 40
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/animal/giant_spider/lurker/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/lurker/broodling/Initialize()
. = ..() . = ..()
@@ -68,7 +68,7 @@
maxHealth = 60 maxHealth = 60
health = 60 health = 60
movement_cooldown = 8 movement_cooldown = 3
ai_holder_type = /datum/ai_holder/simple_mob/melee ai_holder_type = /datum/ai_holder/simple_mob/melee
/mob/living/simple_mob/animal/giant_spider/nurse/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/nurse/broodling/Initialize()
@@ -84,7 +84,7 @@
maxHealth = 40 maxHealth = 40
health = 40 health = 40
movement_cooldown = 4 movement_cooldown = 3
/mob/living/simple_mob/animal/giant_spider/pepper/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/pepper/broodling/Initialize()
. = ..() . = ..()
@@ -102,7 +102,7 @@
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 15 melee_damage_upper = 15
movement_cooldown = 4 movement_cooldown = 1
/mob/living/simple_mob/animal/giant_spider/thermic/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/thermic/broodling/Initialize()
. = ..() . = ..()
@@ -117,7 +117,7 @@
maxHealth = 40 maxHealth = 40
health = 40 health = 40
movement_cooldown = 4 movement_cooldown = 1
/mob/living/simple_mob/animal/giant_spider/tunneler/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/tunneler/broodling/Initialize()
. = ..() . = ..()
@@ -134,7 +134,7 @@
base_attack_cooldown = 20 base_attack_cooldown = 20
movement_cooldown = 5 movement_cooldown = 1.5
/mob/living/simple_mob/animal/giant_spider/webslinger/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/webslinger/broodling/Initialize()
. = ..() . = ..()
@@ -152,7 +152,7 @@
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 20 melee_damage_upper = 20
movement_cooldown = 8 movement_cooldown = 3
/mob/living/simple_mob/animal/giant_spider/broodling/Initialize() /mob/living/simple_mob/animal/giant_spider/broodling/Initialize()
. = ..() . = ..()
@@ -161,4 +161,4 @@
/mob/living/simple_mob/animal/giant_spider/broodling/death() /mob/living/simple_mob/animal/giant_spider/broodling/death()
new /obj/effect/decal/cleanable/spiderling_remains(src.loc) new /obj/effect/decal/cleanable/spiderling_remains(src.loc)
qdel(src) qdel(src)

View File

@@ -29,7 +29,7 @@
poison_per_bite = 3 poison_per_bite = 3
poison_type = "chloralhydrate" poison_type = "chloralhydrate"
movement_cooldown = 5 movement_cooldown = 2
player_msg = "Upon dying, you will release a swarm of spiderlings or young hunter spiders.<br>\ player_msg = "Upon dying, you will release a swarm of spiderlings or young hunter spiders.<br>\
If a spider emerges, you will be placed in control of it." If a spider emerges, you will be placed in control of it."

View File

@@ -30,7 +30,7 @@
melee_damage_lower = 9 melee_damage_lower = 9
melee_damage_upper = 15 melee_damage_upper = 15
movement_cooldown = 0 // Hunters are FAST. movement_cooldown = -2 // Hunters are FAST.
ai_holder_type = /datum/ai_holder/simple_mob/melee/hunter_spider ai_holder_type = /datum/ai_holder/simple_mob/melee/hunter_spider

View File

@@ -33,7 +33,7 @@
poison_per_bite = 5 poison_per_bite = 5
movement_cooldown = 5 movement_cooldown = 1.5
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 10 melee_damage_upper = 10

View File

@@ -33,7 +33,7 @@
maxHealth = 40 maxHealth = 40
health = 40 health = 40
movement_cooldown = 5 // A bit faster so that they can inject the eggs easier. movement_cooldown = 1.5 // A bit faster so that they can inject the eggs easier.
melee_damage_lower = 5 // Doesn't do a lot of damage, since the goal is to make more spiders with egg attacks. melee_damage_lower = 5 // Doesn't do a lot of damage, since the goal is to make more spiders with egg attacks.
melee_damage_upper = 10 melee_damage_upper = 10

View File

@@ -39,7 +39,7 @@
melee_damage_upper = 40 melee_damage_upper = 40
attack_armor_pen = 15 attack_armor_pen = 15
movement_cooldown = 15 movement_cooldown = 4
poison_chance = 30 poison_chance = 30
poison_per_bite = 0.5 poison_per_bite = 0.5
@@ -82,4 +82,3 @@
exploded = TRUE exploded = TRUE
explosion(src.loc, explosion_dev_range, explosion_heavy_range, explosion_light_range, explosion_flash_range) explosion(src.loc, explosion_dev_range, explosion_heavy_range, explosion_light_range, explosion_flash_range)
return ..() return ..()

View File

@@ -14,7 +14,7 @@
maxHealth = 1 maxHealth = 1
health = 1 health = 1
movement_cooldown = 2.5 movement_cooldown = -1
mob_size = MOB_MINISCULE mob_size = MOB_MINISCULE
pass_flags = PASSTABLE pass_flags = PASSTABLE
@@ -74,4 +74,4 @@
name = "bug remains" name = "bug remains"
desc = "Green squishy mess." desc = "Green squishy mess."
icon = 'icons/effects/effects.dmi' icon = 'icons/effects/effects.dmi'
icon_state = "greenshatter" icon_state = "greenshatter"

View File

@@ -10,6 +10,6 @@
icon_dead = "mouse_brown_dead" icon_dead = "mouse_brown_dead"
kitchen_tag = "rodent" kitchen_tag = "rodent"
movement_cooldown = 0.5 movement_cooldown = -2
body_color = "brown" body_color = "brown"

View File

@@ -15,7 +15,7 @@
melee_damage_lower = 1 melee_damage_lower = 1
melee_damage_upper = 3 melee_damage_upper = 3
movement_cooldown = 1.5 movement_cooldown = -1
mob_size = MOB_MINISCULE mob_size = MOB_MINISCULE
pass_flags = PASSTABLE pass_flags = PASSTABLE

View File

@@ -18,7 +18,7 @@
melee_damage_lower = 3 melee_damage_lower = 3
melee_damage_upper = 3 melee_damage_upper = 3
movement_cooldown = 0 movement_cooldown = -1
hovering = TRUE // Birds can fly. hovering = TRUE // Birds can fly.
softfall = TRUE softfall = TRUE
parachuting = TRUE parachuting = TRUE
@@ -90,4 +90,4 @@
icon_scale_y = 0.5 icon_scale_y = 0.5
/decl/mob_organ_names/bird /decl/mob_organ_names/bird
hit_zones = list("head", "chest", "left leg", "right leg", "left wing", "right wing") hit_zones = list("head", "chest", "left leg", "right leg", "left wing", "right wing")

View File

@@ -35,7 +35,7 @@ var/list/_cat_default_emotes = list(
icon_state = "cat2" icon_state = "cat2"
item_state = "cat2" item_state = "cat2"
movement_cooldown = 0.5 SECONDS movement_cooldown = -1
meat_amount = 1 meat_amount = 1
see_in_dark = 6 // Not sure if this actually works. see_in_dark = 6 // Not sure if this actually works.

View File

@@ -5,7 +5,7 @@
icon_state = "fennec" icon_state = "fennec"
item_state = "fennec" item_state = "fennec"
movement_cooldown = 0.5 SECONDS movement_cooldown = -1
see_in_dark = 6 see_in_dark = 6
response_help = "pets" response_help = "pets"

View File

@@ -9,7 +9,7 @@
icon_rest = "fox2_rest" icon_rest = "fox2_rest"
icon = 'icons/mob/pets.dmi' icon = 'icons/mob/pets.dmi'
movement_cooldown = 0.5 movement_cooldown = -1
see_in_dark = 6 see_in_dark = 6
mob_size = MOB_SMALL //Foxes are not smaller than cats so bumping them up to small mob_size = MOB_SMALL //Foxes are not smaller than cats so bumping them up to small
@@ -243,4 +243,4 @@
max_co2 = 0 max_co2 = 0
min_n2 = 0 min_n2 = 0
max_n2 = 0 max_n2 = 0
minbodytemp = 0 minbodytemp = 0

View File

@@ -32,7 +32,7 @@
meat_amount = 2 meat_amount = 2
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
movement_cooldown = 0 movement_cooldown = -1
melee_damage_lower = 2 melee_damage_lower = 2
melee_damage_upper = 6 melee_damage_upper = 6
@@ -64,4 +64,3 @@
speak = list("Awrr?", "Aowrl!", "Worrl.") speak = list("Awrr?", "Aowrl!", "Worrl.")
emote_see = list("sniffs the air cautiously","looks around") emote_see = list("sniffs the air cautiously","looks around")
emote_hear = list("snuffles") emote_hear = list("snuffles")

View File

@@ -30,7 +30,7 @@
maxHealth = 50 maxHealth = 50
health = 50 health = 50
movement_cooldown = 0 movement_cooldown = -1
meat_amount = 4 meat_amount = 4
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/chicken

View File

@@ -13,7 +13,7 @@
maxHealth = 20 //don't want Fluff to die on a missclick maxHealth = 20 //don't want Fluff to die on a missclick
health = 20 health = 20
movement_cooldown = 5 movement_cooldown = 1.5
makes_dirt = 0 makes_dirt = 0
see_in_dark = 5 see_in_dark = 5
@@ -47,4 +47,4 @@
icon_state = "diyaab" icon_state = "diyaab"
icon_living = "diyaab" icon_living = "diyaab"
icon_dead = "diyaab_dead" icon_dead = "diyaab_dead"
icon = 'icons/jungle.dmi' icon = 'icons/jungle.dmi'

View File

@@ -40,7 +40,7 @@
var/energy = 100 var/energy = 100
var/max_energy = 100 var/max_energy = 100
movement_cooldown = 0.5 movement_cooldown = -1
melee_damage_lower = 5 melee_damage_lower = 5
melee_damage_upper = 10 melee_damage_upper = 10
@@ -174,4 +174,4 @@
/decl/mob_organ_names/frostfly /decl/mob_organ_names/frostfly
hit_zones = list("head", "thorax", "abdomen", "left vestigal wing", "right vestigal wing", "left legs", "right legs") hit_zones = list("head", "thorax", "abdomen", "left vestigal wing", "right vestigal wing", "left legs", "right legs")

View File

@@ -38,7 +38,7 @@
maxHealth = 10 maxHealth = 10
health = 10 health = 10
movement_cooldown = -1 movement_cooldown = -2
hovering = TRUE hovering = TRUE
melee_damage_lower = 1 melee_damage_lower = 1
@@ -80,7 +80,7 @@
maxHealth = 30 maxHealth = 30
health = 30 health = 30
movement_cooldown = -2 movement_cooldown = -3
melee_damage_upper = 5 melee_damage_upper = 5
@@ -127,4 +127,4 @@
hostile = initial(hostile) hostile = initial(hostile)
/decl/mob_organ_names/smallflying /decl/mob_organ_names/smallflying
hit_zones = list("body", "left wing", "right wing") //For flying things too tiny to be granular hit_zones = list("body", "left wing", "right wing") //For flying things too tiny to be granular

View File

@@ -149,7 +149,7 @@ Field studies suggest analytical abilities on par with some species of cepholapo
maxHealth = 150 maxHealth = 150
health = 150 health = 150
movement_cooldown = 2 movement_cooldown = -1
base_attack_cooldown = 1 SECOND base_attack_cooldown = 1 SECOND
organ_names = /decl/mob_organ_names/grafadreka organ_names = /decl/mob_organ_names/grafadreka

View File

@@ -47,7 +47,7 @@
"rad" = 0 "rad" = 0
) )
movement_cooldown = 2 movement_cooldown = -1
mob_size = MOB_SMALL mob_size = MOB_SMALL
pass_flags = PASSTABLE pass_flags = PASSTABLE
@@ -73,4 +73,4 @@
emote_see = list("stomps the ground", "sniffs the air", "chews on something") emote_see = list("stomps the ground", "sniffs the air", "chews on something")
/decl/mob_organ_names/hare /decl/mob_organ_names/hare
hit_zones = list("head", "chest", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "left head spike", "right head spike") hit_zones = list("head", "chest", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "left head spike", "right head spike")

View File

@@ -39,7 +39,7 @@
maxHealth = 200 maxHealth = 200
health = 200 health = 200
movement_cooldown = 10 movement_cooldown = 4
movement_sound = 'sound/weapons/heavysmash.ogg' movement_sound = 'sound/weapons/heavysmash.ogg'
movement_shake_radius = 5 movement_shake_radius = 5

View File

@@ -39,7 +39,7 @@
universal_understand = 1 universal_understand = 1
movement_cooldown = 1 movement_cooldown = -1
melee_damage_lower = 15 melee_damage_lower = 15
melee_damage_upper = 20 melee_damage_upper = 20
@@ -427,4 +427,4 @@
attack_speed_percent = 0.8 attack_speed_percent = 0.8
/decl/mob_organ_names/kururak /decl/mob_organ_names/kururak
hit_zones = list("head", "chest", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "far left tail", "far right tail", "left middle tail", "right middle tail") hit_zones = list("head", "chest", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "far left tail", "far right tail", "left middle tail", "right middle tail")

View File

@@ -60,7 +60,7 @@
holder_type = /obj/item/weapon/holder/leech holder_type = /obj/item/weapon/holder/leech
movement_cooldown = 0 movement_cooldown = -2
aquatic_movement = -2 aquatic_movement = -2
melee_damage_lower = 1 melee_damage_lower = 1

View File

@@ -41,7 +41,7 @@
hovering = TRUE hovering = TRUE
movement_cooldown = 0.5 movement_cooldown = -1
melee_damage_lower = 5 melee_damage_lower = 5
melee_damage_upper = 10 melee_damage_upper = 10
@@ -144,4 +144,4 @@
return FALSE return FALSE
/decl/mob_organ_names/moth /decl/mob_organ_names/moth
hit_zones = list("head", "thorax", "abdomen", "left forewing", "left hindwing", "right forewing", "right hindwing", "left foreleg", "right foreleg", "left hindleg", "right hindleg") hit_zones = list("head", "thorax", "abdomen", "left forewing", "left hindwing", "right forewing", "right hindwing", "left foreleg", "right foreleg", "left hindleg", "right hindleg")

View File

@@ -34,7 +34,7 @@
universal_understand = 1 universal_understand = 1
movement_cooldown = 0 movement_cooldown = -1
melee_damage_lower = 5 melee_damage_lower = 5
melee_damage_upper = 15 melee_damage_upper = 15

View File

@@ -31,7 +31,7 @@
maxHealth = 125 maxHealth = 125
health = 125 health = 125
minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps
movement_cooldown = 0.5 SECONDS movement_cooldown = -1
heat_resist = -0.50 heat_resist = -0.50
cold_resist = 0.75 cold_resist = 0.75
melee_damage_lower = 15 melee_damage_lower = 15

View File

@@ -44,7 +44,7 @@
) )
heat_resist = -0.50 heat_resist = -0.50
cold_resist = 0.75 cold_resist = 0.75
movement_cooldown = 5 movement_cooldown = -1
minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps
melee_damage_lower = 6 melee_damage_lower = 6
melee_damage_upper = 14 melee_damage_upper = 14
@@ -110,6 +110,6 @@
ai_holder_type = /datum/ai_holder/simple_mob/passive ai_holder_type = /datum/ai_holder/simple_mob/passive
makes_dirt = 0 makes_dirt = 0
faction = "neutral" faction = "neutral"
/decl/mob_organ_names/shantak /decl/mob_organ_names/shantak
hit_zones = list("head", "torso", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail", "mane", "snout") hit_zones = list("head", "torso", "left foreleg", "right foreleg", "left hind leg", "right hind leg", "tail", "mane", "snout")

View File

@@ -30,7 +30,7 @@
maxHealth = 60 maxHealth = 60
health = 60 health = 60
movement_cooldown = 0 movement_cooldown = -2
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 15 melee_damage_upper = 15

View File

@@ -87,7 +87,7 @@
projectilesound = 'sound/weapons/pierce.ogg' projectilesound = 'sound/weapons/pierce.ogg'
movement_cooldown = 10 movement_cooldown = 3
/mob/living/simple_mob/animal/space/alien/queen/empress /mob/living/simple_mob/animal/space/alien/queen/empress
name = "alien empress" name = "alien empress"

View File

@@ -12,7 +12,7 @@
maxHealth = 125 maxHealth = 125
health = 125 health = 125
movement_cooldown = 0.5 SECONDS movement_cooldown = -1
melee_damage_lower = 15 melee_damage_lower = 15
melee_damage_upper = 35 melee_damage_upper = 35
@@ -46,4 +46,4 @@
set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards." set desc = "Enrage and become vastly stronger for a period of time, however you will be weaker afterwards."
set category = "Abilities" set category = "Abilities"
add_modifier(/datum/modifier/berserk, 30 SECONDS) add_modifier(/datum/modifier/berserk, 30 SECONDS)

View File

@@ -37,7 +37,7 @@
faction = "carp" faction = "carp"
maxHealth = 25 maxHealth = 25
health = 25 health = 25
movement_cooldown = 0 // Carp go fast movement_cooldown = -2
hovering = TRUE hovering = TRUE
response_help = "pets the" response_help = "pets the"
@@ -86,7 +86,7 @@
maxHealth = 50 maxHealth = 50
health = 50 health = 50
movement_cooldown = 5 // Slower than the younger carp. movement_cooldown = 1 // Slower than the younger carp.
mob_size = MOB_LARGE mob_size = MOB_LARGE
pixel_x = -16 pixel_x = -16
@@ -107,7 +107,7 @@
maxHealth = 230 maxHealth = 230
health = 230 health = 230
movement_cooldown = 10 movement_cooldown = 3
melee_damage_lower = 15 // About 20 DPS. melee_damage_lower = 15 // About 20 DPS.
melee_damage_upper = 25 melee_damage_upper = 25
@@ -157,5 +157,3 @@
/mob/living/simple_mob/animal/space/carp/holographic/death() /mob/living/simple_mob/animal/space/carp/holographic/death()
..() ..()
derez() derez()

View File

@@ -30,7 +30,7 @@ TODO: Make them light up and heat the air when exposed to oxygen.
faction = "virgo3b" faction = "virgo3b"
maxHealth = 100 maxHealth = 100
health = 100 health = 100
movement_cooldown = 12 movement_cooldown = 4
say_list_type = /datum/say_list/gaslamp say_list_type = /datum/say_list/gaslamp
ai_holder_type = /datum/ai_holder/simple_mob/gaslamp ai_holder_type = /datum/ai_holder/simple_mob/gaslamp

View File

@@ -31,7 +31,7 @@
maxHealth = 15 maxHealth = 15
health = 15 health = 15
movement_cooldown = 8 // SLOW-ASS MUTHAFUCKA, I hope. movement_cooldown = 3 // SLOW-ASS MUTHAFUCKA, I hope.
response_help = "pets" response_help = "pets"
response_disarm = "shoos" response_disarm = "shoos"

View File

@@ -12,7 +12,7 @@
maxHealth = 200 maxHealth = 200
health = 200 health = 200
movement_cooldown = 0 movement_cooldown = -1
faction = "worm" faction = "worm"
@@ -372,4 +372,4 @@
if(previous) if(previous)
previous.update_body_faction() previous.update_body_faction()
return 1 return 1
return 0 return 0

View File

@@ -17,7 +17,7 @@
maxHealth = 30 maxHealth = 30
melee_damage_lower = 2 melee_damage_lower = 2
melee_damage_upper = 4 melee_damage_upper = 4
movement_cooldown = 0 movement_cooldown = -2
hovering = TRUE hovering = TRUE
attacktext = list("slammed into") attacktext = list("slammed into")

View File

@@ -13,7 +13,7 @@
icon_gib = "syndicate_gib" icon_gib = "syndicate_gib"
faction = "syndicate" faction = "syndicate"
movement_cooldown = 4 movement_cooldown = 1
status_flags = 0 status_flags = 0
@@ -362,7 +362,7 @@
icon_state = "syndicatemeleespace" icon_state = "syndicatemeleespace"
icon_living = "syndicatemeleespace" icon_living = "syndicatemeleespace"
movement_cooldown = 0 movement_cooldown = -1
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 100) // Same armor as their voidsuit armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 100) // Same armor as their voidsuit
@@ -387,7 +387,7 @@
icon_state = "syndicaterangedpsace" icon_state = "syndicaterangedpsace"
icon_living = "syndicaterangedpsace" icon_living = "syndicaterangedpsace"
movement_cooldown = 0 movement_cooldown = -1
min_oxy = 0 min_oxy = 0
max_oxy = 0 max_oxy = 0

View File

@@ -10,7 +10,7 @@
shock_resist = 1 shock_resist = 1
poison_resist = 1 poison_resist = 1
movement_cooldown = 0 movement_cooldown = -2
mob_bump_flag = 0 // If the illusion can't be swapped it will be obvious. mob_bump_flag = 0 // If the illusion can't be swapped it will be obvious.
response_help = "pushes a hand through" response_help = "pushes a hand through"

View File

@@ -29,7 +29,7 @@
faction = "underdark" faction = "underdark"
maxHealth = 25 maxHealth = 25
health = 25 health = 25
movement_cooldown = 0 movement_cooldown = -1
movement_sound = 'sound/effects/servostep.ogg' movement_sound = 'sound/effects/servostep.ogg'
pass_flags = PASSTABLE pass_flags = PASSTABLE
@@ -68,4 +68,4 @@
/mob/living/simple_mob/mechanical/corrupt_maint_drone/death() /mob/living/simple_mob/mechanical/corrupt_maint_drone/death()
..(null,"is smashed into pieces!") ..(null,"is smashed into pieces!")
qdel(src) qdel(src)

View File

@@ -29,7 +29,7 @@
maxHealth = 65 maxHealth = 65
health = 40 health = 40
movement_cooldown = 4 movement_cooldown = 1
response_help = "pets the" response_help = "pets the"
response_disarm = "gently pushes aside the" response_disarm = "gently pushes aside the"

View File

@@ -43,7 +43,7 @@
maxHealth = 50 // Shield has 150 for total of 200. maxHealth = 50 // Shield has 150 for total of 200.
health = 50 health = 50
movement_cooldown = 5 movement_cooldown = 1.5
hovering = TRUE hovering = TRUE
base_attack_cooldown = 5 base_attack_cooldown = 5
@@ -102,7 +102,7 @@
// Difference is that it should not be faster than you. // Difference is that it should not be faster than you.
/mob/living/simple_mob/mechanical/combat_drone/lesser /mob/living/simple_mob/mechanical/combat_drone/lesser
desc = "An automated combat drone with an aged apperance." desc = "An automated combat drone with an aged apperance."
movement_cooldown = 10 movement_cooldown = 3
// This one is the type spawned by the random event. // This one is the type spawned by the random event.
@@ -111,4 +111,4 @@
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/event ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/event
/decl/mob_organ_names/combatdrone /decl/mob_organ_names/combatdrone
hit_zones = list("chassis", "comms array", "sensor suite", "left weapons module", "right weapons module", "maneuvering thruster") hit_zones = list("chassis", "comms array", "sensor suite", "left weapons module", "right weapons module", "maneuvering thruster")

View File

@@ -29,7 +29,7 @@
maxHealth = 50 maxHealth = 50
health = 50 health = 50
movement_cooldown = 5 movement_cooldown = 1.5
hovering = TRUE hovering = TRUE
base_attack_cooldown = 2.5 SECONDS base_attack_cooldown = 2.5 SECONDS
@@ -179,4 +179,4 @@
name = "scavenger drone" name = "scavenger drone"
ignoreunarmed = FALSE ignoreunarmed = FALSE
allowedtools = list(/obj/item/weapon/pickaxe) allowedtools = list(/obj/item/weapon/pickaxe)
projectiletype = /obj/item/projectile/energy/excavate/weak projectiletype = /obj/item/projectile/energy/excavate/weak

View File

@@ -4,7 +4,7 @@
icon_state = "white" icon_state = "white"
icon_living = "white" icon_living = "white"
attacktext = list("prodded") attacktext = list("prodded")
movement_cooldown = 5 movement_cooldown = 1.5
melee_damage_lower = 2 melee_damage_lower = 2
melee_damage_upper = 2 melee_damage_upper = 2
@@ -88,4 +88,4 @@
break // Only one resupply per pulse. break // Only one resupply per pulse.
/decl/mob_organ_names/hivebotsupport /decl/mob_organ_names/hivebotsupport
hit_zones = list("central chassis", "positioning servo", "head", "sensor suite", "manipulator arm", "battle analytics mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg") hit_zones = list("central chassis", "positioning servo", "head", "sensor suite", "manipulator arm", "battle analytics mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")

View File

@@ -5,7 +5,7 @@
/mob/living/simple_mob/mechanical/hivebot/tank /mob/living/simple_mob/mechanical/hivebot/tank
attacktext = list("prodded") attacktext = list("prodded")
projectiletype = null // To force the AI to melee. projectiletype = null // To force the AI to melee.
movement_cooldown = 10 movement_cooldown = 3
melee_damage_lower = 3 melee_damage_lower = 3
melee_damage_upper = 3 melee_damage_upper = 3
attack_sound = 'sound/weapons/Egloves.ogg' attack_sound = 'sound/weapons/Egloves.ogg'
@@ -170,4 +170,4 @@
return (..(P)) return (..(P))
/decl/mob_organ_names/hivebottank /decl/mob_organ_names/hivebottank
hit_zones = list("central chassis", "armor plating", "component shielding", "positioning servo", "head", "sensor suite", "heavy manipulator arm", "shoulder weapon mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg") hit_zones = list("central chassis", "armor plating", "component shielding", "positioning servo", "head", "sensor suite", "heavy manipulator arm", "shoulder weapon mount", "weapons array", "front right leg", "front left leg", "rear left leg", "rear right leg")

View File

@@ -5,7 +5,7 @@
name = "combat mecha" name = "combat mecha"
desc = "An even bigger stompy mech!!" desc = "An even bigger stompy mech!!"
movement_cooldown = 10 movement_cooldown = 3
melee_damage_lower = 30 melee_damage_lower = 30
melee_damage_upper = 30 melee_damage_upper = 30
melee_attack_delay = 1 SECOND melee_attack_delay = 1 SECOND

View File

@@ -20,7 +20,7 @@
desc = "An aging combat exosuit utilized by many corporations. It was originally developed to fight in the First Contact War." desc = "An aging combat exosuit utilized by many corporations. It was originally developed to fight in the First Contact War."
catalogue_data = list(/datum/category_item/catalogue/technology/durand) catalogue_data = list(/datum/category_item/catalogue/technology/durand)
icon_state = "durand" icon_state = "durand"
movement_cooldown = 10 movement_cooldown = 3
wreckage = /obj/structure/loot_pile/mecha/durand wreckage = /obj/structure/loot_pile/mecha/durand
maxHealth = 400 maxHealth = 400

View File

@@ -17,7 +17,7 @@
desc = "A lightweight, security exosuit. Popular among private and corporate security." desc = "A lightweight, security exosuit. Popular among private and corporate security."
catalogue_data = list(/datum/category_item/catalogue/technology/gygax) catalogue_data = list(/datum/category_item/catalogue/technology/gygax)
icon_state = "gygax" icon_state = "gygax"
movement_cooldown = 0 movement_cooldown = -1
wreckage = /obj/structure/loot_pile/mecha/gygax wreckage = /obj/structure/loot_pile/mecha/gygax
maxHealth = 300 maxHealth = 300

View File

@@ -13,7 +13,7 @@
desc = "A heavy-duty, combat exosuit, developed after the Durand model. This is rarely found among civilian populations." desc = "A heavy-duty, combat exosuit, developed after the Durand model. This is rarely found among civilian populations."
catalogue_data = list(/datum/category_item/catalogue/technology/marauder) catalogue_data = list(/datum/category_item/catalogue/technology/marauder)
icon_state = "marauder" icon_state = "marauder"
movement_cooldown = 5 movement_cooldown = 1.5
wreckage = /obj/structure/loot_pile/mecha/marauder wreckage = /obj/structure/loot_pile/mecha/marauder
maxHealth = 500 maxHealth = 500

View File

@@ -8,7 +8,7 @@
icon = 'icons/mecha/mecha.dmi' icon = 'icons/mecha/mecha.dmi'
faction = "syndicate" faction = "syndicate"
movement_cooldown = 5 movement_cooldown = 1.5
movement_sound = "mechstep" // This gets fed into playsound(), which can also take strings as a 'group' of sound files. movement_sound = "mechstep" // This gets fed into playsound(), which can also take strings as a 'group' of sound files.
turn_sound = 'sound/mecha/mechturn.ogg' turn_sound = 'sound/mecha/mechturn.ogg'
maxHealth = 300 maxHealth = 300

View File

@@ -22,7 +22,7 @@
wreckage = /obj/structure/loot_pile/mecha/odysseus wreckage = /obj/structure/loot_pile/mecha/odysseus
maxHealth = 120 maxHealth = 120
movement_cooldown = 0 movement_cooldown = -1
turn_sound = 'sound/mecha/mechmove01.ogg' turn_sound = 'sound/mecha/mechmove01.ogg'
melee_damage_lower = 5 melee_damage_lower = 5
@@ -79,6 +79,3 @@
/obj/item/projectile/fake_syringe/poison /obj/item/projectile/fake_syringe/poison
modifier_type_to_apply = /datum/modifier/poisoned modifier_type_to_apply = /datum/modifier/poisoned
modifier_duration = 1 MINUTE // About 30 damage per stack over a minute. modifier_duration = 1 MINUTE // About 30 damage per stack over a minute.

View File

@@ -4,7 +4,7 @@
name = "phazon" name = "phazon"
desc = "An extremly enigmatic exosuit." desc = "An extremly enigmatic exosuit."
icon_state = "phazon" icon_state = "phazon"
movement_cooldown = 5 movement_cooldown = 1.5
wreckage = /obj/structure/loot_pile/mecha/phazon wreckage = /obj/structure/loot_pile/mecha/phazon
maxHealth = 200 maxHealth = 200
@@ -19,4 +19,3 @@
"rad" = 100 "rad" = 100
) )
projectiletype = /obj/item/projectile/energy/declone projectiletype = /obj/item/projectile/energy/declone

View File

@@ -30,7 +30,7 @@
faction = "syndicate" faction = "syndicate"
maxHealth = 15 maxHealth = 15
health = 15 health = 15
movement_cooldown = 0 movement_cooldown = -2
pass_flags = PASSTABLE pass_flags = PASSTABLE
mob_swap_flags = 0 mob_swap_flags = 0
@@ -94,7 +94,7 @@
/mob/living/simple_mob/mechanical/viscerator/piercing /mob/living/simple_mob/mechanical/viscerator/piercing
attack_armor_pen = 20 attack_armor_pen = 20
base_attack_cooldown = 10 // One attack a second or so. base_attack_cooldown = 10 // One attack a second or so.
movement_cooldown = 0.5 movement_cooldown = -1
/decl/mob_organ_names/viscerator /decl/mob_organ_names/viscerator
hit_zones = list("chassis", "rotor blades", "sensor array") hit_zones = list("chassis", "rotor blades", "sensor array")

View File

@@ -19,7 +19,7 @@
maxHealth = 15 maxHealth = 15
health = 15 health = 15
movement_cooldown = 0 movement_cooldown = -1
hovering = TRUE hovering = TRUE
mob_bump_flag = 0 mob_bump_flag = 0
@@ -44,4 +44,4 @@
return ..() return ..()
/decl/mob_organ_names/ward /decl/mob_organ_names/ward
hit_zones = list("chassis", "sensor array", "hover thruster") hit_zones = list("chassis", "sensor array", "hover thruster")

View File

@@ -18,7 +18,7 @@
attacktext = list("violently stabbed") attacktext = list("violently stabbed")
friendly = list("caresses") friendly = list("caresses")
organ_names = /decl/mob_organ_names/harvester organ_names = /decl/mob_organ_names/harvester
movement_cooldown = 0 movement_cooldown = -1
// environment_smash = 1 // Whatever this gets renamed to, Harvesters need to break things // environment_smash = 1 // Whatever this gets renamed to, Harvesters need to break things
@@ -41,4 +41,4 @@
) )
/decl/mob_organ_names/harvester /decl/mob_organ_names/harvester
hit_zones = list("cephalothorax", "eye", "carapace", "energy crystal", "mandible") hit_zones = list("cephalothorax", "eye", "carapace", "energy crystal", "mandible")

View File

@@ -23,7 +23,7 @@
mob_size = MOB_HUGE mob_size = MOB_HUGE
movement_cooldown = 6 //Not super fast, but it might catch up to someone in armor who got punched once or twice. movement_cooldown = 2 //Not super fast, but it might catch up to someone in armor who got punched once or twice.
// environment_smash = 2 // Whatever this gets renamed to, Juggernauts need to break things // environment_smash = 2 // Whatever this gets renamed to, Juggernauts need to break things
@@ -145,4 +145,4 @@
return (..(P)) return (..(P))
/decl/mob_organ_names/juggernaut /decl/mob_organ_names/juggernaut
hit_zones = list("body", "left pauldron", "right pauldron", "left arm", "right arm", "eye", "head", "crystaline spike") hit_zones = list("body", "left pauldron", "right pauldron", "left arm", "right arm", "eye", "head", "crystaline spike")

View File

@@ -20,7 +20,7 @@
attacktext = list("slashed") attacktext = list("slashed")
friendly = list("pinches") friendly = list("pinches")
organ_names = /decl/mob_organ_names/wraith organ_names = /decl/mob_organ_names/wraith
movement_cooldown = 0 movement_cooldown = -1
attack_sound = 'sound/weapons/rapidslice.ogg' attack_sound = 'sound/weapons/rapidslice.ogg'
construct_spells = list(/spell/targeted/ethereal_jaunt/shift, construct_spells = list(/spell/targeted/ethereal_jaunt/shift,
/spell/targeted/ambush_mode /spell/targeted/ambush_mode
@@ -34,4 +34,4 @@
L.add_modifier(/datum/modifier/deep_wounds, 30 SECONDS) L.add_modifier(/datum/modifier/deep_wounds, 30 SECONDS)
/decl/mob_organ_names/wraith /decl/mob_organ_names/wraith
hit_zones = list("body", "eye", "crystaline spike", "left claw", "right claw") hit_zones = list("body", "eye", "crystaline spike", "left claw", "right claw")

View File

@@ -20,7 +20,7 @@
default_pixel_y = -10 // To prevent resetting above var. default_pixel_y = -10 // To prevent resetting above var.
maxHealth = 300 maxHealth = 300
movement_cooldown = 10 movement_cooldown = -3
melee_attack_delay = 0.5 SECONDS melee_attack_delay = 0.5 SECONDS
ai_holder_type = /datum/ai_holder/simple_mob/ranged/pointblank ai_holder_type = /datum/ai_holder/simple_mob/ranged/pointblank
@@ -93,4 +93,3 @@
if(L.has_AI()) // Other AIs should react to hostile auras. if(L.has_AI()) // Other AIs should react to hostile auras.
L.ai_holder.react_to_attack(src) L.ai_holder.react_to_attack(src)

View File

@@ -33,7 +33,7 @@ var/list/_slime_default_emotes = list(
faction = "slime" // Note that slimes are hostile to other slimes of different color regardless of faction (unless Unified). faction = "slime" // Note that slimes are hostile to other slimes of different color regardless of faction (unless Unified).
maxHealth = 150 maxHealth = 150
movement_cooldown = 0 movement_cooldown = -1
pass_flags = PASSTABLE pass_flags = PASSTABLE
makes_dirt = FALSE // Goop makes_dirt = FALSE // Goop
mob_class = MOB_CLASS_SLIME mob_class = MOB_CLASS_SLIME

View File

@@ -474,7 +474,7 @@
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 30 melee_damage_upper = 30
movement_cooldown = 0 // This actually isn't any faster due to AI limitations that hopefully the timer subsystem can fix in the future. movement_cooldown = -1 // This actually isn't any faster due to AI limitations that hopefully the timer subsystem can fix in the future.
slime_mutation = list( slime_mutation = list(
/mob/living/simple_mob/slime/xenobio/dark_blue, /mob/living/simple_mob/slime/xenobio/dark_blue,
@@ -490,7 +490,7 @@
color = "#FF3333" color = "#FF3333"
slime_color = "red" slime_color = "red"
coretype = /obj/item/slime_extract/red coretype = /obj/item/slime_extract/red
movement_cooldown = 0 // See above. movement_cooldown = -1 // See above.
untamable = TRUE // Will enrage if disciplined. untamable = TRUE // Will enrage if disciplined.
description_info = "This slime is faster than the others. Attempting to discipline this slime will always cause it to go rabid and berserk." description_info = "This slime is faster than the others. Attempting to discipline this slime will always cause it to go rabid and berserk."

View File

@@ -11,7 +11,7 @@
response_disarm = "gently pushes aside" response_disarm = "gently pushes aside"
response_harm = "hits" response_harm = "hits"
movement_cooldown = 5 movement_cooldown = 1.5
// speed = 5 // speed = 5
maxHealth = 25 maxHealth = 25
health = 25 health = 25

View File

@@ -56,7 +56,7 @@
icon_state = "dave1" icon_state = "dave1"
icon_living = "dave1" icon_living = "dave1"
icon_dead = "dave_dead" icon_dead = "dave_dead"
movement_cooldown = 300 movement_cooldown = 100
maxHealth = 1500 maxHealth = 1500
health = 1500 health = 1500
@@ -93,4 +93,4 @@
/mob/living/simple_mob/animal/passive/mimepet/attack_hand(mob/living/user as mob) /mob/living/simple_mob/animal/passive/mimepet/attack_hand(mob/living/user as mob)
if(user.a_intent == I_DISARM) if(user.a_intent == I_DISARM)
icon_state = pick("dave1", "dave2", "dave3", "dave5" , "dave6" , "dave7" , "dave8" , "dave9" , "dave10") icon_state = pick("dave1", "dave2", "dave3", "dave5" , "dave6" , "dave7" , "dave8" , "dave9" , "dave10")
.=..() .=..()

View File

@@ -115,7 +115,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/vore/aggressive/corrupthound/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/aggressive/corrupthound/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -76,7 +76,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/vore/aggressive/deathclaw/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/aggressive/deathclaw/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -15,7 +15,7 @@
faction = "demon" faction = "demon"
maxHealth = 30 maxHealth = 30
health = 30 health = 30
movement_cooldown = 0 movement_cooldown = -2
see_in_dark = 10 see_in_dark = 10
seedarkness = FALSE seedarkness = FALSE
@@ -96,4 +96,4 @@
else else
return ..() return ..()
*/ */

View File

@@ -13,7 +13,7 @@
response_help = "pets" response_help = "pets"
response_disarm = "gently pushes aside" response_disarm = "gently pushes aside"
response_harm = "hits" response_harm = "hits"
movement_cooldown = 4 movement_cooldown = 0.5
harm_intent_damage = 5 harm_intent_damage = 5
melee_damage_lower = 5 melee_damage_lower = 5
melee_damage_upper = 12 melee_damage_upper = 12

View File

@@ -122,7 +122,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/vore/aggressive/dragon/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/aggressive/dragon/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -103,7 +103,7 @@
mob_bump_flag = HEAVY mob_bump_flag = HEAVY
grab_resist = 100 grab_resist = 100
mob_class = MOB_CLASS_HUMANOID mob_class = MOB_CLASS_HUMANOID
movement_cooldown = 1 movement_cooldown = -1
melee_miss_chance = 10 melee_miss_chance = 10
old_x = -32 old_x = -32

View File

@@ -28,7 +28,7 @@
icon_state = "frog" icon_state = "frog"
icon = 'icons/mob/vore.dmi' icon = 'icons/mob/vore.dmi'
movement_cooldown = 4 //fast as fucc boie. movement_cooldown = 0.5 //fast as fucc boie.
can_be_drop_pred = 1 //They can tongue vore. can_be_drop_pred = 1 //They can tongue vore.
meat_amount = 4 meat_amount = 4

View File

@@ -24,7 +24,7 @@
response_help = "pets" response_help = "pets"
response_disarm = "shoves" response_disarm = "shoves"
response_harm = "smacks" response_harm = "smacks"
movement_cooldown = 2 movement_cooldown = -1
harm_intent_damage = 10 harm_intent_damage = 10
melee_damage_lower = 10 melee_damage_lower = 10
melee_damage_upper = 20 melee_damage_upper = 20
@@ -101,7 +101,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 1.5 movement_cooldown = -1.5
/mob/living/simple_mob/vore/greatwolf/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/greatwolf/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -11,7 +11,7 @@
maxHealth = 200 maxHealth = 200
health = 200 health = 200
movement_cooldown = 5 movement_cooldown = 1.5
see_in_dark = 3 see_in_dark = 3
armor = list( armor = list(
@@ -74,7 +74,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/vore/hippo/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/hippo/MouseDrop_T(mob/living/M, mob/living/user)
return return
@@ -85,4 +85,4 @@
/datum/say_list/hippo /datum/say_list/hippo
speak = list("UUUUUUH") speak = list("UUUUUUH")
emote_hear = list("grunts","groans", "roars", "snorts") emote_hear = list("grunts","groans", "roars", "snorts")
emote_see = list("shakes its head") emote_see = list("shakes its head")

View File

@@ -12,7 +12,7 @@
maxHealth = 60 maxHealth = 60
health = 60 health = 60
movement_cooldown = 1.5 //horses are fast mkay. movement_cooldown = -2 //horses are fast mkay.
see_in_dark = 6 see_in_dark = 6
response_help = "pets" response_help = "pets"
@@ -74,7 +74,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 1.5 movement_cooldown = -2
/mob/living/simple_mob/vore/horse/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/horse/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -22,7 +22,7 @@
response_help = "pats" response_help = "pats"
response_disarm = "shoves" response_disarm = "shoves"
response_harm = "bops" response_harm = "bops"
movement_cooldown = 2 movement_cooldown = -1
maxHealth = 1500 maxHealth = 1500
attacktext = list("chomped") attacktext = list("chomped")
see_in_dark = 8 see_in_dark = 8
@@ -74,7 +74,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 2 movement_cooldown = -1
/mob/living/simple_mob/vore/leopardmander/Initialize() /mob/living/simple_mob/vore/leopardmander/Initialize()
..() ..()

View File

@@ -83,7 +83,7 @@
maxHealth = 125 maxHealth = 125
health = 125 health = 125
movement_cooldown = 7 movement_cooldown = 3
response_help = "touches" response_help = "touches"
response_disarm = "pushes" response_disarm = "pushes"

View File

@@ -215,7 +215,7 @@
pixel_x = -16 pixel_x = -16
pixel_y = 0 pixel_y = 0
movement_cooldown = 10 movement_cooldown = 4
movement_sound = 'sound/weapons/heavysmash.ogg' movement_sound = 'sound/weapons/heavysmash.ogg'
movement_shake_radius = 5 movement_shake_radius = 5
@@ -376,4 +376,4 @@
// icon_living = "" // icon_living = ""
// icon_dead = "_dead" // icon_dead = "_dead"
// icon_gib = "generic_gib" // icon_gib = "generic_gib"
// vis_height = 64 // vis_height = 64

View File

@@ -215,7 +215,7 @@
pixel_x = -16 pixel_x = -16
pixel_y = 0 pixel_y = 0
movement_cooldown = 10 movement_cooldown = 4
movement_sound = 'sound/weapons/heavysmash.ogg' movement_sound = 'sound/weapons/heavysmash.ogg'
movement_shake_radius = 5 movement_shake_radius = 5
@@ -362,4 +362,4 @@
icon_living = "honkling" icon_living = "honkling"
icon_dead = "honkling_dead" icon_dead = "honkling_dead"
icon_gib = "generic_gib" icon_gib = "generic_gib"
vis_height = 32 vis_height = 32

View File

@@ -40,7 +40,7 @@
melee_damage_lower = 1 melee_damage_lower = 1
melee_damage_upper = 3 //low damage, they prefer to flee melee_damage_upper = 3 //low damage, they prefer to flee
movement_cooldown = 8 movement_cooldown = 3.5
meat_type = /obj/item/weapon/ore/coal meat_type = /obj/item/weapon/ore/coal
@@ -98,7 +98,7 @@
icon_living = "lavagrub" icon_living = "lavagrub"
icon_dead = "lavagrub-dead" icon_dead = "lavagrub-dead"
movement_cooldown = 5 movement_cooldown = 2
maxHealth = 75 //lavagrubs are really hardy maxHealth = 75 //lavagrubs are really hardy
health = 75 health = 75
vore_pounce_chance = 80 // Full-grown grubs should pounce. More homf opportunities if you're dumb enough to poke it. vore_pounce_chance = 80 // Full-grown grubs should pounce. More homf opportunities if you're dumb enough to poke it.
@@ -197,4 +197,4 @@
return return
.=..() .=..()
var/obj/belly/B = vore_selected var/obj/belly/B = vore_selected
B.belly_fullscreen_color = "#cf741e" // CHOMPedit - Belly Fullscreen B.belly_fullscreen_color = "#cf741e" // CHOMPedit - Belly Fullscreen

View File

@@ -325,7 +325,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/otie/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/otie/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -25,7 +25,7 @@
faction = "pakkun" faction = "pakkun"
movement_cooldown = 6 movement_cooldown = 2
can_be_drop_pred = 1 //They can tongue vore. can_be_drop_pred = 1 //They can tongue vore.
meat_amount = 5 meat_amount = 5

View File

@@ -13,7 +13,7 @@
faction = "panther" faction = "panther"
maxHealth = 200 maxHealth = 200
health = 200 health = 200
movement_cooldown = 4 movement_cooldown = 0.5
see_in_dark = 8 see_in_dark = 8
meat_amount = 8 meat_amount = 8
@@ -63,7 +63,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/vore/aggressive/panther/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/aggressive/panther/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -27,7 +27,7 @@
melee_damage_upper = 3 melee_damage_upper = 3
attacktext = list("nipped") attacktext = list("nipped")
movement_cooldown = 3 movement_cooldown = 0
say_list_type = /datum/say_list/rabbit say_list_type = /datum/say_list/rabbit
ai_holder_type = /datum/ai_holder/simple_mob/passive ai_holder_type = /datum/ai_holder/simple_mob/passive
@@ -169,7 +169,7 @@
melee_damage_upper = 3 melee_damage_upper = 3
attacktext = list("nipped") attacktext = list("nipped")
movement_cooldown = 0.5 // very fast bunbun. movement_cooldown = -2 // very fast bunbun.
vore_bump_chance = 10 vore_bump_chance = 10
vore_pounce_chance = 100 vore_pounce_chance = 100

View File

@@ -223,7 +223,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/vore/aggressive/rat/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/aggressive/rat/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

@@ -38,7 +38,7 @@
health = 90 health = 90
see_in_dark = 8 see_in_dark = 8
movement_cooldown = 3 movement_cooldown = 0
melee_damage_lower = 6 melee_damage_lower = 6
melee_damage_upper = 12 melee_damage_upper = 12

View File

@@ -13,7 +13,7 @@
maxHealth = 200 maxHealth = 200
health = 200 health = 200
movement_cooldown = 2 movement_cooldown = -1.5
see_in_dark = 10 //SHADEkin see_in_dark = 10 //SHADEkin
has_hands = TRUE //Pawbs has_hands = TRUE //Pawbs
seedarkness = FALSE //SHAAAADEkin seedarkness = FALSE //SHAAAADEkin

View File

@@ -50,7 +50,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 1.5 movement_cooldown = -1
/mob/living/simple_mob/vore/sheep/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/sheep/MouseDrop_T(mob/living/M, mob/living/user)
return return
@@ -119,4 +119,4 @@
else else
icon_living = "sheep_bald" icon_living = "sheep_bald"
return ..() return ..()
*/ */

View File

@@ -18,7 +18,7 @@
faction = "dog" faction = "dog"
maxHealth = 600 maxHealth = 600
health = 600 health = 600
movement_cooldown = 1 movement_cooldown = -1
response_help = "pets" response_help = "pets"
response_disarm = "rudely paps" response_disarm = "rudely paps"
@@ -207,7 +207,7 @@
/mob/living/simple_mob/vore/woof/hostile/melee /mob/living/simple_mob/vore/woof/hostile/melee
movement_cooldown = 0 movement_cooldown = -2
ai_holder_type = /datum/ai_holder/simple_mob/woof/hostile ai_holder_type = /datum/ai_holder/simple_mob/woof/hostile
@@ -304,12 +304,12 @@
/mob/living/simple_mob/vore/woof/hostile/aweful/melee /mob/living/simple_mob/vore/woof/hostile/aweful/melee
movement_cooldown = 0 movement_cooldown = -2
ai_holder_type = /datum/ai_holder/simple_mob/woof/hostile ai_holder_type = /datum/ai_holder/simple_mob/woof/hostile
/mob/living/simple_mob/vore/woof/hostile/aweful/ranged /mob/living/simple_mob/vore/woof/hostile/aweful/ranged
movement_cooldown = 0 movement_cooldown = -2
ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/woof ai_holder_type = /datum/ai_holder/simple_mob/ranged/kiting/threatening/woof

View File

@@ -40,7 +40,7 @@ var/global/list/moth_amount = 0 // Chompstation Addition, Rykka waz here. *pawst
melee_damage_lower = 1 melee_damage_lower = 1
melee_damage_upper = 3 //low damage, but poison and stuns are strong melee_damage_upper = 3 //low damage, but poison and stuns are strong
movement_cooldown = 8 movement_cooldown = 3
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/grubmeat
meat_amount = 6 meat_amount = 6

View File

@@ -11,7 +11,7 @@ var/global/list/grub_machine_overlays = list()
health = 5 health = 5
maxHealth = 5 maxHealth = 5
movement_cooldown = 3 movement_cooldown = 0
melee_damage_lower = 1 // This is a tiny worm. It will nibble and thats about it. melee_damage_lower = 1 // This is a tiny worm. It will nibble and thats about it.
melee_damage_upper = 1 melee_damage_upper = 1

View File

@@ -12,7 +12,7 @@
faction = "panther" faction = "panther"
maxHealth = 150 maxHealth = 150
health = 150 health = 150
movement_cooldown = 2 movement_cooldown = -1
response_help = "pats" response_help = "pats"
response_disarm = "gently pushes aside" response_disarm = "gently pushes aside"

View File

@@ -19,7 +19,7 @@
response_disarm = "bops" response_disarm = "bops"
response_harm = "hits" response_harm = "hits"
movement_cooldown = 5 movement_cooldown = 1.5
harm_intent_damage = 5 harm_intent_damage = 5
melee_damage_lower = 5 melee_damage_lower = 5
@@ -66,7 +66,7 @@
health = 40 health = 40
maxHealth = 40 maxHealth = 40
movement_cooldown = 3 movement_cooldown = 0
harm_intent_damage = 5 harm_intent_damage = 5
melee_damage_lower = 10 melee_damage_lower = 10
@@ -122,7 +122,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 2 movement_cooldown = -1
/mob/living/simple_mob/animal/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/animal/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user)
return return

Some files were not shown because too many files have changed in this diff Show More