* SSthrowing + callbacks!
Throwing is now a subsystem.
It's low priority, but is a ticker subsystem so is ran before most other subsystems.
To allow for shit to run after the throw finishes, throwing now supports a callback.
A callback datum system was created, conversion of addtimer is planned for another PR.
Throwing now has a limit of 2048 turfs (was 600)
Throwing now ticks every world.tick, and properly converts the speed arg from 1ds to what ever tick_lag is.
Throwing now properly accounts for missed ticks.
Throwing no longer uses sleep.
Throwing should no longer lag since it's not filling the sleep queue up
* Smoother tentacles
* Some improvements
* Missed a spot.
* Makes shit quicker.
Inlines the thrownthing.tick() proc.
Raises missed ticks value
Lowers max dist value
Inlines the two sister overrides for /atom/movable/Moved() because that just seemed like a waste
* >PRs open that use procs i'm removing.
* STOP THE PRESSES!
* throw_at now runs the first throw tick() immediately
This will help some with throwing while running.
* Item throwing now imparts the momentum of the user throwing.
(ie, running in the direction you are throwing makes you throw faster, running away from the direction you are throwing makes you throw the item slower)
* Moves throwing momentum from carbon/throw_item to movable/throw_at.
There are other things that cause a mob to "throw" an item, I figured we keep this universal since thrower is already an arg.
* Explosions throw shit faster.
This was stupid, "Hey, lets set the item's throw_speed to 4 so embedding works, but lets make it throw at the base 2 throw speed for no reason."
* Fixes explosion embedding.
This also acts as a nice example of how to override a callback in an override of throw_at properly.
Aflap is now a child of flap, each having a wing opening/closing timer, also improved the code there a bit.
Adds a stat_allowed var(all emotes are default to CONSCIOUS).
* Wizards can now buy magic guardians for 2 points
* a touch of wizard handling
god damn it spell magic men
* i swear i removed that
* asshole thaumaturge
* this is a good time to not mindswap you idiot, you fool
* MMI'd clockcultists put in AI cores will properly lose clockcult
* uuuuugh
* fix the core while we're at it
* "
* mrrp
* this will also follow you around
* hmm
Fixes spider structures having null armor
Fixes division by 0 with hellcan
Fixes runtime in automatons
Fixes runtime with recharger in modular computer destroy
Fixes runtime in power monitor
* Throttles botcall's call bot command
It will now make the ai wait until the bot's astar operation has finished before it can send another call bot command (to any bot).
There is a secondary time out of 90 seconds in case the astar operation just never returns, this is mainly a failsafe, the longest astar operation i've seen is 47 seconds.
* Update ai.dm
* CTF guns only hurt mobs with CTF armor
This is moving towards the possiblity of spawning CTF spawns and flag
spawns onto the station without people being caught in the crossfire.
* Debug messages are bad
* Cyborg upgrade board tweaks
🆑 coiax
add: Cyborg renaming boards cannot be used if no name has been entered.
del: Cyborg rename and emergency reboot modules are destroyed upon use,
and not stored inside the cyborg to be ejected if modules are reset.
/🆑
Reasons: Because being renamed "default name" isn't fun, and it means
you have to hang around to be renamed AGAIN. And for lore/balance/sanity
reasons, you don't get to get the reboot board back after you used it;
try dying less.
* Naming changes, and transformer tweak
- A new unnamed cyborg will copy the user's prefered cyborg name if
possible, defaulting to the old format if there's no preference.
- A rename board with no setting will apply the cyborg's default name,
if one exists, see above.
- Cyborg transformers (from the traitor AI) will no longer destroy all
items.
* Made behaviour more consistent
* Fix spelling