From 934a5ea4985ce48fe88598c79b014a46fbc1ec34 Mon Sep 17 00:00:00 2001 From: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Date: Thu, 27 Jan 2022 17:50:08 -0800 Subject: [PATCH] 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 a83657438836c4a4da02bea29047e9a0a9427a4f. 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 --- code/__DEFINES/movement.dm | 2 ++ code/controllers/subsystem/movement/movement_types.dm | 5 ++++- code/datums/ai/monkey/monkey_behaviors.dm | 2 +- code/game/objects/effects/spiderwebs.dm | 2 +- code/modules/hydroponics/unique_plant_genes.dm | 6 +++--- code/modules/mining/minebot.dm | 4 ++-- .../mob/living/simple_animal/bot/SuperBeepsky.dm | 2 +- .../mob/living/simple_animal/bot/hygienebot.dm | 10 +++++----- code/modules/mob/living/simple_animal/bot/secbot.dm | 2 +- code/modules/mob/living/simple_animal/friendly/cat.dm | 2 +- .../modules/mob/living/simple_animal/hostile/alien.dm | 4 ++-- code/modules/mob/living/simple_animal/hostile/carp.dm | 2 +- .../mob/living/simple_animal/hostile/dark_wizard.dm | 2 +- .../mob/living/simple_animal/hostile/giant_spider.dm | 8 ++++---- .../mob/living/simple_animal/hostile/hostile.dm | 11 +++++------ .../simple_animal/hostile/jungle/mega_arachnid.dm | 2 +- .../living/simple_animal/hostile/jungle/seedling.dm | 2 +- .../hostile/megafauna/blood_drunk_miner.dm | 4 ++-- .../simple_animal/hostile/megafauna/bubblegum.dm | 4 ++-- .../hostile/megafauna/clockwork_knight.dm | 2 +- .../simple_animal/hostile/megafauna/colossus.dm | 4 ++-- .../hostile/megafauna/demonic_frost_miner.dm | 2 +- .../living/simple_animal/hostile/megafauna/drake.dm | 2 +- .../simple_animal/hostile/megafauna/hierophant.dm | 2 +- .../living/simple_animal/hostile/megafauna/wendigo.dm | 4 ++-- .../modules/mob/living/simple_animal/hostile/mimic.dm | 6 +++--- .../simple_animal/hostile/mining_mobs/basilisk.dm | 2 +- .../simple_animal/hostile/mining_mobs/curse_blob.dm | 2 +- .../hostile/mining_mobs/elites/goliath_broodmother.dm | 8 ++++---- .../hostile/mining_mobs/elites/herald.dm | 2 +- .../hostile/mining_mobs/elites/legionnaire.dm | 4 ++-- .../hostile/mining_mobs/elites/pandora.dm | 2 +- .../simple_animal/hostile/mining_mobs/goldgrub.dm | 2 +- .../simple_animal/hostile/mining_mobs/goliath.dm | 2 +- .../simple_animal/hostile/mining_mobs/gutlunch.dm | 2 +- .../simple_animal/hostile/mining_mobs/hivelord.dm | 6 +++--- .../simple_animal/hostile/mining_mobs/ice_demon.dm | 2 +- .../simple_animal/hostile/mining_mobs/ice_whelp.dm | 2 +- .../simple_animal/hostile/mining_mobs/lobstrosity.dm | 2 +- .../simple_animal/hostile/mining_mobs/polarbear.dm | 2 +- .../living/simple_animal/hostile/mining_mobs/wolf.dm | 2 +- .../mob/living/simple_animal/hostile/mushroom.dm | 2 +- .../living/simple_animal/hostile/retaliate/clown.dm | 2 +- .../living/simple_animal/hostile/wumborian_fugu.dm | 6 +++--- code/modules/mob/living/simple_animal/parrot.dm | 2 +- .../modules/mob/living/simple_animal/simple_animal.dm | 2 +- 46 files changed, 79 insertions(+), 75 deletions(-) diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm index f47033ba233..5b2ea68d853 100644 --- a/code/__DEFINES/movement.dm +++ b/code/__DEFINES/movement.dm @@ -32,6 +32,8 @@ GLOBAL_VAR_INIT(glide_size_multiplier, 1.0) #define MOVEMENT_LOOP_START_FAST (1<<0) ///Do we not use the priority system? #define MOVEMENT_LOOP_IGNORE_PRIORITY (1<<1) +///Should we override the loop's glide? +#define MOVEMENT_LOOP_IGNORE_GLIDE (1<<2) /** * currently_z_moving defines. Higher numbers mean higher priority. diff --git a/code/controllers/subsystem/movement/movement_types.dm b/code/controllers/subsystem/movement/movement_types.dm index 350528427e3..7ce34591133 100644 --- a/code/controllers/subsystem/movement/movement_types.dm +++ b/code/controllers/subsystem/movement/movement_types.dm @@ -34,7 +34,7 @@ src.priority = priority src.flags = flags -/datum/move_loop/proc/setup(delay = world.tick_lag, timeout = INFINITY) +/datum/move_loop/proc/setup(delay = 1, timeout = INFINITY) if(!ismovable(moving) || !owner) return FALSE @@ -97,6 +97,9 @@ if(QDELETED(src) || !success) //Can happen return + if(flags & MOVEMENT_LOOP_IGNORE_GLIDE) + return + moving.set_glide_size(MOVEMENT_ADJUSTED_GLIDE_SIZE(delay, visual_delay)) ///Handles the actual move, overriden by children diff --git a/code/datums/ai/monkey/monkey_behaviors.dm b/code/datums/ai/monkey/monkey_behaviors.dm index 1a6dba13809..be386a3b692 100644 --- a/code/datums/ai/monkey/monkey_behaviors.dm +++ b/code/datums/ai/monkey/monkey_behaviors.dm @@ -132,7 +132,7 @@ break if(target) - SSmove_manager.move_away(living_pawn, target, max_dist=MONKEY_ENEMY_VISION, delay=2.5) + SSmove_manager.move_away(living_pawn, target, max_dist=MONKEY_ENEMY_VISION, delay=5) else finish_action(controller, TRUE) diff --git a/code/game/objects/effects/spiderwebs.dm b/code/game/objects/effects/spiderwebs.dm index 74bc5f15201..8ec5ec113c5 100644 --- a/code/game/objects/effects/spiderwebs.dm +++ b/code/game/objects/effects/spiderwebs.dm @@ -211,7 +211,7 @@ for(var/obj/machinery/atmospherics/components/unary/vent_pump/v in view(7,src)) if(!v.welded) entry_vent = v - SSmove_manager.move_to(src, entry_vent) + SSmove_manager.move_to(src, entry_vent, 1) break if(isturf(loc)) amount_grown += rand(0,2) diff --git a/code/modules/hydroponics/unique_plant_genes.dm b/code/modules/hydroponics/unique_plant_genes.dm index 45c1ecbf4b8..02a3d49bb75 100644 --- a/code/modules/hydroponics/unique_plant_genes.dm +++ b/code/modules/hydroponics/unique_plant_genes.dm @@ -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 diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 4649a6b976c..df318a8bd51 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -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) diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm index f8854d43dcf..eba10e502d2 100644 --- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm +++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/bot/hygienebot.dm b/code/modules/mob/living/simple_animal/bot/hygienebot.dm index 5da9521e194..a73b0e7ffc4 100644 --- a/code/modules/mob/living/simple_animal/bot/hygienebot.dm +++ b/code/modules/mob/living/simple_animal/bot/hygienebot.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 54869a49715..a726e5d27b2 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 320f28b2c1b..571a286f4de 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -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" diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 3efad848051..5bc63d3fd7a 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -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, diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 9798a8c1563..1559ebaba32 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -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() diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm index a54b8d51edb..0a4146bc7e0 100644 --- a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 5a7cddeac83..883148c4b20 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 051c95ce303..075a2c6313d 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -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) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm index b949633f911..fb752989cef 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm @@ -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' diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm index 56ba6c75763..1ced1676766 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index bb35a700ad5..a48d9c4c617 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -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) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index 72771671034..90c8208a400 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -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) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm index 41bb5e329d1..14d3df22c9e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/clockwork_knight.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 53451fc2c17..8eb7bc7fbc6 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -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) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm index 58c65f4525c..f4eb72fb123 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/demonic_frost_miner.dm @@ -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) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index a6487d653bd..1b38d1dc68b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 1e9aeae180a..b3cbdf65e7b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 6bdbf138be0..15cbaea6893 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -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) diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 72eba0b1a4b..b0512edbe15 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -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)) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 79ad736fdc4..a48cb32181f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 7bcdf6efc63..0073cb1a64a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -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. diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm index 76bb46cd26e..301c06a21e7 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm @@ -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() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm index a9e705568eb..26e6485cd01 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/herald.dm @@ -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..." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm index ae76dd47411..c050407b86f 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/legionnaire.dm @@ -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() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index 2c7d4aae1cd..6c9510c7675 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -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." diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 7292ebfb9c5..e109fe5803b 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 457a216c6af..ed134f0f631 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -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" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm index c30238c43ad..ceb6f29f523 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm @@ -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" diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 010d18db16a..6491af064aa 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm index 9cd76e6c583..8de00fd2686 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm index bfcf2978912..6ab0f8ada88 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm index 24e8b09dc1d..d5ae726e6d0 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm index f089718c904..aabbebd4127 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/polarbear.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm index 0675a1e8fb6..61ce1ffea9c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/wolf.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index be949bb472b..31d73874fee 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -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") diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm index bfb47f97cf3..46ed13fb4f5 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm @@ -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" diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm index 77f83ddb5ec..3769792b28e 100644 --- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm +++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 50c8449abf5..17dd528f722 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 9fd2a3cd0c3..29f05af40a0 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -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