* Delamination variants are now locked in after the countdown is reached (#80324)
## About The Pull Request
Does what it says on the tin.
## Why It's Good For The Game
This effectively changes one and only one thing:
The "All Within Theoretical Limits" achievement is easier/fairer to get
with this. Previously, if you edged a crystal with the gas composition
method to get a resonance cascade, you had to make sure that your gas
composition stayed until it left the explosion point, which made the
achievement extremely finnicky and unfun to get this way. Regular
delaminations won't really be affected, because yeah. It's at the
explosion point. What are you going to do about it?
This makes the achievement easier to cheese, but honestly, in my opinion
as person who added the achievement, meh. If people feel like this isn't
good for the achievement, say something in the comments.
Closes#79528
## Changelog
🆑
balance: Delamination variants no longer change once the explosion point
has been reached.
/🆑
* Delamination variants are now locked in after the countdown is reached
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Holiday Supermatter (#80254)
## About The Pull Request
Adds some festive season cheer to the SM. Santa hat not included.

## Changelog
🆑 LT3, Majkl-J
image: SM now has holiday lights
image: You can now put a santa hat on the SM
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Holiday Supermatter
* Update code/modules/power/supermatter/supermatter.dm
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Adds INTJ skillchip (#79902)
## About The Pull Request
Adds a new skillchip, it lets you taste food by examining it.

This has all of the effects of tasting food (various moodlets based on
quality and food type) and can also trigger food allergies if you have
them, however it does not consume the food nor give you any nutritional
benefit.
You can buy it from a vendor or sometimes it spawns in maintenance.
## Why It's Good For The Game
The players are constantly clamouring for more additions to our most
loved and useful feature, skill chips.
<details>

</details>
## Changelog
🆑
add: A new skill chip can be found in maintenance or purchased from the
vendor, allowing you to experience food in new and exciting ways.
add: Abductors also have access to this incredible power, simply using
their genius level brains.
/🆑
* Adds INTJ skillchip
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* More standardization for ghost notifications (READY) (#79596)
## About The Pull Request
I'm still not satisfied with how ghost notifications work. This gives
every notification with a source (99% of all notifications, in other
words) a link to jump/orbit. Currently, notifications with "play"
interactions would only get the interact link, so jumping to the source
was pretty annoying.
It removes posting the entire message in the alert tooltip, as some got
pretty lengthy and it didn't seem to fit. To replace this, they will
always use headers
After:



NOTIFY_JUMP and NOTIFY_ORBIT have been merged, since the only difference
seems to be whether it's a turf. The result shaves off some redundant
lines of code, since most-every usage of notify_ghosts uses
NOTIFY_ORBIT.
## Why It's Good For The Game
More standardization for the ghost notification system. Adds a few alert
headers that never had them. All in all, makes it easier for creators to
throw alerts at ghosts
## Changelog
🆑
qol: Nearly every ghost alert should now feature a "VIEW" button, even
those with click interaction.
del: Ghost alerts no longer show the entire message in the tooltip,
instead have been replaced with titles.
/🆑
* More standardization for ghost notifications (READY)
* Modular
* Update outpost_of_cogs.dm
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Fixes delam counter incorrect reset on delam (#79805)
## About The Pull Request
Fixes the delam counter being off by 1 when a delam happens, it should
reset to 0 next round, not 1.
## Changelog
🆑 LT3
fix: Delam counter will correctly show 0 the shift after a delam
/🆑
* Fixes delam counter incorrect reset on delam
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Don't play SM dusting noise for emitter beams (#79140)
## About The Pull Request
Shifts the dusting sound to not happen for EVERY projectile, to instead
only projectiles which would deal damage to the supermatter. Introduced
by #79024.
## Why It's Good For The Game
I assume this wasn't intentional in which case bugs bad, I squash bug
## Changelog
🆑
fix: Kisses and emitters no longer make the SM crystal scream so much.
/🆑
* Don't play SM dusting noise for emitter beams
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc (#79024)
## About The Pull Request
- Refactored `bullet_act`. Adds `should_call_parent` and refactors
associated children to support that.
- Fixes silicons sparking off when hit by disabler fire.
- Desnowflakes firing range target integrity and cleans up its
bullet-hole code a bit.
- Cleans up changeling tentacle code a fair bit and fixes it not taking
off throw mode if you fail to catch something.
- The Sleeping Carp deflection is now signalized
- Nightmare projectile dodging is now signalized and sourced from the
Nightmare's brain rather than species
- Refactored how cardboard cutouts get knocked over to be less
snowflaked / use integrity
- Also adds projectile `on_hit` `should_call_parent` and cleans up a bit
of that, particularly their arguments.
- On hit arguments were passed wrong this entire time, it's a good thing
nothing relied on that.
## Why It's Good For The Game
This is cringe.
1863eb2cd8/code/modules/mob/living/carbon/human/_species.dm (L1430-L1442)
Bullets should overall act more consistent across mob types and objects.
## Changelog
🆑 Melbert
fix: Silicons don't spark when shot by disablers
fix: Changelings who fail to catch something with a tencacle will have
throw mode disabled automatically
fix: Fixes occasions where you can reflect with Sleeping Carp when you
shouldn't be able to
fix: Fixes some projectiles causing like 20x less eye blur than they
should be
refactor: Refactored bullet-mob interactions
refactor: Nightmare "shadow dodge" projectile ability is now sourced
from their brain
/🆑
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc
* Modular changes
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. (#78310)
## About The Pull Request
Zap strength is now measured in joules. Scales everything to account for
this.
NT CIMS will now display the zap power transmission in watts, instead of
a modifier. This will allow you to actually see how much power the
supermatter is generating accurately, without knowledge of hidden
multipliers. NT CIMs will also show the internal energy gain from heat
in eV/K/s, so you can easily figure out how internal energy gain works,
and how much energy gain it actually gives. The internal energy
measurement will also adjust its prefix. Internal energy is now a
measure of internal energy, rather than internal energy density,
removing the "/cm^3".
Here is what it looked like:

This image was created on an earlier commit where the numbers were wrong
due to a hidden multiplier that got removed later, so keep that in mind.
Also fixes inactive supermatters unnecessarily scaling delta time. The
high energy (>5GeV) additional zaps now also scale with delta time.
The code in this PR is absolute garbage trash and there are some major
issues, so I'm drafting this for now.
## Why It's Good For The Game
Makes it more clear what the factors add, and also how much power the SM
is releasing. Zap strength being measured in joules will simplify a lot
of things, making power balance more clear rather than guessimating.
Adjusting the prefix for internal energy is just the natural thing to
do. The per cubic centimeter part of internal energy would imply it is
energy density, however it is functionally not. It would probably
confuse people thinking the volume of the turf or the size of the
supermatter actually matters for what the internal energy does, when it
does not (except for gas absorption I guess, which changes heating/mol
requirements, but nothing else), so I am removing that part.
## Changelog
🆑
qol: NT CIMs shows how much power the supermatter is releasing.
qol: NT CIMs internal energy will adjust its prefix.
qol: Energy displays (such as multitooling grid) will use the full range
of SI prefixes available, up to the peta prefix if you somehow managed
to reach that.
del: Removes the per cubic centimeter part of internal energy.
fix: Fix unnecessary delta time scaling on inactive supermatters.
fix: Fix high energy zaps not scaling with delta time.
fix: Fixes grounding rods lying about potential power you can generate.
code: Convert supermatter_zap() and tesla_zap() zap_str argument unit to
be in joules, and scales everything that uses that argument.
/🆑
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Supermatter Surge Event (#78244)
## About The Pull Request
Adds a new random event, Supermatter Surge.
For the duration of the event a powerloss inhibition is added, causing
the crystal to retain more of its internal energy. Engineers have to
keep the crystal stable for a few minutes until it passes.
The amount of additional heat is balanced around a roundstart nitrogen
engine with no freezers running (*icebox has freezers because planetary)
so that even the most basic setup can reasonably be responded to.
The event requires at least 3 engineering crew (or one CE) to run.
engine_alert3.ogg is a shortened version of bloblarm.ogg
## Why It's Good For The Game
Adds an engineering related event that while isn't too difficult to
respond to, makes the SM less of a 'set it and forget it' piece of
equipment in the round. The gas properties reduce heat generation as it
depletes during the event progression, so it remains relatively under
control compared to a massive 10K+ SM fire.
It creates a series of events that engineers can respond to in their own
way, be it adding more cooling, throwing in freezers, using a borg with
a fire extinguisher or whatever else they can think of.
## Changelog
🆑 LT3
add: New random event: Supermatter Surge
code: Individual supermatter crystals can have custom gas properties
/🆑
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
* remove Skyrat modular
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Fixes infinite power exploit. (#78321)
Fixes an exploit that allows tesla coils to duplicate >7GeV supermatter
zaps. Does this by dividing the new zap value by the power multiplier
instead of blindly halving it.
## About The Pull Request
Tesla coils no longer exponentially duplicate >7GeV supermatter zap
power.
## Why It's Good For The Game
Prevents this from happening:

## Changelog
🆑
fix: Fixes tesla coils duplicating the power of >7GeV supermatter zaps.
/🆑
* Fixes infinite power exploit.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Supermatter Delamination Balance Changes (Real) (#77996)
## About The Pull Request
lord forgive me I fucked up the merge conflict
The supermatter delamination countdown timer (how long it takes to go
boom-boom after hitting 0 integrity) has been lowered from 30 seconds to
13 seconds.
Removing a sliver from the supermatter, the traitor objective, will
further lower that down to 3 seconds.
Changes the wording on the mood effects from the supermatter
delaminating slightly.
The crystal uses SPAN_COMMAND on its final countdown, which means it
talk bigger.
## Why It's Good For The Game
Currently I feel that the supermatter delamination countdown overstays
its welcome. Ideally it provides tension to get the hell out, or perhaps
to make a risky last second play to try and save the supermatter.
However right now its at 30 seconds, which gives no danger of staying in
engineering right up to integrity 0, and keeps the tension at a high
note for too long, almost to the point of awkwardness. 13 seconds is a
good balance between get-the-fuck-out while still giving some leeway for
engineers to escape and crewmembers to jump in lockers, and feels quick
enough to give that danger that the supermatter should provide.
Additionally, removing a sliver from the supermatter lowers the cooldown
to 3 seconds. Right now this is one of the harder tasks a traitor can be
tasked with, while giving relatively little payoff sabatoge-wise. To the
point where I have seen engineers just let the traitor do it, as the
debuff it gives to the supermatter is minor. Now it makes the
supermatter delaminate almost immediately after hitting 0 integrity,
which means it will likely catch some engineers in the blast if a
traitor did it stealthy. This also makes it more risky to try and fix a
delamination if the engineering/security team did not stop the sliver
from being removed. All meaning succeeding at this task should be more
rewarding and damaging.
Finally the mood descriptions for the mood effects you get when a
supermatter delaminates have been changed. Currently they are pretty
gamey, and represent what the player might be thinking more than their
character. Additionally they were not very descriptive of where they
came from, which could be confusing.
## Changelog
🆑 Seven
balance: The supermatter delamination countdown has been lowered from 30
to 13 seconds
balance: Removing a sliver from the supermatter further lowers that down
to 3 seconds
balance: The supermatter crystal uses bigger text on its final countdown
spellcheck: Some supermatter delamination related mood descriptions have
been edited to explain the mood effect better
/🆑
---------
Co-authored-by: Shadow-Quill <44811257+Shadow-Quill@ users.noreply.github.com>
* Supermatter Delamination Balance Changes (Real)
* Update scram.dm
---------
Co-authored-by: Lufferly <40921881+Lufferly@users.noreply.github.com>
Co-authored-by: Shadow-Quill <44811257+Shadow-Quill@ users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* Adds lag compensation for the supermatter zaps and some antagonists. (#78174)
## About The Pull Request
Adds delta time scaling for changeling chemical generation, xenomorph
plasma generation, xenomorph resin healing (up to 8 seconds per tick to
prevent weird instant heal phenomena in extreme cases), and revenant
essence generation. This delta time scaling is based on the world's time
and the respective subsystem's last fire. This will help keep these
generation smooth even when their respective subsystem lags, preventing
lag from ruining the antagonists rounds. This can still slow down if the
actual world is slowing down, but that's fine because the rest of the
world will typically be slowing down proportionately so it's fair.
Fixes supermatter zap rate not scaling with its internal energy
properly. Ghilker forgot to scale the time reduction by seconds. It
should be much faster at higher energy levels, making the transition
between 0 and 5 GeV more smooth.
Supermatter zap power generation will scale by the world's delta time
between the supermatter's last zap, making power generation more
consistent even when atmos lags. Also prevents the supermatter zap rate
scaling from also scaling the power generation by extreme amounts,
keeping it linear and consistent for the first 5 GeV (>5GeV has cringe
power multipliers, but I'm going to ignore that for this PR, because I
want this to mainly be a consistency thing rather than a balance thing).
A 1.5GeV supermatter will be able to generate around 800kW* of power. I
forgot exactly what goal of power we want the roundstart SM to produce,
so I might change the scale if I find the target power generation.
* - By generate 800kW of power I mean the energy the actual zaps
contain. Tesla coils don't collect 100% of it. I'll test later to see
how much an actual roundstart SM will output to grid (ignoring SMES),
and I'll try to keep it as close as possible to what it was before this
PR assuming no lag.
## Why It's Good For The Game
Subsystems can disproportionately lag a lot more compared to the rest of
the subsystems and game. This can ruin antagonist rounds as it can slow
their chemicals, plasma or whatever generation grinding to a halt. The
delta time scaling will significantly reduce the impact of lag for these
antagonists, allowing them to play more normally even while the
subsystems their generators run on are lagging.
Supermatter zap rate was supposed to fire every 2.5 or something seconds
at 1.5GeV according to comments on older commits. I just assume they
accidentally forgot to scale their time reduction by seconds, as doing
that made it work accordingly.
For supermatter zap power generation delta time scaling, kinda same
reasoning as for the antagonists. We don't want power generation to stop
because atmos ss is being slow. Scaling between the zaps also prevents a
nonlinear boost to power generation making it even more absurd at higher
energy levels.
## Changelog
🆑
balance: Supermatter zap power generation scales with the delta time
between its last zaps, preventing faster zapping from scaling power
generation to extreme levels.
fix: Fixes supermatter zap rate not scaling properly. It should zap much
faster at higher energy levels as intended.
qol: Changeling chemical generation scales with the world's delta time,
making its rate independent of subsystem lag.
qol: Revenant essence generation scales with the world's delta time,
making its rate independent of subsystem lag.
qol: Xenomorph plasma generation and resin healing scales with the
world's delta time, making their rates independent of subsystem lag.
/🆑
* Adds lag compensation for the supermatter zaps and some antagonists.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Supermatter delam common radio alert cooldown (#78104)
## About The Pull Request
Changes the supermatter radio alert to be less spammy while the crystal
is healing during recovery.
If the crystal is in a state of fast healing (defined as 3% per minute,
about half of a crystal's 6%/min recovery at 293K) we're in a situation
where the engineers have prevented the delam and the crystal is
returning to normal.
In these situations the Common radio channel doesn't need to be reminded
every 60 seconds that the crystal is more than fine and on its way back
to 100, a cooldown is started for the Common channel alerts. Engineers
continue to get the integrity update every 60 seconds as usual on their
departmental channel.
The cooldown is only applicable to when the crystal is healing, if
integrity starts dropping again below the emergency point Common will be
alerted.
The command span is added for the final countdown only (from
https://github.com/tgstation/tgstation/pull/77996)
## Why It's Good For The Game
The SM alerting on Common every 60 seconds as it heals leads to alarm
fatigue and you tune it out. It should only be alerting Common when
there is imminent danger to the crew or that the danger has passed.
## Changelog
🆑 LT3
qol: Supermatter common channel alerts are less frequent if the
crystal's integrity is rising rapidly
/🆑
* Supermatter delam common radio alert cooldown
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* 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>
* Adds an achievement for saving a cascading SM from the final countdown. (#77900)
## About The Pull Request
Adds the "All Within Theoretical Limits" achievement. You get the
achievement for standing inside the engine room at the time where the SM
crystal heals from 0% health (when the crystal says "Crystalline
hyperstructure returning to safe operating parameters. Harmonic
frequency restored within emergency bounds. Anti-resonance filter
initiated"), and waiting until the SM heals to at least 25% health.
## Why It's Good For The Game
This rewards engineers who stay behind and try to save the engine even
in the most dire circumstances.
## Changelog
🆑 distributivgesetz
add: Add an achievement for saving a cascading engine from the final
countdown.
/🆑
* Adds an achievement for saving a cascading SM from the final countdown.
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Doubles the time you can get the "Long shift" achievement, makes it not grant on admin restarts (#77195)
## About The Pull Request
- "Long shift" can now be earned from sub 10 minute rounds rather than
sub 5 minute rounds
- Admin restarts no longer give out "Long shift"
## Why It's Good For The Game
I do not think this achievement can *possibly* be earned right now. Like
at all.
Nuke Ops and cult are the only antags that can possibly do it and it's
incredibly infeasible (requiring that they nuke the station or summon
Nar'sie in just 3 minutes!)
So I bumped up the timer to 10 minutes. This means that ops can get it
if they nuke the station in 8 minutes, cult can get it if they REALLY
speedrun, and revs can get it if they beeline the heads.
I checked the DB for stats on this achievement and it's only been earned
in 3 rounds across the last year - `208780` (admin restart due to a bug)
`192892` (admin restart due to a bug?) `186192` (admin restart).
So I also prevented admin forcing the round to end. (I don't know if it
catches admin reboots directly I'll have to check that.)
## Changelog
🆑 Melbert
balance: The "Long Shift" achievement is now feasibly obtainable, and
admins can no longer trigger it unknowingly
/🆑
* Doubles the time you can get the "Long shift" achievement, makes it not grant on admin restarts
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@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>
* SM now processes only when there is more than 0.01 moles of gas present (#75300)
* SM now processes only when there is more than 0.01 moles of gas present
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Deadchat Announcement Variety Pack 1 (#75140)
## About The Pull Request
Adds announce_to_ghosts()/notify_ghosts() calls to a bunch of different
things.
**THIS INCLUDES:**
- Powersink being activated/reaching critical (explosion) heat capacity.
- His Grace being awoken.
- Hot Potatoes being armed.
- Ascension Rituals being completed.
- Eyesnatcher victims.
- Ovens exploding as a result of the Aurora Caelus event.
- Wizard Imposter spawns.
- Rock-Paper-Scissors with death as the result of Helbital consumption.
- BSA impact sites.
- Spontaneous Appendicitis.
- The purchasing of a badass syndie balloon.
- The Supermatter beginning to delaminate.
This was everything that I could think of that would be worth announcing
to deadchat. These were all chosen with consideration to questions like
"how easy would it be to spam deadchat with this?" and "will observers
actually see the interesting thing happen, or just the aftermath?".
Not gonna lie, I've really become an observer main as of recently. Maybe
that's being reflected in my recent PRs. Who's to say? Deadchat
Announcement Variety Pack 2 will probably never come out. Sorry.
## Why It's Good For The Game
Gives deadchat a better indiciation of when/where something **REALLY
FUNNY** is about to happen. Draws attention to certain things that are
likely to gather an audience anyways, but sooner (for your viewing
pleasure). In simple terms, it helps the observers observe things
better.
Some cases, such as the aurora caelus or helbitaljanken, are occurrences
so rare that they deserve the audience.
## Changelog
🆑 Rhials
qol: Observers now recieve an alert when a powersink is activated/about
to explode.
qol: His Grace being awoken now alerts observers, to give you a
headstart on your murderbone ghost ring.
qol: Ascension Rituals being completed will also alert observers, for
basically the same reason.
qol: Arming a hot potato will now alert observers. Catch!
qol: Eyesnatcher victims will now notify observers, and invite them to
laugh at their state of misery and impotence.
qol: Observers will be notified of any acute references to The Simpsons
or other 20th Television America copyright properties.
qol: Wizard Imposter spawns alert observers, much like any other ghost
role event should.
qol: Playing Rock-Paper-Scissors with death will now alert the observers
and invite them to watch. Better not choke!
qol: Observers now get an orbit link for BSA impact sites. Why does it
keep teleporting me to the AI upload??
qol: Spontaneous Appendicitis now alerts deadchat.
qol: The purchasing of a badass syndie balloon now alerts deadchat. You
might not be any more powerful, but at least you have an audience.
qol: When beginning to delaminate, the Supermatter will alert observers
and invite them to watch the fireworks.
/🆑
* Deadchat Announcement Variety Pack 1
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* timestop the SM (#74302)
## About The Pull Request
Allows the timestop effects to freeze the Supermatter processing so that
engineers might be able to save it this time
## Why It's Good For The Game
Both wizards and science nerds are able to stop the SM seconds from
meltdown so that engies can figure out what's the right pipe to place to
prevent a destruction of property.
## Changelog
🆑
add: Timestop blocks the SM from processing (can't be healed, doesn't
output gases but can still take damage)
/🆑
* timestop the SM
---------
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Replaces internal_organs with organs
* Makes all of the necessary internal_organs -> organs in our files to compile
And it seems to work too!
---------
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* [WEBEDIT INCOMING] Corrects pluoxium and freon gasmix power ratios to their original values. (#73142)
## About The Pull Request
Changes pluoxium and freon powermix ratio to -1.
## Why It's Good For The Game
They were -1 before #69158. The PR stated there were no changes except
for the CO2 thing. It is extremely plausible it was an accidental change
during the refactor, as they were undocumented changes, while also
countering the point of the gases.
## Changelog
🆑
fix: Reverts accidental change to pluoxium and freon gasmix power ratio
values.
/🆑
* [WEBEDIT INCOMING] Corrects pluoxium and freon gasmix power ratios to their original values.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Rescale SM health from 900 to 100, UI improvements, visual changes. (#72252)
Rescaling because i saw someone think that the number on the supermatter
UI are actually the percent damage over time, which is wrong.
Added delta symbol to damage and energy since they actually denote
change, not the actual value.
Chose the numbers that look good instead of doing a 1:1 rescale of the
old one (i.e. im dividing or multiplying things by 10 instead of 9). In
practice this means I'm lowering the damage cap but increasing damage
over the board for atmos (since it's mostly divisors). Lowered the
damage overall for external stuffs.
A bit of modification on the filter helpers to suit my needs. Added
documentation because I'm awesome.
* Rescale SM health from 900 to 100, UI improvements, visual changes.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* [NO GBP] Reswitched the base supermatter ray to be the original one. (#71832)
## About The Pull Request
Fixes#71828
I used the singulo and tesla ones, shouldve used the original one.
Original is here:
fbf546847d/code/modules/power/supermatter/supermatter_glow.dm (L29)
## Why It's Good For The Game
Restores it back to how the original coder wanted it.
## Changelog
🆑
fix: fixed sm base ray needing damage to resize
/🆑
* [NO GBP] Reswitched the base supermatter ray to be the original one.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Migrated sm visual effects to delam datums. (#71521)
## About The Pull Request
Title
~~There are some weird stuffs with filter handling. Will investigate in
a few days.~~
It's weird but it looks like I don't need to look any further into it.
Other parts of the codebase also does it this way. Still left a comment
though because filter lifecycles are sus as hell.
## Why It's Good For The Game
Instead of choosing delams
here
a8f50c80be/code/modules/power/supermatter/supermatter.dm (L714)
and here
9968945c61/code/modules/power/supermatter/supermatter_glow.dm (L95)
We do it once.
And integrates the glow effects into the filter_data list using the
filter procs since it has more robust debugging.
## Changelog
🆑
fix: fixed supermatter rays glowing with an additional yellow ray on
special delams. Will only glow blue or purple for tesla and singuloose
respectively.
fix: got rid of the blue causality box thing from singulo delams.
del: excised the currently broken supermatter ray size animation.
refactor: refactored how the supermatter light visual effects work.
code: made the disable_gas var on supermatter preserve the current
variables instead of zeroing them.
code: registered the supermatter filters on the filter debug menu.
/🆑
* Migrated sm visual effects to delam datums.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Adds Some Supermatter Effects (#67866)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
This pull request adds a variety of Supermatter delamination effects to
make the crystal a bit more fun to watch and stare at. The initial
filter effects and animations are from Baystation12, but I have adapted
it to make it fun to watch!
It'll be a bit hard to explain in text, so this is the text explanation.
For normal running conditions, the Supermatter will emit pretty golden
rays, and a large campfire like that glow that grows and shrinks based
on it's power level.

For high power conditions, such as high O2 or CO2 amounts, the
Supermatter's rays will glow red and it will emit red light, aswell as
turn red (like before, unchanged).
https://user-images.githubusercontent.com/77420409/174471693-e191ee47-1a01-4b76-8570-9d12b994c2d4.mp4
When the conditions for a cascade, singularity, or a tesla are met, the
colours and rays emitting from the crystal will change to match!
https://user-images.githubusercontent.com/77420409/174471747-dffb3beb-dd38-42a1-a97b-7262dabd60af.mp4https://user-images.githubusercontent.com/77420409/174471765-af1927e8-a48e-4fd5-a35c-6b3aa53c5add.mp4
Also, I've added more sucking power to the crystal during its final
countdown for DRAMATIC EFFECT. If the singularity conditions are met,
the supermatter will SUCK THINGS INTO IT, even if they are bolted to the
GROUND. Just like a singularity! It's REALLY COOL.
https://streamasaurus.com/sharing/singularity_full.mp4 <--17MB video.
UPDATE 1: New rays for the singulo
https://user-images.githubusercontent.com/77420409/174933219-0118748a-02da-40f8-9b99-06009e197cc8.mp4
UPDATE 2:
Singularity delamination final countdown effect??:
https://user-images.githubusercontent.com/77420409/175421220-66bae109-204d-44ee-8a67-c18ce8eff3ba.mp4
When the supermatter has reached the FINAL COUNTDOWN but does NOT meet
the criteria for a singularity, it will simply YOINK everything
unwrenched towards, like a gravitational anomaly, range based on power
at the time. Not as crazy as the singularity. Most things will get
slapped against walls.
Here, have another cool delamination demo showing the criteria's
swapping mid countdown!
https://streamasaurus.com/sharing/modeswapping.mp4 <-- 17.5MB
I am likely missing something important from this body as I am drowsy
making this! I will update this body with anything I forgot to note that
I did.
## Why It's Good For The Game
The supermatter is a a very cool thing, but it could be cooler. I think
the visual experience could do with a bit of an upgrade, as visual
feedback is really cool and impressive to watch! You could tell more
about the crystal without looking at the console, but not everything or
precise numbers.
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: The Supermatter crystal will now emit rays of light, varying on
it's power level and situation.
code: improves a formatting and comment spelling
fix: The Causality field now actually shows up!
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
* Adds Some Supermatter Effects
Co-authored-by: nevimer <77420409+nevimer@users.noreply.github.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
* [WEBEDIT INCOMING] Fixes supermatter powerloss threshold check. (#70817)
Replaces the internal_energy is below powerloss_linear_threshold check with a momentary_power is below powerloss_linear_threshold check.
Fixes supermatter powerloss threshold check to check for the momentary power instead of internal energy.
The powerloss math is based on the momentary power, but the if check checked for the internal_energy instead, which made it continue using cubic power loss at inappropriate situations.
* [WEBEDIT INCOMING] Fixes supermatter powerloss threshold check.
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* [NO GBP] Fix SM effectless gas runtime (#70810)
Fix SM effectless gas runtime
SM bricks if you put something without any effects like halon.
* [NO GBP] Fix SM effectless gas runtime
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Simplifies SM damage calculation, tweaks the numbers. (#70347)
About The Pull Request
We apply the damage hardcap individually now, split off the old flat 1.8 into individual caps for heat, moles, and power.
Set it to 1.5 for heat, 1 for mole and 1 for power. This means for most delams it'll be a tad slower! But its possible to make SM delam nearly twice as fast if you combine all 3. (3.5). Be pretty hard tho.
Set the heat healing to -1 so you can counteract one factor at most (except heat since you'll never get both heat healing and heat damage at the same time anyway).
I'm not hell bent on any of the numbers, just picked round even ones and ones that i think will make sense. If you want them changed lmk.
Got rid of the cascade mole and power multipliers since there's probably like three people that are aware that it even exists. Ideally we just add another entry to the CIMS but its already pretty crowded. Figured nobody is gonna miss it anyway? Sorry ghil.
Got rid of the moles multiplier thing since its nicer to keep the temp damage fully based on temp damage instead of adding another multiplier. I just applied the .25 to the damage flatly, meaning it slows down delams again!
And some space exposure stuff: #70347 (comment)
Why It's Good For The Game
Hardcap: Discrete, less randomly interconnected factors are easier to present and remember. The calculation procs are also made to be additive so we had to hack a bit and do some rescaling to accomodate the old behavior in my original PR #69240. Can remove the hack if this pr goes through.
Cascade and mole multiplier: The rest are just getting rid of underutilized factors so we have a cleaner behavior to maintain, present, and understand. (In a perfect world modifiers that aren't visible to the players shouldn't have been merged in the first place smh smh)
Changelog
🆑
fix: Fixed sm space exposure damage going through walls
del: got rid of the molar multiplier for sm heating damage. It will now only impact molar damage and temp limit. We apply the lowest value directly so this slows down sm delams a tiny bit.
del: got rid of cascades making sm delam at 450 moles and 1250 mev. It delams normally now.
balance: Applied the sm damage hardcap of 1.8 individually to heat (1.5), moles (1), power (1). Meaning most sm delams are slower now, but the really bad ones can be faster.
balance: Halved sm temp healing across the board. Temp limits are still the same though so you shouldn't notice it that much.
balance: Halved SM power damage across the board.
balance: Changed sm space exposure damage to just check for the current tile and adjacent atmos connected tiles.
/🆑
* Simplifies SM damage calculation, tweaks the numbers.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* "It has been 0 days since the last incident" sign (#70099)
Adds a fun sign to various places in engineering which tracks how many days (read: rounds) it has been since last time the engine delaminated.
* "It has been 0 days since the last incident" sign
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Replaces obj flag `being_shocked` and flag_1 `shocked_1` with `TRAIT_BEING_SHOCKED` (#69978)
* Replaces `being_shocked` and `shocked_1` with `TRAIT_BEING_SHOCKED`, removing a flag_1, taking us away from the possibility of hitting the flag limit.
* Replaces obj flag `being_shocked` and flag_1 `shocked_1` with `TRAIT_BEING_SHOCKED`
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>