* Miasma SM (#54487)
Makes the supermatter crystal consume miasma in the air to power itself. The rate at which it consumes miasma scales with the partial pressure of the miasma and the gas mix of the surrounding air.
Miasma also increases gasmix_power_ratio, but by half as much as is normally standard
* Miasma SM
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Move psychologist immunity from mind to skillchip (#55813)
Skillchips are neat, and this is the sort of "job-specific skill" that can remain job specific, but still gainable in the shift through in-universe means.
The logic behind the skillchip is that the supermatter is psychically sensitive, hence the hallucinations and headaches from looking at it and projecting the "correct mental aura" will help it calm down. But that is lore following mechanics.
Refactors skillchips to be able to automatically apply more than one trait.
* Move psychologist immunity from mind to skillchip
Co-authored-by: coiax <yellowbounder@gmail.com>
* Makes the supermatter crystal immune to radiation. Not sure how I missed this (#55710)
* Makes the supermatter crystal immune to radiation
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Refactor supermatter proximity effects (#55653)
- Psychologists are no longer mistakenly told they have headaches
when near the supermatter.
- Immunity to supermatter hallucinations is now provided by a new trait
`TRAIT_SUPERMATTER_MADNESS_IMMUNE`, provided by mesons, and being the
Psychologist.
- The ability for Psychologists to cause the supermatter to act slightly
differently (by turning pink, and having a higher minimum healing
temperature) is now a trait, `TRAIT_SUPERMATTER_SOOTHER`, which
currently only Psychologists get.
* Refactor supermatter proximity effects
Co-authored-by: coiax <yellowbounder@gmail.com>
* Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals (#55193)
Huge removal of dead vars, bad timers, and other sloppy jitteriness from beams. They go from checking movement to waiting for a signal.
VARIABLE KILL LIST:
sleep_time: signals baby
finished: signals BAYBEEE
target_oldloc: not only not typecasted as a turf or named as a turf, it was unused. when are we going to use this? the beam starts from the origin!
origin_oldloc: bad name, not typecasted. renamed to originturf
static_beam: how are you an unused variable and still get replaced by signals like really
timing_id: signallllss bbbaaaabbyy
recalculating: you get the drill by now signals baby
base_icon: unused, seemingly replaced by visuals I think
* Refactors Beams to use signals: Revived from 2019 edition! BONUS: Medbeams are also refactored to use signals
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* eh (#55529)
Fixes the supermatter not collecting unused/untouched gas type generated for percentage checking
* Supermatter gasmix cleanup
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Replace direct poi_list manipulation with element (#55416)
Replaces GLOB.poi_list |= src and GLOB.poi_list -= src with an element that handles it directly.
More consistent code, especially when a lot of code couldn't decide how to add/remove (some |=, some -=, some .Remove, etc).
* Replace direct poi_list manipulation with element
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* Crystal invasion more rare (#54504)
This PR makes crystal invasion much rarer and confine it between 4500 and 5000 MeV
* Crystal invasion more rare
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Standardizes attack chain signal returns and fixes a tk bug (#54475)
The attack chain is a bit of a mess, and the introduction of signals hasn't helped in simplifying it.
In order to take a step into untangling this, I re-ordered the attack signals to no longer be by source type and instead to be grouped more modularly, as they are all members of the attack chain and function similarly. They all share the trait of potentially ending the attack chain via a return, but had several different names for it. I joined it into one.
Additionally, fixed a tk bug reported by @ Timberpoes by adding a signal return check at the base of /mob/proc/RangedAttack
Lastly, removed the async call of /datum/mutation/human/telekinesis/proc/on_ranged_attack, which was added as a lazy patch to appease the linter complaining about a sleep on a signal handler (namely in /obj/singularity/attack_tk). Fixed the problem using timers.
Also cleaned some code here and there.
* Standardizes attack chain signal returns and fixes a tk bug
Co-authored-by: Rohesie <rohesie@gmail.com>
* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Making holes in the SM chamber will provide a lot of +*=FUN=*+ (#53725)
Making a hole in the supermatter chamber to vent it and so to slow down the delamination will instead make the delamination way faster, more so if the SM power is very high and the power level is high too.
Fix an old unintended feature where you could just vent to space the SM chamber to slow down or even stop a delamination (sometimes you could just make a hole in the chamber and it would stabilize while delaminating), the SM is easily fixable just by looking at the pipe and the meters, no need to vent to space. (Lemons note, in some cases a vent to space is needed, but it should not be a long term thing)
* Making holes in the SM chamber will provide a lot of +*=FUN=*+
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Crystal invasion no longer random event but delamination event (#53921)
This PR makes the crystal invasion event a delamination event only, so no more random events (can still be admin triggered).
The chance for the delamination to trigger the event depends on the power of the SM, the closer it is to the tesla delamination (near 5000) the higher the chance.
* Crystal invasion no longer random event but delamination event
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Remove bad reference from atmos (#53781)
Change the name from Cyrion B to Zauker due to the easy connection the bad groups in the past
Not getting a repo ban is good
* Remove bad reference from atmos
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Fixes processing of deleted objects in SSair (#53735)
qdel'd objects could still process in SSair because SSair utilises a cache whenever it has to resume processing runs from a partially completed state from running out of processing time.
Of all the things that processed on SSair, only one thing actually took care to remove itself from the cache as well on deletion.
This is an important subsystem and the processing lists should not be public. Objects don't need to know how SSair works, they just call the proc to add when they start processing and call the proc to remove when they finish.
Thanks to @ LemonInTheDark and @ willox for spending a lot of time helping me track down a proper fix to this issue.
* Fixes processing of deleted objects in SSair
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Merge pull request #53013 from Ghilker/reactions-go-BRRRR
The scope of this PR is to add new and interesting stuff to the atmos crew and to bring more people to it both old and new.
This PR adds 5 new gases, a bunch of reactions (i'm still working on this but suggestions are useful), new recipes and items to the atmosians arsenal. These gases have high utility for everyone, atmosians will find them useful to do their job both as firefighters and air maintenance.
FINAL GAS NAMES (will change only if a maintainer ask about it)
Healium
Proto Nitrate
Cyrion B
Halon
Hexane
reactions avaiable in this PR: https://drive.google.com/file/d/1e6DZlBaKSCNdCADKnrH3F3aDWvl0iZr4/view
What the PR add:
-Healium: a red gas, stronger than n2o if breathed, with healing properties
-Proto Nitrate: a green inert gas if breathed but with different reactions with various gases at high temperatures
-Cyrion B: a black deadly gas if breathed that decompones very fast if exposed to N2 even at minimal amounts
-Halon: a light blue gas that when used in a fire it will suck up the O2 and will help cool the room, helping fighting the fire
-Hexane: a purple gas that has the ability to filter from the air plasma and n2o, useful to clean distro from the harmful gases quickly
-Healium Crystal: a reddish crystal that when broken will explode cooling the room and removing the plasma from the air (act like a grenade)
-Proto Nitrate Crystal: a greenish crystal that when broken will explode refilling a space with O2 and N2
-Cyrion B Crystal: a blackish crystal that when broken will explode dealing damage around it
-Metallic hydrogen recipe addition (atmosian armor and fireaxe)
-Statue of an elder atmosian (for bragging rights)
-Supermatter Interactions
-More gas interactions (Roinnel have multiple and different interactions)
-New RPD device: the pressure valve, a device that allow gas flow in a pipenet if the input pressure is higher than the set pressure it's getting atomized
-Fusion is a bit "easier" to start (minor changes to the math so that the instability is more reasonable)
-pluox can be also made without using rads
-cyrion-b bounty
-all 5 gases can be sold to cargo
More stuff needs to be added (like the SM interactions(added) and probably more reactions and breathe reactions)
Please leave suggestions and feedbacks as it helps improve the PR
Atmos desperately need more content and need to be proactive in the making of its tools, with this PR is a start to more atmos content
🆑
add: hydrogen + rads = trit
add: 5 new gases
add: Healium : made from Bz + Freon + cold, it knocks people down but have healing properties
add: Proto Nitrate : made from pluox and H2 + heat, it has different reaction with a bunch of other gases
add: Cyrion B : made from hypernoblium + stimulum around 0°C, it has heavy damage if breathed but is decomposed rapidly by N2
add: Halon : made from bz + trit + cold, it reacts with O2 at high temperature removing it and cooling the air, helping putting out fires
add: Hexane : made from bz + H2 + cold, it reacts with plasma and n2o and removes them from the air mix, filtering them.
tweak: stimulum no longer require plasma
add: canister sprites, gas sprites
add: crystal from gases formation and reaction
add: new metallic hydrogen recipes
add: elder atmosian statue
add: supermatter interactions
tweak: minor changes to fusion math to make it "easier" to start
add : pluoxium can be also made without using rads (not removing the rad production one) (this also produces a minimal amount of h2)
tweak: lowered hypernoblium min temperature of reaction
tweak: metallic hydrogen production more common
add: cyrion-b bounty
add: all 5 gases are up to selling
/🆑
* Add 5 new gases, related interactions/items/content, changes parts of fusion
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Readds the tesla, reworks it a bit (#53072)
* Makes tesla movement nicer, fixes some atmos concerns, changes how energy is handled, and readds the tesla
* readds delam and desc
* I fucked it
* flags
* holy fuck
* Constricts the zaps that can generate power from a tesla coil
* *kick?
* Readds the tesla, reworks it a bit
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* ZK-Lambda-Class Remade (#52941)
This PR adds the crystal invasion event, a new event involving the Supermatter and the monsters from within.
When the event starts there will be a message from centcomm announcing it, then the supermatter explode leaving a destabilized crystal that emits radiations and harmful gases; after a bit portals will spawn around the station, that will produce a number of monsters each. there are 4 types of waves and 4 types of portals
The waves are: Small, Medium, Big, Huge (each have different kind of portals that can spawn and different amounts too)
The portals are the same types of the waves, they differ from each other for the number of monsters that can spawn and the kind of monsters that can spawn (bigger portals spawn stronger monsters)
To end the event the players should stabilize the crystal by destroying the portals (for now are indestructible and they are disabled by using an anomaly neutralizer, might change that) and collecting otherworld crystals; then those crystals are to be put in the crystal stabilizer, an item unlockable in the tech tree. After this just inject the destabilized crystal with it and the remaining portals will close on their own (the spawned monsters will still remain tho so you have to slay them)
All the numbers are mostly eyeballed and could change if requested/with feedbacks
* ZK-Lambda-Class Remade
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Removes singularity, tesla, TEG and Mrs. Pacman. Changes supermatter overcharge delam. (#52873)
About The Pull Request
This PR removes the tesla and Mrs. Pacman from the game. The title is actually misleading, the TEG and singularity are still in the game but inaccessible and the singularity no longer has its generator.
Field generators and tesla coils have been kept because shocking your fellow man is the greatest sensation of power in the world.
The overcharging delamination for the supermatter has been replaced by the release of 2500 mols of tritium at 500,000 kelvin. An engineer who's really hateful of the station can use this for fusion, if they desire. Otherwise, its a tritium fire in engineering alongside the explosion. This will probably be changed in the future to be more potent since the explosion will pretty much just space all the tritium away.
Singularities no longer produce radiation. Now, keeping one is less about making power and more about making a statement, especially since you need to delaminate an SM shard for it.
Why It's Good For The Game
Having power optimized for one generator (SM+Turbine) will allow balancing to be feasible, also oranges wanted this. The other generators may later return but with tweaked values and different roles.
Changelog
🆑
del: Nanotrasen has removed their outdated teslas, singularities, TEGs and Mrs. Pacman generators from their servers and warehouse.
/🆑
* Removes singularity, tesla, TEG and Mrs. Pacman. Changes supermatter overcharge delam.
Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
* Fixes tesla coil hell contraptions (#52889)
Removes the ability for tesla coils to generate power with more then 85% efficiency.
Cleans up the remainder of my zap_act refactor, making the proc better fit its usecase and removing some unneeded code.
Adds a check in the tesla coil zap() proc that makes sure we're not trying to use power that's not there.
Removes some seemingly complex math from said proc, replaces it with a static 20% draw * the efficiency.
* Fixes tesla coil hell contraptions
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds feedback to the supermatter exploding while in a locker (#52762)
* Adds feedback to the supermatter exploding while in a locker
* Fix z level check
* Adds feedback to the supermatter exploding while in a locker
Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
* supermatter anomaly generation can no longer be used to get anomaly cores (#52732)
* fix
* webedit moment yes i'm testing this pr shhhh you didn't see that failed compile
* haha what if i tested my code?
* supermatter anomaly generation can no longer be used to get anomaly cores
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
* Makes the supermatter file smaller.
AHAHAHAHHAHA YOU FOOL YOU HAVE FALLEN FOR MY TRAP CARD
* stable build maybe? sm cleanup begins
* The old ones knew
* lemme atomize actually
* I know how to spell ok? OK?
* braindamage
* That'll do it
* That do it?
* There we go
* Wow I should test things
* test?
* I hope that clears it
* Should fix the formatting trouble
* isolates the opening proc
* Lowercase and fixes messed up proccall
This reverts commit 69a9eb0.
About The Pull Request
Fixes the sm producing fusion.
dynamic_heat_modifier and power_transmission_bonus never got a clean reset, and because they are global vars, kept gaining value. I've fixed this and tweaked 1 comment about max heat output.
This was a result of misunderstanding from both ghil and ninja, and is now thankfully fixed.
Why It's Good For The Game
This shit is neat, should actually be in the game rather then in my fixing pile.
Changelog
🆑
add: The h2o interactions have been polished and readded. Fucking global variables.
/🆑
Checks to see if the turf we're zapping off exists and has a gasmix
Why It's Good For The Game
Makes things less cringe
Changelog
cl
fix: Fixed a supermatter zap runtime
/cl
* Just freon addition, no removal nor fire. Maybe unbalanced
* fixes
* material properties addition, removed from the object itself
* added admin and game logging to hot ice
* Typos
* made the component more generic
* other typos, some fixes
* typos and balancing
* better code readability
* dunno
* merge error and travis build errors fixes
* asked changes, fixes and balancing