Two mobs can no longer pull the same mob at the same time. Pulling someone break any other pull/grab from other mob on that person.
The grab item is gone entirely.
You can now only grab one mob at a time, instead of two (one for each hand).
Being aggressively grabbed or more now counts as being restrained (like handcuffed). A neck grab or more makes you lie down and prevents you from getting up until the grab is broken.
Fixes movement when moving with a grabbed person.
Fixes movement when moving a pulled person around you diagonally.
Fixes neckgrab moving the victim on your turf even if the turf is dense.
Replace super weird "locate(/obj/item/weapon/grab, locate(/obj/item/weapon/grab, mob.grabbed_by.len))" by simple if(grabbed_by.len)"
Cleans up Process_Grab to be easier to read.
Simplifies MobBump() proc, especially the part about pushing a mob that is pulling or is pullsed/grabbed. We no longer check for mobs in a 1 tile radius every time we bump a mob.
Fixes runtime with clear_reagents_to_vomit_pool() due to a typo.
spawns have a high overhead.
I only went for easy targets, almost every spawn could be removed with a few subsystems in place to handle delays or cooldowns
Basic premise: Get all mob movement delays calculated in movement_delay() instead of having half of them in Client/Move(). Except for the slowdown from grabbing, which is so shit I can't even. The idea here is to eventually have the AI movements be at the same speed as client-initiated ones.
Let's try this again: Removes TickComp because it's a useless pile of shit that's based on a false idea of how BYOND's ticks and tile-based movement work.
Only applies to non-ghost, non-camera mob movement. Scales automatically to any fps and any move delay.
Also took this oppurtunity to remove tickcomp because it was USELESS and shit.
All the rounding is because of floating point imprecision. round(2.7, 0.9) != 2.7, for example. 2.7 + world.time would wind up being < than world.time 3 ticks later even though they should be equal.
Moved last_bumped var from movable to living.
Renamed /obj/machinery/field/proc/bump to bump_field() to avoid confusion with Bump(). Same thing with /obj/effect/mine/Bumped() -> triggermine().
Fixes sprite when hunter leaps into a wall. 10428
Removed some commented code here and there.
Remove allow_spin var, throw_at now uses a spin argument for that.
Throwpass atom var is no longer used to check whether thrown stuff can pass stuff (now using CanPass() proc like everything else), the var is still used for some adjacency click check.
A thrown mob hitting another mob now produces a sound; also thrown mob and target one no longer swap places even on help intent.
A thrown mob now is lightly hurt (and weakened) if he hits a wall/mob/dense object. Nerf the damage when thrown mob hit wall.(20 -> 10)
Thrown obj/mob no longer bounces off wall unless it's no grav. Heavy thrown items now push an unanchored obj/mob target.
Fixes losing all momentum when getting out of a thrown closet. 6569
A lot of work on throw_at, throw_impact, and hitby to make the code more OOP. Thrown items no longer collide with border items on the side. 10479
Fixes the killer crusher. 10507
- Patch: Don't update html_interface clients that have been inactive for more than 10 minutes.
- Patch: Attempt to speed up _renderContent some more (in case of multiple clients) by using spawn.
- Patch: Second argument for hiIsValidClient hook: reference to the current html_interface object (used by crew monitoring computer).
- Feature: procqueue singleton. You can use this to put proc executions on a queue. Used by the crew monitoring computer to queue the update "for the next tick" when humans move.
Fixes with projectile bump() on border objects.
Fixes some projectile on_hit() not calling the parent on_hit.
Move projectile mob hit check code to mob/CanPass().
Simplifies projectile/CanPass()
Fixes runtime in projectile/Bump()
Add the incapacitated proc to mobs to check for stat, stun, weakened, paralysis, restrained. And replacing those checks by that new proc in some places.