mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Merge pull request #5981 from CHOMPStation2/upstream-merge-14720
[MIRROR] Speed and stuff
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ..()
|
||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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."
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ..()
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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."
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
.=..()
|
.=..()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ..()
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ..()
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user