Commit Graph

104973 Commits

Author SHA1 Message Date
SkyratBot
41396aab45 [MIRROR] Adds IS_TRAITOR macro [MDB IGNORE] (#20153)
* Adds IS_TRAITOR macro (#74293)

## About The Pull Request
i was making another PR and found that we have cultist, heretic, and
nuke op IS macros but not one for traitors
this adds one and then replaces it where applicable, mostly in checks
where a traitor device does something different if you are not a traitor

## Why It's Good For The Game

better for people making traitor only devices to have this macro, as it
is more clear and also cleaner in general i think

## Changelog

🆑
code: adds IS_TRAITOR macro
/🆑

* Adds IS_TRAITOR macro

---------

Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
2023-03-29 22:30:56 +01:00
SkyratBot
601a7f53f0 [MIRROR] Experisci now works if at least one RD server works on your z level [MDB IGNORE] (#20148)
* Experisci now works if at least one RD server works on your z level (#74123)

## About The Pull Request

Experiment handlers now work if at least one RD server works on your
z-level, rather than only checking the first. It was originally done in
a lazy way, and I'm going back on that now to make it more responsive
for players.

## Why It's Good For The Game

This will allow things like off-station and Lavaland to be added to
experisci stuff, which I think would be nice as we can make
mining-related experiments for mining tech just as how there's medical
experiments for medical tech.

It also lets off-station ghost roles do experiments if they don't want
to be a jackass and just waste points, which I think is a positive until
off-station techwebs are added.

## Changelog

🆑
fix: Experimentors can connect to techwebs that have at least one RD
server on the level.
/🆑

* Experisci now works if at least one RD server works on your z level

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-03-29 22:30:34 +01:00
SkyratBot
814694e9a5 Automatic changelog for PR #20127 [ci skip] 2023-03-29 23:30:21 +02:00
SkyratBot
87d19923db [MIRROR] March into Mapness-Pod crash (Don't pda and pod) [MDB IGNORE] (#20144)
March into Mapness-Pod crash (Don't pda and pod)

Co-authored-by: Rex9001 <120136161+Rex9001@users.noreply.github.com>
2023-03-29 22:30:17 +01:00
SkyratBot
49897d134a Automatic changelog for PR #20126 [ci skip] 2023-03-29 23:30:06 +02:00
SkyratBot
a5edc9fea2 [MIRROR] Curators now have D-notice newscaster access, Officers can issue warrants [MDB IGNORE] (#20137)
* Curators now have D-notice newscaster access, Officers can issue warrants (#74269)

## About The Pull Request

Newscasters now have Library access for handing out D-Notices, and
Security access for Wanted issues, instead of both being tied to Armory
access.

Also allows Ntos Newscaster to work if ran by someone without Library
access, so Curator can download the app for others if they want.

## Why It's Good For The Game

- Newscasters have turned into one of the Curator's largest gameplay
aspects and it would be nice if they were able to moderate it as well,
instead of being the Warden who has absolutely no interest in
Newscasters.
- Allowing Officers to send out Wanted issues is more just in hopes it
will result in it being used more, though it seems like a very similar
feature to the wanted posters, maybe we can merge these two together one
day.
- The Ntos Newscaster access change is more of an oversight, I like it
when people can download apps for eachother as it gives a reason to seek
others and lend them your PDA for an application you want, blocking the
person from using the app after getting a Curator to download it for
them kinda sucks in-game.

## Changelog

🆑
balance: Curators/HoP can now manage Newscaster D-Notices (previously
was Warden/HoS).
balance: Security Officers/Detectives can now issue Wanted notices on
Newscasters.
balance: Ntos Newscaster now requires Library access only to download,
not to run.
/🆑

* Curators now have D-notice newscaster access, Officers can issue warrants

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-03-29 22:29:59 +01:00
SkyratBot
e92a7dbf12 Automatic changelog for PR #20125 [ci skip] 2023-03-29 23:29:45 +02:00
SkyratBot
10f65497e1 [MIRROR] Splits Pirates into Two Subgroups, One For Light Midrounds And Another For Heavy [MDB IGNORE] (#20135)
* Splits Pirates into Two Subgroups, One For Light Midrounds And Another For Heavy (#73881)

## About The Pull Request

This PR splits the Pirate midround antagonists into two separate groups,
normal and dangerous. Normal pirates are the human, silverscale, and
psycker groups, and they are all light antagonists now, meaning they can
show up early in the round, similar to when a revenant or nightmare can
spawn. Dangerous Space Pirates only consist of the Skeleton Crew, and
they will remain as heavy weight antagonists with the same spawning
restrictions as it is currently. I also fudged with the crew required
value some for both, not that it makes a huge difference.

Since pirates were split into two separate groups, both versions have a
reduced dynamic weight of 3, from 4.

Also added a sanity check to the pirate's dynamic ruleset to make sure
there are remaining pirates to be spawned for the ruleset to be allowed.
Also added a check to the pirate event itself to prevent runtimes when
no pirate team is available to be chosen, unless an admin specifies what
pirate team they want to use.

## Why It's Good For The Game

As it is right now, there is a massive difference between the skeleton
pirates and the rest of the pirate types. Skeleton Pirates have cannons,
innate space immunity and other small benefits which make them much more
threatening than the other pirate crews. In our current system,
something like Psycker pirates can spawn in lieu of something like blob
or xenomorphs when they aren't anywhere near the same level of
threatening, so moving the less dangerous pirates off to be light weight
midrounds seems like a good move, especially since we need more
lightweight midrounds to keep the variety up anyway.

Keep in mind these designations are not permanent and may change at the
request of maintainers or as the pirate teams get nerfed/buffed.

## Changelog

🆑
balance: The pirate gangs have been split into two subcategories, one
which can spawn earlier in a shift and one that spawns later as they
currently do. While skeleton pirates will still be only seen later into
the shift, expect to see the other pirate gangs earlier on.
fix: Prevented the pirate event from runtiming when no possible pirate
gangs were available.
fix: Pirates can no longer be selected by Dynamic if there are no more
pirates gangs that can be used.
/🆑

* Splits Pirates into Two Subgroups, One For Light Midrounds And Another For Heavy

---------

Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
2023-03-29 22:29:43 +01:00
SkyratBot
70d9d943d1 [MIRROR] Remakes The Arena (you know, the place you go to enter the Arena shuttle) [MDB IGNORE] (#20133)
* Remakes The Arena (you know, the place you go to enter the Arena shuttle) (#74204)

## About The Pull Request
As the PR name says, This PR remakes the_arena (these names get really
confusing)
it overhauls the map completely, splitting it into three "zones". the
old necropolis ruin, the large combat area, and the exit, all separated
by the main lava river.
the main goal of this PR is to modernize it, and make it more fun to
fight in, by making it more varied.

Old Version
![2023 03 23-22 48
12](https://user-images.githubusercontent.com/79304582/227388371-deff1946-44c2-4875-bcf5-7029815a32c9.png)

New Version
![2023 03 24-00 39
54](https://user-images.githubusercontent.com/79304582/227388250-f53b7440-6548-465b-9f23-c91571b2892a.png)
### Mapping March
Ckey to receive rewards: spockye

## Why It's Good For The Game
the_arena is pretty old at this point, and could definitely use a
remake, i'd say. This PR does exactly that!
## Changelog
🆑
fix:  Redesigns "the_arena" ( the bubblegum shuttle deathmatch area )
/🆑

* Remakes The Arena (you know, the place you go to enter the Arena shuttle)

---------

Co-authored-by: spockye <79304582+spockye@users.noreply.github.com>
2023-03-29 22:29:19 +01:00
SkyratBot
2caabbf821 Automatic changelog for PR #20124 [ci skip] 2023-03-29 23:29:07 +02:00
SkyratBot
90cb53321b Automatic changelog for PR #20123 [ci skip] 2023-03-29 23:28:59 +02:00
SkyratBot
edfaf6836a [MIRROR] Removes Starlight Config [MDB IGNORE] (#20134)
* Removes Starlight Config (#74289)

## About The Pull Request

It was config'd off to save init time, but having it function in testing
and mapping is more valuble then the time spend on it.

On that topic, we spend roughly 1.7 seconds of init on this.
~1.3 is spent handling the light sources and their light object
modifications (this is potentailly inflated since other sources could
cause the same objects to need updates)
~0.3 is spent searching for space turfs around lighting_objects during
init.
This will impact change_turf slightly too, costing about ~0.07 in local
testing.

It does save time for live however, since we avoid these config checks.

## Why It's Good For The Game

I believe this time is worth spending.
I've had people try to "fix" artifacts of starlight not being enabled,
things that aren't bugs.
The test environment should as much as we can make it reflect the visual
reality of the game. This helps ensure that

## Changelog
🆑
server: The starlight config has been removed, as it is enabled by
default
/🆑

* Removes Starlight Config

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-03-29 22:28:51 +01:00
SkyratBot
d6c8548b90 Automatic changelog for PR #20122 [ci skip] 2023-03-29 23:28:33 +02:00
SkyratBot
973af110eb [MIRROR] Adds preference for "Tagger" paint color. [MDB IGNORE] (#20132)
* Adds preference for "Tagger" paint color. (#74281)

## About The Pull Request

Per the title, this PR allows you to pick your starting paint color from
the "Tagger" quirk on the character preferences menu.

![image](https://user-images.githubusercontent.com/105025397/227810007-4706c743-31c2-47d8-80ac-e11687d36c00.png)

This replaces the starting color being random; it does not prevent you
from changing the color later as normal.
## Why It's Good For The Game

It's a minor quality of life change. This will mostly be helpful to
players who have some "signature" color they like to use, to prevent
having to manually select it (and possibly input a color code) every
round. It will be of less relevance to those who tend to select new
colors every round anyway.

Possible downsides are mainly adding another pref to the menu, although
this shouldn't be too much of an annoyance since it only appears if you
already have the relevant quirk. It does also remove the _ability_ to
have a randomly-chosen paint color, though I'm not sure if that matters.
## Changelog
🆑
qol: you can choose your default paint color for the "Tagger" quirk from
prefs.
/🆑

* Adds preference for "Tagger" paint color.

---------

Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
2023-03-29 22:28:25 +01:00
SkyratBot
dab3d1abda Automatic changelog for PR #20120 [ci skip] 2023-03-29 23:28:09 +02:00
SkyratBot
77a1d0c652 Automatic changelog for PR #20121 [ci skip] 2023-03-29 23:28:07 +02:00
SkyratBot
23a46cdadb Automatic changelog for PR #20119 [ci skip] 2023-03-29 23:27:28 +02:00
SkyratBot
186736c1e4 [MIRROR] New emergency shuttle, The Tranquility Relocation Shuttle! [MDB IGNORE] (#20130)
* New emergency shuttle, The Tranquility Relocation Shuttle! (#74199)

* New emergency shuttle, The Tranquility Relocation Shuttle!

---------

Co-authored-by: spockye <79304582+spockye@users.noreply.github.com>
2023-03-29 22:27:23 +01:00
SkyratBot
ee5a40cb2b [MIRROR] Minor Gravity Fixes [MDB IGNORE] (#20127)
* Minor Gravity Fixes (#74285)

## About The Pull Request

Fixes forced gravity not updating a mob (trait was added too early,
before hook signals are registered)
Fixes spawning a mob in space not causing floats (default grav was 0, so
== null was wrong)
Runs shake_everyone() (Our gravity gen reaction hook) AFTER gravity
changes, ensuring mobs hook into it

## Why It's Good For The Game

Closes #74271
Closes #74272 (Caused by being in nograv but not floating)
Closes #74274
## Changelog
🆑
fix: Fixes a bunch of minor gravity bugs, report em if you see more
yeah?
/🆑

* Minor Gravity Fixes

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-03-29 22:27:00 +01:00
SkyratBot
537e00475c [MIRROR] Cult Roundend Report No Longer Lists Post-Summon Cultists [MDB IGNORE] (#20126)
* Cult Roundend Report No Longer Lists Post-Summon Cultists (#74255)

## About The Pull Request
Harvesters and any other post-summon cultists aren't shown in the
roundend report
## Why It's Good For The Game
Harvesters are a roundend thing, nobody cares who the harvesters were
since literally everyone becomes one even ghosts who observed since
roundstart
It just clogs up the roundend report
The cultists who contributed to summoning are the ones people are
interested in seeing
## Changelog
🆑
qol: Cult Roundend Report no longer lists post-summon cultists. No more
30 random Harvesters clogging up the roundend report
/🆑

---------

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

* Cult Roundend Report No Longer Lists Post-Summon Cultists

---------

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-03-29 22:26:50 +01:00
SkyratBot
334f92d163 [MIRROR] Rebalances a vast oversight with one of the game's weapons [MDB IGNORE] (#20125)
* Rebalances a vast oversight with one of the game's weapons (#74283)

## About The Pull Request
Makes sure the game is fairly balanced again.
## Why It's Good For The Game
Honestly I'm surprised this weapon went unchanged for so long with no
downsides.
## Changelog
🆑 Wallem
balance: Fixes a glaring oversight with the entrenching tool's
balancing.
/🆑

* Rebalances a vast oversight with one of the game's weapons

---------

Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
2023-03-29 22:26:28 +01:00
SkyratBot
813f7b1b69 Automatic changelog for PR #20117 [ci skip] 2023-03-29 23:26:14 +02:00
SkyratBot
8b140ddd3c [MIRROR] Kidnapping Alive Bonus TC price Increase: The Fair Kidnapping Wage Act of March 23th 2573 [MDB IGNORE] (#20124)
* Kidnapping Alive Bonus TC price Increase: The Fair Kidnapping Wage Act of March 23th 2573 (#74258)

## About The Pull Request

Changes the Prices of TC for kidnapping objectives to more reasonable
prices that fit the challenge and switches some jobs into more fitting
positions for their cost of kidnapping
Common: Now gains +2 TC for alive targets
Uncommon: Now gains +3 TC for alive targets
Rare: Now gains +4 TC for alive targets
Captain: Now gains +5 TC for alive targets

Added a bonus for an assistant for being alive from 0 to 1 kidnapping
someone alive is always harder and so are assistants

![glPTde3pWx](https://user-images.githubusercontent.com/84478872/227746816-411a54f5-9207-4bce-b2d2-b4b069baedcc.png)
Ckey to receive rewards: Hoolny

## Why It's Good For The Game

The current price of kidnapping is absolutely insane this feeling of
absolute unfairness of price has been exclaimed by various players that
understand the difficulty of kidnapping

Kidnapping is a much more difficult task than murdering someone for
various different reasons like having to move to a specific location an
announcement of where the location you send them is the fact that to get
the actual best price for it you need to keep them alive and such also
the main fact that you need to disguise or your identity will be leaked
its a monumental task which before hand contractor traitor had a better
price system for it so I'm not sure why the price was so low.

Another issue is NOBODY does this there aren't enough incentives and its
way to hard to do it for such a small reward this will make it so
kidnapping becomes a thing that happens more often it's a pretty cool
fun interaction and mission to have

## Changelog
🆑
balance: Increased Bonus Reward for kidnapping alive targets
balance: Changed Virologist and Scientist into Common objectives for
kidnapping
balance: Changed Paramedic into Uncommon objectives for kidnapping
/🆑

* Kidnapping Alive Bonus TC price Increase: The Fair Kidnapping Wage Act of March 23th 2573

---------

Co-authored-by: Hoolny <84478872+SethLafuente@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-03-29 22:26:07 +01:00
SkyratBot
ba96aedf6d [MIRROR] Adds The Sturdy Shako (HoS Hat) [MDB IGNORE] (#20123)
* Adds The Sturdy Shako (HoS Hat) (#74277)

## About The Pull Request

Adds a new craftable HoS shako, made from the standard peaked cap and
some plasteel and gold.

![shako](https://user-images.githubusercontent.com/5479091/227799392-ad2ea145-5c58-45d7-8763-a76e9323ec09.png)

Moves the HoS cap into a subtype `/obj/item/clothing/head/hats/hos/cap`
to avoid catching the beret in the crafting recipe, the base type
`/obj/item/clothing/head/hats/hos` is now a generic subtype which should
never exist.

(Yes there's a TF2 reference included with the hat)

## Why It's Good For The Game

Adds an additional level of style for an HoS willing to put a little
effort into gathering the required materials. As it is crafted as a
one-to-one trade with another headgear there is no additional spare
headgear introduced.

## Changelog
🆑
add: The Nanotrasen Costuming Department has released specifications for
how to convert the Head of Security's cap into a shako.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>

* Adds The Sturdy Shako (HoS Hat)

---------

Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2023-03-29 22:25:53 +01:00
SkyratBot
fcd1b8bea0 [MIRROR] Remove janitor key UnregisterSignal [NO GBP] [MDB IGNORE] (#20122)
* Remove janitor key UnregisterSignal [NO GBP] (#74280)

## About The Pull Request

Removes UnregisterSignal when the janitor access key ring is destroyed.
Signal will clean itself up. Mentions adding janitor keys to the
Custodial Locator, which I forgot on the last PR
https://github.com/tgstation/tgstation/pull/74181

## Changelog
🆑 LT3
qol: Janitor access keys now show up on the Custodial Locator tablet app
/🆑

* Remove janitor key UnregisterSignal [NO GBP]

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-03-29 22:25:32 +01:00
SkyratBot
897d855452 Automatic changelog for PR #20114 [ci skip] 2023-03-29 23:25:21 +02:00
SkyratBot
dde8fa19e6 [MIRROR] Traveller's rest and prey pod fixes [MDB IGNORE] (#20121)
* Traveller's rest and prey pod fixes (#74279)

## About The Pull Request

- Traveller's rest had two airlock cyclelinks that did not work, as one
of them was on a windoor, so I have removed them. Not playerfacing.
- The mob spawner spawned without clothes and runtiming, as instead of
an outfit, it had the roboticist's jumpsuit added. I have made a new
outfit and used that in a new spawner. Might be too specific of a
spawner though.
- I have also added a dedicated roboticist spawner, which uses a full
outfit. I originally wanted to use this one, but I realized, making this
spawn with robotics ID and gear is a pretty big balance change, so I
elected not to use that, but I have added it anyways, as it should be
useful in the future (and I have already made the sprite).

### Mapping March

Ckey to receive rewards: N/A

## Why It's Good For The Game

Less warnings during initialization.

## Changelog

🆑
fix: the roboticist in the prey pod now has clothes as intended
/🆑

* Traveller's rest and prey pod fixes

---------

Co-authored-by: Profakos <profakos@gmail.com>
2023-03-29 22:25:10 +01:00
SkyratBot
4d583e39ec [MIRROR] Mafia games can now be voted on to start early, forced to start early by admins [MDB IGNORE] (#20120)
* Mafia games can now be voted on to start early, forced to start early by admins (#74256)

## About The Pull Request

**DISCLAIMER:** Mafia, being a 12-player game, is very very difficult to
debug. I've tested everything here to the extent that I can as one
person, but this might need some really careful inspection.

This PR adds a new option to the mafia minigame menu, which lets
signed-up players vote to start the game early. If there are more than
three players signed up, and at least half of them are voting to start,
the round will start. Admins also have the option to force a mafia round
to start in the admin options panel.

When a round is forcibly started, a random non-standard role setup is
created. Unlike the normal setup parameters, which assume you have
twelve players and attempts to fill out certain role types as a result,
this one uses pools based on role alignment. If you start with eight
players, you just might end up with four wardens, two thoughtfeeders,
and double clowns.

Every 3rd player is chosen as a random mafia member. The 5th and 6th
roles are neutral disruptive and a random neutral role respectively.
Everyone else is a random townie.

I believe this formula is sufficient to create a playable experience
with 5+ players. It can't start at any less than three, as the game
would auto-resolve instantly. The setup won't be pretty, but it's better
than no mafia game at all.
## Why It's Good For The Game

Now you can play mafia without the strict 12-player requirement! Gives
some opportunity for players to get acquainted with roles, the gameplay,
and the mafia panel in a lower-seriousness environment than a standard
12-man game.

If the ratio of early start voters required to start needs adjusting,
that can be done.
## Changelog
🆑 Rhials
add: You can now vote to start a Mafia game early. If over half of the
current signups vote (And you have three or more players) you will
immediately start a game with a slightly adjusted set of roles.
admin: You can now force a mafia game to start in the admin options
panel.
/🆑

* Mafia games can now be voted on to start early, forced to start early by admins

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-03-29 22:24:53 +01:00
SkyratBot
e787d301ac [MIRROR] Tram signs malfunction during tram malfunction [MDB IGNORE] (#20119)
* Tram signs malfunction during tram malfunction (#74210)

## About The Pull Request

Tram signs will now display incorrect information when malfunctioning.

## Why It's Good For The Game

For improved Frogger gameplay, no more being crafty and reading the
indicator board to know if the tram is coming.

## Changelog

🆑 LT3
add: Tram signs will now malfunction when the tram is malfunctioning
/🆑

---------

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

* Tram signs malfunction during tram malfunction

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
2023-03-29 22:22:13 +01:00
SkyratBot
60d2d2ee1a [MIRROR] Optimizes some gas_mixture procs, Optimizes pipeline processing significantly by 33% [MDB IGNORE] (#20118)
* Optimizes some gas_mixture procs, Optimizes pipeline processing significantly by 33% (#74233)

## About The Pull Request
It is faster to operate on a gas list, especially if cached, then it is
to operate on a datum.
Doing this cause I'm seeing cost in merge() post #74230

Hits on a few other important places too. self_breakdown and such. Worth
it IMO

Could in theory go further by caching the global list. I'm tempted I
admit but it needs profiling first and it's late

EDIT: I have not slept, and have gone tooo far

[Micros /gas_mixture/copy and copy_from, adds a new proc to handle
copying with a ratio,
copy_from_ratio](91da0003da)

[91da000](91da0003da)

The ADD_GAS sidestep saves us 0.1 seconds of init (used to at least.
Ensuring we don't break archive is gonna have a cost. I don't want to
profile this so I'll estimate maybe 0.05 seconds). The faster version of
copy_from is just well, better, and helps to avoid stupid

[Optimizes pipeline
processing](bf5a2d2d60)

[bf5a2d2](bf5a2d2d60)

I haven't slept in 36 hours. Have some atmos optimizations

Pipelines now keep track of components that require custom
reconciliation as a seperate list.
This avoids the overhead of filtering all connected atmos machinery.

Rather then relying on |= to avoid duplicate gas_mixtures, we instead
use a cycle var stored on the mix itself, which is compared with a
static unique id from reconcile_air()
This fully prevents double processing of gas, and should (hopefully)
prevent stupid dupe issues in future

Rather then summing volume on the gas mixture itself, we sum it in a
local var.
This avoids datum var accesses, and saves a slight bit of time

Instead of running THERMAL_ENERGY() (and thus heat_capacity(), which
iterates all gases in the mix AGAIN) when processing gas, we instead
just hook into the existing heat capacity calculation done inside the
giver gases loop
This saves a significant amount of time, somewhere around 30% of the
proc, I think?

This doesn't tackle the big headache here, which is the copy_from loop
at the base of the proc.

I think the solution is to convert pipelines to a sort of polling model.
Atmos components don't "own" their mix, they instead have to request a
copy of it from the pipeline datum.
This would work based off a mutually agreed upon volume amount for that
component in that process cycle.

We'd use an archived system to figure out what gases to give to
components, while removing from the real MOLES list.

We could then push gas consumption requests to the pipeline, which would
handle them, alongside volume changes, on the next process.

Not sure how I'd handle connected pipelines... Merging post reconcile
maybe?
This is a problem for tomorrow though, I need to go to bed.

Saves about 30% of pipeline costs.
Profiles taken on kilo, until each reconcile_air hits 5000 calls

[old.txt](https://github.com/tgstation/tgstation/files/11075118/Profile.results.total.time.txt)

[new.txt](https://github.com/tgstation/tgstation/files/11075133/profiler.txt)

* Optimizes some gas_mixture procs, Optimizes pipeline processing significantly by 33%

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-03-29 22:22:08 +01:00
SkyratBot
b48246c002 [MIRROR] remakes the escape pod shuttle! [MDB IGNORE] (#20117)
* remakes the escape pod shuttle! (#74257)

## About The Pull Request
This PR fully remakes the Pod shuttle. What is the pod shuttle you may
ask? well, the place pods go of course!
While the OLD one could only take a measly 4 pods, this new and totally
tubular version can take a whopping 8!

the interior now consists of:
a docking hallway
a main room, with a bar and medbay
a garden
a bridge
two engines!

Old shuttle

![image](https://user-images.githubusercontent.com/79304582/227746391-653a6ede-3bcc-478f-aef9-f756408a86b9.png)

New shuttle

![image](https://user-images.githubusercontent.com/79304582/227746249-268167c2-1e08-4550-a2a3-bebabd6d8d2c.png)

![2023 03 26-01 58
56](https://user-images.githubusercontent.com/79304582/227749548-6a4a407e-b2c1-4f1d-9445-ad2da36a039e.png)

### Mapping March
Ckey to receive rewards: Spockye

## Why It's Good For The Game
The old pod shuttle is sadly quite old, and in my opinion, in need of a
remake. This pr does exactly that!
it also opens up the possibility for stations to have a total of 8
instead of 4 pods! (if someone ever makes a station that's large enough
to deserve more than 4)
## Changelog
🆑
add: remakes the old escape pod shuttle
/🆑

* remakes the escape pod shuttle!

---------

Co-authored-by: spockye <79304582+spockye@users.noreply.github.com>
2023-03-29 22:21:49 +01:00
SkyratBot
88aa29085a [MIRROR] Adds bacteria rich moldy food to random trash spawners. [MDB IGNORE] (#20114)
* Adds bacteria rich moldy food to random trash spawners. (#74276)

## About The Pull Request
So, as bacteria bread from perma vendor was nerfed, the only way to
obtain mold for cytology is from the mini-fridges. And they won't even
spawn when needed. Correct me if i'm wrong.

And so this adds moldy breadslices and pizzaslices to
`random/trash/garbage` spawner which appears in trashcarts and in
trashbagsfrom the trashcarts. Also added it to `grille_or_waste` spawner
so it can just randomly spawn on the floor.

About the damp rag. Just thought that there should be at least some
piece of cloth at pile of garbage, as there is none at the moment. And
it's quite usefull also, you can clean yourself or your fingerprints
with it. Can cut it out if needed, not a big deal.
## Why It's Good For The Game
More chances to find what you want to do cytology.
Cytology slightly more practical.
Damp rag is usefull.
## Changelog
🆑
add: Bacteria rich moldy food (like breadslices and pizzaslices) now
spawn in trashcarts, trashbags and randomly on the floor.
add: Damp rag now spawns in the trashcarts and etc.
/🆑

* Adds bacteria rich moldy food to random trash spawners.

---------

Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
2023-03-29 22:21:16 +01:00
SkyratBot
b780983464 [MIRROR] Debug ID Cards Can Now Use Vending Machines [MDB IGNORE] (#20113)
* Debug ID Cards Can Now Use Vending Machines (#74278)

## About The Pull Request

![image](https://user-images.githubusercontent.com/34697715/227799119-abbcf947-10ef-416d-a353-239b0544f56d.png)

This always pissed me off, and has been pissing me off for the last year
or so. I decided to sit down and figure out how to stop this from
occurring, and got it.
## Why It's Good For The Game

When I'm debugging several types of stuff regarding payment in my
pre-fabbed debug suit, I really don't want to fucking have to spawn yet
another ID card with an actual job on it and transfer money to that just
so I can use a vending machine, I WANT TO JUST USE THE VENDING
MACHINE!!! TIME IS PRECIOUS!!!

It does still draw from the station budget, but that's fine because this
is a debug card that is meant to be dangerous to hand out. It's a
debugger's tool. If you're concerned on people somehow getting it from
an admin and beign able to buy smokes from vending machines, they were
still able to withdraw money by alt-clicking on it before this change.
## Changelog
Nothing that really concerns players.

* Debug ID Cards Can Now Use Vending Machines

---------

Co-authored-by: san7890 <the@san7890.com>
2023-03-29 22:21:07 +01:00
SkyratBot
b149b91f35 Automatic changelog for PR #20102 [ci skip] 2023-03-29 23:20:02 +02:00
SkyratBot
9faf2a16ec [MIRROR] Removes bepis Techweb and reworks tech disks in general [MDB IGNORE] (#20102)
* Removes bepis Techweb and reworks tech disks in general

* e

Co-Authored-By: san7890 <the@san7890.com>

* e

* it will be done

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
2023-03-29 22:19:32 +01:00
Changelogs
5af1238201 Automatic changelog compile [ci skip] 2023-03-28 00:37:17 +00:00
SkyratBot
5b214d0ab6 Automatic changelog for PR #20109 [ci skip] 2023-03-27 19:51:50 +02:00
Stalkeros2
80de9f1c95 Fixes lack of pan-slavic for NRI cops (#20109)
This is bad
2023-03-27 18:51:11 +01:00
SkyratBot
c2a1a18664 Automatic changelog for PR #20107 [ci skip] 2023-03-27 06:36:56 +02:00
SkyratBot
e7b7159c83 Automatic changelog for PR #20108 [ci skip] 2023-03-27 06:36:35 +02:00
SkyratBot
4cd5a3fe66 [MIRROR] Making the Tank Compressor usable [MDB IGNORE] (#20107)
* Making the Tank Compressor usable (#74264)

Shifted around some things in the trams ordnance to make the tank
compressor properly connect and make it actually usable from round
start!
## About The Pull Request
Noticed a few rounds ago that the tank compressor in Tram was broken by
the latest research changes! so I went and fixed it
![Old
compressor](https://user-images.githubusercontent.com/122066083/227752080-1bd5cfea-9e1a-4256-a91c-da0c9e0b3cfd.jpg)
![Fixed tank
compressor](https://user-images.githubusercontent.com/122066083/227752085-21d0270c-2f01-40bb-8e3e-b5790facef03.png)
### Mapping March
Ckey to receive rewards: N/A

## Why It's Good For The Game
Not having to muck with pipes at round start for one more thing is
always good! also it seems like it was definitely unintentional in the
mapping process
## Changelog
🆑
fix: Moved the tank compressor and some tables and the anomaly refinery
so that the tank compressor could actually be usable again on
Tramstation.
/🆑

* Making the Tank Compressor usable

---------

Co-authored-by: Moth-lantern <122066083+Moth-lantern@users.noreply.github.com>
2023-03-27 05:36:26 +01:00
GoldenAlpharex
3d1a7ecff0 [MISSED MIRROR] Adds a config-optional endgame chat message (#72860) [MDB IGNORE] (#20108)
Adds a config-optional endgame chat message (#72860)

This basically does what we do for roundstart announcements, but for
round end.

With a delay between a round ending, the server rebooting, and a new
round starting, sometimes it feels like players would be more likely to
catch a roundstart when they know the previous game has just ended, and
not a few moments before the next one starts.

This idea was suggested to me several times by many people who don't
have good connections to servers and keep missing roundstart because
they just aren't given enough time to get on SS13.

I also included Round ID in this, so people who know what time they've
played a round can also now easily see which round it was, if they
wanted to go back to look at the logs for any reason they have.

🆑
config: There's now a config-optional announcer for a round ending.
/🆑

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-03-27 05:36:07 +01:00
SkyratBot
3cfd28d6e7 Automatic changelog for PR #19966 [ci skip] 2023-03-27 06:02:22 +02:00
SkyratBot
26d5ae43f8 Automatic changelog for PR #19907 [ci skip] 2023-03-27 05:57:24 +02:00
SkyratBot
08fd81e754 Automatic changelog for PR #19992 [ci skip] 2023-03-27 05:49:41 +02:00
SkyratBot
5dea1566f3 Automatic changelog for PR #20002 [ci skip] 2023-03-27 05:49:24 +02:00
SkyratBot
46f7c55cba Automatic changelog for PR #20040 [ci skip] 2023-03-27 05:47:21 +02:00
SkyratBot
a1d9e68686 Automatic changelog for PR #20072 [ci skip] 2023-03-27 05:43:04 +02:00
SkyratBot
44305ab6c8 Automatic changelog for PR #20031 [ci skip] 2023-03-27 05:42:38 +02:00
SkyratBot
2fc428de40 Automatic changelog for PR #20073 [ci skip] 2023-03-27 05:41:53 +02:00