* Move some job related achievements into the job achievement category (#78092)
## About The Pull Request
Read title, this only affects the UI and not the database as far as I am
aware
## Why It's Good For The Game
The jobs category is painfully empty, only being home to four
achievements total. Meanwhile we have a ton of achievements inside the
miscellaneous category, a lot of which are not miscellaneous
achievements at all. Right now I just wanna focus on moving around
achievements from existing category to existing category though. This
improves achievement category spread overall by a small but necessary
amount.
## Changelog
🆑 distributivgesetz
code: Moved some job-related achievements from the misc category to the
jobs category.
/🆑
* Move some job related achievements into the job achievement category
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Immovable rod meets unstoppable tram (#77656)
## About The Pull Request
Adds interaction between immovable rod and the tram for the rare
occasions the rod hits it at the front or back while flying at a
parallel angle.
The rod will push/pull the tram in the direction it's flying until a
short distance past the tram's usual landmark, eventually winning and
carrying on.
- Only applies to random rods, if the rod has a target it will ignore
the tram as usual.
- Looping rod only pushes the tram once.
- As long as the tram has power, can be returned to the rails as usual
by calling it.
## Why It's Good For The Game
When the HoP is having a really unlucky day.
https://github.com/tgstation/tgstation/assets/83487515/2f0393cd-f796-4b00-8674-d97e57358543https://github.com/tgstation/tgstation/assets/83487515/f74c8497-8d62-4fcf-80a0-da7259160b7f
## Changelog
🆑 LT3
add: Immovable rod will now battle the unstoppable tram should they
cross paths
fix: Birdshot's maint tram doors now work properly
fix: Tramstation's exterior light fixtures no longer get destroyed as
soon as the tram moves
code: Tram landmarks are now all subtyped instead of map varedits
/🆑
* Immovable rod meets unstoppable tram
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Adds error on qdeling callback, fixes errors this causes (#77850)
## About The Pull Request
You shouldn't ever qdel a callback. If you don't want to own it free
your ref (remove it from a list/set it to null). When all refs are
cleared it'll get cleaned up by byond itself
* Adds error on qdeling callback, fixes errors this causes
* Update cell_component.dm
* Update acid.dm
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Refactors Morphs into Basic Mobs (there is now a swag action for morphification) (#77503)
## About The Pull Request
I was bored, so did this. Probably one of the neatest refactors I've
done, sorry if there's some oddities because I was experimenting with
some other stuff in this so just tell me to clean them up whenever I
can.
Anyways, morphs are basic mobs now. We are able to easily refactor the
whole "eat items and corpses" stuff in the basic mob framework, but the
whole "morph into objects and people" turned out to be a bit trickier.
That was easily rectified with a datum mob cooldown action and
copy-pasting the old code into that code, as well as doing some nice
stuff with traits and signals to ensure the one-way communication from
the action to the mob.
Old Morph AI didn't seem to be existant whatsoever, they inappropriately
leveraged some old procs and I have no idea how to make it work with new
AI. They DEFINITELY don't spawn outside of admin interference/ the event
anymore, and will always be controlled by a player, so this shouldn't be
too bad of an issue. I gave them something to seem alive just in case
though, but I think adding legitimate prop-hunt AI would be such a
laborious task that I am unwilling to do it in this PR.
## Why It's Good For The Game
If admins want to add the ability for Ian to assume the form of the HoP,
they can do that now! The datum action cooldown is quite nice for simple
and basic mobs... but it is currently not compatible with carbons. That
is not within scope for this PR, but I am dwelling on ways to extend it
to carbon but they all sound really awfully bad.
Also morphs are smarter, and we tick another simple animal in need of
refactoring off the list.
## Changelog
🆑
refactor: Morphs are now basic mobs with a nice new ability to help you
change forms rather than the old shift-click method, much more
intuitive.
admin: With the morph rework comes a new ability you can add to mobs,
"Assume Form". Feel free to add that to any simple or basic mob for le
funnies as Runtime turns into a pen or something.
/🆑
~~Does anyone know if there's a (sane) way to alias a cooldown action as
a keypress? I can't think of a good way to retain the old shift-click
functionality, because that does feel _kinda_ nice, but I think it can
be lived without.~~ I added it. Kinda fugly but whatever.
* Refactors Morphs into Basic Mobs (there is now a swag action for morphification)
---------
Co-authored-by: san7890 <the@san7890.com>
* Spiders don't automatically grant an antag datum (#77523)
## About The Pull Request
Fixes#77501
Spider egg ghost role spawners grant the spider antag datum, rather than
the act of being a spider.
This means that gold core, mapstart, polymorph belt, and other spiders
will not have an antagonist datum.
While doing this I also made a new abstract `mob/living/basic/spider`
type which all three kinds of spider life stage (`spiderling`, `young`,
`giant`) extend from, because there was a gross amount of copied code.
Now there isn't.
Also the Flesh Spider and Event Midwife eggs now simply hatch adult
spiders instead of child ones.
This is because there is no reason for either of these to have a two
minute wait time before they get going. Midwife spiders spawned by the
event should just start spidering immediately, and Flesh Spiders are
made by changelings and shouldn't be effected by measures introduced to
balance the spider gamemode.
Eggs which are laid during a round and _can_ hatch into midwife spiders
still hatch baby spiders.
Also I swapped some white pixels on the animation of the ambush
spiderling for a different colour because they looked bad.
## Why It's Good For The Game
While the policy is always "if you turn yourself into something, you're
not an antagonist" the presence of the antag datum still confuses
people. Plus that code was gross and I didn't like it.
## Changelog
🆑
fix: Giant Spiders only have an antag datum if created by the round
event.
balance: Flesh spider eggs hatch into adult spiders instead of baby
spiders.
balance: The eggs spawned by the start of the spider infestation event
hatch into adult Midwife spiders instead of baby ones.
/🆑
* Spiders don't automatically grant an antag datum
* Modular paths
* Modular paths
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Portals now have a colorful glow (#77298)
## About The Pull Request
Most instances of /obj/effect/portal now faintly glow their respective
color.

This was taken in the dark, the glow isn't as noticeable in the light.
Anomaly/jaunter/mech wormholes do not glow, since they use the
black-and-grey swirly sprite and don't look like they'd emit any kind of
light.
Also autodocs some portal related vars and changes one proc to not use
single char vars.
I also tried adding a soundloop but it sounded kind of crappy so I
decided against it.
## Why It's Good For The Game
Makes the portals a little bit prettier :)
## Changelog
🆑 Rhials
qol: Most of the colored oval-shaped portals faintly glow now. Cool!
/🆑
* Portals now have a colorful glow
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* Disease outbreak fixes/admin options (#77272)
## About The Pull Request
- Fixes event diseases sometimes remaining invisible even after the
event announcement
- Fixes 'random' disease names favouring certain severities, causing
frequent repetition of selected name
- Adds a bitfield for spread_flags so transmissibility can easily be
modified in game by admins
- Adds option to select spread method when using admin event panel
- Hitting the X or cancel will cancel the event on all admin input
questions
## Why It's Good For The Game
- Being infected with an event disease that remains invisible is a pain
for the player, medbay, and eventually staff
- More admin options when creating an outbreak is good
- Being able to easily edit the transmissibility once the disease is
created is good
- Disease outbreak should fail with ADMIN_CANCEL_EVENT if any explicit
inputs are invalid
## Changelog
🆑 LT3
fix: Fixed disease outbreak viruses sometimes getting stuck invisible
from medHUDs
admin: Added more admin features to create/manange disease outbreaks
admin: Pressing 'cancel' on disease outbreak setup dialogs will actually
cancel the event instead of running it with default settings
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@ users.noreply.github.com>
* Disease outbreak fixes/admin options
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@ users.noreply.github.com>
* Improves the RPG loot wizard event. (#77218)
## About The Pull Request
As the title says. Adds a bunch more stat changes to various different
items and a somewhat simple way of modifying them whilst minimizing
side-effects as much as possible.
Added a new negative curse of polymorph suffix that can randomly
polymorph you once you pick up the item.
Curse of hunger items won't start on items that are not on a turf.
Curse of polymorph will only activate when equipped.
Bodyparts, two-handed melees, bags, guns and grenades, to name a few,
have a bunch of type-specific stat changes depending on their quality.
Some items won't gain fantasy suffixes during the RPG loot event, like
stacks, chairs and paper, to make gamifying the stats a bit harder.
I'm sure there'll still be other ways to game the event, but it's not
that big of a deal since these are the easiest ways to game it.
High level items also have a cool unusual effect aura
## Why It's Good For The Game
Makes the RPG item event cooler. Right now, it's a bit lame since
everything only gains force value and wound bonus on attack. This makes
the statistic increases more type-based and make it interesting to use
It's okay for some items to be powerful since this is a wizard event and
a very impactful one too. By making the curse of hunger items not spawn
on people, it'll also make it a less painful event too.
## Changelog
🆑
add: Expanded the RPG loot wizard event by giving various different
items their own statistic boost.
/🆑
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Improves the RPG loot wizard event.
---------
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Refactors Slaughter/Laughter Demons into Basic Mobs (#77206)
## About The Pull Request
On the tin, the former "imp" is now refactored into basic mob code. Very
simple since these are only meant to be controlled by players, and all
of their stuff was on Signal Handlers and Cooldown Actions anyways. Just
lessens the amount of stupidity.
Did you know that we were trying to make demons spawn in a `pop`'d cat
named "Laughter"? Embedded in the list? I've literally never seen this
cat, so I'm under heavy suspicion that the code we were using was broken
for the longest time (or may have never worked), and we now instead just
do it a much more sane way of having a cat spawn on our demise.
## Why It's Good For The Game
Cleaner code! Less simple mob jank to deal with. Trims down the list of
simple animals to refactor. No more duplicated code that we were already
doing on parent! It's so good man literally everything was seamless with
a bit of retooling and tinkering. The typepath is also no longer `imp`,
it's actually `demon`, which I'm happy with because there's no other
demons to have it be confused with anymore.
We were also doing copypasta on both the demon spawner bottle and the
demon spawning event so I also just unified that into the mob. I also
reorganized the sprites to be a bit clearer and match their new
nomenclature
## Changelog
🆑
refactor: Slaughter and Laughter Demons have been refactored, please
place an issue report for any unexpected things/hitches.
fix: Laughter Demons should now actually drop a kitten.
/🆑
* Refactors Slaughter/Laughter Demons into Basic Mobs
---------
Co-authored-by: san7890 <the@san7890.com>
make the mushroom a basic monster (#76570)
## About The Pull Request
i maked the mushrom from the simple monster to a basic monster so he is
dont a simple anymore but now he is a basic.i followe the instrucions in
the guide learn-ai.md to maked this pr. i also give the mushrom a extra
feture he will go and hunt food mushroms on the floor to ate them and
when he ate them he will heal small his hp
## Why It's Good For The Game
he is now a basic monster so he is not simple anymore. it is good
because he is a more advance ai and he will stil go and do the same stuf
he did when he is simple but he is now a basic
## Changelog
🆑
refactor: Mushrooms have been refactors, please report any
bugs/unintended behavior
add: the mushroom basic mob can eat the mushroom plant to heal itself
/🆑
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
* Implements usage of the REVERSE_DIR macro throughout the code. (#77122)
## About The Pull Request
Replaces a ton of `turn(dir, 180)` calls with the aforementioned macro.
## Why It's Good For The Game
Afaik, `REVERSE_DIR` was coded to be faster than the classic `turn(dir,
180)` call, being a simple set of binary operations. To sum it up, micro
optimization.
## Changelog
N/A
* Implements usage of the REVERSE_DIR macro throughout the code.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* made the bee a basic insect (#76971)
## About The Pull Request
the bee now a baisc insect he will now go to find his home and he will
go and pollinated the plants and helped the queen make children by
polliniting the plants and he will. the queen will leve the hive more
rarely than the normal bees so she can stay in the hive to make kids
## Why It's Good For The Game
the bee now is a basic insect so it means he have a better ai
## Changelog
🆑
balance: the bee now can fly over the machines so its easy for him to go
to the hydroponics machine
fix: player bees now will not be stuck inside the hive if he entered it,
they can now leave it
fix: fixed a har deleted when the hive is deleted all the bees still
have a refence to the hive now its fixed
fix: now when a player interacted with the bee hive the bees will now
leave the hive to defend the hive (it was glitched)
refactor: the bees now are a basic insect.
/🆑
* made the bee a basic insect
* Merge conflict
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Fix APC related issues (#77005)
## About The Pull Request
Fixes a bunch of stuff broken by #76822, including APC control console,
malf blackout ability, shunted malf pinpointing, Admin APC recharge and
others.
## Why It's Good For The Game
Yes.
## Changelog
:cl:Thebleh
fix: Fixed several APC related issues.
/🆑
* Fix APC related issues
---------
Co-authored-by: thebleh <43266738+rdragan@users.noreply.github.com>
* Macros multi-z code, removes the false premise of manual offsets (#76248)
## About The Pull Request
[Removes the pretense of relative multiz
levels](https://github.com/tgstation/tgstation/pull/76248/commits/0293fdc2bd8c8af7a0d18da33265e060789c71f7)
Our multiz system does not support having a z level that is only
connected one way, or which goes down backwards or anything like that.
That's a fiction of the trait system, the actual backend has never
really supported this.
This pr removes the assumptions we were making backend around this, and
uses that to save cpu time.
I am also converting multiz_levels from an assoc list to a pure one,
which saves significantly on access times and cleans up the code
somewhat.
Also I'm making the get_below/get_above procs into macros, for the sake
of cpu time.
[Converts the starlight disease to use BYOND's directional defines
instead of our
own](https://github.com/tgstation/tgstation/commit/7d698f02d991eb4e1bde56314c657cf6e48ceb5d)
To some extent spurred on by
https://github.com/DaedalusDock/daedalusdock/pull/298, tho it was known
before
## Why It's Good For The Game
Faster multiz code, faster init, etc etc etc
* modular files how very dare you
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Machine list is now stored in SSmachines | Remove excessive use of global lists for specific machine types
* Resolve merge conflicts
* Modular adjustments
* destroy this double return on destroy
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Fixes ventilation clog spawning mobs in impassable objects (#76818)
## About The Pull Request
Title.
Also changes how they spawn - they now always spawn on the turf of the
vent and move onto the tile they pick.
Closes https://github.com/tgstation/tgstation/issues/76707
## Why It's Good For The Game
Bugs are bad.
## Changelog
🆑
fix: Ventilation clog no longer spawns mobs in inappropriate places
/🆑
* Fixes ventilation clog spawning mobs in impassable objects
---------
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
* Refactors mind language holders into non-existent, fixes new languages being deleted on species swap + tests
* Fixing merge conflicts
* don't forget to ctrl+s!
* Another forgotten file
* urgh
* gets rid of vestiges of update_atom_languages()
and mind language holders
* No longer needed
* Fixes some modular grant_language calls
* Deprecated code
* This was up here before..
* Fixes failing unit tests, refactors silverscale lizards language a bit removing the need for skyrat edits
Removes some no longer needed code
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Icon folder cleaning wave one
* Fixe a merge conflict
* Fixes some more merge conflicts
* Fixes some modular icon paths
* Fixes even more modular icon paths...
Hopefully that's the last of them
* Fixes some merge discrepencies
* More merge issues
* ok
* not ok
---------
Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
* Destroying the greentext item properly restores players' colors (#76642)
## About The Pull Request
Title. Colors appear to always be stored in lowercase, so the check
against uppercase text was missing it. Also changed the added colors to
lowercase for consistency.
Though comparing colors like this in the first place feels a bit hacky,
so I'm open to other suggestions
## Why It's Good For The Game
Fix bugs!
## Changelog
🆑
fix: Destroying the fabled "green text" now properly releases its
victims from their curse.
/🆑
* Destroying the greentext item properly restores players' colors
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
* Maptext 2023 tweaks [NO GBP] (#76397)
## About The Pull Request
- In PR https://github.com/tgstation/tgstation/pull/76356 missed a few
bits of maptext around, such as shuttle signs and the supermatter. Small
text adjustments/fixes here.
- Large amount of feedback about the context tooltips. Increases size,
lightens default color as to not be too imposing.
🆑 LT3
qol: Context tooltip size increased
fix: Fixed remnants of old maptext code on various things
/🆑
* Maptext 2023 tweaks [NO GBP]
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Changes brand intelligence to check onstation var instead of station z level. Well, kind of both. (#76266)
## About The Pull Request
Checks the `.onstation` var on `/obj/machinery/vending` instead of
checking the z-level directly.
The z-level check is already run in init to set this var in the first
place, but this way it allows the var to be set manually to secure
vendors that are on the station z-level but are not wanted as candidates
for brand intelligence.
This scenario doesn't currently exist here, but it affects things like
https://github.com/Skyrat-SS13/Skyrat-tg/issues/21918 and
future-proofing is always nice.
I did consider doing this as another var, but that felt a bit excessive.
Can change if wanted.
(also removes some duplicate comments because I was there)
## Why It's Good For The Game
Wasted events uhh bad
## Changelog
🆑
fix: Brand intelligence can no longer affect off-station vendors in some
specific circumstances.
/🆑
* Changes brand intelligence to check onstation var instead of station z level. Well, kind of both.
---------
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* unfcucks fucking files
* update the mutation code a bit
* tick the muts file
* fix old var
---------
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
* New planetary exclusive random event/unfavorable situation, Chasmic Earthquake (#75864)
## About The Pull Request
https://github.com/tgstation/tgstation/assets/28870487/2451bc69-db1e-420d-9a18-2f899ca65427
This introduces a new unfavorable situation (non-antagonist random
events that dynamic triggers under certain circumstances), restricted to
planetary maps (Icebox). An earthquake occurs, felt by everyone on the
map, forming a fault that tears the a hole somewhere on the station.
The fault zone is indicated by shaking tiles, which gives a chance
(about 30 seconds) for you to move your machinery/property/crewmembers
out of the way. If you're on those tiles when the fault forms, get ready
to take a nasty fall.
Anything caught in the fault zone as it collapses inward will be
destroyed, violently, _before_ being dropped down into the z-level
below.

These can also happen as a random event, however their rarity is on-par
with that of a meteor storm.
This also adds a helper for finding a midpoint turf between two provided
turfs, thanks to ZephyrTFA.
This idea basically possessed me over the course of a few days, and I
found myself unable to work on anything else until I had it complete.
I'm glad its done.
## Why It's Good For The Game
Gives Icebox its own big "environmental disaster" event. I'm hoping it
isn't received as being too destructive, but mind that this is meant to
be an equal to the dreaded meteor storm.
Also makes it so that unfavorable events aren't a coinflip between a
portal storm/rod on planetary maps.
## Changelog
🆑 Rhials
add: Chasmic Earthquake random event, exclusive to Icebox. Tears a huge
chasm in the hull of the station. Watch out for shaking tiles!
sound: Adds sounds for distant rumbling, metal creaking, and rubble
shaking.
imageadd: Achievement icon for getting sucked up in an earthquake chasm.
/🆑
* New planetary exclusive random event/unfavorable situation, Chasmic Earthquake
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Makes transparent kudzu transparent on spawn, not on vine growth (#75942)
## About The Pull Request
Makes transparent kudzu transparent on spawn, not on vine growth.
Currently, they only become transparent after growing in place and not
after mutating, as it should. Timid allows this, as timid is low to the
ground - why shouldn't transparent vines?
## Why It's Good For The Game
Transparent vines should be transparent. Transparent is currently the
only mutation that can't be immediately identified by it's change in
appearance; this puts it back in line with the rest. It also blocks
sight until growth, which makes its viability for positive kudzu
questionable when Timid does everything it can but better. Closes#72660
## Changelog
🆑 Licks-The-Crystal
qol: Makes transparent kudzu transparent (and won't block sight)
/🆑
* Makes transparent kudzu transparent on spawn, not on vine growth
* update modular
---------
Co-authored-by: zeckle/licks-the-crystal <79835169+mikederkan@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Scrubber Clog Revisit: It Uses Vents Now And Is Way Dirtier And Nastier (#75726)
A long long time ago, when I was but a wee coder, I made the Scrubber
Clog event. I wasn't great at coding then, but about a year later I have
returned to finish what I started.
This PR contains a full code/balance/feature update for the event,
bringing it up to what fledgeling coder Rhials had envisioned but wasn't
experienced enough to do. This contains no fundamental or conceptual
changes, just some TLC.
Since everything's in a new file and there isn't a diff to compare
things with, I'll try to give a quick summary of everything:
FEATURES:
- _The clog event now uses the ventilation pumps instead of scrubbers.
It is now the ventilation clog event. Rejoice._
- Clogs now make a filthy mess when they occur, and make noise when
spawning mobs.
- As more mobs spawn, even more of a mess is made. Different clog event
intensities will produce different messes.
- The mob roster has been updated to include the Mobroach, Mothroach,
and Viscerator for the Strange clog event, and the Hauberroach for the
Major clog event.
CODE:
- The event is now fully self-contained, without requiring any code on
the vent itself to work.
- plunger_act() now has its own signal.
BALANCE (This is just a bunch of tiny insignificant number tweaking
don't worry):
- More mobs can be spawned at once by the event. This shouldn't have any
real impact on how dangerous the minor/major clog events are, but might
make the critical/strange events a smidge more dangerous.
- Max occurrences have been increased. The minor/major clog events are
no longer limited to only three per round.
- There is now a slight chance that a clog event will not announce
itself.
* Scrubber Clog Revisit: It Uses Vents Now And Is Way Dirtier And Nastier
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fugitive hunters gather candidates with a deadchat poll (#75485)
## About The Pull Request
Fugitive Hunter spawning now works a lot more like it does for Pirates.
Rather than just using the spawners, it collects candidates from a ghost
poll, and leaves the remaining spawners to be used if any are left.
## Why It's Good For The Game
The only way this event gathered candidates was through the
notify_ghosts that hunter spawners threw on Initialize(). This easily
flies under the radar (and I think also stopped working after
lazyloading was implemented??), contributing to how infrequently hunter
rolls are taken.
The hunters are an important part of fugitives as a whole, so making
sure they're properly filled out is good.
Closes#74625.
## Changelog
🆑
qol: Fugitive hunters now get a deadchat poll and notify deadchat
properly.
/🆑
* Fugitive hunters gather candidates with a deadchat poll
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Turns lightgeists into a basic mob (#75626)
## About The Pull Request
https://www.youtube.com/watch?v=bcUuqKrnvVY <- me getting rid of every
simple animal one thing at a time
Turns lightgeists into a basic mob. There are a few key advantages into
its implementation that was previously impossible in the simple animal
framework, which is entirely possible now.
## Why It's Good For The Game
Lightgeists can actually have a bit of AI now, as a treat. They didn't
have it prior because I assume if they attacked anything, they would end
up healing it, and we didn't really have an option in the simple animal
AI to say "do not attack"... This really fixes that so they can wander
around a bit and look cute if some admin decides to spawn them in (but
the only way to get them outright is to use the anomalous crystal, which
auto-assigns a player). You don't see the AI if a player ghosts out of
the lightgeist because the lightgeist will delete itself on ghost
(previous behavior).
It also gets rid of some janky AttackingTarget() override that was
completely un-needed post-#73202.
## Changelog
Nothing really player facing.
* Turns lightgeists into a basic mob
---------
Co-authored-by: san7890 <the@san7890.com>
* Converts Lizards to Basic Mobs (#75515)
This was pretty simple since they didn't have too much custom behavior,
and whatever they did have already had AI behavior. I got really burned
out the last two times I wrote intricate AI action/decision behaviors so
I'm just taking it light and doing the bare minimum.
one day our shackles will be free of the simple animal scourge. they're
also a bit more intelligent, and i daresay a bit cuter too now.
also that lizard gib animation has been sitting there for god knows how
long completely unseen, so let's actually hook it into the mob.
* Converts Lizards to Basic Mobs
* update modular
* TEGU
* me when I update Maps
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Blobs and Kudzu are killed by chasms. (#75469)
## About The Pull Request
Fixes#75451
Originally I just whitelisted them because they're structures that are
supported by their surroundings... but there's still the theoretical
scenario where it has expanded over a reasonably large chasm and then
becomes almost impossible to remove because you can't easily get at the
ones in the middle, and it would be "levitating" after you cut off
everything around the edge.
So instead this adds a trait which restores the original behaviour of
chasms where they delete stuff which falls into them and applies it to
Blobs and Kudzu.
## Why It's Good For The Game
It's a very niche scenario but "expanding structure falls into abstract
chasm storage" causes issues where it potentially keeps processing in
there and there isn't much you can do about it.
Maybe there's other stuff that commonly falls into chasms we'll decide
that we want to delete instead of keeping in pools now that you can just
slap a trait onto something to do it, future consideration.
## Changelog
🆑
fix: Blob and Kudzu tiles which expand into chasms will now be correctly
destroyed by the chasm.
/🆑
* Blobs and Kudzu are killed by chasms.
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
The Shuttle Catastrophe event cannot trigger when the BYOS is purchased, so that it doesn't disappear anyone. The Shuttle Insurance event protects the Shuttle Catastrophe event. Due to (grumble grumble) transitive property grumble grumble this means the BYOS should also prevent the Shuttle Insurance event.
Co-authored-by: Rhials <Datguy33456@gmail.com>