Commit Graph

1386 Commits

Author SHA1 Message Date
SkyratBot
606f0009a1 [MIRROR] Removes two redundant components [MDB IGNORE] (#22613)
* Removes two redundant components (#76866)

## About The Pull Request

We're starting to get to have enough components that people don't
realise that what they want already exists but doesn't have the name
they expect 🙃

I recently added `track_hierarchical_movement` which is similar enough
to `connect_containers` that it shouldn't independently exist, even if I
like sending a new signal more than the ugly setup pattern for
`connect_loc`.

`trait_loc` is actually older than `give_turf_traits` but
`give_turf_traits` covers more edge cases than `turf_loc` so seems like
the better one to maintain.
HOWEVER `give_turf_traits` held a list of references to atoms in it,
which isn't great in an element. I couldn't think of a way to completely
eliminate the list, but it isn't a list of references any more so it
shouldn't cause any hard deletions.

## Why It's Good For The Game

Having two components which do the same thing but marginally differently
is confusing and going to cause us trouble down the line.

## Changelog

Not player facing

* Removes two redundant components

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-07-21 13:27:45 -04:00
SkyratBot
22b2aed161 [MIRROR] Adds an extra siphon mode using vents (locked behind emagging) [MDB IGNORE] (#22596)
* Adds an extra siphon mode using vents (locked behind emagging) (#76668)

## About The Pull Request

Vent siphon: Disables pressure checks of vents, disables scrubbers, and turns vent to siphon

Useful for people extracting gas from a room - but also valuable for bad actors liking to fill distro with some bad atmosphere

* Adds an extra siphon mode using vents (locked behind emagging)

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
2023-07-19 17:58:40 -04:00
SkyratBot
265da0318c [MIRROR] Fixes cryo cells being on at roundstart [MDB IGNORE] (#22590)
* Fixes cryo cells being on at roundstart (#76933)

## About The Pull Request

Fixes a minor oversight in cryo cell's update overlays which gave the
exact same overlay regardless of being on/operational, now they have the
proper 'off' overlay when necessary.

## Why It's Good For The Game

Fixes a minor visual bug with cryo cells.

## Changelog

🆑
fix: Cryo cells no longer appear on when off.
/🆑

* Fixes cryo cells being on at roundstart

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-07-19 15:24:55 -04:00
Bloop
ee38211143 [MISSED MIRROR] Volume pump refactor (#76260) (#22535)
Volume pump refactor (#76260)

## About The Pull Request

A new pull request that DOESN'T make Lemon and Ghil kill me. _[I had
made a previous PR about the same original commits that was going to
make Volume Pumps leave a lot more gas in pipenets then people would
want.]_
Removed Hardcoded values from Volume_Pump.dm and moved them to __DEFINES
Updated documentation on Volume pumps because it was copied from
Pressure Pump. Volume pumps attempt to move a certain volume and ignore
pressure limits until exceeding them. This can lead to pressures well
above the limit, so there is no ‘perfecting’ of pressures, as previously
detailed by documentation.

Edited to be more specific.

## Why It's Good For The Game

Less Hardcoded values.
Documentation more readily reflects the realities of the game.

## Changelog

🆑
code: replaced hardcoded values in volume_pump.dm with __DEFINES vars
doc: Volume Pump's basic introduction was copied and pasted from the
Pressure Pump documentation, and made mention of trying to 'perfect the
pressure'. Volume pump doesn't care about pressure until it exceeds it,
so there is no 'perfecting' going on.
/🆑

---------

Co-authored-by: EliteCreature <EliteCreature@gmail.com>
Co-authored-by: Riley Redd <riley@pcs-ms.com>
2023-07-18 17:46:23 -04:00
Bloop
b674e72ef1 [MISSED MIRROR] Macros multi-z code, removes the false premise of manual offsets (#76248) (#22531)
* Macros multi-z code, removes the false premise of manual offsets (#76248)

## About The Pull Request

[Removes the pretense of relative multiz
levels](0293fdc2bd)

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](7d698f02d9)

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>
2023-07-18 02:28:15 +00:00
SkyratBot
2f552919c1 [MIRROR] Icons folder cleaning wave two [MDB IGNORE] (#22454)
* Icons folder cleaning wave two

* Merge conflict resolution

* Modular path hell

* hmm

* Update 2022-10.yml

* Another modular thing

---------

Co-authored-by: YesterdaysPromise <122572637+YesterdaysPromise@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-16 00:41:18 -04:00
Bloop
d22ad928c4 [MISSED MIRROR] Fixes multiz gas not displaying properly (#76572) (#22443)
Fixes multiz gas not displaying properly (#76572)

## About The Pull Request

Broken by 51f02b5acc I introduced logic
that would use SET_PLANE_EXPLICIT's context arg's PLANE (if it had no
turf) as a source.
Since we use SET_PLANE_IMPLICIT in atom Initialize, if we set a plane
before Init, it'll end up double offsetting. This was effecting gas.

Solution, because this case is so rare, is just to set the plane on init
and store the offset on the object until then.

## Why It's Good For The Game

Closes #75709 
Closes #73642
## Changelog
🆑
fix: Gas, like plasma, will now properly display on multiz stations
/🆑

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-07-15 14:44:49 -07:00
SkyratBot
e264ee3644 [MIRROR] Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts [MDB IGNORE] (#22469)
* Adds an extra malf AI ability: Remote emagging. Also tidies up emag code and coverts a lot of things to balloon alerts

* Update communications.dm

* Modular override

* Some modular adjustments, removes 'emagged' vars in favor of obj_flags

* whoops, mobs don't have obj_flags.

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <vinylspiders@gmail.com>
2023-07-15 16:46:17 -04:00
SkyratBot
422510d8d9 [MIRROR] Gas monitor reaction information will use the primary gas as its reference instead of "reaction rate". [MDB IGNORE] (#22185)
* Gas monitor reaction information will use the primary gas as its reference instead of "reaction rate". (#76264)

## About The Pull Request
Changes gas monitor gas reaction descriptions. They use the main gas as
the reference instead of the "reaction rate".
## Why It's Good For The Game
"Reaction rate" refers to the collective variables that are used as the
gas reaction rate in code, which is OOC in IC, which is fail RP.
Improves atmospherics RP standards by making them reference a physical
thing instead.
## Changelog
🆑
spellcheck: Improves gas monitor reaction information RP.
/🆑

* Gas monitor reaction information will use the primary gas as its reference instead of "reaction rate".

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-07-09 11:54:56 -07:00
SkyratBot
04a6ddfacb [MIRROR] Fix hypernoblium formation gas reaction rate sanity clamping not accounting for the reduction factor. Also other sanity fixes. [MDB IGNORE] (#22186)
* Fix hypernoblium formation gas reaction rate sanity clamping not accounting for the reduction factor. Also other sanity fixes. (#76177)

## About The Pull Request
Fix hypernoblium formation not accounting for the reduction factor when
sanity clamping the reaction rate.

Fix N2O formation not using updated consumption rates for sanity checks.

Fix BZ formation not accounting for nitrous oxide decomposition factor
for reaction rate sanity clamping.
## Why It's Good For The Game
So the reactions are more natural.
## Changelog
🆑
fix: Fix hypernoblium formation gas reaction rate sanity clamping not
accounting for the reduction factor.
fix: Fix N2O formation gas reaction rate clamping clamping for incorrect
consumption rates.
fix: Fix BZ formation reaction rate sanity clamping not accounting for
N2O decomposition factor.
/🆑

* Fix hypernoblium formation gas reaction rate sanity clamping not accounting for the reduction factor. Also other sanity fixes.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-07-03 17:40:04 -04:00
SkyratBot
db35fc9a89 [MIRROR] Fixes some stupid airlock sleeps [MDB IGNORE] (#21931)
* Fixes some stupid airlock sleeps

* Fixes the conflicts before checking the merge conflicts

* Converts another wires = to set_wires() and removes another issue

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-07-01 15:33:12 -04:00
SkyratBot
1beff3980c [MIRROR] Air Sensor are Craftable, Removed from RPD UI, Have New Linking System [MDB IGNORE] (#21964)
* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System (#75869)

## About The Pull Request

**1. Craftable & Removed from RPD UI**

1. Air sensor's are now craftable
2. You can turn them on/off with hand. Even though turning off the
sensor will change it to a diffrent type[from `obj/machinery/air_sensor`
-> `obj/item/air_sensor`] it's I/O port's are sill preserved when
turning them on although you have to assign it a new name again which is
usefull if you want to change the sensor's purpose in game.
3. They can now only be deconstructed by a welding tool and should be
wrenched in place to turn them on.
4. Turned off air sensor's once unwrenched can be picked up like any
regular item
5. Air sensor's are removed from the RPD UI because they don't go with
pipes so it logically doesn't make sense to group them with pipe related
device's

Removed unused code in the process

https://github.com/tgstation/tgstation/assets/110812394/3439a0f3-9c48-43ac-8f4b-98135435ec13

**2. New ID System**
The problem with air sensor's is that each sensor is assigned a unique
ID which is then stored in `GLOB.objects_by_id_tag` list. Each sensor
name it's assigned based on the gas it's trying to sense(for naming only
even though it can detect other gases) So if 2 sensor's having the same
ID are made they will overwrite each other in this list leaving one
sensor orphaned in the world which cannot be referenced because it's
value was overwritten by a new sensor having the same ID in this list.

The Solution? Rather than having all atmos computer's look up sensor's
from this 1 global list make each computer keep track of all sensor's
it's responsible for in it's own local list[which i called
`connected_sensor's`] this way 2 sensor's can have randomly generated
names in the global `GLOB.objects_by_id_tag` list but the computer will
know what sensor to look up in this list based on the stored sensor ID's
in the `connected_sensor's` list

Basically what i am getting at is now you can make as many air sensor's
as you wish but you will know have to connect that sensor to the
computer using a multitool.
Notice in the video how i made 2 sensor's called `Supermatter Chamber
Sensor's`] and every time you try to connect an sensor which has the
same name[`Supermatter Chamber Sensor's` in this case] they will
ovewrite the old sensor in it's list as shown in the video

https://github.com/tgstation/tgstation/assets/110812394/b5283c3b-c8a1-4b94-a6a8-8ba7a0007615

**Why it's good for the game**
![Screenshot
(247)](https://github.com/tgstation/tgstation/assets/110812394/6a7eb501-4414-4f01-a6ef-3e9b70f4af06)

I agree. Also air sensor's taking up a full Tab/Section in the RPD UI
wasted a lot of UI space so that's removed now. Also making the air
sensor's wrenchable and pickable item's was also requested in
https://github.com/tgstation/tgstation/pull/72019#issuecomment-1355499873
so you relate them to device's like meter's

Another huge issue was that the number of air sensor's you can make in
the world was limited because each sensor in the world must have a
unique ID but that's finally fixed now so yeah make as many sensor's as
you want.

## Changelog
🆑
add: air sensor's are craftable
refactor: air sensor's can now be turned off by hand and can only be
deconstructed by a welding tool
refactor: removed `Params()` proc
qol: unwrenched air sensors can be picked up & recycled like regular
item's
del: air sensor are removed from the RPD UI
qol: air sensor's are no longer restricted by their unique ID's which
mean you can craft as many air sensors as you want.
/🆑

---------

Co-authored-by: Time-Green <timkoster1@ hotmail.com>

* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@ hotmail.com>
2023-06-23 16:06:45 -07:00
SkyratBot
529b8b4464 [MIRROR] Lighting object oddities [MDB IGNORE] (#21945)
* Lighting object oddities (#76009)

## About The Pull Request

Fire stacks status effect no longer uses a weakref for the mob light, I
am pretty sure there was no real reason to use a weakref there.
Deleted weird luminescent glow dummy, now it just uses the standard
moblight obj.
Put all /obj/effect/dummy/lighting_obj together in a single file and
added a comment explaining why they exist.

(I severely dislike the /obj/effect/dummy typepath, but I am very much
unsure if just replacing all of them with /obj/effect/abstract would
break shit)

## Why It's Good For The Game

Code organization good

* Lighting object oddities

* Update kindle.dm

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-06-20 14:06:48 -07:00
SkyratBot
068089fb52 [MIRROR] Standardize Welder Fuel Usage [MDB IGNORE] (#21943)
* Standardize Welder Fuel Usage (#76021)

Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel

After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.

resolves #55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑

* Standardize Welder Fuel Usage

---------

Co-authored-by: Couls <coul422@gmail.com>
2023-06-20 09:39:49 -07:00
SkyratBot
6dfe17306c [MIRROR] Pulls apart the vestiges of components still hanging onto signals [MDB IGNORE] (#21738)
* Pulls apart the vestiges of components still hanging onto signals

* update modular

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-06-18 13:18:23 +00:00
SkyratBot
8b3de29292 [MIRROR] Deadchat Announcement Variety Pack 2 and also some fixes to other popups [MDB IGNORE] (#21894)
* Deadchat Announcement Variety Pack 2 and also some fixes to other popups (#76053)

## About The Pull Request

This adds ghost orbit popups for the following:
- Macrobombs (or stacked microbombs) being triggered.
- HFR Meltdowns.
- Living players about to be gored by an emagged organ harvester.
- Nuclear devices being armed.
- Doomsday devices.
- Blob hosts bursting.

This also modifies the following ghost orbit popups:
- Toy hot potatoes will no longer cause a popup when armed.
- Normal spider eggs will not flash the byond window, only special egg
types.
## Why It's Good For The Game

Gives more gathering spots/information to deadchat. Let no entertaining
moment in this game go unobserved.

Spider eggs flashing your window for every single egg produced makes
alt-tabbing suck. I saw some guy on the forums complaining about it and
thought "huh yeah I guess he's got a point that pisses me off too" so
here we are.
## Changelog
🆑 Rhials
qol: Basic spider eggs no longer flash the byond window when ready to
hatch.
qol: Toy hot potatoes no longer give a ghost notification.
qol: Deadchat will be notified in the event of an imminent macrobomb
detonation, HFR meltdown, organ harvesting,
qol: Deadchat will be notified when a nuclear/doomsday device is
activated, as well as when a blob-infection bursts.
/🆑

* Deadchat Announcement Variety Pack 2 and also some fixes to other popups

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
2023-06-18 14:14:32 +01:00
SkyratBot
8ce7c53018 [MIRROR] Ton of turbine patches [MDB IGNORE] (#21897)
* Ton of turbine patches (#75968)

## About The Pull Request
1. Fixes #66994
Round start turbines have their power net initialized but not player
constructed one's. Now the rotor will connect itself to the power net
once you close it with a screwdriver & disconnect itself when you open
it. Make sure there is a cable beneath the rotor for it to work
2. Fixes #72235
Turbine's can be built vertically if the rotor is parallel or in the
opposite direction with respect to its compressor & rotor. If any part
is missing or not aligned, you will get fully detailed balloon alert's
telling you exactly how you have wasted your life playing this game and
why it's too late to do anything about it
3. Fixes #36284
The total rpm is now rounded to an integer value cause it actually makes
sense and the gas moles during computation's are quantized(i.e. rounded
to zero if they become very small) so in near vacuum environment's you
won't get free power.
Also turbine now respects the value of `pump_gas_to()` proc which means
if this proc fails to move gas the work returned is 0 so hopefully this
should fix other gas related issues in the turbine as well
4. Turbine's don't start processing round start or during init as it
waste's a lot of processing power. They only begin processing when
turned on by computer & stop processing when turned off by the computer
5. The rotor component will now tightly monitor the state of its
compressor & turbine outlet during it's processing lifetime. This wasn't
the case previously because after you link all part's if the compressor
or rotor was destroyed/moved/whatever the rotor would still continue to
function as normal if it was already running.
Now if anything happens to these component's everything is reset & you
have to link them again so you don't get weird behaviour.
This was the old behaviour notice 3 wrong things
- the turbine is still rotating even after the compressor is deleted,
it's animation is still there
- the computer is showing the turbine is still working, only after i
turn it on & off does it show the error message
- the error message is all wrong it shows parts have their panel open
even though they are missing

https://github.com/tgstation/tgstation/assets/110812394/0a64e5a6-80ca-442b-bbac-2eabc5060777

This is the new behvaiour
- as soon as the compressor is deleted the turbine output also stops
working because the whole turbine was shutdown when it detected a
missing part(the turbine animation stops working)
- the computer immediately shows you an error message without switching
it on/off first. it also shows you the correct message telling you about
missing parts

https://github.com/tgstation/tgstation/assets/110812394/bf05224b-8fe4-41ca-a2e4-ca26b11fd3c7

6. Merged a lot of procs into big ones to improve readability & also
because it was unnecessary and early return's and a ton of sanity
check's to make sure everything fails gracefully if anything get's
deleted

**Imporant mathematical changes**
1. The not so important change `do_calculations()` is renamed to
`transfer_gases()` which does exactly what it says
2. The important changes `transfer_gases()` will now return the work
done(which can be +ve or -ve) ONLY IF `pump_gas_to()` succeds. i.e. only
if gas was successfully moved from one mixture to the other only then is
the work computed. This was done because logically makes sense.
All work is computed based on how much gas was moved i.e. the return
value of `pump_gas_to()`. So rather than computing the work done based
on how much gas is "Stored"[like how much gas is in the turbine] we
calculate work done based on How much gas was "Moved" from turbine to
the outside turf. i.e. all work calculated is relative

## Changelog
🆑
fix: finishing & closing the turbine core rotor part will now connect
itself to the cable beneath it allowing it to share its produced power
with everyone.
fix: turbine's now give detailed balloon alerts if you have a missing
component, or something is not aligned correctly during turbine
construction
fix: turbine's will not produce power in vaccume
fix: turbine's won't function if any of it's components are damaged or
misaligned after linking or during processing
/🆑

* Ton of turbine patches

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-06-18 14:13:43 +01:00
SkyratBot
35beed93dd [MIRROR] A mention of 'nitrogen' was mislabeled as 'tritium'. [MDB IGNORE] (#21887)
* A mention of 'nitrogen' was mislabeled as 'tritium'. (#76082)

## About The Pull Request

Line 101 in the gas_reactions file had a gas mislabeled.

## Why It's Good For The Game

Helps new Atmos techs when they are looking up gas reactions in the Tank
Monitor/Gas Supply Control Computer

## Changelog
🆑

spellcheck: changed gas to correct type in description

/🆑

* A mention of 'nitrogen' was mislabeled as 'tritium'.

---------

Co-authored-by: EliteCreature <EliteCreature@gmail.com>
2023-06-18 14:04:29 +01:00
SkyratBot
a03688575d [MIRROR] Saves about 0.2 seconds of init re:air updates [MDB IGNORE] (#21908)
* Saves about 0.2 seconds of init re:air updates (#76108)

## About The Pull Request

We should be blocking the primary ssair activity updates if the
subsystem hasn't started yet

## Why It's Good For The Game

https://github.com/tgstation/dev-cycles-initiative/issues/25

Total waste of time, wins maybe 0.2 seconds of init

* Saves about 0.2 seconds of init re:air updates

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-06-18 13:43:51 +01:00
SkyratBot
bbf275a624 [MIRROR] Fixes pipenet gasses not being gc'd [MDB IGNORE] (#21845)
* Fixes pipenet gasses not being gc'd (#76041)

## About The Pull Request
Fixes a small bug that slipped by a couple days ago that made
trillionth-of-a-mole gasses stick around in pipes and canisters. This
restores to behavior to what it was no more than a week ago, and gas
analyzers will still show 0 moles for a decent while before a gas is
fully removed.
## Why It's Good For The Game
Fixes #76034
get that plasma out of my air tank
## Changelog
🆑
fix: VERY small amounts of a gas (<0.0001 mol) in pipenets will once
again be fully removed
/🆑

* Fixes pipenet gasses not being gc'd

---------

Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
2023-06-15 03:39:29 +01:00
SkyratBot
d02f6f6f95 [MIRROR] Slightly optimizes Gas Filter ui data [MDB IGNORE] (#21837)
* Slightly optimizes Gas Filter ui data (#76035)

**About The Pull Request**

There is no need to send gas name to the Gas Filter UI because
`getGasLabel()` already decodes the name from it's ID. So, let's save
some bandwidth.

## Changelog
🆑
refactor: don't send gas name to gas filter UI as the name is already
decoded there from it's ID
/🆑

* Slightly optimizes Gas Filter ui data

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-06-14 13:26:53 -07:00
SkyratBot
b7f430fbe0 [MIRROR] Emit a stacktrace on the creation of zero volume gas mixtures [MDB IGNORE] (#21754)
* Emit a stacktrace on the creation of zero volume gas mixtures (#75935)

Almost all of the logic used for gas mixtures does not work if they have
zero volume.

I don't want this to cause a breakdown in atmos so all I'm having it do
it throw a stack trace, but this should make it much easier in the
future to figure out where atmos problems are coming from.

I've also changed pipenet reconciliation to not use a zero volume gas
mixture, and instead only create the gas mixture after calculating what
the volume should be

* Emit a stacktrace on the creation of zero volume gas mixtures

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-06-11 00:40:13 +01:00
SkyratBot
4cbe0b6fd6 [MIRROR] Air Meters check for a null target [MDB IGNORE] (#21751)
* Air Meters check for a null target (#75936)

## About The Pull Request

Meters can have a null target if the pipe below them is destroyed or
removed; or if mappers fuck up.
## Why It's Good For The Game

Prevents runtimes
## Changelog

* Air Meters check for a null target

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-06-10 22:54:46 +01:00
SkyratBot
c4a58bb0c6 [MIRROR] Cleans up/renames as private some internal var definitions, removes some fucked uses of internal list vars [MDB IGNORE] (#21679)
* Cleans up/renames as private some internal var definitions, removes some fucked uses of internal list vars (#75769)

## About The Pull Request

[Improves the documentation of DCS lists, removes old list of callback
docs that no longer
apply](c3821d9f5f)

[Adds a second signal register to decal rotating, adds a trait to
objects under a tile. STOP DIRECTLY READING HIDDEN LISTS I SWEAR TO
GOD](6b3f97a76a)

[Removes direct reads of the timer list, they were redundant
mostly](14fcd9f8a6)

[Please stop directly reading/modifying the traits list to ensure your
dna rot follows the
brain](ec0e5237ec)

[Marks internal datum lists as well internal with
_](57c6577ff6)

[57c6577](57c6577ff6)

Does the same to _clear_signal_refs() in hopes of keeping people from
touching it

## Why It's Good For The Game

They pissed me off.

Users should not be touching these lists, especially in ways that make
assumptions about their structure and are thus prone to breaking if that
ever changes.
Most of these are close to zero cost changes, using a wrapper to solve
the problem, or just yeeting it

Two aren't, Decals with a direction have gained a second signal register
on init, and things that sit underfloor (cables/pipes) now get a trait
when inserted there.

This should have a minimal impact on memory/init time, bugging
@ Mothblocks about it just in case

* Cleans up/renames as private some internal var definitions, removes some fucked uses of internal list vars

* fix

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
2023-06-07 15:10:42 +00:00
SkyratBot
18c08aa2fb [MIRROR] [NO GBP]Air alarms will properly reset their warning messages. [MDB IGNORE] (#21670)
* [NO GBP]Air alarms will properly reset their warning messages. (#75805)

I didn't realize that an edge case could keep the alarms from reseting
their warning message.

The issue happened when a warning message was stored, like a low
temperature one, a second air alarm issue *without* a warning message
was triggered, like Plasma, and then the first issue was fixed.

Alarms kept repeating the first warning message as long as the second
issue was up.

This fixes that, alarms will reset their message individually, ignoring
other issues the alarm is triggering.

* [NO GBP]Air alarms will properly reset their warning messages.

---------

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
2023-06-07 15:52:05 +02:00
SkyratBot
9c45933a80 [MIRROR] Allows players to customize gas canister colors [MDB IGNORE] (#21662)
* Allows players to customize gas canister colors (#75842)

## About The Pull Request

https://github.com/tgstation/tgstation/assets/66052067/fa4450d0-f5b1-40e4-b283-57da6eba316c

Adds a button next to the relabel button in the UI that lets players
recolor canisters themselves. The relabel button overrides this, but
it's easy enough to re-color something if you really want it to stay
that way.
## Why It's Good For The Game
I realized earlier today that while we have the GAGS system for the
canisters, we never really fully utilized it, and I thought how it would
be helpful for players if they could more visually organize their
canisters.
I.e. Giving your "hot oxygen" canister a red ring, cold tritium a blue
ring, etc.
## Changelog
🆑 Wallem
qol: Adds a button that lets you recolor air canisters to enable easier
organization.
/🆑

* Allows players to customize gas canister colors

---------

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2023-06-07 15:48:39 +02:00
SkyratBot
29397bef8c [MIRROR] Scrubber Clog Revisit: It Uses Vents Now And Is Way Dirtier And Nastier [MDB IGNORE] (#21604)
* 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>
2023-06-04 17:29:30 -07:00
SkyratBot
02e3251f84 [MIRROR] Makes gasses use defines [MDB IGNORE] (#21492)
* Makes gasses use defines

* Mirror!

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2023-06-01 15:24:31 +12:00
SkyratBot
89b5e17722 [MIRROR] [NO GBP] Fixes alarms not shutting up. [MDB IGNORE] (#21522)
* [NO GBP] Fixes alarms not shutting up. (#75713)

## About The Pull Request
While trying to turn the base system into a separete proc I thought I
had commited this fix in, but did not...
Also removed a redundant check_danger() I left in while fixing merge
conflicts because I'm good at gitfu.

And thanks for Zxaber for letting me know about this issue as soon as
possible.
## Why It's Good For The Game
Air alarms talking forever do be bad...
## Changelog
🆑 Guillaume Prata
fix: Air Alarms will properly shut up when atmos is fixed.
/🆑

* [NO GBP] Fixes alarms not shutting up.

---------

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
2023-05-30 00:30:11 +00:00
SkyratBot
7cb9bb365b [MIRROR] Air alarms will now talk about their problems [MDB IGNORE] (#21497)
* Air alarms will now talk about their problems

* Update code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm

---------

Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-05-29 23:26:37 +00:00
SkyratBot
8b47f7f7fb [MIRROR] New air alarm sprite take two [MDB IGNORE] (#21488)
* New air alarm sprite take two (#75262)

![dreamseeker_3knwrXrSzO](https://user-images.githubusercontent.com/3625094/236828432-605f6c0a-10da-4e98-9c03-87931bc46704.gif)

![image](https://user-images.githubusercontent.com/3625094/236829631-c566d82b-90cc-400d-8565-0374282d5319.png)

## About The Pull Request

Reopen of #74932

Resprites the air alarm and adds a new sprite that will be needed for an
air alarm that is remotely connected to a sensor via #75187

Also fixed air alarm not checking air status on power change.

## Why It's Good For The Game

Newer, more compact sprite.

It will make it easier for map makers to stack remotely connected air
alarms on a tile to make an air monitoring wall.

## Changelog

🆑
image: New air alarm sprite
fix: Air alarm properly updates status when powered
/🆑

* New air alarm sprite take two

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
2023-05-27 20:48:55 -07:00
SkyratBot
d26bcb56f9 [MIRROR] Connect air alarm to air sensor [MDB IGNORE] (#21235)
* Connect air alarm to air sensor (#75187)

## About The Pull Request

To control vents and scrubbers in ordinance, burn and engine chambers,
mappers extend the area outside of the walls towards a tile where they
place the air alarm.

With this PR, they can now assign `chamber_id` to an air alarm and
connect to the chamber with an air sensor. There is a new map helper for
this.

Also, this connection can be done manually. You need to click on a
sensor with a multi-tool, then unlock certain air alarm, and click with
a multi-tool on it. This action will link sensor to an air alarm,
reporting gas mixture from the sensor tile and giving control over the
vents and scrubbers of the sensor's area.

### TLDR

Before:
<img width="718" alt="ordnance_before"
src="https://user-images.githubusercontent.com/3625094/236577769-5d79871f-2dce-43be-a20a-e6669bfbc1c6.PNG">

After:
<img width="638" alt="ordnance_after"
src="https://user-images.githubusercontent.com/3625094/236577786-3c7e9c9f-1501-4747-bbe1-292fc4947b0d.PNG">

This is how the area is setup on meta station right now vs if it was
setup with a link

![image](https://user-images.githubusercontent.com/3625094/236578327-531cfb6f-e0ac-4c03-927f-f5b05b9c74ab.png)

This is also true for the supermatter chamber - you can make the air
alarm display the gas mix in the actual chamber and avoid using mapping
area hack there too.
<img width="954" alt="supermatter_after"
src="https://user-images.githubusercontent.com/3625094/236578528-4650b426-6bf0-4634-a5b0-cad7a50d5b01.PNG">

## Why It's Good For The Game

The area hack is no longer needed and you can place air alarm to control
certain remote area wherever you want when you design a map. Even 3 air
alarms next to each other controlling 3 different burn chambers.

The air alarm will also report the gas mix on the actual tile of a
sensor, instead of the gas mix before the air alarm, which is usually a
normal habitable environment.

Also, now you can build such chambers manually because there are no
precise area editing tools available in-game to repeat the area hack.

## Changelog

🆑
add: Air alarms can be connected to an area remotely via air sensor with
multi-tool and corresponding access
qol: Mapping: Added air alarm helper to link air alarm with certain
chamber_id on map load
/🆑

* Connect air alarm to air sensor

---------

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-05-20 21:18:27 +00:00
Tom
b9146b20ee Makes tanks drop if ejected when not adjacent (#70957) (#21213)
Makes atmos machines drop their tanks on their tile when eject is
pressed if the user isn't adjacent to it.

Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
2023-05-19 00:21:34 +01:00
SkyratBot
e89beb2389 [MIRROR] Adds general helper proc for processing atmos based on it's turf air contents [MDB IGNORE] (#21237)
* Adds general helper proc for processing atmos based on it's turf air contents (#75144)

## About The Pull Request
Fixes this
![Screenshot
(186)](https://user-images.githubusercontent.com/110812394/235907166-7c62503a-994b-4b5d-a3ae-ca61326fc5b4.png)

Caused by this

c8982bfb1c/code/modules/atmospherics/machinery/air_alarm/_air_alarm.dm (L305)

Scrubbers will now call ` atmos_conditions_changed()` which starts
processing based on the turf air contents which indirectly calls
`should_atmos_process()` with the correct values. The same helper has
been applied to the atmos sensitive component as well and other places

## Changelog
🆑
fix: runtime when turning scrubber's on via  the air alarm UI
refactor: `atmos_conditions_changed()` now starts atmos processing based
on it's turf air contents
/🆑

* Adds general helper proc for processing atmos based on it's turf air contents

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-05-16 20:55:27 +01:00
SkyratBot
7703ba8636 [MIRROR] Fixes runtimes in gas_mixture/proc/equalize [MDB IGNORE] (#21182)
* Fixes runtimes in gas_mixture/proc/equalize (#75420)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/58055496/f124ccc1-9e8d-4701-b9cf-9635e1a1f1b2)

Basically, a gasmix's temp starts out at 0, and untouched the spacemix
is not updated until something shares with it.
Even if this doesn't for sure fix it, this is v dumb and worth doing
regardless

## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/58055496/be8999ab-3da9-4e1d-93e3-88732faf2a8c)
Should close #75260, it's 4am I'm not gonna test this rn

---------

Co-authored-by: ZephyrTFA <matthew@ tfaluc.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>

* Fixes runtimes in gas_mixture/proc/equalize

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: ZephyrTFA <matthew@ tfaluc.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
2023-05-14 18:29:43 -07:00
SkyratBot
5e9d2379bf [MIRROR] Stock Part Resprite [MDB IGNORE] (#21014)
* Stock Part Resprite

* wew

* alright

---------

Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-09 04:10:18 +01:00
SkyratBot
c4d4e1da63 [MIRROR] Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. [MDB IGNORE] (#20916)
* Minerals have been refactored so costs and minerals in items are now in terms of mineral defines.

* AI GEN RUN ONE

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:48:10 +01:00
SkyratBot
cd185300a4 [MIRROR] Air alarm helpers [MDB IGNORE] (#20865)
Air alarm helpers

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-03 22:30:57 +01:00
SkyratBot
52300246b4 [MIRROR] Fire/Air alarms properly dismantle when they are destroyed & fixes balloon alert runtimes when cutting terminals [MDB IGNORE] (#20870)
* Fire/Air alarms properly dismantle when they are destroyed & fixes balloon alert runtimes when cutting terminals (#74918)

Firealarms & Airalarms `deconstruct()` procs are wrong, they spew out
electronics & cable regardless of what build stage their on

Fire alarms providing free electronics & cable without even installing
them

https://user-images.githubusercontent.com/110812394/233784785-650fbd64-3c6c-44c8-b377-c3a8244d28ac.mp4

Air alarms providing free electronics & cable without even installing
them

https://user-images.githubusercontent.com/110812394/233784799-cdd38967-8a59-454d-8da4-1360d03ff12c.mp4

Bug exploits now come to an end

Also fixes balloon alerts run timing when cutting terminals connected to
apc's/smes etc. because the atom gets deleted, by the time the balloon
alert gets executed it adds a timer on the deleted object causing
runtimes.

## Changelog
🆑
fix: air alarms correctly spew out cable & electronics depending on
their build stage when their integrity reaches 0 i.e. destroyed
fix: fire alarms correctly spew out cable & electronics depending on
their build stage when their integrity reaches 0 i.e. destroyed
fix: balloon alerts runtiming when cutting terminals
/🆑

---------

Co-authored-by: san7890 <the@ san7890.com>

* Fire/Air alarms properly dismantle when they are destroyed & fixes balloon alert runtimes when cutting terminals

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-05-01 13:29:07 -07:00
SkyratBot
107f94ee6f [MIRROR] Fixes redundant code & runtime in RPD [MDB IGNORE] (#20761)
* Fixes redundant code & runtime in RPD (#74949)

## About The Pull Request
1. `pre_attack()` was defined twice, removed one
2. `attackby()` does the exact same thing as `pre_attack()` for
installing upgrades so removed that
3. Fixes runtime
![Screenshot
(180)](https://user-images.githubusercontent.com/110812394/233941512-c2e23e40-cd53-4ed4-87be-59bcaea373d3.png)
When you attempt to unwrench a pipe via the RPD but you interrupt the
`do_after()` proc by moving. it doesn't need to crash but simply return
if unwrenching was unsuccessful see
`/obj/machinery/atmospherics/wrench_act()`

## Changelog
🆑
refactor: removed duplicate `pre_attack()` & redundant `attackby()`
procs which did the same thing
fix: unnecessary crash when unwrenching pipes/devices with the RPD
/🆑

* Fixes redundant code & runtime in RPD

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-04-25 18:40:41 +01:00
SkyratBot
2d265f2bbb [MIRROR] Makes emsisive blockers like, work [MDB IGNORE] (#20698)
* Makes emsisive blockers like, work (#74887)

## About The Pull Request

We assumed 0 meant no emissive blocker, but moth changed that a while
back, so post /atom/movable/Initialize generic emissive blockers just..
didn't work

Let's uh, fix that

Oh also makes pipes update their icon BEFORE they call update_icon
parent, so their emissive blockers look right

## Why It's Good For The Game

![image](https://user-images.githubusercontent.com/58055496/233563370-ddd95534-3a49-41f7-8aa8-5b1a001f4335.png)

Closes #74905

## Changelog
🆑
fix: Things that block glow will now like, do that again
/🆑

* Makes emsisive blockers like, work

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-04-22 15:31:34 -04:00
SkyratBot
62399c7868 [MIRROR] Fixes two atmos UI's [NO GBP] [MDB IGNORE] (#20608)
* Fixes two atmos UI's [NO GBP] (#74763)

## About The Pull Request
I really don't want to talk about it... fixes #74748

Bunch of old atmos UIs doing weird things that were unclear at the time
of refactoring
Crystallizer was looking up labels and colors by gas name vs id
![Screenshot 2023-04-15
164439](https://user-images.githubusercontent.com/42397676/232259019-538e847e-3981-4e1d-a076-2171488d5bae.png)
HFR, I'm still not happy with this, but this is the original
implementation
```
icon={data[input_switch] ? 'power-off' : 'times'}
content={data[input_switch] ? 'On' : 'Off'}
selected={data[input_switch]}
```

## Why It's Good For The Game
Bug fixes
## Changelog
🆑
fix: HFR should now allow you to select input/moderator rates
fix: Crystallizer ui should now properly show input gases
/🆑

Co-authored-by: Jeremiah <jlsnow301@ pm.me>

* Fixes two atmos UI's [NO GBP]

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Jeremiah <jlsnow301@ pm.me>
2023-04-16 23:58:51 +01:00
SkyratBot
18cb27e657 [MIRROR] Fix null client error for balloon alert when toggling Electrolyser on/off via the UI [MDB IGNORE] (#20585)
* Fix null client error for balloon alert when toggling Electrolyser on/off via the UI (#74696)

## About The Pull Request
Read Title

Start your VS code in debug mode, insert a cell inside the electrolyser
and toggle it on/off via the UI(not alt click). you will get this error

## Changelog
🆑
fix: null client error for balloon alert when toggling the electrolyser
on/off via the UI
/🆑

* Fix null client error for balloon alert when toggling Electrolyser on/off via the UI

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
2023-04-16 23:57:47 +01:00
SkyratBot
327ebcb31c [MIRROR] Reworks burning objects to be a component [MDB IGNORE] (#20543)
* Reworks burning objects to be a component (#74688)

## About The Pull Request

Title.

## Why It's Good For The Game

Simply put, allows for atoms which are not /obj but use atom_integrity
to burn up too, which is nice and good.
But also, it allows for neat behavior like burning particle effects
(only structures use that right now to spawn smoke)

![image](https://user-images.githubusercontent.com/82850673/231595051-2a8d0574-33cc-4cd9-9d61-65566decf4ef.png)

## Changelog

🆑
add: Burning structures spawn smoke particles. Sick.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Reworks burning objects to be a component

* modular

---------

Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-04-14 23:44:14 +01:00
SkyratBot
f44c07fa16 [MIRROR] Fix: Can instantly unwrench empty atmos devices [MDB IGNORE] (#20512)
* Fix: Can instantly unwrench empty atmos devices (#74659)

## About The Pull Request

GBP NO UPDATE SINCE ITS MY OWN BUG

I assumed you could unwrench devices, turns out they have multiple gas
mixtures
Tested all atmos devices in game, you can unwrench them instantly if
they have 0 moles in all nodes

## Why It's Good For The Game

Was supposed to be like this in
https://github.com/tgstation/tgstation/pull/74617

## Changelog
🆑
fix: You can instantly unwrench empty atmos devices now
/🆑

* Fix: Can instantly unwrench empty atmos devices

---------

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
2023-04-12 21:58:52 +01:00
SkyratBot
9a594755f3 [MIRROR] Renames delta time to be a more obvious name [MDB IGNORE] (#20507)
* Renames delta time to be a more obvious name

* updates to our code

---------

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-12 20:45:43 +01:00
SkyratBot
0416db559d [MIRROR] Instant Atmos Unwrenching [MDB IGNORE] (#20482)
* Instant Atmos Unwrenching (#74617)

## About The Pull Request
Unwrenching empty atmos pipes/devices is now instant
## Why It's Good For The Game
Worst part about playing atmos is how long it takes to set up builds,
especially if you want to unwrench all the ports and pipes that come
after the main yellow Pure loop. Also annoying if you misclick and have
to spend time unwrenching an empty pipe
Just QOL for atmos players
## Changelog
🆑
qol: Unwrenching empty atmos pipes/devices is now INSTANT
/🆑

* Instant Atmos Unwrenching

---------

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
2023-04-11 01:45:29 -07:00
SkyratBot
b794c5bb53 [MIRROR] Yet another Atmos Qol & Fixes [MDB IGNORE] (#20319)
* Yet another Atmos Qol & Fixes (#74432)

## About The Pull Request
Fixes #74431

1. Adds examines for alt click & ctrl click
2. Alt click cycles between min, median & max temperature ranges now
3. removed useless init code in pipes.dm

## Changelog
🆑
fix: thermo machines can be ctrl dragged again
qol: alt click cycles between min, median & max temperature ranges
refactor: removed useless init code
/🆑

---------

Co-authored-by: Tom <8881105+tf-4@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Yet another Atmos Qol & Fixes

* CI

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-04 18:28:44 +01:00
SkyratBot
7a64573c8b [MIRROR] Atmos QOL + Small Sprite Fix [MDB IGNORE] (#20243)
* Atmos QOL + Small Sprite Fix (#74251)

## About The Pull Request
Added screentips and balloon alerts to many atmos machines/pipes
Volume pump overclocking overlay is much slower and less seizure
inducing
RPD screentips for right clicking pipes to copy settings
Removed (RPD) from the RPD's name since having an abbreviation in the
name is ugly
Crystallizer and electrolyzer use ctrl+click and alt-click to turn on
On examine electrolyzer tells you about anchoring to drain from APC
instead of cell
## Why It's Good For The Game
QOL for atmos stuff, user friendliness and better experience
## Changelog
🆑
fix: Volume pump overclocking animation is much slower, no more
headaches
qol: Added screentips to the RPD; screentips and balloon alerts to many
atmos machines and devices
🆑

* Atmos QOL + Small Sprite Fix

---------

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
2023-04-01 21:12:18 +01:00
Gandalf
e4b4d4d3c0 MISSED MIRROR [Lints Against Unmanaged Local Defines] (#20204)
* https://github.com/tgstation/tgstation/pull/74333

https: //github.com/tgstation/tgstation/pull/74333
Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* var stuff

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* vars

* Update sol_fed.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-04-01 01:15:22 +01:00