* Turns space bat into a basic mob & moves retaliate mobs to retaliate folder (#74747)
## About The Pull Request
Turns Space Bats into a basic mob, why not.
I also noticed some retaliate mobs weren't in the retaliate folder, and
moved them over. I didn't move goats over because they're in a large
file and didn't want to really expand much on this PR that I just wanted
to focus on just bats.
## Why It's Good For The Game
I was just messing around with some bat stuff and thought I might as
well make them basic mobs.
## Changelog
🆑
code: Space Bats are now Basic mobs.
/🆑
* Turns space bat into a basic mob & moves retalate mobs to retaliate folder
* Update spacehotel_skyrat.dmm
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Adds a deadchat orbit popup for the Stray Cargo Pod Random Event landing location (#74738)
## About The Pull Request
Adds an announce_to_ghosts for the landing zone indicator spawned by the
cargo pod event. This means that the ghosts are alerted to where the pod
lands and also get to see the effects of the impact if they choose to
hop over.
## Why It's Good For The Game
Gives deadchat yet another form of idle stimulation -- something for
them to congregate around and have a thoughtful discussion about.
I realize that this is the third "adds a ghost orbit popup to a random
event" PR, so give me a heads up if there are any other events that
would benefit from having an announce_to_ghosts and I can just add them
here.
## Changelog
🆑
qol: Ghosts are now notified and given an orbit popup for the Stray
Cargo Pod random event.
/🆑
* Adds a deadchat orbit popup for the Stray Cargo Pod Random Event landing location
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Adds two new helper procs for finding a maintenance/space spawn turf (#74598)
## About The Pull Request
Adds two new global helper procs, find_maintenance_spawn and
find_space_spawn. These check the list of maintenance/space carp spawn
landmarks, and return the turf of a random one.
The find_maintenance_spawn helper has two arguments, for atmos safety
checks and making sure the spawn is properly shrouded in darkness.
This also includes some tidiness changes to the ghost_role event file,
because the helper was originally just going to be a proc on ghost role
events.
**Stuff moved to find_maintenance_spawn:**
- Spiders
- Nightmares
- Fugitives
- Paradox clones
- Morph
**Stuff moved to find_space_spawn:**
- Space Dragon
- Loneop
- Ninja
- Slaughter Demon
- Revenant backup spawn location
If we ignore all of the autodocing, this should remove about a dozen or
two lines of code.
## Why It's Good For The Game
Reduces an amount of duplicated code. Also makes future implementation a
bit easier and less copy-pastey.
## Changelog
🆑 Rhials
code: Adds two new super-duper helpful helper procs for finding a
maintenance/space spawn location, for all of your
event/midround/whatever needs!
code: Moves all midrounds/ghost_role events that hinged on
maintenance/space carp spawns to the aforementioned helpers.
code: The ghost_role event module file is now autodoced.
/🆑
* Adds two new helper procs for finding a maintenance/space spawn turf
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Adds a new solo fugitive backstory: The Invisible Man (#74415)
## About The Pull Request
A disgruntled scientist, formerly the project lead at an experimental
cloaking technology lab, now on the run for stealing the very prototypes
they helped create.

You start off with a toggleable cloaking implant (makes you a bit more
invisible than a cloaked ninja), and some Stabilized Saturn-X injectors
(Which turn you COMPLETELY invisible).
The three Saturn-X injectors grant you a cumulative 30 minutes of total
invisibility (with the caveat and associated complications of you having
to be naked and not able to just take them all at once
consequence-free). It may not be as powerful as Waldo and his almighty
Knock spell, but don't underestimate how much the camouflage can do for
you in the dark.

So go on, blend in with the crew. When the hunters come looking, shed
your uniform and disappear...
The color of this PR is: **Purple**.
## Why It's Good For The Game
Adds some variety to solo fugitive selections (Waldo is still a
bastard). Gives the opportunity for High-End SS13 Stealth Gameplay.
## Changelog
🆑 Rhials
add: New solo fugitive backstory: The Invisible Man!
spriteadd: New purple medipen and admittedly bad camouflage icon hud
button sprite.
/🆑
* Adds a new solo fugitive backstory: The Invisible Man
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Reagent soup / Soup rework / Stoves - A kitchen expansion
* fixes that stuff
* puts the range stove on maps that sohuld have it
* fixes some paths that don't exist anymore
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* Replaces xeno_spawn with the generic_maintenance_landmark, adds atmos safety checks to remaining midrounds that need them (#74374)
## About The Pull Request
The xeno_spawn landmark, used to pick spawn locations for many different
midrounds (but NOT xenomorphs, ironically), has been killed and been
replaced with the generic_maintenance_landmark landmark.
This also adds atmos safety checks to some of the midround spawn
location selections that were missing them:
- Paradox Clone
- Nightmare
- Fugitives
- Morph
I decided to do both of these at the same time, since I'd be touching
most of the same files anyways.
This includes an updatepaths that, if you are on a downstream running a
custom map, should probably definitely run.
## Why It's Good For The Game
It may not be a secret that these landmarks aren't used for spawning
xenomorphs anymore, but the name is still deceptive. This should
communicate what they're used for a bit better to both coders and
mappers.
Atmos safety checks (for the midrounds I hadn't yet added them to) make
sure people can play the game.
Closes#74372.
## Changelog
🆑
code: The xeno_spawn landmark is now the generic_maintenance_landmark
landmark.
fix: Certain midrounds will now check for atmos safety before spawning.
/🆑
* Replaces xeno_spawn with the generic_maintenance_landmark, adds atmos safety checks to remaining midrounds that need them
* 0
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fugitive backstories are now selected with consideration to the number of signups (#74347)
## About The Pull Request
Adjusts how the fugitives event decides to select its backstories.
Formerly, the game would decide if it was polling for a solo (Waldo) or
team (4 player) backstory first, meaning the event could fail if only 3
people signed up when the event decided to run a team backstory. It also
meant that, even with thirty people signed up, a solo backstory (still
just Waldo for now) could be selected. What a waste!
Now, the event receives its signups and uses them to decide which
backstory to choose. If there aren't enough players for a team, a solo
backstory is chosen. If a team can be formed, the event may still decide
to run a solo backstory, but the chance scales inversely with the number
of candidates.
This also adds an atmos safety check to their spawn location finder,
because I was in the area.
## Why It's Good For The Game
Helps a deadchat sink even be more of a deadchat sink. Waldo is a
bastard.
## Changelog
🆑
balance: Fugitive team backstories will now be selected with
consideration to the number of people who sign up.
qol: Fugitives can no longer spawn in atmos-unsafe areas.
/🆑
* Fugitive backstories are now selected with consideration to the number of signups
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Disease outbreak properties balance (#74344)
## About The Pull Request
Slight balancing for disease outbreak in conjunction with
https://github.com/tgstation/tgstation/pull/74343
- Fluids transmission reduced
- Respiration transmission slightly increased
- Low severity frequency increased
- Cures list now uses levels 4-7
- Minimum pop/time to avoid shafting lowpop shifts, modified weight to
match carp and radiation leak
## Why It's Good For The Game
- Fluids transmission diseases are quite useless except for one unlucky
person
- Annoying/harmless diseases are more likely, but also more likely to
spread
- With the balance of some cure chemicals, shifted the level for cures
- Don't run when it's super low pop, when they aren't likely to have a
fully staffed medical
## Changelog
🆑 LT3
balance: Random Disease: Fluids transmission frequency reduced
balance: Random Disease: Respiration transmission frequency increased
balance: Random Disease: Low severity frequency increased
balance: Random Disease: Cures list removes dispenser reagents and food
products
balance: Random Disease: Minimum pop and minimum round timer added to
event check
/🆑
* Disease outbreak properties balance
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Adds the Dark Matt-eor when you emag a stupid amount of meteor shields + lots of meteor file sorting + qol + dark matter singularity + dark matt-eor summoning final traitor objective
* singularity
* Update singularity_s1.dmi
---------
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: lessthnthree <three@lessthanthree.dk>
* Minor typo fixes (#74317)
## About The Why It's Good For The Game Pull Request
Immersion
## Changelog
🆑 Tattle
spellcheck: fixed a few typos, mostly around breathing
/🆑
Co-authored-by: tattle <article.disaster@ gmail.com>
* Minor typo fixes
---------
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
* Removes Starlight Config (#74289)
## About The Pull Request
It was config'd off to save init time, but having it function in testing
and mapping is more valuble then the time spend on it.
On that topic, we spend roughly 1.7 seconds of init on this.
~1.3 is spent handling the light sources and their light object
modifications (this is potentailly inflated since other sources could
cause the same objects to need updates)
~0.3 is spent searching for space turfs around lighting_objects during
init.
This will impact change_turf slightly too, costing about ~0.07 in local
testing.
It does save time for live however, since we avoid these config checks.
## Why It's Good For The Game
I believe this time is worth spending.
I've had people try to "fix" artifacts of starlight not being enabled,
things that aren't bugs.
The test environment should as much as we can make it reflect the visual
reality of the game. This helps ensure that
## Changelog
🆑
server: The starlight config has been removed, as it is enabled by
default
/🆑
* Removes Starlight Config
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Tram signs malfunction during tram malfunction (#74210)
## About The Pull Request
Tram signs will now display incorrect information when malfunctioning.
## Why It's Good For The Game
For improved Frogger gameplay, no more being crafty and reading the
indicator board to know if the tram is coming.
## Changelog
🆑 LT3
add: Tram signs will now malfunction when the tram is malfunctioning
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Tram signs malfunction during tram malfunction
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* create_midwife_eggs() now checks for safe atmos and spawns each cluster at a different location (#74051)
## About The Pull Request
Bad things always come in pairs. Spiders are no exception. Midwife
spiders, however, don't really benefit from spawning as a pair.
Ultimately, the room they spawn in will fill up with eggs, and then
there's nothing but uncomfortable waiting as they hatch.
Placing the two broodmothers in separate location gives room for each
broodmother to grow their own hive, and means that one wayward
maintcrawler or cyborg won't _completely_ trash the threat. Single
points of failure are BAD! I originally thought spider eggs spawning
together was unintended behavior (bug!!) because of how little of a
difference the second broodmother makes, but there's nothing pointing
towards that being true, so it goes as a balance change.
As for the safe atmos check, I was watching a round and saw both sets of
eggs spawn in a bombed-out room, leading to instant death upon hatching.
I saw it, said to myself "huh, that's lame", then made this PR.
This also makes a minor code adjustment, which makes it so that spider
eggs will spawn until there are no more valid turfs, rather than not
spawning any unless there are enough spots (which wasn't really an issue
until I made the proc pick distinct locations for each egg).
## Why It's Good For The Game
Atmos checks prevent people from spawning into certain death.
There's only so many tiles you can spit eggs out onto before it just
becomes a game of waiting. Giving each broodmother their own space to
work with means less waiting, and less risk of the entire threat being
wiped out by a passing greytider, broken window, or other minor
inconvenience. I guess this constitutes a spider buff, but hey, I'm of
the opinion that they could use the boost anyways.
## Changelog
🆑
balance: midwife spider eggs now spawn in separate locations. Divide and
conquer!
fix: midwife spider eggs can no longer generate in atmos-hazardous
areas.
/🆑
* create_midwife_eggs() now checks for safe atmos and spawns each cluster at a different location
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes stray cargo pod false alarms runtiming. (#74135)
False alarms for stray cargo pods were no generating a impact_area which
is used for the announcements, I've added code that checks if the alarm
is false and generates one in this case.
* Fixes stray cargo pod false alarms runtiming.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Audits usage of isanimal() vs isanimal_or_basic_mob() (#74029)
## About The Pull Request
There's a couple of open issues which fix places where only simple
animals were considered, but they are doing it piecemeal.
I decided to just go through every instance of `isanimal` or
`subtypesof(mob/living/simple_animal)` I could find, identify which
should also affect basic mobs, and fix them.
I left out the two others which are already in PR, I'm not stealing your
GBP.
Fixes https://github.com/tgstation/tgstation/issues/68881
## Why It's Good For The Game
Consistency, mostly.
As far as I can tell all of these things _should_ have effected basic
mobs, but didn't.
This fixes a fair number of bugs but also they're bugs that nobody
noticed or reported.
There are a couple of places I did not update which will need updating
in future. These are:
- Dextrousness checks, because basic mobs don't have that yet.
- The Charge cooldown action, because frankly I couldn't tell what it
was trying to do.
alright here goes
## Changelog
🆑
fix: Carp will once again be healed from being near carp rifts
fix: Sepia slime cores and the rewind camera now work on Ian
fix: Sapient ridden carp (or cows) can throw off their riders by shoving
them, or by performing the spin emote.
fix: Giant Spider AI will be disabled by the timestop spell
fix: Ian can eat envirochow
fix: Mice, Frogs, and Cockroaches will no longer set off bear traps
fix: You can put a macrobomb implant into Cayenne (or Ian)
fix: Ian will now recognise that being squeezed by a cyborg is a nice
hug
fix: The player panel will tell admins if you're currently a corgi
fix: The staff of storms deals massive damage to Bileworms and Giant
Spiders
fix: Ian will whimper if forced to scream
fix: Slimes can consume space carp
fix: Mice can be captured in xenoballs
fix: You can use pacifying potions on Giant Spiders
fix: Sgt Araneus can be fitted with a xenobiological radio implant
fix: Sapient corgis no longer count as living players for the purpose of
highlander escape objectives
fix: The random sentience event can now target corgis and sergeant
araneus
add: The random sentience event can target a wider array of farm animals
fix: Petsplosion wizard event can target corgis
add: Petsplosion wizard event will now target farm animals and
mothroaches
fix: The colossus possession crystal can now actually possess the
cockroach it spawns, does not kill you instantly upon ending possession
/🆑
* Audits usage of isanimal() vs isanimal_or_basic_mob()
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Admins can now customize the wisdom cow event. (#74045)
## About The Pull Request
Gives admins the ability to customize the spawn location of the cow and
the wisdom that it grants.
## Why It's Good For The Game
Wisdom cows lack any sort of customization at present, this allows
admins to set what type of wisdom which is granted which may be thematic
for events and adding positional spawn support for them is a pretty easy
addition.
## Changelog
🆑
admin: Admins can now customize the wisdom cow event.
/🆑
* Admins can now customize the wisdom cow event.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Log forced events in game log (#74000)
## About The Pull Request
Forced events will be logged to game log. Not sure why we don't already.
## Why It's Good For The Game
Even outside of admins forcing events, new code that forces events to
trigger is added often. They should be logged to, just so it's not
completely up to guesswork that something happened
## Changelog
🆑 Melbert
admin: Logs when forced events trigger
/🆑
* Log forced events in game log
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Station Trait: Spider Infestation (#73893)
## About The Pull Request
Hate having your cables eaten by mice? Nanotrasen have heard your
complaints and settled on a natural, _organic_, and eco-friendly
solution.
When this station trait is active, roundstart and event mouse spawns
have a chance to instead be replaced with duct spiders (both will exist,
it doesn't remove mice).
Duct spiders are largely harmless to humans, actively hunt other
maintenance creatures (such as mice), and have only one _tiny_ downside.

These mobs can also sometimes be spawned by a minor scrubber clog event.
As a side note, all spider basic mobs with AI (except Araneus) will now
try to automatically fill a small area around them with webs.
Also I made it so that mobs will ignore their random_walking behaviour
if they're engaged in a `do_after`, just in case.
## Why It's Good For The Game
Adds a little bit of variety to things which can slightly annoy you in
maintenance.
Spiders will automatically make places they live in look like spiders
live there.
## Changelog
🆑
add: A station trait which sometimes populates maintenance with small
spiders. You can wear them as a hat if you wanted to have a spider on
your head for some reason.
add: Spider mobs will automatically start webbing up their environment.
/🆑
* Station Trait: Spider Infestation
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Grand Ritual: Alternate Wizard objective (Wizard Events II) (#72918)
Adds an alternate greentext objective for Wizards known as the "Grand
Ritual". This was initially the gimmick of a different wizard-related
antagonist downstream. I didn't get permission to port it, so I'm
attaching it to regular Wizards instead.
Wizards will spawn in with a new Grand Ritual button next to their
antagonist info button. Pressing it will pinpoint them towards their
next Ritual Location (a randomly chosen region of the space station).
Once within that location, pressing it will summon a magic circle and
obliterate any dense objects which are in the way. This also puts the
ability on a two minute cooldown.
Clicking on the magic circle with an empty hand will begin a three-stage
invocation to gather magical power. You can interrupt this invocation at
any time and will resume from the last stage you completed (if you
finished two stages you only need to do one more).
Once you complete a ritual, a random event will be triggered based on
how many rituals you have performed so far. These tend to be ones which
annoy the crew in some manner, and Wizard Events are included in the
list. Additionally, something weird will usually happen to the room you
are in.
Then you are assigned a new location and can toddle off to do it again.
Once you have done this three times, you will be picked up by the
station's sensors every time you start a subsequent ritual and should
expect annoyed company to come investigate.
Once you have done this six times, you can finally spend all of that
accumulated power on the seventh Grand Finale ritual. Completing this
grants you victory at the end of the round and will have a larger,
flashier effect which you can pick from a list of options, think of it
like a wizard equivalent of a Traitor Final Objective or Heretic
Ascension.
After that you can still keep doing rituals if you want to pester the
crew further by summoning more random events, you've already "won" at
this point so now it's your job to make them want to go home.
I think it'd be more fun to just find out what the Finale ritual can do
by seeing it happen but maintainers will probably want a list of its
precise capabilities, so here it is:
Currently completing a ritual also has a chance to create Heretic
Reality Tears (of both varieties, available for Heretics to eat and
visible to crew) as a kind of cross-antagonist interaction which seemed
to make sense to me but if this seems thematically or mechanically
inappropriate it's easy to strip out.
* wew
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Fix admin lookup/follow on disease outbreak [NO GBP] (#73717)
## About The Pull Request
In https://github.com/tgstation/tgstation/pull/73599 my copy/paste
screwup removed the admin lookup in Disease Outbreak: Advanced. Puts it
back.
## Why It's Good For The Game
Admins are supposed to have a link to jump/follow, not message the ckey.
## Changelog
🆑 LT3
fix: Admins can jump to/follow patient zero of a disease outbreak again
/🆑
* Fix admin lookup/follow on disease outbreak [NO GBP]
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Buff scythes, goats, and plantbgone vs PLANT biotypes (#72889)
This buffs scythes, goats, and plantbgone vs PLANT biotypes:
- Scythes now deal x1.5 damage to venus flytraps (3 hits to kill)
- Scythes now target the flower bud vines
- Goats now target flower bud vines and deal 15 damage to PLANT biotypes
- Goats have a eating sound whenever they bite PLANT biotypes
- Plantbgone now does 2 dmg per unit to PLANT biotypes (10 dmg per
spray)
- Plantbgone now has a 75% chance to remove weeds and deals large damage
to flower buds
- Weed control crates now come with a pair of leather gloves
- Golems are immune to thorn effects
- Any kind of thick glove material will prevent thorn effects when
attacking
- Flower buds will now take x4 damage from fire and sharp weapons
(unless they have fire trait)
- Regular scythes are now a sharp object
Also this fixes a few runtimes with spacevines and nulls. The bane
element now accepts `mob_biotypes` bitflags as an argument.
Before my changes:
- Plant-b-gone was doing 0.4 dmg per unit to PLANT biotypes (2 dmg per
spray)
- Scythes took 5 hits to kill venus flytraps
- Goats only affected podpeople
- Flower bud vines were being ignored by weed killing code
- Plantbgone only had a 50% chance to remove weeds (and this was very
inconsistent due to RNG)
- Botanical gloves and thick gloves didn't protect from thorns
- Golems were getting pierced by thorns despite having pierce immunity
- Flower buds were not taking the x4 damage like they should have been
- Regular scythes were not a sharp object, but other scythes
(chaplain's, megafauna loot) were sharp
This makes the weed killer crate more effective since people were
complaining about it being worthless vs vines and flower buds. These
changes give people more options to respond to threats vs plants.
🆑
add: Add a pair of leather gloves to weed control crate
balance: Mobs with the PLANT biotypes (venus flytraps, pod people,
killer tomatoes) are now much weaker vs scythes, goats, and plantbgone.
balance: Plantbgone is now more effective at destroying weeds.
balance: Regular scythes are now a sharp object
fix: Fixed scythes, goats, and plantbgone not affecting flower bud
vines.
fix: Thick and botanical gloves not protecting from thorns
fix: Golems not having pierce immunity from thorns
fix: Runtime where vines tried to spread into null turf
fix: Runtime where null vines that were destroyed were trying to spread
to nearby turfs
soundadd: Add eat food sound when goats eat plants
code: Improved goat targeting code
code: The bane element now accepts `mob_biotypes` bitflags as an
argument.
/🆑
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* You can't teleport easter prizes with your brain (#73680)
## About The Pull Request
Fixes#69258
I assume nobody else tackled this because it was _too_ simple and they
assumed someone else would.
Opening a kinder egg will now deposit its contents in the _egg's_ turf,
which has the same result as it did before for using it in your actual
hand, and no longer teleports objects if done via telekinesis.
## Why It's Good For The Game
Minor consistency issue.
## Changelog
🆑
fix: Opening a surprise egg with your mind will no longer teleport the
contents
/🆑
* You can't teleport easter prizes with your brain
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Improves admin rod logging and fixes un-aimed rods being aimed. (#73668)
## About The Pull Request
Logs wont say a rod has been aimed at null location anymore and instead
will say "a random location"
Also admin rods that were not aimed were retaining the location set by
previous rods which is bad since it meant un-aimed rods were actually
aimed.
## Why It's Good For The Game
Bug fix + better logging.
## Changelog
🆑
fix: Un-aimed admin rods will now actually be un-aimed instead of aimed
at the previous aimed rods target.
admin: Admin aimed rods will now log that they're aimed randomly when
not aimed.
/🆑
* Improves admin rod logging and fixes un-aimed rods being aimed.
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Missed
* Disease Outbreak retries on event setup failure [NO GBP] (#73599)
## About The Pull Request
- When Disease Outbreak starts, instead of failing on the first attempt
picks a new target if the chosen target is no longer valid for
infection.
- Corrects transmission of disease, assigning a stat. Positive viruses
with a resistance higher than transmissibility provide immunity from the
disease outbreak.
- Improved logging and admin information
## Why It's Good For The Game
- Along with https://github.com/tgstation/tgstation/pull/73596 this
makes the event reliably fire instead of giving up if the first
selection has changed during setup. (Death, new immunity, infected with
different virus, whatever.)
- Disease transmits as expected to unprotected. Positive viruses provide
immunity from infection based on their resistance stat.
## Changelog
🆑 LT3
fix: Disease Outbreak doesn't give up so easily when trying to start the
event
balance: Disease Outbreak will not spawn on positive virus mobs, but can
be transmitted if resistance is low
fix: Disease Outbreak creates an entry in the virus log like it should
admin: Admins can see Disease Outbreak virus stats when the event starts
/🆑
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Radiation Leak event can no longer target machinery that doesn't use power (#73609)
## About The Pull Request
The Radiation Leak event will no longer target machinery that doesn't
use power. This includes a lot of non-machine machinery, like the
anomalous crystal, the chef's icecream vat, or IV drips.
## Why It's Good For The Game
Closes#73558.
## Changelog
🆑 Rhials
fix: The radiation leak event no longer targets machinery that doesn't
use power.
/🆑
* Radiation Leak event can no longer target machinery that doesn't use power
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Disease Outbreak/Heart Attack candidate lists clear themselves before generating (#73596)
## About The Pull Request
When canSpawnEvent is run for the disease outbreak event, it would
generate_candidates() and add whoever was a valid infectee to a list.
Unfortunately, this list would not be cleared until the event was
actually run, meaning the candidate list could become malformed if the
event was cancelled, interrupted, or otherwise stopped before it could
properly start.
Additionally, this issue would arise if the admin setup process was
begun without actually running the event, or if two admins were
attempting to press buttons at the same time.
The list could contain duplicates, or players who were valid candidates
on the first candidacy check, but not at the present moment. The list
now clears itself every time it is generated, meaning that a fresh
candidate list is made every time one is needed.
Since the heart attack event uses the same candidate generating system
as the disease event, the change has been made there as well.
## Why It's Good For The Game
Closes#73552, hopefully? I can't imagine it's an issue with how the
candidates are selected, and am like 99% sure it's just the list getting
fudged somehow.
## Changelog
🆑
fix: The disease outbreak/heart attack event candidate list will now
clear itself before generating.
/🆑
* Disease Outbreak/Heart Attack candidate lists clear themselves before generating
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes Disease Outbreak: Advanced [NO GBP] (#73358)
## About The Pull Request
- Corrects severity thresholds for med/harmful/dangerous
- Removes tier 1 cures from cure pool
- Dangerous/Biohazard disease correctly show up on HUD at spawn
- RNG actually listens to what severity the symptoms are supposed to be
- Fixes various symptoms that were in the wrong severity list
- Disease is now assigned illness name based on its highest severity
component
- Converts old code to snake_case
## Why It's Good For The Game
Disease Outbreak works as expected, both on random spawn or admin custom
disease creation. Ensures that diseases that are harmful or potential
for quick spread are visible to scanners and HUDs.
## Changelog
🆑 LT3
code: Disease Outbreak: Disease max severity replaced with requested
severity
code: Disease Outbreak: Generated disease now includes symptom based
name
code: Disease Outbreak: Disease name is now included in the station
announcement
code: Disease Outbreak: Now in snake case
balance: Disease Outbreak: Tier 1 cures removed from pool
fix: Disease Outbreak: Dangerous/Biohazard diseases are now visible
fix: Disease Outbreak: Event setup generates the correct severity
fix: Disease Outbreak: Various potential symptoms were in the wrong
symptom pool
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Fixes Disease Outbreak: Advanced [NO GBP]
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Adds a new event, "Radiation Leak" (#72655)
Adds a new random event, "Radiation Leak".
A random machine in a random department will begin leaking radiation.
This includes a radiation aura around it, and semi-regular puffs of
smoke clouds containing mutagen and polonium.
The machine will stop leaking after some time, but can also be stopped
by using a random tool on it, indicated in its examine text.
I added a new "radiation emitter" component, for simple "emits
radiation" behavior. Then I made the radioactive mutation use it. This
means that the radioactive gene emits radiation while on stasis and
dead, rather than only in life.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>