Adds smooth movement/atom gliding, buffs everyone's speed by 2x. (#21662)

Revives https://github.com/Aurorastation/Aurora.3/pull/17215 with the
needed species changes.

As I said last time this was tried, the key issue is that our walkspeed
is a lot lower than any other server's. Even if we add atom gliding as
is, it would just look like gliding through molasses and would give you
motion sickness, because it takes a half-second to finish a glide to
another tile. Meaning that to compensate the movement speed has now been
significantly buffed for everyone. Yes, even dionae, G2, simple mobs,
everyone.

As compensation, m'sai/bishop/unathi sprint were especially nerfed
because otherwise they'd go lightspeed.



https://github.com/user-attachments/assets/7ba07389-b874-4a7d-8dd5-b5d3bfe611e4

---------

Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Batrachophreno <Batrochophreno@gmail.com>
This commit is contained in:
Matt Atlas
2026-02-03 18:17:11 +01:00
committed by GitHub
parent d002b8bd51
commit fa7214de3c
23 changed files with 179 additions and 43 deletions
@@ -257,7 +257,7 @@
tail = "tajtail"
tail_animation = 'icons/mob/species/tajaran/tail.dmi'
slowdown = -1
slowdown = -0.4
brute_mod = 1.2
fall_mod = 0.5
@@ -383,7 +383,7 @@
stamina = 80
sprint_speed_factor = 1.2
slowdown = -2
slowdown = -0.6
standing_jump_range = 5
natural_climbing = TRUE
@@ -320,7 +320,7 @@ GLOBAL_LIST_INIT(golem_types, list(
bodytype = "Human"
slowdown = -2
slowdown = -0.6
brute_mod = 1.5
burn_mod = 3
@@ -345,7 +345,7 @@ GLOBAL_LIST_INIT(golem_types, list(
icobase = 'icons/mob/human_races/golem/r_cardboard.dmi'
deform = 'icons/mob/human_races/golem/r_cardboard.dmi'
slowdown = -1
slowdown = -0.3
brute_mod = 1.5
burn_mod = 3
@@ -656,7 +656,7 @@ GLOBAL_LIST_INIT(golem_types, list(
brute_mod = 1.2
burn_mod = 1
slowdown = -2
slowdown = -0.8
meat_type = /obj/item/ore/glass
@@ -711,7 +711,7 @@ GLOBAL_LIST_INIT(golem_types, list(
brute_mod = 1.2
burn_mod = 1.3
slowdown = -1
slowdown = -0.3
meat_type = /obj/item/stack/material/plastic
@@ -584,7 +584,7 @@
eyes = "zenghu_eyes"
brute_mod = 1.5
slowdown = -0.8
slowdown = -0.6
sprint_speed_factor = 0.6
sprint_cost_factor = 2
move_charge_factor = 2
@@ -200,5 +200,5 @@
brute_mod = 0.8
burn_mod = 2
fall_mod = 0
slowdown = -1
slowdown = -0.3
@@ -25,7 +25,7 @@
/singleton/maneuver/leap/tajara
)
darksight = 8
slowdown = -1
slowdown = -0.4
brute_mod = 1.2
fall_mod = 0.5
@@ -12,8 +12,8 @@
secondary_langs = list(LANGUAGE_SIIK_TAJR, LANGUAGE_DELVAHII)
slowdown = -0.8 //As opposed to -1 for Base tajara
sprint_speed_factor = 0.55 // As opposed to 0.65
slowdown = -0.2
sprint_speed_factor = 0.55
standing_jump_range = 2
stamina = 100 // As opposed to 90
brute_mod = 1.1 // Less Brute Damage
@@ -57,8 +57,8 @@
worked as hunters, later becoming warriors and soldiers as civilization developed."
species_height = HEIGHT_CLASS_AVERAGE
slowdown = -1.2 //As opposed to -1 for Base tajara
sprint_speed_factor = 0.75 // As opposed to 0.65
slowdown = -0.6
sprint_speed_factor = 0.75
standing_jump_range = 3
stamina = 80 // As opposed to 90
brute_mod = 1.3 // More Brute Damage
@@ -46,8 +46,8 @@
stamina = 120 // Unathi have the shortest but fastest sprint of all
stamina_recovery = 5
sprint_cost_factor = 1.45
sprint_speed_factor = 3.2
sprint_cost_factor = 1.75
sprint_speed_factor = 1.6
exhaust_threshold = 65
bp_base_systolic = 80 // Default 120
bp_base_disatolic = 50 // Default 80
@@ -73,7 +73,7 @@
icobase = 'icons/mob/human_races/vaurca/r_vaurcabb.dmi'
eyes = "vaurca_attendant_eyes"
slowdown = -0.8
slowdown = -0.6
brute_mod = 0.9
oxy_mod = 1
radiation_mod = 0.5
+12 -13
View File
@@ -186,8 +186,6 @@
if(mob.transforming)
return //This is sota the goto stop mobs from moving var
var/add_delay = mob.cached_multiplicative_slowdown
if(isliving(mob))
if(SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_PRE_LIVING_MOVE, new_loc, direct) & COMSIG_MOB_CLIENT_BLOCK_PRE_LIVING_MOVE)
return FALSE
@@ -244,7 +242,6 @@
else
mob.inertia_dir = 0 //If not then we can reset inertia and move
if(mob.restrained()) //Why being pulled while cuffed prevents you from moving
var/mob/puller = mob.pulledby
if(puller)
@@ -259,15 +256,6 @@
move_delay = world.time + 1 SECOND // prevent spam
return FALSE
//If the move was recent, count using old_move_delay
//We want fractional behavior and all
if(old_move_delay + world.tick_lag > world.time)
//Yes this makes smooth movement stutter if add_delay is too fractional
//Yes this is better then the alternative
move_delay = old_move_delay
else
move_delay = world.time
if(mob.buckled_to)
if(istype(mob.buckled_to, /obj/vehicle))
//manually set move_delay for vehicles so we don't inherit any mob movement penalties
@@ -314,7 +302,6 @@
tally *= GLOB.config.walk_delay_multiplier
move_delay += tally
move_delay += add_delay
if(mob_is_human && mob.lying)
var/mob/living/carbon/human/H = mob
@@ -337,6 +324,16 @@
//We are now going to move
moving = 1
var/new_glide_size = mob.glide_size
if(old_move_delay + world.tick_lag > world.time)
new_glide_size = DELAY_TO_GLIDE_SIZE((move_delay - old_move_delay) * ( (NSCOMPONENT(direct) && EWCOMPONENT(direct)) ? sqrt(2) : 1 ) )
else
new_glide_size = DELAY_TO_GLIDE_SIZE((move_delay - world.time) * ( (NSCOMPONENT(direct) && EWCOMPONENT(direct)) ? sqrt(2) : 1 ) )
mob.set_glide_size(new_glide_size) // set it now in case of pulled objects
if(mob_is_human)
for(var/obj/item/grab/G in list(mob.l_hand, mob.r_hand))
switch(G.get_grab_type())
@@ -354,9 +351,11 @@
for (var/obj/item/grab/G in list(mob.l_hand, mob.r_hand))
if (G.state == GRAB_NECK)
mob.set_dir(REVERSE_DIR(direct))
G.affecting.set_glide_size(new_glide_size)
G.adjust_position()
for (var/obj/item/grab/G in mob.grabbed_by)
G.affecting.set_glide_size(new_glide_size)
G.adjust_position()
moving = 0