code/modules/mob/mob_movespeed.dm
How move speed for mobs works Move speed is now calculated by using a list of movespeed modifiers, which is a list itself (to avoid datum overhead) This gives us the ability to have multiple sources of movespeed, reliabily keep them applied and remove them when they should be THey can have unique sources and a bunch of extra fancy flags that control behaviour Previously trying to update move speed was a shot in the dark that usually meant mobs got stuck going faster or slower This list takes the following format
WHen update movespeed is called, the list of items is iterated, according to flags priority and a bunch of conditions this spits out a final calculated value which is used as a modifer to last_move + modifier for calculating when a mob can next move Key procs | |
/proc/movespeed_data_null_check | Checks if a move speed modifier is valid and not missing any data |
---|