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),
|
||||||
|
|||||||
@@ -177,6 +177,8 @@
|
|||||||
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)
|
||||||
|
emote_sound = pick(bigsound)
|
||||||
else
|
else
|
||||||
emote_sound = pick(smolsound)
|
emote_sound = pick(smolsound)
|
||||||
else if(user.size_multiplier >= 1.5)
|
else if(user.size_multiplier >= 1.5)
|
||||||
@@ -206,6 +208,10 @@
|
|||||||
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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1933,9 +1933,10 @@ lol bye
|
|||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/science/rd)
|
/area/groundbase/science/rd)
|
||||||
"fs" = (
|
"fs" = (
|
||||||
/obj/machinery/newscaster{
|
/obj/structure/sink{
|
||||||
layer = 3.3;
|
dir = 8;
|
||||||
pixel_x = -27
|
pixel_x = -12;
|
||||||
|
pixel_y = 2
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
@@ -2779,6 +2780,10 @@ lol bye
|
|||||||
/obj/machinery/light{
|
/obj/machinery/light{
|
||||||
dir = 8
|
dir = 8
|
||||||
},
|
},
|
||||||
|
/obj/machinery/requests_console{
|
||||||
|
department = "Service";
|
||||||
|
pixel_y = 25
|
||||||
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"hS" = (
|
"hS" = (
|
||||||
@@ -5506,8 +5511,17 @@ lol bye
|
|||||||
/turf/simulated/floor/tiled/dark,
|
/turf/simulated/floor/tiled/dark,
|
||||||
/area/groundbase/dorms)
|
/area/groundbase/dorms)
|
||||||
"pM" = (
|
"pM" = (
|
||||||
/obj/machinery/alarm{
|
/obj/machinery/button/remote/blast_door{
|
||||||
dir = 4
|
dir = 4;
|
||||||
|
id = "botgate";
|
||||||
|
name = "Botany shutters";
|
||||||
|
pixel_x = -27;
|
||||||
|
pixel_y = 6
|
||||||
|
},
|
||||||
|
/obj/machinery/light_switch{
|
||||||
|
dir = 4;
|
||||||
|
pixel_x = -28;
|
||||||
|
pixel_y = -1
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
@@ -7625,13 +7639,13 @@ lol bye
|
|||||||
},
|
},
|
||||||
/area/groundbase/level2/nw)
|
/area/groundbase/level2/nw)
|
||||||
"vV" = (
|
"vV" = (
|
||||||
/obj/structure/disposalpipe/sortjunction{
|
/obj/structure/reagent_dispensers/watertank,
|
||||||
dir = 1;
|
/obj/item/weapon/reagent_containers/glass/bucket,
|
||||||
name = "Hydroponics";
|
/obj/machinery/newscaster{
|
||||||
sortType = "Hydroponics"
|
pixel_y = 28
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/outdoors/sidewalk/slab,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/level2/nw)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"vW" = (
|
"vW" = (
|
||||||
/obj/structure/bed/chair/office/dark,
|
/obj/structure/bed/chair/office/dark,
|
||||||
/obj/effect/landmark/start/qm,
|
/obj/effect/landmark/start/qm,
|
||||||
@@ -9603,10 +9617,13 @@ lol bye
|
|||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/science/xenobot)
|
/area/groundbase/science/xenobot)
|
||||||
"BS" = (
|
"BS" = (
|
||||||
/obj/structure/closet/secure_closet/hydroponics,
|
|
||||||
/obj/machinery/light{
|
/obj/machinery/light{
|
||||||
dir = 8
|
dir = 8
|
||||||
},
|
},
|
||||||
|
/obj/structure/disposalpipe/trunk{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/obj/machinery/disposal,
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"BT" = (
|
"BT" = (
|
||||||
@@ -10556,10 +10573,7 @@ lol bye
|
|||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"Ep" = (
|
"Ep" = (
|
||||||
/obj/structure/disposalpipe/segment{
|
/obj/structure/disposalpipe/segment,
|
||||||
dir = 8;
|
|
||||||
icon_state = "pipe-c"
|
|
||||||
},
|
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"Eq" = (
|
"Eq" = (
|
||||||
@@ -11024,6 +11038,25 @@ lol bye
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor,
|
/turf/simulated/floor,
|
||||||
/area/rnd/xenobiology)
|
/area/rnd/xenobiology)
|
||||||
|
"FQ" = (
|
||||||
|
/obj/structure/table/marble,
|
||||||
|
/obj/machinery/door/firedoor,
|
||||||
|
/obj/structure/disposalpipe/segment{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/machinery/door/window/brigdoor/westright{
|
||||||
|
dir = 4;
|
||||||
|
name = "Research Desk";
|
||||||
|
req_access = null;
|
||||||
|
req_one_access = list(35,28)
|
||||||
|
},
|
||||||
|
/obj/machinery/door/blast/gate/thin{
|
||||||
|
dir = 8;
|
||||||
|
id = "botgate";
|
||||||
|
layer = 3.3
|
||||||
|
},
|
||||||
|
/turf/simulated/floor,
|
||||||
|
/area/groundbase/civilian/hydroponics)
|
||||||
"FR" = (
|
"FR" = (
|
||||||
/obj/structure/disposalpipe/segment{
|
/obj/structure/disposalpipe/segment{
|
||||||
dir = 4
|
dir = 4
|
||||||
@@ -12578,11 +12611,12 @@ lol bye
|
|||||||
/turf/simulated/floor/wood,
|
/turf/simulated/floor/wood,
|
||||||
/area/groundbase/dorms/room4)
|
/area/groundbase/dorms/room4)
|
||||||
"JZ" = (
|
"JZ" = (
|
||||||
/obj/machinery/disposal,
|
/obj/structure/disposalpipe/segment{
|
||||||
/obj/structure/disposalpipe/trunk,
|
dir = 2;
|
||||||
/obj/machinery/light_switch{
|
icon_state = "pipe-c"
|
||||||
dir = 4;
|
},
|
||||||
pixel_x = -30
|
/obj/item/weapon/stool/padded{
|
||||||
|
dir = 8
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
@@ -12597,6 +12631,12 @@ lol bye
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/wood,
|
/turf/simulated/floor/wood,
|
||||||
/area/groundbase/dorms/room6)
|
/area/groundbase/dorms/room6)
|
||||||
|
"Kb" = (
|
||||||
|
/obj/structure/disposalpipe/segment{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/outdoors/sidewalk/side,
|
||||||
|
/area/groundbase/level2/nw)
|
||||||
"Kc" = (
|
"Kc" = (
|
||||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||||
dir = 5
|
dir = 5
|
||||||
@@ -13969,15 +14009,17 @@ lol bye
|
|||||||
},
|
},
|
||||||
/area/groundbase/level2/se)
|
/area/groundbase/level2/se)
|
||||||
"NP" = (
|
"NP" = (
|
||||||
/obj/machinery/door/airlock/glass{
|
/obj/structure/table/marble,
|
||||||
name = "Hydroponics";
|
|
||||||
req_one_access = list(35,28)
|
|
||||||
},
|
|
||||||
/obj/machinery/door/firedoor,
|
/obj/machinery/door/firedoor,
|
||||||
/obj/structure/disposalpipe/segment{
|
/obj/structure/window/reinforced{
|
||||||
dir = 4
|
dir = 4
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/bmarble,
|
/obj/machinery/door/blast/gate/thin{
|
||||||
|
dir = 8;
|
||||||
|
id = "botgate";
|
||||||
|
layer = 3.3
|
||||||
|
},
|
||||||
|
/turf/simulated/floor,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"NR" = (
|
"NR" = (
|
||||||
/obj/structure/cable/yellow,
|
/obj/structure/cable/yellow,
|
||||||
@@ -14058,11 +14100,12 @@ lol bye
|
|||||||
/turf/simulated/floor/tiled/white,
|
/turf/simulated/floor/tiled/white,
|
||||||
/area/groundbase/dorms/room4)
|
/area/groundbase/dorms/room4)
|
||||||
"Oa" = (
|
"Oa" = (
|
||||||
/obj/structure/disposalpipe/segment{
|
/obj/machinery/beehive,
|
||||||
dir = 4
|
/obj/machinery/alarm{
|
||||||
|
dir = 8
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/outdoors/sidewalk/side,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/level2/nw)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"Ob" = (
|
"Ob" = (
|
||||||
/obj/machinery/door/firedoor,
|
/obj/machinery/door/firedoor,
|
||||||
/obj/structure/cable/yellow{
|
/obj/structure/cable/yellow{
|
||||||
@@ -14244,11 +14287,11 @@ lol bye
|
|||||||
/turf/simulated/floor/tiled/eris/cafe,
|
/turf/simulated/floor/tiled/eris/cafe,
|
||||||
/area/groundbase/civilian/kitchen)
|
/area/groundbase/civilian/kitchen)
|
||||||
"OA" = (
|
"OA" = (
|
||||||
/obj/structure/closet/secure_closet/hydroponics,
|
|
||||||
/obj/machinery/computer/guestpass{
|
/obj/machinery/computer/guestpass{
|
||||||
dir = 4;
|
dir = 4;
|
||||||
pixel_x = -25
|
pixel_x = -25
|
||||||
},
|
},
|
||||||
|
/obj/structure/disposalpipe/segment,
|
||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/civilian/hydroponics)
|
/area/groundbase/civilian/hydroponics)
|
||||||
"OB" = (
|
"OB" = (
|
||||||
@@ -16366,18 +16409,13 @@ lol bye
|
|||||||
/turf/simulated/floor/tiled,
|
/turf/simulated/floor/tiled,
|
||||||
/area/groundbase/science/circuits)
|
/area/groundbase/science/circuits)
|
||||||
"UC" = (
|
"UC" = (
|
||||||
/obj/structure/sink{
|
/obj/structure/disposalpipe/sortjunction{
|
||||||
dir = 8;
|
dir = 1;
|
||||||
pixel_x = -12;
|
name = "Hydroponics";
|
||||||
pixel_y = 2
|
sortType = "Hydroponics"
|
||||||
},
|
},
|
||||||
/obj/machinery/requests_console{
|
/turf/simulated/floor/outdoors/sidewalk/slab,
|
||||||
department = "Service";
|
/area/groundbase/level2/nw)
|
||||||
dir = 4;
|
|
||||||
pixel_x = -25
|
|
||||||
},
|
|
||||||
/turf/simulated/floor/tiled,
|
|
||||||
/area/groundbase/civilian/hydroponics)
|
|
||||||
"UD" = (
|
"UD" = (
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
edge_blending_priority = -1;
|
edge_blending_priority = -1;
|
||||||
@@ -17655,6 +17693,10 @@ lol bye
|
|||||||
outdoors = 1
|
outdoors = 1
|
||||||
},
|
},
|
||||||
/area/groundbase/science/xenobot)
|
/area/groundbase/science/xenobot)
|
||||||
|
"Yo" = (
|
||||||
|
/obj/structure/closet/secure_closet/hydroponics,
|
||||||
|
/turf/simulated/floor/tiled,
|
||||||
|
/area/groundbase/civilian/hydroponics)
|
||||||
"Yp" = (
|
"Yp" = (
|
||||||
/turf/simulated/floor/tiled/dark,
|
/turf/simulated/floor/tiled/dark,
|
||||||
/area/groundbase/dorms)
|
/area/groundbase/dorms)
|
||||||
@@ -24657,8 +24699,8 @@ Hr
|
|||||||
pJ
|
pJ
|
||||||
sF
|
sF
|
||||||
go
|
go
|
||||||
|
UC
|
||||||
sF
|
sF
|
||||||
vV
|
|
||||||
go
|
go
|
||||||
sF
|
sF
|
||||||
sF
|
sF
|
||||||
@@ -24799,8 +24841,8 @@ wl
|
|||||||
sN
|
sN
|
||||||
pw
|
pw
|
||||||
oG
|
oG
|
||||||
|
Kb
|
||||||
bY
|
bY
|
||||||
Oa
|
|
||||||
oG
|
oG
|
||||||
bY
|
bY
|
||||||
bY
|
bY
|
||||||
@@ -24940,9 +24982,9 @@ bY
|
|||||||
lM
|
lM
|
||||||
sN
|
sN
|
||||||
bY
|
bY
|
||||||
lM
|
EZ
|
||||||
bY
|
Kb
|
||||||
Oa
|
pw
|
||||||
lM
|
lM
|
||||||
wD
|
wD
|
||||||
Aq
|
Aq
|
||||||
@@ -25082,8 +25124,8 @@ Wl
|
|||||||
Wl
|
Wl
|
||||||
gH
|
gH
|
||||||
Wl
|
Wl
|
||||||
Wl
|
NP
|
||||||
Wl
|
FQ
|
||||||
NP
|
NP
|
||||||
Wl
|
Wl
|
||||||
Wl
|
Wl
|
||||||
@@ -25224,7 +25266,7 @@ hQ
|
|||||||
fs
|
fs
|
||||||
Wv
|
Wv
|
||||||
pM
|
pM
|
||||||
UC
|
Yt
|
||||||
JZ
|
JZ
|
||||||
Ep
|
Ep
|
||||||
OA
|
OA
|
||||||
@@ -26072,7 +26114,7 @@ iI
|
|||||||
Hi
|
Hi
|
||||||
HH
|
HH
|
||||||
Wl
|
Wl
|
||||||
WP
|
vV
|
||||||
Yt
|
Yt
|
||||||
Wv
|
Wv
|
||||||
Yt
|
Yt
|
||||||
@@ -26506,7 +26548,7 @@ Yt
|
|||||||
Yt
|
Yt
|
||||||
Yt
|
Yt
|
||||||
Yt
|
Yt
|
||||||
Yt
|
Yo
|
||||||
In
|
In
|
||||||
bY
|
bY
|
||||||
bY
|
bY
|
||||||
@@ -26648,7 +26690,7 @@ Ox
|
|||||||
Yt
|
Yt
|
||||||
Yt
|
Yt
|
||||||
Yt
|
Yt
|
||||||
Yt
|
Yo
|
||||||
In
|
In
|
||||||
bY
|
bY
|
||||||
bY
|
bY
|
||||||
@@ -26785,7 +26827,7 @@ Wl
|
|||||||
Kh
|
Kh
|
||||||
Yt
|
Yt
|
||||||
Rf
|
Rf
|
||||||
Rf
|
Oa
|
||||||
HF
|
HF
|
||||||
KN
|
KN
|
||||||
YS
|
YS
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user