mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 20:45:28 +01:00
Actually fixes strange mob delays: BEEPSKY IS TOO FAST edition (#64351)
* Revert " Properly speeds up a lot of things, mostly mobs (#64270)"
This reverts commit a836574388.
THE BYOND REF WAS A LIE, THE PLAYERS ARE FOOLS, HELP, HELPPPPPPP
It turns out that despite what the byond ref says, the walk proc's delays were not in fact in ticks, but in deciseconds.
This means when I "fixed" mob movement by doubling all walk delays, what I actually did was double the speed of anything that used walk()
I have a feeling that the actual issue players were seeing was just move_to having fucked up distance logic, and the movement of slow mobs being smoothed out. I've changed that, so hopefully this puts a seal on the whole problem
I've had a request put in to make beepsky faster, but I think that's best done in a seperate pr
* Adds a flag to disable smooth moveloop movement
Applies it to hostile mob's Goto()
Backports the fixes to move_to and move_away from the previous pr
This commit is contained in:
@@ -309,7 +309,7 @@
|
||||
/// Spawned mob's melee damage = this multiplier * seed potency.
|
||||
var/mob_melee_multiplier = 1
|
||||
/// Spawned mob's move delay = this multiplier * seed potency.
|
||||
var/mob_speed_multiplier = 0.5
|
||||
var/mob_speed_multiplier = 1
|
||||
|
||||
/datum/plant_gene/trait/mob_transformation/on_new_plant(obj/item/our_plant, newloc)
|
||||
. = ..()
|
||||
@@ -416,14 +416,14 @@
|
||||
killer_plant = /mob/living/simple_animal/hostile/killertomato
|
||||
mob_health_multiplier = 0.33
|
||||
mob_melee_multiplier = 0.1
|
||||
mob_speed_multiplier = 0.01
|
||||
mob_speed_multiplier = 0.02
|
||||
|
||||
/// Walking Mushroom's transformation gene
|
||||
/datum/plant_gene/trait/mob_transformation/shroom
|
||||
killer_plant = /mob/living/simple_animal/hostile/mushroom
|
||||
mob_health_multiplier = 0.25
|
||||
mob_melee_multiplier = 0.05
|
||||
mob_speed_multiplier = 0.01
|
||||
mob_speed_multiplier = 0.02
|
||||
|
||||
/// Traiit for plants eaten in 1 bite.
|
||||
/datum/plant_gene/trait/one_bite
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
combat_mode = TRUE
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
minbodytemp = 0
|
||||
move_to_delay = 5
|
||||
move_to_delay = 10
|
||||
health = 125
|
||||
maxHealth = 125
|
||||
melee_damage_lower = 15
|
||||
@@ -308,7 +308,7 @@
|
||||
sentience_type = SENTIENCE_MINEBOT
|
||||
var/base_health_add = 5 //sentient minebots are penalized for beign sentient; they have their stats reset to normal plus these values
|
||||
var/base_damage_add = 1 //this thus disables other minebot upgrades
|
||||
var/base_speed_add = 0.5
|
||||
var/base_speed_add = 1
|
||||
var/base_cooldown_add = 10 //base cooldown isn't reset to normal, it's just added on, since it's not practical to disable the cooldown module
|
||||
|
||||
/obj/item/slimepotion/slime/sentience/mining/after_success(mob/living/user, mob/living/simple_animal/simple_mob)
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
return
|
||||
else // not next to perp
|
||||
var/turf/olddist = get_dist(src, target)
|
||||
SSmove_manager.move_to(src, target, 1, 2)
|
||||
SSmove_manager.move_to(src, target, 1, 4)
|
||||
if((get_dist(src, target)) >= (olddist))
|
||||
frustration++
|
||||
else
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
|
||||
///The human target the bot is trying to wash.
|
||||
var/mob/living/carbon/human/target
|
||||
///The mob's current speed, which varies based on how long the bot chases it's target. Measured in deciseconds
|
||||
var/currentspeed = 2.5
|
||||
///The mob's current speed, which varies based on how long the bot chases it's target.
|
||||
var/currentspeed = 5
|
||||
///Is the bot currently washing it's target/everything else that crosses it?
|
||||
var/washing = FALSE
|
||||
///Have the target evaded the bot for long enough that it will swear at it like kirk did to kahn?
|
||||
@@ -109,16 +109,16 @@
|
||||
|
||||
if(BOT_HUNT) // hunting for stinkman
|
||||
if(bot_cover_flags & BOT_COVER_EMAGGED) //lol fuck em up
|
||||
currentspeed = 1.5
|
||||
currentspeed = 3.5
|
||||
start_washing()
|
||||
mad = TRUE
|
||||
else
|
||||
switch(frustration)
|
||||
if(0 to 4)
|
||||
currentspeed = 2.5
|
||||
currentspeed = 5
|
||||
mad = FALSE
|
||||
if(5 to INFINITY)
|
||||
currentspeed = 1
|
||||
currentspeed = 2.5
|
||||
mad = TRUE
|
||||
if(target && !check_purity(target))
|
||||
if(target.loc == loc && isturf(target.loc)) //LADIES AND GENTLEMAN WE GOTEM PREPARE TO DUMP
|
||||
|
||||
@@ -355,7 +355,7 @@
|
||||
|
||||
// not next to perp
|
||||
var/turf/olddist = get_dist(src, target)
|
||||
SSmove_manager.move_to(src, target, 1, 2)
|
||||
SSmove_manager.move_to(src, target, 1, 4)
|
||||
if((get_dist(src, target)) >= (olddist))
|
||||
frustration++
|
||||
else
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
break
|
||||
if(movement_target)
|
||||
stop_automated_movement = 1
|
||||
SSmove_manager.move_to(src, movement_target, 0, 1.5)
|
||||
SSmove_manager.move_to(src, movement_target, 0, 3)
|
||||
|
||||
/mob/living/simple_animal/pet/cat/jerry //Holy shit we left jerry on donut ~ Arcane ~Fikou
|
||||
name = "Jerry"
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
ranged = 1
|
||||
retreat_distance = 5
|
||||
minimum_distance = 5
|
||||
move_to_delay = 2
|
||||
move_to_delay = 4
|
||||
butcher_results = list(/obj/item/food/meat/slab/xeno = 4,
|
||||
/obj/item/stack/sheet/animalhide/xeno = 1)
|
||||
projectiletype = /obj/projectile/neurotox
|
||||
@@ -132,7 +132,7 @@
|
||||
icon_dead = "alienq_dead"
|
||||
health_doll_icon = "alienq"
|
||||
bubble_icon = "alienroyal"
|
||||
move_to_delay = 2
|
||||
move_to_delay = 4
|
||||
maxHealth = 400
|
||||
health = 400
|
||||
butcher_results = list(/obj/item/food/meat/slab/xeno = 10,
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
melee_damage_lower += rand(2, 10)
|
||||
melee_damage_upper += rand(10,20)
|
||||
maxHealth += rand(30,60)
|
||||
move_to_delay = rand(1.5,3.5)
|
||||
move_to_delay = rand(3,7)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/megacarp/add_cell_sample()
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon = 'icons/mob/simple_human.dmi'
|
||||
icon_state = "dark_wizard"
|
||||
icon_living = "dark_wizard"
|
||||
move_to_delay = 5
|
||||
move_to_delay = 10
|
||||
projectiletype = /obj/projectile/temp/earth_bolt
|
||||
projectilesound = 'sound/magic/ethereal_enter.ogg'
|
||||
ranged = TRUE
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
combat_mode = TRUE
|
||||
faction = list("spiders")
|
||||
pass_flags = PASSTABLE
|
||||
move_to_delay = 3
|
||||
move_to_delay = 6
|
||||
attack_verb_continuous = "bites"
|
||||
attack_verb_simple = "bite"
|
||||
attack_sound = 'sound/weapons/bite.ogg'
|
||||
@@ -108,7 +108,7 @@
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 20
|
||||
poison_per_bite = 5
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
speed = -0.1
|
||||
menu_description = "Fast spider variant specializing in catching running prey and toxin injection, but has less health and damage. Toxin injection of 10u per bite."
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
obj_damage = 100
|
||||
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
|
||||
poison_per_bite = 0
|
||||
move_to_delay = 4
|
||||
move_to_delay = 8
|
||||
speed = 1
|
||||
status_flags = NONE
|
||||
mob_size = MOB_SIZE_LARGE
|
||||
@@ -242,7 +242,7 @@
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 5
|
||||
poison_per_bite = 5
|
||||
move_to_delay = 2
|
||||
move_to_delay = 4
|
||||
poison_type = /datum/reagent/toxin/venom
|
||||
speed = -0.5
|
||||
gold_core_spawnable = NO_SPAWN
|
||||
|
||||
@@ -18,8 +18,7 @@
|
||||
var/projectiletype //set ONLY it and NULLIFY casingtype var, if we have ONLY projectile
|
||||
var/projectilesound
|
||||
var/casingtype //set ONLY it and NULLIFY projectiletype, if we have projectile IN CASING
|
||||
///Delay for automated movement, measured in deciseconds
|
||||
var/move_to_delay = 1.5
|
||||
var/move_to_delay = 3 //delay for the automated movement.
|
||||
var/list/friends = list()
|
||||
var/list/emote_taunt = list()
|
||||
var/taunt_chance = 0
|
||||
@@ -99,7 +98,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/update_stamina()
|
||||
. = ..()
|
||||
move_to_delay = (initial(move_to_delay) + (staminaloss * 0.03))
|
||||
move_to_delay = (initial(move_to_delay) + (staminaloss * 0.06))
|
||||
|
||||
/mob/living/simple_animal/hostile/proc/sidestep()
|
||||
if(!target || !isturf(target.loc) || !isturf(loc) || stat == DEAD)
|
||||
@@ -127,7 +126,7 @@
|
||||
if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client)
|
||||
if(P.firer && get_dist(src, P.firer) <= aggro_vision_range)
|
||||
FindTarget(list(P.firer), 1)
|
||||
Goto(P.starting, move_to_delay, 1.5)
|
||||
Goto(P.starting, move_to_delay, 3)
|
||||
return ..()
|
||||
|
||||
//////////////HOSTILE MOB TARGETTING AND AGGRESSION////////////
|
||||
@@ -288,7 +287,7 @@
|
||||
return 1
|
||||
if(retreat_distance != null) //If we have a retreat distance, check if we need to run from our target
|
||||
if(target_distance <= retreat_distance) //If target's closer than our retreat distance, run
|
||||
SSmove_manager.move_away(src, target, retreat_distance, move_to_delay)
|
||||
SSmove_manager.move_away(src, target, retreat_distance, move_to_delay, flags = MOVEMENT_LOOP_IGNORE_GLIDE)
|
||||
else
|
||||
Goto(target,move_to_delay,minimum_distance) //Otherwise, get to our minimum distance so we chase them
|
||||
else
|
||||
@@ -321,7 +320,7 @@
|
||||
approaching_target = TRUE
|
||||
else
|
||||
approaching_target = FALSE
|
||||
SSmove_manager.move_to(src, target, minimum_distance, delay)
|
||||
SSmove_manager.move_to(src, target, minimum_distance, delay, flags = MOVEMENT_LOOP_IGNORE_GLIDE)
|
||||
|
||||
/mob/living/simple_animal/hostile/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
|
||||
. = ..()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
ranged = 1
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
move_to_delay = 5
|
||||
move_to_delay = 10
|
||||
aggro_vision_range = 9
|
||||
speak_emote = list("chitters")
|
||||
attack_sound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
pixel_y = -14
|
||||
base_pixel_y = -14
|
||||
minimum_distance = 3
|
||||
move_to_delay = 10
|
||||
move_to_delay = 20
|
||||
vision_range = 9
|
||||
aggro_vision_range = 15
|
||||
ranged = TRUE
|
||||
|
||||
@@ -32,7 +32,7 @@ Difficulty: Medium
|
||||
movement_type = GROUND
|
||||
speak_emote = list("roars")
|
||||
speed = 3
|
||||
move_to_delay = 1.5
|
||||
move_to_delay = 3
|
||||
ranged = TRUE
|
||||
ranged_cooldown_time = 1.6 SECONDS
|
||||
pixel_x = -16
|
||||
@@ -191,7 +191,7 @@ Difficulty: Medium
|
||||
name = "hostile-environment miner"
|
||||
desc = "A miner destined to hop across dimensions for all eternity, hunting anomalous creatures."
|
||||
speed = 8
|
||||
move_to_delay = 4
|
||||
move_to_delay = 8
|
||||
ranged_cooldown_time = 0.8 SECONDS
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom/Initialize(mapload)
|
||||
|
||||
@@ -47,7 +47,7 @@ Difficulty: Hard
|
||||
melee_damage_lower = 40
|
||||
melee_damage_upper = 40
|
||||
speed = 5
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
retreat_distance = 5
|
||||
minimum_distance = 5
|
||||
rapid_melee = 8 // every 1/4 second
|
||||
@@ -248,7 +248,7 @@ Difficulty: Hard
|
||||
return FALSE
|
||||
enrage_till = world.time + enrage_time
|
||||
update_approach()
|
||||
INVOKE_ASYNC(src, .proc/change_move_delay, 2)
|
||||
INVOKE_ASYNC(src, .proc/change_move_delay, 3.75)
|
||||
add_atom_colour(COLOR_BUBBLEGUM_RED, TEMPORARY_COLOUR_PRIORITY)
|
||||
var/datum/callback/cb = CALLBACK(src, .proc/blood_enrage_end)
|
||||
addtimer(cb, enrage_time)
|
||||
|
||||
@@ -26,7 +26,7 @@ I'd rather there be something than the clockwork ruin be entirely empty though s
|
||||
vision_range = 9
|
||||
aggro_vision_range = 9
|
||||
speed = 5
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
rapid_melee = 2 // every second
|
||||
melee_queue_distance = 20
|
||||
ranged = TRUE
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
melee_damage_lower = 40
|
||||
melee_damage_upper = 40
|
||||
speed = 10
|
||||
move_to_delay = 5
|
||||
move_to_delay = 10
|
||||
ranged = TRUE
|
||||
pixel_x = -32
|
||||
base_pixel_x = -32
|
||||
@@ -100,7 +100,7 @@
|
||||
ranged_cooldown = world.time + 30
|
||||
telegraph()
|
||||
dir_shots.fire_in_directions(src, target, GLOB.alldirs)
|
||||
move_to_delay = 1.5
|
||||
move_to_delay = 3
|
||||
return
|
||||
else
|
||||
move_to_delay = initial(move_to_delay)
|
||||
|
||||
@@ -29,7 +29,7 @@ Difficulty: Extremely Hard
|
||||
vision_range = 18 // large vision range so combat doesn't abruptly end when someone runs a bit away
|
||||
rapid_melee = 4
|
||||
speed = 20
|
||||
move_to_delay = 10
|
||||
move_to_delay = 20
|
||||
gps_name = "Bloodchilling Signal"
|
||||
ranged = TRUE
|
||||
crusher_loot = list(/obj/effect/decal/remains/plasma, /obj/item/crusher_trophy/ice_block_talisman, /obj/item/ice_energy_crystal)
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
melee_damage_lower = 40
|
||||
melee_damage_upper = 40
|
||||
speed = 5
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
ranged = TRUE
|
||||
pixel_x = -16
|
||||
base_pixel_x = -16
|
||||
|
||||
@@ -54,7 +54,7 @@ Difficulty: Hard
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 15
|
||||
speed = 10
|
||||
move_to_delay = 5
|
||||
move_to_delay = 10
|
||||
ranged = TRUE
|
||||
ranged_cooldown_time = 4 SECONDS
|
||||
aggro_vision_range = 21 //so it can see to one side of the arena to the other
|
||||
|
||||
@@ -33,7 +33,7 @@ Difficulty: Hard
|
||||
vision_range = 9
|
||||
aggro_vision_range = 18 // man-eating for a reason
|
||||
speed = 6
|
||||
move_to_delay = 3
|
||||
move_to_delay = 6
|
||||
rapid_melee = 8 // every 1/4 second
|
||||
melee_queue_distance = 18 // as far as possible really, need this because of charging and teleports
|
||||
ranged = TRUE
|
||||
@@ -102,7 +102,7 @@ Difficulty: Hard
|
||||
update_cooldowns(list(COOLDOWN_UPDATE_SET_MELEE = 10 SECONDS, COOLDOWN_UPDATE_SET_RANGED = 10 SECONDS))
|
||||
if(WENDIGO_ENRAGED)
|
||||
speed = 4
|
||||
move_to_delay = 2
|
||||
move_to_delay = 4
|
||||
else
|
||||
stomp_range = initial(stomp_range)
|
||||
speed = initial(speed)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
minbodytemp = 0
|
||||
|
||||
faction = list("mimic")
|
||||
move_to_delay = 4.5
|
||||
move_to_delay = 9
|
||||
del_on_death = 1
|
||||
///A cap for items in the mimic. Prevents the mimic from eating enough stuff to cause lag when opened.
|
||||
var/storage_capacity = 50
|
||||
@@ -170,7 +170,7 @@ GLOBAL_LIST_INIT(mimic_blacklist, list(/obj/structure/table, /obj/structure/cabl
|
||||
health = 15 * I.w_class
|
||||
melee_damage_lower = 2 + I.force
|
||||
melee_damage_upper = 2 + I.force
|
||||
move_to_delay = I.w_class + 1
|
||||
move_to_delay = 2 * I.w_class + 1
|
||||
maxHealth = health
|
||||
if(user)
|
||||
creator = user
|
||||
@@ -224,7 +224,7 @@ GLOBAL_LIST_INIT(mimic_blacklist, list(/obj/structure/table, /obj/structure/cabl
|
||||
var/obj/item/gun/G = O
|
||||
melee_damage_upper = G.force
|
||||
melee_damage_lower = G.force - max(0, (G.force / 2))
|
||||
move_to_delay = G.w_class + 1
|
||||
move_to_delay = 2 * G.w_class + 1
|
||||
projectilesound = G.fire_sound
|
||||
TrueGun = G
|
||||
if(istype(G, /obj/item/gun/magic))
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
icon_dead = "Basilisk_dead"
|
||||
icon_gib = "syndicate_gib"
|
||||
mob_biotypes = MOB_ORGANIC|MOB_BEAST
|
||||
move_to_delay = 10
|
||||
move_to_delay = 20
|
||||
projectiletype = /obj/projectile/temp/basilisk
|
||||
projectilesound = 'sound/weapons/pierce.ogg'
|
||||
ranged = 1
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon_living = "curseblob"
|
||||
icon_aggro = "curseblob"
|
||||
mob_biotypes = MOB_SPIRIT
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
vision_range = 20
|
||||
aggro_vision_range = 20
|
||||
maxHealth = 40 //easy to kill, but oh, will you be seeing a lot of them.
|
||||
|
||||
+4
-4
@@ -36,7 +36,7 @@
|
||||
attack_sound = 'sound/weapons/punch1.ogg'
|
||||
throw_message = "does nothing to the rocky hide of the"
|
||||
speed = 2
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
mob_biotypes = MOB_ORGANIC|MOB_BEAST
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
deathmessage = "explodes into gore!"
|
||||
@@ -138,13 +138,13 @@
|
||||
visible_message(span_warning("[src] starts picking up speed!"))
|
||||
color = "#FF0000"
|
||||
set_varspeed(0)
|
||||
move_to_delay = 1.5
|
||||
move_to_delay = 3
|
||||
addtimer(CALLBACK(src, .proc/reset_rage), 65)
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/broodmother/proc/reset_rage()
|
||||
color = "#FFFFFF"
|
||||
set_varspeed(2)
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/broodmother/proc/call_children()
|
||||
ranged_cooldown = world.time + 60
|
||||
@@ -176,7 +176,7 @@
|
||||
attack_sound = 'sound/weapons/punch1.ogg'
|
||||
throw_message = "does nothing to the rocky hide of the"
|
||||
speed = 2
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
mob_biotypes = MOB_ORGANIC|MOB_BEAST
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
butcher_results = list()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
attack_sound = 'sound/magic/clockwork/ratvar_attack.ogg'
|
||||
throw_message = "doesn't affect the purity of"
|
||||
speed = 2
|
||||
move_to_delay = 5
|
||||
move_to_delay = 10
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
deathsound = 'sound/magic/demon_dies.ogg'
|
||||
deathmessage = "begins to shudder as it becomes transparent..."
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
attack_vis_effect = ATTACK_EFFECT_SLASH
|
||||
throw_message = "doesn't affect the sturdiness of"
|
||||
speed = 1
|
||||
move_to_delay = 1.5
|
||||
move_to_delay = 3
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
deathsound = 'sound/magic/curse.ogg'
|
||||
deathmessage = "'s arms reach out before it falls apart onto the floor, lifeless."
|
||||
@@ -253,7 +253,7 @@
|
||||
attack_vis_effect = ATTACK_EFFECT_BITE
|
||||
throw_message = "simply misses"
|
||||
speed = 0
|
||||
move_to_delay = 1
|
||||
move_to_delay = 2
|
||||
del_on_death = 1
|
||||
deathmessage = "crumbles away!"
|
||||
faction = list()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
attack_sound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||
throw_message = "merely dinks off of the"
|
||||
speed = 3
|
||||
move_to_delay = 5
|
||||
move_to_delay = 10
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
deathsound = 'sound/magic/repulse.ogg'
|
||||
deathmessage = "'s lights flicker, before its top part falls down."
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
mob_biotypes = MOB_ORGANIC|MOB_BEAST
|
||||
vision_range = 2
|
||||
aggro_vision_range = 9
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
friendly_verb_continuous = "harmlessly rolls into"
|
||||
friendly_verb_simple = "harmlessly roll into"
|
||||
maxHealth = 45
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
icon_gib = "syndicate_gib"
|
||||
mob_biotypes = MOB_ORGANIC|MOB_BEAST
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
move_to_delay = 20
|
||||
move_to_delay = 40
|
||||
ranged = 1
|
||||
ranged_cooldown_time = 120
|
||||
friendly_verb_continuous = "wails at"
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
turns_per_move = 8
|
||||
obj_damage = 0
|
||||
environment_smash = ENVIRONMENT_SMASH_NONE
|
||||
move_to_delay = 7.5
|
||||
move_to_delay = 15
|
||||
response_help_continuous = "pets"
|
||||
response_help_simple = "pet"
|
||||
response_disarm_continuous = "gently pushes aside"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
icon_dead = "Hivelord_dead"
|
||||
icon_gib = "syndicate_gib"
|
||||
mob_biotypes = MOB_ORGANIC
|
||||
move_to_delay = 7
|
||||
move_to_delay = 14
|
||||
ranged = 1
|
||||
vision_range = 5
|
||||
aggro_vision_range = 9
|
||||
@@ -70,7 +70,7 @@
|
||||
icon_aggro = "Hivelordbrood"
|
||||
icon_dead = "Hivelordbrood"
|
||||
icon_gib = "syndicate_gib"
|
||||
move_to_delay = 1.5
|
||||
move_to_delay = 1
|
||||
friendly_verb_continuous = "buzzes near"
|
||||
friendly_verb_simple = "buzz near"
|
||||
vision_range = 10
|
||||
@@ -268,7 +268,7 @@
|
||||
del_on_death = TRUE
|
||||
sentience_type = SENTIENCE_BOSS
|
||||
loot = list(/obj/item/organ/regenerative_core/legion = 3, /obj/effect/mob_spawn/corpse/human/legioninfested = 5)
|
||||
move_to_delay = 7
|
||||
move_to_delay = 14
|
||||
vision_range = 5
|
||||
aggro_vision_range = 9
|
||||
speed = 3
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
speak_emote = list("telepathically cries")
|
||||
speed = 2
|
||||
move_to_delay = 1
|
||||
move_to_delay = 2
|
||||
projectiletype = /obj/projectile/temp/basilisk/ice
|
||||
projectilesound = 'sound/weapons/pierce.ogg'
|
||||
ranged = TRUE
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
friendly_verb_simple = "stare down"
|
||||
speak_emote = list("roars")
|
||||
speed = 12
|
||||
move_to_delay = 6
|
||||
move_to_delay = 12
|
||||
ranged = TRUE
|
||||
ranged_cooldown_time = 5 SECONDS
|
||||
maxHealth = 300
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
friendly_verb_simple = "chits at"
|
||||
speak_emote = list("chitters")
|
||||
speed = 3
|
||||
move_to_delay = 10
|
||||
move_to_delay = 20
|
||||
maxHealth = 150
|
||||
health = 150
|
||||
obj_damage = 15
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
friendly_verb_simple = "growl at"
|
||||
speak_emote = list("growls")
|
||||
speed = 3
|
||||
move_to_delay = 4
|
||||
move_to_delay = 8
|
||||
maxHealth = 300
|
||||
health = 300
|
||||
obj_damage = 40
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
friendly_verb_simple = "howl at"
|
||||
speak_emote = list("howls")
|
||||
speed = 5
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
maxHealth = 130
|
||||
health = 130
|
||||
obj_damage = 15
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
melee_damage_lower += rand(3, 5)
|
||||
melee_damage_upper += rand(10,20)
|
||||
maxHealth += rand(40,60)
|
||||
move_to_delay = rand(1.5, 5.5)
|
||||
move_to_delay = rand(3,11)
|
||||
cap_living = cap_living || mutable_appearance(icon, "mushroom_cap")
|
||||
cap_dead = cap_dead || mutable_appearance(icon, "mushroom_cap_dead")
|
||||
|
||||
|
||||
@@ -298,7 +298,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/clown/mutant/slow
|
||||
speed = 20
|
||||
move_to_delay = 30
|
||||
move_to_delay = 60
|
||||
|
||||
/mob/living/simple_animal/hostile/retaliate/clown/mutant/glutton
|
||||
name = "banana glutton"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
health_doll_icon = "Fugu0"
|
||||
mob_biotypes = MOB_ORGANIC|MOB_BEAST
|
||||
mouse_opacity = MOUSE_OPACITY_ICON
|
||||
move_to_delay = 2.5
|
||||
move_to_delay = 5
|
||||
friendly_verb_continuous = "floats near"
|
||||
friendly_verb_simple = "float near"
|
||||
speak_emote = list("puffs")
|
||||
@@ -103,7 +103,7 @@
|
||||
F.throw_message = "is absorbed by the girth of the"
|
||||
F.retreat_distance = null
|
||||
F.minimum_distance = 1
|
||||
F.move_to_delay = 3
|
||||
F.move_to_delay = 6
|
||||
F.environment_smash = ENVIRONMENT_SMASH_WALLS
|
||||
F.mob_size = MOB_SIZE_LARGE
|
||||
F.speed = 1
|
||||
@@ -121,7 +121,7 @@
|
||||
throw_message = "is avoided by the"
|
||||
retreat_distance = 9
|
||||
minimum_distance = 9
|
||||
move_to_delay = 1
|
||||
move_to_delay = 2
|
||||
inflate_cooldown = 4
|
||||
environment_smash = ENVIRONMENT_SMASH_NONE
|
||||
mob_size = MOB_SIZE_SMALL
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
var/parrot_sleep_dur = 25 //Same as above, this is the var that physically counts down
|
||||
var/parrot_dam_zone = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_ARM, BODY_ZONE_R_LEG) //For humans, select a bodypart to attack
|
||||
|
||||
var/parrot_speed = 2.5 //Delay in deciseconds between movement
|
||||
var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower.
|
||||
var/parrot_lastmove = null //Updates/Stores position of the parrot while it's moving
|
||||
var/parrot_stuck = 0 //If parrot_lastmove hasn't changed, this will increment until it reaches parrot_stuck_threshold
|
||||
var/parrot_stuck_threshold = 10 //if this == parrot_stuck, it'll force the parrot back to wandering
|
||||
|
||||
@@ -695,7 +695,7 @@
|
||||
return
|
||||
if(!Adjacent(hunted))
|
||||
stop_automated_movement = TRUE
|
||||
SSmove_manager.move_to(src, hunted, 0, 1.5)
|
||||
SSmove_manager.move_to(src, hunted, 0, 3)
|
||||
if(Adjacent(hunted))
|
||||
hunt(hunted) // In case it gets next to the target immediately, skip the scan timer and kill it.
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user