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

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

View File

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

View File

@@ -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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -20,7 +20,7 @@
status_flags = CANPUSH status_flags = CANPUSH
pass_flags = PASSTABLE pass_flags = PASSTABLE
movement_cooldown = 5 movement_cooldown = 1.5
universal_understand = TRUE universal_understand = TRUE
can_be_antagged = TRUE can_be_antagged = TRUE

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -14,7 +14,7 @@
maxHealth = 1 maxHealth = 1
health = 1 health = 1
movement_cooldown = 2.5 movement_cooldown = -1
mob_size = MOB_MINISCULE mob_size = MOB_MINISCULE
pass_flags = PASSTABLE pass_flags = PASSTABLE

View File

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

View File

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

View File

@@ -18,7 +18,7 @@
melee_damage_lower = 3 melee_damage_lower = 3
melee_damage_upper = 3 melee_damage_upper = 3
movement_cooldown = 0 movement_cooldown = -1
hovering = TRUE // Birds can fly. hovering = TRUE // Birds can fly.
softfall = TRUE softfall = TRUE
parachuting = TRUE parachuting = TRUE

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -13,7 +13,7 @@
maxHealth = 20 //don't want Fluff to die on a missclick maxHealth = 20 //don't want Fluff to die on a missclick
health = 20 health = 20
movement_cooldown = 5 movement_cooldown = 1.5
makes_dirt = 0 makes_dirt = 0
see_in_dark = 5 see_in_dark = 5

View File

@@ -40,7 +40,7 @@
var/energy = 100 var/energy = 100
var/max_energy = 100 var/max_energy = 100
movement_cooldown = 0.5 movement_cooldown = -1
melee_damage_lower = 5 melee_damage_lower = 5
melee_damage_upper = 10 melee_damage_upper = 10

View File

@@ -38,7 +38,7 @@
maxHealth = 10 maxHealth = 10
health = 10 health = 10
movement_cooldown = -1 movement_cooldown = -2
hovering = TRUE hovering = TRUE
melee_damage_lower = 1 melee_damage_lower = 1
@@ -80,7 +80,7 @@
maxHealth = 30 maxHealth = 30
health = 30 health = 30
movement_cooldown = -2 movement_cooldown = -3
melee_damage_upper = 5 melee_damage_upper = 5

View File

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

View File

@@ -47,7 +47,7 @@
"rad" = 0 "rad" = 0
) )
movement_cooldown = 2 movement_cooldown = -1
mob_size = MOB_SMALL mob_size = MOB_SMALL
pass_flags = PASSTABLE pass_flags = PASSTABLE

View File

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

View File

@@ -39,7 +39,7 @@
universal_understand = 1 universal_understand = 1
movement_cooldown = 1 movement_cooldown = -1
melee_damage_lower = 15 melee_damage_lower = 15
melee_damage_upper = 20 melee_damage_upper = 20

View File

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

View File

@@ -41,7 +41,7 @@
hovering = TRUE hovering = TRUE
movement_cooldown = 0.5 movement_cooldown = -1
melee_damage_lower = 5 melee_damage_lower = 5
melee_damage_upper = 10 melee_damage_upper = 10

View File

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

View File

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

View File

@@ -44,7 +44,7 @@
) )
heat_resist = -0.50 heat_resist = -0.50
cold_resist = 0.75 cold_resist = 0.75
movement_cooldown = 5 movement_cooldown = -1
minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps minbodytemp = 175 //yw edit, Makes mobs survive cryogaia temps
melee_damage_lower = 6 melee_damage_lower = 6
melee_damage_upper = 14 melee_damage_upper = 14

View File

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

View File

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

View File

@@ -12,7 +12,7 @@
maxHealth = 125 maxHealth = 125
health = 125 health = 125
movement_cooldown = 0.5 SECONDS movement_cooldown = -1
melee_damage_lower = 15 melee_damage_lower = 15
melee_damage_upper = 35 melee_damage_upper = 35

View File

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

View File

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

View File

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

View File

@@ -12,7 +12,7 @@
maxHealth = 200 maxHealth = 200
health = 200 health = 200
movement_cooldown = 0 movement_cooldown = -1
faction = "worm" faction = "worm"

View File

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

View File

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

View File

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

View File

@@ -29,7 +29,7 @@
faction = "underdark" faction = "underdark"
maxHealth = 25 maxHealth = 25
health = 25 health = 25
movement_cooldown = 0 movement_cooldown = -1
movement_sound = 'sound/effects/servostep.ogg' movement_sound = 'sound/effects/servostep.ogg'
pass_flags = PASSTABLE pass_flags = PASSTABLE

View File

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

View File

@@ -43,7 +43,7 @@
maxHealth = 50 // Shield has 150 for total of 200. maxHealth = 50 // Shield has 150 for total of 200.
health = 50 health = 50
movement_cooldown = 5 movement_cooldown = 1.5
hovering = TRUE hovering = TRUE
base_attack_cooldown = 5 base_attack_cooldown = 5
@@ -102,7 +102,7 @@
// Difference is that it should not be faster than you. // Difference is that it should not be faster than you.
/mob/living/simple_mob/mechanical/combat_drone/lesser /mob/living/simple_mob/mechanical/combat_drone/lesser
desc = "An automated combat drone with an aged apperance." desc = "An automated combat drone with an aged apperance."
movement_cooldown = 10 movement_cooldown = 3
// This one is the type spawned by the random event. // This one is the type spawned by the random event.

View File

@@ -29,7 +29,7 @@
maxHealth = 50 maxHealth = 50
health = 50 health = 50
movement_cooldown = 5 movement_cooldown = 1.5
hovering = TRUE hovering = TRUE
base_attack_cooldown = 2.5 SECONDS base_attack_cooldown = 2.5 SECONDS

View File

@@ -4,7 +4,7 @@
icon_state = "white" icon_state = "white"
icon_living = "white" icon_living = "white"
attacktext = list("prodded") attacktext = list("prodded")
movement_cooldown = 5 movement_cooldown = 1.5
melee_damage_lower = 2 melee_damage_lower = 2
melee_damage_upper = 2 melee_damage_upper = 2

View File

@@ -5,7 +5,7 @@
/mob/living/simple_mob/mechanical/hivebot/tank /mob/living/simple_mob/mechanical/hivebot/tank
attacktext = list("prodded") attacktext = list("prodded")
projectiletype = null // To force the AI to melee. projectiletype = null // To force the AI to melee.
movement_cooldown = 10 movement_cooldown = 3
melee_damage_lower = 3 melee_damage_lower = 3
melee_damage_upper = 3 melee_damage_upper = 3
attack_sound = 'sound/weapons/Egloves.ogg' attack_sound = 'sound/weapons/Egloves.ogg'

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -19,7 +19,7 @@
maxHealth = 15 maxHealth = 15
health = 15 health = 15
movement_cooldown = 0 movement_cooldown = -1
hovering = TRUE hovering = TRUE
mob_bump_flag = 0 mob_bump_flag = 0

View File

@@ -18,7 +18,7 @@
attacktext = list("violently stabbed") attacktext = list("violently stabbed")
friendly = list("caresses") friendly = list("caresses")
organ_names = /decl/mob_organ_names/harvester organ_names = /decl/mob_organ_names/harvester
movement_cooldown = 0 movement_cooldown = -1
// environment_smash = 1 // Whatever this gets renamed to, Harvesters need to break things // environment_smash = 1 // Whatever this gets renamed to, Harvesters need to break things

View File

@@ -23,7 +23,7 @@
mob_size = MOB_HUGE mob_size = MOB_HUGE
movement_cooldown = 6 //Not super fast, but it might catch up to someone in armor who got punched once or twice. movement_cooldown = 2 //Not super fast, but it might catch up to someone in armor who got punched once or twice.
// environment_smash = 2 // Whatever this gets renamed to, Juggernauts need to break things // environment_smash = 2 // Whatever this gets renamed to, Juggernauts need to break things

View File

@@ -20,7 +20,7 @@
attacktext = list("slashed") attacktext = list("slashed")
friendly = list("pinches") friendly = list("pinches")
organ_names = /decl/mob_organ_names/wraith organ_names = /decl/mob_organ_names/wraith
movement_cooldown = 0 movement_cooldown = -1
attack_sound = 'sound/weapons/rapidslice.ogg' attack_sound = 'sound/weapons/rapidslice.ogg'
construct_spells = list(/spell/targeted/ethereal_jaunt/shift, construct_spells = list(/spell/targeted/ethereal_jaunt/shift,
/spell/targeted/ambush_mode /spell/targeted/ambush_mode

View File

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

View File

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

View File

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

View File

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

View File

@@ -56,7 +56,7 @@
icon_state = "dave1" icon_state = "dave1"
icon_living = "dave1" icon_living = "dave1"
icon_dead = "dave_dead" icon_dead = "dave_dead"
movement_cooldown = 300 movement_cooldown = 100
maxHealth = 1500 maxHealth = 1500
health = 1500 health = 1500

View File

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

View File

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

View File

@@ -15,7 +15,7 @@
faction = "demon" faction = "demon"
maxHealth = 30 maxHealth = 30
health = 30 health = 30
movement_cooldown = 0 movement_cooldown = -2
see_in_dark = 10 see_in_dark = 10
seedarkness = FALSE seedarkness = FALSE

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -11,7 +11,7 @@
maxHealth = 200 maxHealth = 200
health = 200 health = 200
movement_cooldown = 5 movement_cooldown = 1.5
see_in_dark = 3 see_in_dark = 3
armor = list( armor = list(
@@ -74,7 +74,7 @@
riding_datum = new /datum/riding/simple_mob(src) riding_datum = new /datum/riding/simple_mob(src)
verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/simple_mob/proc/animal_mount
verbs |= /mob/living/proc/toggle_rider_reins verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 3 movement_cooldown = 0
/mob/living/simple_mob/vore/hippo/MouseDrop_T(mob/living/M, mob/living/user) /mob/living/simple_mob/vore/hippo/MouseDrop_T(mob/living/M, mob/living/user)
return return

View File

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

View File

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

View File

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

View File

@@ -215,7 +215,7 @@
pixel_x = -16 pixel_x = -16
pixel_y = 0 pixel_y = 0
movement_cooldown = 10 movement_cooldown = 4
movement_sound = 'sound/weapons/heavysmash.ogg' movement_sound = 'sound/weapons/heavysmash.ogg'
movement_shake_radius = 5 movement_shake_radius = 5

View File

@@ -215,7 +215,7 @@
pixel_x = -16 pixel_x = -16
pixel_y = 0 pixel_y = 0
movement_cooldown = 10 movement_cooldown = 4
movement_sound = 'sound/weapons/heavysmash.ogg' movement_sound = 'sound/weapons/heavysmash.ogg'
movement_shake_radius = 5 movement_shake_radius = 5

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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