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