* Part1
* IT COMPILES!!!!
* Fuck wait this was missing from that last
* Update handlabeler.dm
* Update handlabeler.dm
* Fixes n shit
* Fix this
* Fixes#23310
* Fucking @RemieRichards was right
* Fixes devil unEquip
* WTF ARE BITFLAGS?
* THERES THE FUCKING PROBLEM
* Fixes
* Fixes some bad addtimers
* Adds INVOKE
* Warning for addtimer
* Working syntax
* Another bad call
* Fixes the addtimer warning
* Add suppress_zero_warning to addtimer
Useful for addtimer that uses vars
* Add INVOKE_AGAIN for when the var is already defined
* Replace addtimer(...,0) with INVOKE((...))
* Much more sensible syntax
* Less overhead, less copypaste
* Rename INVOKE_ASYNC
* Use a macro
* Allman style
* Wait, why make it a datum in the first place?
* Revert the rename
* Rename again, keep line endings
* typo
* More typos
* Untouches Addtimer
* Update callbacks.dm
* Update timer.dm
* Revert allman style
* Revert "Revert allman style"
This reverts commit 47361da15bd04eca138be5f13acdc9dd5ba89331.
* Trying to match that whitespace diff
* Why is this missing?
* I'm not fucking dealing with this!
* Fixes instant summons and probably a few other edge cases
* woken in a fog don't sweat it
and reckon none of it had come from you
* echo
* no lesson in magic, just untimely dreams
* slapdash code queen
* 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.
🆑 coiax
add: Lich phylacteries are now in the "points of interest" for ghosts.
/🆑
Also, a phylactery just appends to the description of the item, rather
than clobbering it.
Balance consideration: if a lich summons magic and a crewmember get a
scrying orb, they'll be able to locate the phylactery immediately. So I
guess this is a lich nerf?
* Make energy guns able to use burst fire.
* Changed obj/item/weapon/gun/projectile to /gun/ballistic and the name of the folder from "projectile" to "ballistic" to avoid confusion between actually projectiles and guns.
Syringe gun, energy guns and magic guns can now use burst fire.
* fixing merge conflict shit
* fixing map conflicts
* more map conflict fix
* two tiny fixes.
* tiny tweak
* fixing merge conflicts.
Moving the practice mini egun to the gun module.
Renamed nuclear.dm to energy_gun.dm
* map conflict fixes
Guvax is now targeted; invoking it charges your slab to bind and start converting the next target attacked in melee within 10 seconds. This makes your slab visible in-hand.
tweak: Above 5 Servants, the invocation to charge your slab is not whispered, and the conversion time is increased for each Servant above 5.
Using Guvax on an already bound target will stun them. The bound target can resist out, which will prevent conversion.
Sentinel's Compromise is now targeted, like Guvax, but can select any target in vision range.
Sentinel's Compromise now also removes holy water from the target Servant.
Clicking your slab will cancel these scriptures.
Both of these will change your cursor, to make it obvious they're active and you can't do anything else.
Convert times are faster at very high servant amounts, but it's much easier for 1-on-1 conversions to go wrong and have the target escape. (Though the binding makes early conversions slightly easier.)
Resist time for the binding is a flat 4 seconds, and moving/being moved while chanting will break it immediately.
Formula for conversion time is 5 + (0.5 for each valid servant above 5) seconds up to a maximum of 10 seconds at 15 servants.
* Starts to add a new wizard spell, based on the LIGHTNING BOLT! LIGHTNING BOLT! LIGHTNING BOLT meme.
* Adds spell to spellbook, and makes it functional.
* Fixes compile error
* Casting the spell now automatically readies your throw.
* Pitchforks don't auto throw
Summon pitchfork no longer also auto throws.