🆑
fix: revenants now properly resurrect from ectoplasm, as opposed to ectoplasm merely spawning a new grief ghost
/🆑fixes#26620
Also fixes a form of abuse where a revenant can drain someone, die and keep the essence, and then drain them again.
Revenants that reform when the original client is gone will now poll for candidates instead of grabbing a new client instantly.
* Clockwork component generation is twice as fast, but scriptures cost about twice as much
* sssh
* gotta double that, too
* slab text fix that nobody looks at anyway
Currently `occupant` in /obj/machinery is a /mob/living type. I have
changed it to /atom/movable, and made a type cache to determine what to
"look for" when `close_machine()` is called.
This means that machines can have non-mob occupants. I have some design
ideas for this, but that's after the freeze.
* quick!
* Belligerent now prevents you from running even between chants
* one fuckup and git turns into a screaming hellspace populated only by pain
* glob
* seven seconds of pain
Shouldn't break anything, stops warning spam, logs errors qdel style at the end of the game.
Initialize now expects a hint to be returned, one of:
INITIALIZE_HINT_NORMAL - Does nothing, returned by the root proc
INITIALIZE_HINT_LATELOAD - Call atom/proc/LateInitialize
INITIALIZE_HINT_QDEL - Calls qdel on the atom
LateInitialize currently defaults to the old re-calling behavior so there should be no issues with that.
Things that didn't return a hint or fucked up somehow will be logged less loudly than they were before
No more world start warnings!
🆑 coiax
balance: The wizard spell Rod Form now costs 3 points, up from 2.
/🆑
It's a one hit KO spell that also provides escape, mobility, on a really
short cooldown. Pretty much always picked up by any offensive mage.
Cost should be pushed up at the least.
In cases where you're creating an image to use as an overlay, it makes more sense to use a mutable_appearance if you can. The image will create a static appearance for not just the image but also each intermediate step if you change vars along the way. The mutable appearance avoids this unnecessary and expensive process. The only situation that requires an image instead of a mutable_appearance is if the overlay is supposed to be directional. MA's ignore direction while images don't. I dunno why, probably another BYOND-ism.
I added a convenience function, mutable_appearance(), designed to emulate image(). Also went ahead and set the default plane of /mutable_appearance to FLOAT_PLANE because it's fucking 0 by default.
Several overlays that were image() calls were changed to just text strings when I could. overlays += "string" has the same result as overlays += image(icon, "string") and saves a proc call.
🆑 coiax
balance: Wizard traps automatically disappear five minutes after being
summoned.
balance: Wizard traps disappear after firing, whether triggered via
person or something being thrown across it.
balance: Wizards are immune to their own traps.
tweak: The Traps are now marked as a Defensive spell, rather than an
Offensive spell.
/🆑
So a permament structure that has to be beaten down in order to remove
isn't really fun in the long term. So instead, they fire once, and then
disappear. They also disappear after a bit, so they're not long term
hazards, but they do stick around long enough so the wizard can feel
comfortable running back into an area they've already trapped, for that
AREA CONTROL.