Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add maximum atmos temperature limit #22882

Merged
merged 2 commits into from
Dec 24, 2023

Conversation

Partmedia
Copy link
Contributor

About the PR

Adds Atmospherics.Tmax, a maximum absolute temperature temperature limit for gas mixtures.

Why / Balance

Safe numeric code enforce numeric ranges to be within a certain well-defined range. For example in a temperature simulation, it is safe to constrain temperature in a "reasonable" range where we know that the physical laws stop applying. There is already such a limit for the minimum temperature; this adds one for the maximum temperature.

This should never happen:
image

And of course while it is better to fix the problem at the root, bugs happen and code should still be robust.

Balance

Anything that scales with temperature, e.g. damage and reaction rates, can still go through a very big range with this temperature cap.

Physical Justification

These sorts of temperatures would never exist in real life for a variety of reasons:

  • At some pressure the container would just explode, venting it
  • At some temperature the container would just melt, also venting it
  • At some temperature any gas would instantly converted to plasma, causing it to violently destroy the container

While it is true that temperatures exceeding this can exist on stars, that sort of defies the simple $PV=nRT$ physics we have. In numerics speak, we'd say that this is out of the domain of our model.

@Ilya246
Copy link
Contributor

Ilya246 commented Dec 23, 2023

  1. i'm pretty sure this makes maxcaps impossible even if we fix the other changes
  2. 20000C is very little, unless we revert this once we get pipe bursting
  3. i believe this kills a lot of TEG setups
    setting it to around 200000C or 140000C should work better

note that before burn changes i was able to reach about 1.1GK of temperature, it's likely only much lesser values are now reachable, i would doubt even 1MK is reachable
also, absurd temperatures make it easier to spot if it's bugged

@comasqw

This comment has been minimized.

@EmoGarbage404
Copy link
Member

@comasqw if you're gonna shit up github with childish finger pointing at volunteers then you're just going to get banned.

You're not going to get many warnings.

@TemporalOroboros
Copy link
Contributor

I strongly dislike the idea adding an upper temperature limit to atmos on principle. If we absolutely must, I request it be set to the Hagedorn or Planck Temperature as those are actual physical limits instead of some arbitrary cutoff.

@Holinka4ever
Copy link
Contributor

In my honest opinion, early or later, they should be limit, due of humanity progress, cause its kinda funny and unlogical that atmos are able to syntez an entire sun in burn chamber that made from steel and glass.

But due of recently bug that allows to do it... Thats pr is looks like a bandaid of that mistake, rather than balance fix, and of corse, people will be on emotions, cause atmos the most intriguing and interesting mechanic in ss14, and it got limited due of bug.

So anyway, idea of giving limit is okay, someone told that instead if limiting, heat could be on fast cool itself due of some laws that i dont know, but making this due of "plasma flood" situation, is kinda harsh path to walk in.

@Emisse
Copy link
Contributor

Emisse commented Dec 23, 2023

agree with temporal, seeing atmos hit exceptionally high numbers is also helpful for indicating a bug is present

@Partmedia
Copy link
Contributor Author

I strongly dislike the idea adding an upper temperature limit to atmos on principle. If we absolutely must, I request it be set to the Hagedorn or Planck Temperature as those are actual physical limits instead of some arbitrary cutoff.

I gave a few physical justifications for why a limit should exist in the PR description. The ideal gas law, and indeed the physical state of gas breaks down at high enough temperatures. What principle do you feel like is being broken?

Perhaps the limit set here is too low. Some here have suggested a few higher limits. I'm okay with a higher limit, we should decide what it should be.

There would still be ways to catch bugs, namely:

  1. Hitting the debug exception that this adds.
  2. Seeing the temperature limit be reached. Maybe the current limit is too small. But surely there is some limit that we can agree on should never be reached.

It feels like there is no limit now because you can represent infinity as a floating point. But due to floating point precision issues there already is a limit beyond which things just stop behaving correctly (see why we have to have space friction to limit the distance something flies from the station).

I'd liken this to a numeric seat belt that reduces damage when something goes wrong. A seat belt is not a band-aid.

So anyway, idea of giving limit is okay, someone told that instead if limiting, heat could be on fast cool itself due of some laws that i dont know, but making this due of "plasma flood" situation, is kinda harsh path to walk in.

All gases cool to tiles, then to space, when superconduction is enabled. Superconduction is not enabled by default for a variety of reasons. In practice that would also limit temperatures because it's hard to fight $T^4$ scaling.

@Ilya246
Copy link
Contributor

Ilya246 commented Dec 23, 2023

Seeing the temperature limit be reached. Maybe the current limit is too small. But surely there is some limit that we can agree on should never be reached.

once again, i propose 200kK, i believe that temperature is not reachable naturally unless you're deliberately trying to optimise a burn for extremely high temperatures and nothing else
but i still suggest either not having a limit or reverting this once we get pipe bursting

@deltanedas
Copy link
Contributor

20kC is nowhere near physics breaking and the starting point for a lot of burns
this will completely gimp teg

@LordCarve
Copy link
Contributor

LordCarve commented Dec 23, 2023

  • At some pressure the container would just explode, venting it
  • At some temperature the container would just melt, also venting it
  • At some temperature any gas would instantly converted to plasma, causing it to violently destroy the container
  1. We don't actually know that. But I'd rather not take this discussion off topic so this is just a minor observation.
  2. All of the above are cases where forces exerted on the container result in its destruction. That is a missing feature at the moment. Add the feature = all the above are solved.

"Physical Justification" doesn't convince me.

Safe numeric code enforce numeric ranges to be within a certain well-defined range.

Yes, but... that is a loaded statement. Programmers can make "safe numeric code" in range of -∞ to +∞ with whatever decimal precision they desire. Limiting the range is very handy for optimization and lowering problem complexity, but by no means necessary to achieve "safety". All that statement does is confuses people who aren't sure what you are talking about into thinking it's an argument in favor of introducing a max temperature. It isn't.

Back to topic:
Consider that you need to make the following operation (i.e. in order to maintain formula invariance): Atmospherics.Tmax + Atmospherics.Tmax. What is the result of this addition? Well, it has to be Atmospherics.Tmax surely?

Such an arbitrary maximum introduces new edge-cases (possibly bugs), above being just one example, because now we are violating laws of not just physics, but mathematics as well. ∃x ∈ ℝ / { 0 } (x + x = x). That is going to bite us in the ass sooner than you think.

If (and this is a very big if) we wanted to limit temperatures, in my opinion the best way to tackle this problem is by introducing some form of "temperature entropy" which would soft cap temperatures in a sane range, rather than hard capping it, like this:

  • Any temperature decays over time
  • Decay scales with temperature
  • Effects are negligible (rounding to zero) for all temperature ranges we don't want to touch
  • Effects are increasingly severe the more above that range we go, so in time any temperature eventually goes down to "soft max"

We can call it quantum thermal conductivity, whatever.

That being said - the question we should be asking is: are we sure we want a limit?

@Partmedia
Copy link
Contributor Author

Partmedia commented Dec 24, 2023

That being said - the question we should be asking is: are we sure we want a limit?

Absolutely. In fact there's already a limit, it's called float.MaxValue. But limits of floating point precision mean that some operations don't behave as you would expect at much lower values.

Such an arbitrary maximum introduces new edge-cases (possibly bugs), above being just one example, because now we are violating laws of not just physics, but mathematics as well. ∃x ∈ ℝ / { 0 } (x + x = x). That is going to bite us in the ass sooner than you think.

We're programming with real computers with real limits on the number of bits in the mantissa. The objective of this is to limit values in a range where floats behave relatively sanely. If you want to see on your own computer:

Python 3.9.18 (main, Sep 12 2023, 01:16:40)
>>> 3e305 + 1.1e305 - 1.1e305 - 3e305
-3.89812560456e+289

That number is not zero.

If (and this is a very big if) we wanted to limit temperatures, in my opinion the best way to tackle this problem is by introducing some form of "temperature entropy" which would soft cap temperatures in a sane range, rather than hard capping it, like this:

I welcome a patch. Even then, a limit is prudent to make sure big numbers can actually return to zero. As I showed above, $x + y - y - x$ is not equal to zero when $x$ and $y$ are very large.

Tmax bumped to 200e3 K.

@deltanedas
Copy link
Contributor

before burn energies were nerfed, 200kK was very much a reasonable temperature you could get in normal gameplay. after the nerfs i doubt its possible to get without a dedicated max temp setup.

@LordEclipse
Copy link
Member

before burn energies were nerfed, 200kK was very much a reasonable temperature you could get in normal gameplay. after the nerfs i doubt its possible to get without a dedicated max temp setup.

did the nerf break atmos? Because atmos has been acting very funky for the past few days or so

@deltanedas
Copy link
Contributor

burn nerf was just changing energy values so thats not related

@Partmedia
Copy link
Contributor Author

Partmedia commented Dec 24, 2023

before burn energies were nerfed, 200kK was very much a reasonable temperature you could get in normal gameplay. after the nerfs i doubt its possible to get without a dedicated max temp setup.

That's because the energies from before were unreasonable. The "hard" limit should not be reachable through normal gameplay.

did the nerf break atmos? Because atmos has been acting very funky for the past few days or so

No. This is better addressed in a separate thread, but the breakage is likely from #22803 which was partially addressed in #22876. I am aware of another issue but am waiting for an okay to adjust the clamping behavior of AdjustMoles().

@deltanedas
Copy link
Contributor

energy from before was not unreasonable compared to how it is now

ring.of.fire.mp4

this fire from ~30m ago is now at about 1200K, which is extremely slow burning and cold when it should be fast and hot

@Ilya246
Copy link
Contributor

Ilya246 commented Dec 24, 2023

before burn energies were nerfed, 200kK was very much a reasonable temperature you could get in normal gameplay. after the nerfs i doubt its possible to get without a dedicated max temp setup.

actually no, before burn changes, even the hottest TEGs only got to around 90kK, and you couldn't reach anywhere above 140kK without deliberately building a temperature-burn setup due to how burns work

note that i believe that 200kK is still reachable even after burn changes, but you'll need a special temperature-burn setup to achieve it

@LordCarve
Copy link
Contributor

LordCarve commented Dec 24, 2023

Absolutely. In fact there's already a limit, it's called float.MaxValue. But limits of floating point precision mean that some operations don't behave as you would expect at much lower values.

That is not a design choice. It's a programmer choice to use an existing data structure (float) to store the data here. From design perspective this is just an implementation detail. What we are doing in this PR is making an implementation detail affect design decision, like this:
"Float has limitations when dealing with large numbers, therefore we should disallow very high temperatures"

Implementation => Design. That's a backward approach. The correct approach is Design => Implementation:
"We don't need to support very high temperatures, therefore float is a good data structure to use for temperature calculations"
or
"We need to support very high temperatures, therefore float is not a good data structure to use for temperature calculations"

This is why the most important question we should be asking here is the question concerning design:
Are we sure we want a limit?

There are some implementation concerns which I mentioned before that do affect the design choice:

  • float algebra with all common operations is already implemented (we are saving developer time),
  • floats are well known (makes the code much more maintainable over a custom-made data structure - this is a huge deal for an open source project),
  • FP32 operations are natively supported by CPUs making complex calculations fast (optimization)

And all these are good arguments for using floats. But floats come with some limitations (the object of this PR - very high values). So a design decision needs to be made.

We're programming with real computers with real limits on the number of bits in the mantissa.

Computers have no issues with custom data structures - even data strutures of potentially unlimited size. Floating point representation is just one of the possible number representations. In fact, I'd argue that is not the perfect fit for values such as temperatures, because floating point numbers operate on one core assumption: X-th significant digit is just as important as X-th decimal digit. I honestly don't think we care about 1 × 10⁻¹⁰ (that is one ten-billionth of a single degree) as much as we care about 1 × 10¹⁰ (ten billions degrees). So the problem is naturally skewed towards higher values over more precise values.


The PR is a stopgap solution, and it's OK at that:
Solves some problems, probably introduces new problems, but it does no drastic changes* and requires minimal effort.
* - let's make sure it doesn't by setting the limit appropriately high.

I'm not against merging it, but it touches on a very important design decision of temperature limit. If we just skip over it and merge the PR without having a discussion, this code (the temperature limit) kinda becomes "the base truth" for future contributors.

So I want a design decision be made here. Do we want a temperature limit or not?
To make things extra clear - this PR is fine in either scenario:

  • If we don't want to support obscenely high temperatures, then this PR is a stepping stone towards that;
  • If we do want to support obscenely high temperatures, then this PR is a temporary fix until we can build a proper solution

Probably needs some tweaking to what the limit should be (already happening in this discussion thread) but other than that it's fine.

I want to avoid a situation where this gets merged without proper design process, one half of contributors think this is a temporary stopgap and avoid building on top of it, while the other half of contributors assume this is the hard design limit for temperature and do build on top of it, further entrenching it as the hard limit.
And then, someone gets the idea that we want to simulate nuclear fusion or something, which requires temperatures above the Atmospherics.Tmax. But we have an entrenched hard limit on temperature that needs so much effort to change, that nobody wants to do it. So we can't. And we end up missing out on cool features such as nuclear fusion.

@EmoGarbage404
Copy link
Member

200,000K is literally hotter than a fucking star. this is just to make sure floating point math doesn't shit itself and die at unreasonable values (a perfectly valid concern and something to account for). There's no reason why a realistic atmos sim would reach those temperatures nor would even the ability to occasionally reach those temperatures justify the additional performance cost of migrating the entire system to use high precision.

@EmoGarbage404 EmoGarbage404 merged commit 2c3f3e5 into space-wizards:master Dec 24, 2023
10 checks passed
@Ilya246
Copy link
Contributor

Ilya246 commented Dec 24, 2023

200,000K is literally hotter than a fucking star. this is just to make sure floating point math doesn't shit itself and die at unreasonable values (a perfectly valid concern and something to account for). There's no reason why a realistic atmos sim would reach those temperatures nor would even the ability to occasionally reach those temperatures justify the additional performance cost of migrating the entire system to use high precision.

actually no, there are no such issues, floating point math is unrelated
i don't think there was any real reason to merge this

@Partmedia Partmedia deleted the notafet/tmax branch December 24, 2023 16:13
@Partmedia
Copy link
Contributor Author

Thanks for writing in with your comments.

So I want a design decision be made here. Do we want a temperature limit or not?

The design decision was to limit pressure and temperature in most atmos devices. In practice pressure limits are set by bursting and temperature limits (through what you call "quantum thermal conductivity") are set by the (currently-disabled) "superconduction" code. This is partially implemented e.g. in #20931 but not quite ready for show time just yet.

Perhaps that is where our fundamental miscommunication was. I do appreciate your thoughtful comments here.

@LordCarve
Copy link
Contributor

LordCarve commented Dec 24, 2023

200,000K is literally hotter than a fucking star.

200kK is not hotter than the sun. The helium fusion that happens inside the sun is estimated to require catalysis temperature of 14mK which is 7 times that.

this is just to make sure floating point math doesn't shit itself

Agreed. This is always a concern with floating points.

Perhaps that is where our fundamental miscommunication was.

Yup. This is what was missing in this PR. A link to atmos roadmap. Thanks for clearing it up.
Next time please link such docs in potentially controversial PRs like this. The design process behind decisions is always important to consider.

This is doubly important since this is an open source project and anyone can create a PR. Without such docs it's often difficult to distinguish some random person electively proposing a questionable change, from an established contributor making a PR of a planned and well-considered change. I've only been here for a week and I've seen both - nearly indistinguishable.

qwerltaz pushed a commit to qwerltaz/space-station-14 that referenced this pull request Dec 26, 2023
qwerltaz pushed a commit to qwerltaz/space-station-14 that referenced this pull request Dec 26, 2023
author PJBot <[email protected]> 1702747094 -0500
committer qwerltaz <[email protected]> 1703619626 +0100

parent 5bdc16e4e4f01721fc7eca3cbab722ce1177fd65
author PJBot <[email protected]> 1702747094 -0500
committer qwerltaz <[email protected]> 1703619589 +0100

c

add power sensor (#20400)

* clean up logic gate / edge detector components

* logic gate usedelay support

* new codersprite

* PowerSensor component and system

* add power sensor

* port locale

* fix

* minecraft

* fixy

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

Automatic changelog update

Standardizes / nerfs material sheets to 10u, no more lead in steel sheets (#22569)

* standardizes / nerfs material sheets to 10u, no more lead in steel sheets, also radium in uranium i guess

* plastic into oil

* adds phosphurous to plastic too

* OIL

* fix tests now? maybe? emo you better not be LYING... or else...

Automatic changelog update

Include URL in Discord bot changelog to link to the Github PR page

LGTM!

crystals drop shards and ore crab tweaks. (#20930)

* crystals drop shards and ore crab tweaks

* crystals drop shards, shards can be crafted into colored light tubes and silver ore crab.

* crystals can now be unanchored.

* added silver crab to rock anom spawn

* fixes

* sorted out the parenting for crystal light tubes.

fix some pdas (#22617)

medibot toctou gaming (#22608)

Co-authored-by: deltanedas <@deltanedas:kde.org>

fix ninja draining in no grav (#22610)

Co-authored-by: deltanedas <@deltanedas:kde.org>

evil pen (#22598)

Update the emergency shuttle Rod (#22592)

* add

* i forgor something

add (#22597)

Fix spray nozzle (#22624)

* Fix spray nozzle

* what

* no

Add description in lathe recipe mouseover tooltip (#22621)

* Add description in lathe recipe mouseover tooltip

* Remove old tooltip

Fixes Clown Recorder causing client freeze (#22629)

mild reagent prototype cleanup + other misc garbage (#22630)

Update Credits (#22626)

Co-authored-by: PJBot <[email protected]>

Svalinn Experimental Battery Ammo Research [T3] (#22045)

start of persistence support (#20770)

Co-authored-by: deltanedas <@deltanedas:kde.org>

Update engine to v193.1.0 (#22632)

Update engine to v193.1.1 (#22634)

Origin and barratry fixes (#22635)

* Fix Paramed doors on barratry

* Fixed many external airlocks on origin

You can pet the recycler (#22640)

Mindbreaker hallucinogen (#22639)

* add

* note

aspid update (#22644)

atlas update (#22646)

* atlas update

* -1 chemist lol

bagel update (#22647)

* Update bagel.yml

* bagel update

barratry update (#22648)

box update (#22650)

cluster (#22651)

fland update (#22653)

gemini update (#22654)

marathon update (#22656)

* marathon update

* Update marathon.yml

meta update (#22657)

omega update (#22659)

origin update (#22660)

packed update (#22661)

saltern update (#22662)

Puts a rollerbed in paramedics bag, and gives em blue shoes (#22649)

* Para bag proto, rollerbed, shoes

* forgot to save in visual studio

the boxening (#22643)

Engineering Chunk Salvage (#22529)

* Engineering Chunk

* lessmob

* shavedasteroid

* wronglockerlol

cull engineering-chunk size (#22664)

* cull engineering chunk size

* more

Replaces the broken hallelujah.ogg file with a new one (#22670)

decrease hypodart cost from 3 to 2 (#22671)

Adds construction effect to RCD (#22633)

Fix nix devShell (#22663)

spawnpoints dict skeleton

Revert "spawnpoints dict skeleton"

This reverts commit 38af7d9ebb8b1bc2f92cef48da9f930656e3c123.

add job-spawnpoints dict and apply in system

Better tear gas grenade belt sprite (#22666)

HOS's parade uniform available at the uniform printer (#22667)

* add

* fix

Tiny 1x1 Zipties (#22681)

Update engine to v193.2.0 (#22687)

Adds RCD and RCD ammo to all engineer lockers. (#22688)

Chemical Synthesis Kit (#22631)

* add

* locale

* probably fix

* fix stuffs

* oversight

* uh yea

* i beg

* tag

* i pray to god this fixes it

* update

* fix

* vestine

* fix note

* balancing

* fix

* toxin wipe

Rubber gloves for janitors (#22668)

* add

* fix

* formatting..

Add NLR to MMIs on MRP (#22695)

Add atmos error log (#22696)

Adds coal (#22559)

* Adds coal

* Fix stack splitting spawn

* Convert size

* Ahhh, it's a reagent tooo....

* ore.rsi

* Adjust recipes, add reagent extraction

* solution name

* Adjust reagents to prevent reactions

* Adjust reagents for standard of 10u

---------

Co-authored-by: Jeff <[email protected]>

Super Bonk Smite (#22413)

* Added the Super Bonk smite. It teleports the player from table to table
in the game and bonk their head into them. Also smashes them into glass
tables.

* Stopped using a timer and now instead use Comp + System. Also added proper logging impact.

* Fixed name inconsistency

* Admin CL which I forgot

* Made it funnier

* Moved basically all logic to the system and added a light version that stops when you die

* Hopefully made YAML Linter stop bullying me

* Removed fun(Glass tables no longer get smashed when the target is bonked over them)

General opinion seems that it would cause too much collateral damage. I kinda agree.

* Adressed reviews

Highboots (#22382)

* boots

* Boots rsi

* Fix damage values and remove unnecessary item statement

* Oops I still needed the Item statement for the sprite.

* Added to warden locker and maints rare fluff loot pool

* No longer in ward's locker

* Update Resources/Prototypes/Entities/Clothing/Shoes/boots.yml

Co-authored-by: faint <[email protected]>

---------

Co-authored-by: Nemanja <[email protected]>
Co-authored-by: faint <[email protected]>

Weapon Random Fixes (documented and removed hardcoded cluwnecomp) (#22352)

Weapon Random Fixes

Makes external & shuttle airlocks bump-openable (#22706)

makes external & shuttle airlocks bump-openable

Craftable Steel Closet  (#21987)

Make closet craftable

Remove duplicate milks (#22721)

* Remove duplicate milks

* Migration

* Inventories

* Guidebook

---------

Co-authored-by: Jeff <[email protected]>

Broadcast MoveEvent -> C# event (#22689)

Update engine to v194.0.0 (#22729)

Add more centcomm spawning logs (#22726)

structural damage rework / melee damage curve flattening (#22705)

Remove RCD from tech and make it a crate (#22720)

Rebalance fireaxe (#22731)

* Rebalance Fireaxe

* Nerf it a bit

Hardsuit and EVA helmets allow using internals without a mask (#22716)

fix jug suit (#22734)

fix sec suit (#22735)

Adds janitorial service lights (#22732)

* Adds service light visuals and meta.json

* Added the rest of the needed service light sprites

* Adds service light and service light bulb entity prototypes

* Changes entity descriptions

* Removes sprites temporarily

* Adds back the sprites and modifies rotation sprites

Check if url exists in changelog and adjust Discord message for it (#22718)

Automatic changelog update

Give security sunglasses the security HUD (#19904)

* Give security sunglasses the security HUD

* Switch security to round-start sunglasses, add sec glasses research

Automatic changelog update

bagel update (#22740)

resprite every captain item (#22739)

* captain giga resprite

* fixe a bit

* kill

* swag destroyed

* Revert "swag destroyed"

This reverts commit 30c8aafdf6ccc1ac290268f7645e040b709811b3.

Automatic changelog update

Added ore bag of holding (#22680)

* Added ore bag of holding

* Now its in industrial tecnologi

Yeah, I fixed it with Tunguso4ka

Co-Authored-By: Tunguso4ka <[email protected]>

* Update ore_bag_holding.yml

Now the "magnet" has a larger radius of attraction

* Changed location

---------

Co-authored-by: Tunguso4ka <[email protected]>

Automatic changelog update

Shuttle timers (#19471)

* sync

* sync

* no more squiggles..

* last build error

* updated maps for testing

* some issue with receiving arrivals setup

* networkpayload refactor. TODO: accurate timings

* timings accurate. TODO: backport old bugfix

* all set?

* cleaned up source. TODO: diff arrivals methods

* cleaned component. TODO: escape polish, docs

* first documentation pass

* escape timers work

* no more magic numbers

* removed dead code leads

* sync

sync

* Automatic changelog update

* shuttle timer groundwork

no more squiggles..

last build error

updated maps for testing

some issue with receiving arrivals setup

networkpayload refactor. TODO: accurate timings

timings accurate. TODO: backport old bugfix

all set?

cleaned up source. TODO: diff arrivals methods

cleaned component. TODO: escape polish, docs

first documentation pass

escape timers work

no more magic numbers

* BBQ rib sandwich (#21180)

* Fix missing toggle fullscreen loc string (#21264)

* Cave Decoration pack  (#21265)

* add chromite chasm

* add desert chasm

* snow chasm

* finish

* fixes and tweaks (#21172)

* Automatic changelog update

* Fix ItemPlacer (#21160)

This is going to lead to many entities being ticked unnecessarily and performance problems.

* headrev spawn music (#21119)

* headrev spawn music

* :trollface:

* skill issue

* double skill issue

* :trollface:

* :trollface:

* :trollface:

* Automatic changelog update

* Techfab resprite + department fab sprites (#21136)

* Fix popup messages appearing when someone tries to open a door without a tool. (#21099)

* The fixTM

* typo fix

* addressing review

* Show "departed and moved on" for when a ghost role is taken (#21092)

* fix ghost role not counting for "departed and moved on"

* I don't think that bit was needed so away it goes

* hopefully finish the upsream merge

* Automatic changelog update

* Implant whitelist/blacklisting (#20678)

* add whitelist and blacklist to implant and implanter components

* handle whitelist and blacklist in systems

* move hardcoded whitelist/blacklist to base implanter + add admeme implanter

* give implants sensible whitelists

* cleaner CheckTarget and fix

* remove unused imports

* network lists

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Automatic changelog update

* Ion storm event (#20277)

* ion storm event prototype + locale

* add lawsets

* use lawsets, make borgs ion storm targets

* ion storm rule and ion storm target

* lawset prototype

* use lawsets

* update silicon law system to use lawsets and support ion storm event

* new toys

* fix

* more fix

* fixy

* ion storm admin logging

* assigning laws makes borg provide its own laws, other stuff

* 1h reoccurence

* 50% chance

* better call saul

* emagLaws is required

* add announcment audio

* fixy

* family friendly gaming

* fixy

* address reviews

* fixy

* more fixy and no erp

* pro

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Automatic changelog update

* A return to foam (foam rework) (#20831)

* Automatic changelog update

* ERT Loadout overhaul + Real deathsquad mobs + ERT fixes (#21230)

* "assist with medical efforts"

* CentComm official description change

* give cburn ert mask

* Ert medic hardsuit uses blood-red medic values

* description changes, they all used to use the blood-red description

* ert engineer hardsuit uses cburn values, good for handling all possible engineering problems.

* janitor hardsuit uses cburn values for extreme messes, otherwise we'd send the non eva variant.

* spawn suffix changes

* shorten suffix

* drop armor from ert jumpsuits

* drop armor from DS jumpsuit

* add more armor to death squad to make up for removed armor in the uniform.

* give sec gas masks armor, give syndicate gas masks armor. ERT gas mask uses syndicate mask values

* add nanotrasen

* removed duplicate

* give centcom IDs their hud icon

* replace all ert bulletproof armor with basic universal armor

* replace all oxygen tanks with air tanks; species is random.

* remove gun and meds from ert engineer kit

* give ert engineer materials

* remove weapons and meds from janitor ert

* give ert janitor light replacer

* remove ert sec pulse weapons, admins will assign loadout. Either the lecter or enforcer, probably.

* Give ert sec the security pistol kit

* typo

* give eva ert sec pistol

* give eva janitor ert gas mask

* give jani purple gloves

* medical gloves for medical ert

* replicate security loadout to leader

* quick ert lecter spawns for lazy admins

* better suffixes to find them easier

* add cburn to ertspawn

* Replace "Spawn" with "role"

* Add death squad. Give ert engineer gas analyzer.

* death squad using wrong equipment

* typo

* missing ghost roles on lecter loadouts

* add freedom implanter to deathsquad

* deathsquad ghost role text

* Operative sounds better

* give Ds flashbang box (why isn't it entirely filled?)

* fix typo. add energy shield to DS

* fix typos

* all centcomm roles are now mindshielded. These cannot be removed.

* Rider didnt include some of the changes ?

* give zipties instead of cuffs for mass arrests!

* upgrade ERT survival boxes to extended capacity

* give cburn extended oxygen too

* Automatic changelog update

* Restore Leviathan's 80 pop cap (#21281)

* Un-revert IPlayerManager refactor (#21244)

* Update engine to v172.0.0 (#21288)

* Bandaid tests (#21292)

* rename the rocks (#21275)

* Make crystals noRot (#21279)

IDK might be better. Ideally the anchoring would be offset 0-0 but this is the world we live in atm.

* Fix nukies sound not played  (#21268)

* Play sound and sending greeting message works for nukies now!!!!!

* oops

* silly change

* Automatic changelog update

* Fix hijack objective (#21241)

* Fix hijack

* Max difficulty

* Remove GridModifiedEvent (#21291)

* Update submodule to 173.0.0 (#21296)

* Fix namespace error (#21298)

* Update yaml sequence option in editorconfig (#21297)

* Fix namespace (#21299)

* fix cburn bag issue, make new bag entity for them and filled bag entity (#21295)

* Health analyzer UI improve (#17280)

* Automatic changelog update

* User accessible playtime (#21242)

Co-authored-by: metalgearsloth <[email protected]>

* Automatic changelog update

* Moves cloning comp & cloning event to shared (#21253)

* Generalizes solution overflow & slightly increases space lube yield (#21094)

* generalize SolutionSpikeOverflowEvent

* let reactions overflow

* spacelube: 3 -> 5

* restore TryMixAndOverflow threshold cap

* Automatic changelog update

* Move ActorComponent to shared (#21293)

* Update engine to v174.0.0 (#21311)

* Fix planet command help message (#21312)

* Wearable bee plush (#20623)

* add

* fix

* temporary change, needs fixing

* mayb fix

* actually fix FR

* yes

* Automatic changelog update

* remove pulse rifle from ert medic (#21310)

* Content audio (#20862)

* Automatic changelog update

* Update submodule to 175.0.0 (#21318)

* Revert "Update submodule to 175.0.0 (#21318)" (#21319)

* Atomic bomb add uranium  (#21143)

* fix: Incendiary bullets no longer deal cold, acid, or shock damage that ignores all armor.

* Atomic bomb

* Action bugfixes (#21321)

* Disable OOC during round (#21323)

* Fix PDA notifications when creating a news entry using the Mass-Media console. (#21320)

* Automatic changelog update

* Update belt.yml (#21317)

changes the chief engineer's belt to remove the lv wires (they take up a lot of space and are easy to get anyways) in exchange for a holofan, a t-ray, and a gas analyzer (first time coding ever this might have to be edited)

* New foam sprites (edge sprites) (#21308)

* New foam sprites (icon smoothing)

* changed to edge sprites for foam

* fix

* edges for metal foams

* fix

* Fix bola stam damage, bring back old construction requirements (#21340)

* Automatic changelog update

* Added thermal insulation to flannel jackets (#21273)

* Automatic changelog update

* Space Asshole Gear (#21243)

* Add Space Asshole Coat

* Add sledgehammer

* Adjust sledgehammer damage values

* Add copyright string to sledgehammer

* Fix broken slot highlight in midnight theme. (#21331)

* removed dead code leads

removed redundant ensurecomps

* textscreen documentation

* remove redundant ensurecomps

* Add hint for the examine trigger effect (#21166)

* examine locale

* examine trigger desc

Automatic changelog update

cornmeal is actually obtainable now (#21162)

* do the thing

* lets find out

* Update Resources/Prototypes/Entities/Objects/Consumable/Food/produce.yml

Co-authored-by: ShadowCommander <[email protected]>

---------

Co-authored-by: ShadowCommander <[email protected]>

Automatic changelog update

Healing skeletons by pouring milk over them (and clean pie remains off their skulls) (#21231)

* mvp done - skellies can heal by spillink regular milk on themselves and clean themselves off creaming with water

* added other types of healing milk, also made a separate reaction to oat milk - it has almost no calcium in it

* fixed indent error, made a dumb mistake

Automatic changelog update

Fix anomaly locators frantically beeping when entering detection range. (#21178)

* reset beep timer when out of range

* prevent deficit from impacting beep timing

Automatic changelog update

Remove "mk --> mmm, okay" and "u --> you" to chatsan anti slang (#21177)

Automatic changelog update

Adds AttemptEntity(Uns|S)tickEvent. (#20728)

* try-stick

* convert spider charge to attempt-stick-events

Change ListContainer to send null when selected is removed from the data (#20595)

fix feeding unremovable items (#21234)

Automatic changelog update

Power switchable refactor (#20419)

Co-authored-by: deltanedas <@deltanedas:kde.org>

simple space mobs cant be flashed (#20784)

Co-authored-by: deltanedas <@deltanedas:kde.org>

give roundstart borgs names (#20081)

Co-authored-by: deltanedas <@deltanedas:kde.org>

fix searching on vending machines (#21233)

syndicate snack box (#21024)

Co-authored-by: deltanedas <@deltanedas:kde.org>

Fix DockingControl (#21238)

Shadow Dimension visual pack (#21237)

Co-authored-by: metalgearsloth <[email protected]>

Potato battery update + potato AI (#21142)

Co-authored-by: metalgearsloth <[email protected]>

[TEST MERGE] Slot-based Storage (#21212)

Automatic changelog update

Some mild item size balancing + fixes (#21250)

Automatic changelog update

Revert "Storage TEST MERGE" (#21258)

Add missing changelog for storage refactor revert (#21259)

* sync

sync

* Automatic changelog update

shuttle timer groundwork

no more squiggles..

last build error

updated maps for testing

some issue with receiving arrivals setup

networkpayload refactor. TODO: accurate timings

timings accurate. TODO: backport old bugfix

all set?

cleaned up source. TODO: diff arrivals methods

cleaned component. TODO: escape polish, docs

first documentation pass

escape timers work

no more magic numbers

BBQ rib sandwich (#21180)

Fix missing toggle fullscreen loc string (#21264)

Cave Decoration pack  (#21265)

* add chromite chasm

* add desert chasm

* snow chasm

* finish

fixes and tweaks (#21172)

Automatic changelog update

Fix ItemPlacer (#21160)

This is going to lead to many entities being ticked unnecessarily and performance problems.

headrev spawn music (#21119)

* headrev spawn music

* :trollface:

* skill issue

* double skill issue

* :trollface:

* :trollface:

* :trollface:

Automatic changelog update

Techfab resprite + department fab sprites (#21136)

Fix popup messages appearing when someone tries to open a door without a tool. (#21099)

* The fixTM

* typo fix

* addressing review

Show "departed and moved on" for when a ghost role is taken (#21092)

* fix ghost role not counting for "departed and moved on"

* I don't think that bit was needed so away it goes

* hopefully finish the upsream merge

Automatic changelog update

Implant whitelist/blacklisting (#20678)

* add whitelist and blacklist to implant and implanter components

* handle whitelist and blacklist in systems

* move hardcoded whitelist/blacklist to base implanter + add admeme implanter

* give implants sensible whitelists

* cleaner CheckTarget and fix

* remove unused imports

* network lists

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

Automatic changelog update

Ion storm event (#20277)

* ion storm event prototype + locale

* add lawsets

* use lawsets, make borgs ion storm targets

* ion storm rule and ion storm target

* lawset prototype

* use lawsets

* update silicon law system to use lawsets and support ion storm event

* new toys

* fix

* more fix

* fixy

* ion storm admin logging

* assigning laws makes borg provide its own laws, other stuff

* 1h reoccurence

* 50% chance

* better call saul

* emagLaws is required

* add announcment audio

* fixy

* family friendly gaming

* fixy

* address reviews

* fixy

* more fixy and no erp

* pro

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

Automatic changelog update

A return to foam (foam rework) (#20831)

Automatic changelog update

ERT Loadout overhaul + Real deathsquad mobs + ERT fixes (#21230)

* "assist with medical efforts"

* CentComm official description change

* give cburn ert mask

* Ert medic hardsuit uses blood-red medic values

* description changes, they all used to use the blood-red description

* ert engineer hardsuit uses cburn values, good for handling all possible engineering problems.

* janitor hardsuit uses cburn values for extreme messes, otherwise we'd send the non eva variant.

* spawn suffix changes

* shorten suffix

* drop armor from ert jumpsuits

* drop armor from DS jumpsuit

* add more armor to death squad to make up for removed armor in the uniform.

* give sec gas masks armor, give syndicate gas masks armor. ERT gas mask uses syndicate mask values

* add nanotrasen

* removed duplicate

* give centcom IDs their hud icon

* replace all ert bulletproof armor with basic universal armor

* replace all oxygen tanks with air tanks; species is random.

* remove gun and meds from ert engineer kit

* give ert engineer materials

* remove weapons and meds from janitor ert

* give ert janitor light replacer

* remove ert sec pulse weapons, admins will assign loadout. Either the lecter or enforcer, probably.

* Give ert sec the security pistol kit

* typo

* give eva ert sec pistol

* give eva janitor ert gas mask

* give jani purple gloves

* medical gloves for medical ert

* replicate security loadout to leader

* quick ert lecter spawns for lazy admins

* better suffixes to find them easier

* add cburn to ertspawn

* Replace "Spawn" with "role"

* Add death squad. Give ert engineer gas analyzer.

* death squad using wrong equipment

* typo

* missing ghost roles on lecter loadouts

* add freedom implanter to deathsquad

* deathsquad ghost role text

* Operative sounds better

* give Ds flashbang box (why isn't it entirely filled?)

* fix typo. add energy shield to DS

* fix typos

* all centcomm roles are now mindshielded. These cannot be removed.

* Rider didnt include some of the changes ?

* give zipties instead of cuffs for mass arrests!

* upgrade ERT survival boxes to extended capacity

* give cburn extended oxygen too

Automatic changelog update

Restore Leviathan's 80 pop cap (#21281)

Un-revert IPlayerManager refactor (#21244)

Update engine to v172.0.0 (#21288)

Bandaid tests (#21292)

rename the rocks (#21275)

Make crystals noRot (#21279)

IDK might be better. Ideally the anchoring would be offset 0-0 but this is the world we live in atm.

Fix nukies sound not played  (#21268)

* Play sound and sending greeting message works for nukies now!!!!!

* oops

* silly change

Automatic changelog update

Fix hijack objective (#21241)

* Fix hijack

* Max difficulty

Remove GridModifiedEvent (#21291)

Update submodule to 173.0.0 (#21296)

Fix namespace error (#21298)

Update yaml sequence option in editorconfig (#21297)

Fix namespace (#21299)

fix cburn bag issue, make new bag entity for them and filled bag entity (#21295)

Health analyzer UI improve (#17280)

Automatic changelog update

User accessible playtime (#21242)

Co-authored-by: metalgearsloth <[email protected]>

Automatic changelog update

Moves cloning comp & cloning event to shared (#21253)

Generalizes solution overflow & slightly increases space lube yield (#21094)

* generalize SolutionSpikeOverflowEvent

* let reactions overflow

* spacelube: 3 -> 5

* restore TryMixAndOverflow threshold cap

Automatic changelog update

Move ActorComponent to shared (#21293)

Update engine to v174.0.0 (#21311)

Fix planet command help message (#21312)

Wearable bee plush (#20623)

* add

* fix

* temporary change, needs fixing

* mayb fix

* actually fix FR

* yes

Automatic changelog update

remove pulse rifle from ert medic (#21310)

Content audio (#20862)

Automatic changelog update

Update submodule to 175.0.0 (#21318)

Revert "Update submodule to 175.0.0 (#21318)" (#21319)

Atomic bomb add uranium  (#21143)

* fix: Incendiary bullets no longer deal cold, acid, or shock damage that ignores all armor.

* Atomic bomb

Action bugfixes (#21321)

Disable OOC during round (#21323)

Fix PDA notifications when creating a news entry using the Mass-Media console. (#21320)

Automatic changelog update

Update belt.yml (#21317)

changes the chief engineer's belt to remove the lv wires (they take up a lot of space and are easy to get anyways) in exchange for a holofan, a t-ray, and a gas analyzer (first time coding ever this might have to be edited)

New foam sprites (edge sprites) (#21308)

* New foam sprites (icon smoothing)

* changed to edge sprites for foam

* fix

* edges for metal foams

* fix

Fix bola stam damage, bring back old construction requirements (#21340)

Automatic changelog update

Added thermal insulation to flannel jackets (#21273)

Automatic changelog update

Space Asshole Gear (#21243)

* Add Space Asshole Coat

* Add sledgehammer

* Adjust sledgehammer damage values

* Add copyright string to sledgehammer

Fix broken slot highlight in midnight theme. (#21331)

* removed old ensurecomps, stubs

removed dead code leads

removed redundant ensurecomps

sync

sync

no more squiggles..

last build error

updated maps for testing

some issue with receiving arrivals setup

networkpayload refactor. TODO: accurate timings

timings accurate. TODO: backport old bugfix

all set?

cleaned up source. TODO: diff arrivals methods

cleaned component. TODO: escape polish, docs

first documentation pass

escape timers work

no more magic numbers

removed dead code leads

textscreen documentation

remove redundant ensurecomps

* sync

* new shuttletimer sprite/offset

* sync

* sync

* sync

* sync

* sync

* builds

* sync

* sync

* sync

* offset adjustments

* timer pattern implemented

* arrivals timer system seems to work

* sync

* sync

* sync

* sync

* sync

* sync

* sync

* sync

* sync

* sync

* implements shuttletimers

* centcomm timers

* set color to tg 1097fb

* textscreen -> signalscreen, shuttletimer -> screen

* move screens out of timer.yml

* pruned unused properties/imports

* license+copyright for screen.rsi

* forgor change signaltimer event handler doc

* roundstart arrivals ftl logic

* block signaltimer screentext updates during timing

* merged robust 185

* centcomm carpet uid collision PLEASE MERGE MY PR

* remove arrivalssystem entitymanager dependency

* refactored magic strings, added roundend getters

* specific vgstation sprite commit licensing

---------

Fix master (#22757)

CVar for custom name in client-side ahelp menu. (#22069)

* the grinch will ruin christmas

* comments here, comments there, comments should not be a thing :godo:

* Unsubscribe from CVar

* rename cvar to be clearer.

* Change switch to if statement.

Origin Station Update 19.12.2023( janitorial service lights) (#22756)

Fix item size misinterpretation (#22711)

* Fix item size misinterpretation

* We do this instead

Automatic changelog update

Update engine to v194.0.1 (#22760)

Fix item cabinet's visual state desyncing when toggled by a different client in view (#22759)

Fix item cabinet's visual state desyncing when opened by a different client in view

Stop AtmosphereSystem from logging errors if an atmosphere gets deleted. (#22761)

Stop AtmosphereSystem from logging errors if a atmosphere gets deleted.

Toy sword now specifies BaseItem as parent (#22746)

Make airlocks able to be broken down (still strong) and modify a damage container to make more sense (#22764)

airlog and damage modifier set

Make ethylredoxrazine effective at curing drunkness (#22763)

Automatic changelog update

Unbreak the Geneva Conventions (#22741)

Unbreak the Geneva Convention

Automatic changelog update

New plant (#22704)

New plant

Automatic changelog update

Fix shuttle loading error (#22767)

Update engine to v194.0.2 (#22769)

Fix index out of range exception in atmosphere system (#22770)

marathon update (#22772)

* marathon update

* light

Improve gas analyzer interface (#22779)

Automatic changelog update

Reduce frezon price (#22784)

50 mols of frezon can be made from one mol of tritium, and so without
adjusting the price pretty ridiculous sums of money can be made in
cargo.

I considered reducing the amount of frezon producible, but all of the
atmos players that I surveyed prefered a price decrease instead of a
yield decrease, so give them what they want.

ports deltastation shuttle from ss13, assigned to fland installation (#22776)

* gogoogsf

* deltanedas has been banned from the repo

* double banned

Automatic changelog update

CentCom Agent Suit (#22700)

* added suit

* added suit

* tweaked monkey suit

Added CentCom clipboard, folder and added a normal green folder. (#22693)

* added

* pen touch up

* fixed conflict?

* whatever i dont want credits

Automatic changelog update

Fix ghosts following a moving entity causing them to be offset (#22783)

Fixes #14220

Because the entity they start following is moving, the physics system gives the follower opposing velocity to counteract, at the time the parent change happens. This happens *after* the follower system tries to clear the follower's velocity, so the follower gets some velocity that will still move them a bit off-center.

Fix is easy enough, just reset velocity *after* reparenting, not before.

Automatic changelog update

put new centcom outfit in centdrobe for easy admin shits (#22786)

webedit ops

Reduce absolute temperature tolerance (#22782)

MinimumTemperatureDeltaToConsider sets the minimum temperature
difference for a heat capacity calculation to be run. The problem is
that when heating up large quantities of gas (e.g. with a heater), a
small dT becomes an even smaller dT when running DivideInto(). This
means that small changes in temperature are completely ignored.

fixed nocturine locale (#22737)

* removed nocturine from the uplink catalog

* fixed nocturine locale, added back to catalog for 6tc

fix: ExtensionCableSystem to be consistent (#22745)

* fix: Use manhattan distance for extension cable system

* fix: Changed my mind

Add coal distribution to progen (#22755)

* Add coal distribution to progen

* Add sprite

---------

Co-authored-by: Jeff <[email protected]>

Automatic changelog update

centcomm update (#22788)

Add nitrous oxide synthesis reaction (#22774)

Co-authored-by: whateverusername0 <whateveremail>
Co-authored-by: Kevin Zheng <[email protected]>

Automatic changelog update

Add nitrous oxide decomposition reaction (#22738)

Co-authored-by: whateverusername0 <whateveremail>
Co-authored-by: Kevin Zheng <[email protected]>

Automatic changelog update

Structural Balancing Pass (#22790)

* new structural type

* riveted wall stronk

* balance structural items

Automatic changelog update

Rename Miasma to Ammonia (#22791)

* Rename Miasma to Ammonia

* Namespace changes

* Map change????? why

Automatic changelog update

remove serialized rot from emergency meta.yml (#22793)

remove rot

reorganize emergency delta power structure (#22794)

fixe

bagel update (#22795)

lox update (#22796)

Updated (most) medipen sprites (#22789)

* changed sprites

* desaturated a bit

Automatic changelog update

Resprited carpet sprites (#22674)

Updated carpet sprites

Automatic changelog update

add Fresium, a chillingly complex chemical to prank your friends with (#22527)

* everything

* tweakeroo

* maintspill

* some balancing and tweaking

* adds ice tags and gives it to ice crust

* fix code because im smart im the smart guy yeah that's me

* yeah

* oops

* do you wanna try that again

* conserve matter

* im rather smart

Automatic changelog update

Raise cryo metabolism min temperature (#22785)

Many people have been running into issues cooling bodies to the current
temperature. Make it a bit easier by raising the max temperature.

This is the temperature that the body has to change to in order to
metabolize the drug, so in practice cryo has to cool lower than this in
order to actually get the body to this temperature.

Resprites energy sword and double energy sword (#22797)

* Removes old inhand visuals from e_sword.rsi and its meta.json

* Adds new visuals with a longer blade for the e sword

* Makes e sword use its new sprites and modifies other energy weapons prototypes to keep using their own inhands

* Makes the toy sword use the old less scary e sword sprites (and gives it BaseItem parent because I thought I broke something when i couldnt pick it up)

* Removes old desword sprites and modifies meta.json

* Temporarily removes esword blade sprites

* Adds back esword sprites after modifying them to flash instead of shimmer

* Adds new desword inhand sprites and modifies meta.json and entity prototype to use them

* Moves desword sprites back to its own folder from inhands_64x after a supposed prefix conflict

* Removes blade inhands

* Adds back blade inhands

* Moves all inhand sprites to their own inhand folders related to the items. Removes inhands_64x folder

Fix right click not showing the context menu in AHelps, players tab and objects tab (#22798)

* Fix right clicks in AHelp window

* Fix player tab right click

* Fix objects tab right click

Automatic changelog update

Add missing admin changelog for #22798 (#22801)

Change SpawnerSystem to use SpawnAtPosition instead of Spawn (#22800)

borgs know who is crew now (#22802)

borg see job borg see crew

Automatic changelog update

Gauze Markings 2 - Medical Boogaloo (#22452)

* renamed leg wrap to thigh wrap

* gauze species rework pt. 1

attempt 73

I hate it here please god get me out

* fixing lizard foot wraps part 80

* Attempt 80 to get lizard markings to work

i fucking hate it here

someone help me D:

* attempt 82

im crying please work now

* made gauze eye pads actually tape on

* Handwraps added

* fixed lizard foot wraps (again)

84.

* attempt 83.5

* attempt 84

please work

* added blindfold gauze

* fixed boxerwrap_r

:greenfrog:

* fixed @ubaserB's eye scars

* Revert "fixed @ubaserB's eye scars"

This reverts commit eb364e1e61c03c2b8567fec8c1a5c6c78c9a333c.

* Revert "Revert "fixed @ubaserB's eye scars""

This reverts commit ac1ee343ae2a8adb2569f88b81cc4afc6915f220.

Fireaxe icon resprite (#22805)

rotated icon 45 degrees

Automatic changelog update

Cleanup forensic cleaning (#22715)

* Cleanup forensic cleaning

* move cleandelay to new component; buff syndiesoap

* updated based on feedback

* remove tag

Automatic changelog update

add grav gen lmao (#22810)

remove base agent id from nukie operatives (#22811)

remove base agent id

Automatic changelog update

give service borg syringe so they can mix drinks (#22813)

give syringe so they can mix drinks

Prevent mice from spilling containers. (#22812)

Added component on mouse prototype to prevent spill verb from being added

Automatic changelog update

Fix gas canister random item insertion prediction (#22809)

* Fix gas canister random item insertion prediction

Fix #22652

* Revert Component changes, just rename in prototype

Automatic changelog update

infiltrator update (#22820)

Reimplement smart equipping (#22815)

* Reimplement smart equipping

* inv prediction fix

* oops

Automatic changelog update

Fix for #22516 - mobs can no longer cause clumsy mobs to get hurt on tables (#22684)

Fix for 22516 - mobs can no longer cause other mobs to be bonked against tables.

Automatic changelog update

Uranium Ammo (#22406)

* working on depleted uranium shotgun ammo

* added depleted uranium to more ammo

* Last changes and additions

* Forgot something, theoretically resolved the merge conflict too

* Nerfed the DU munitions, renamed em to uranium because it's not really DU

* made the ammo more expensive, also fixing the crash at the same time

* Fixed the last error, theoretically at least

* Revert "Fixed the last error, theoretically at least"

This reverts commit a875d2ac320478e4cb407564d704d915d0ef158b.

* copyright changes, small sprite changes, last references of depleted uranium removed

* Revert "copyright changes, small sprite changes, last references of depleted uranium removed"

This reverts commit 93a12bf20bc72581a0bdc32a3cdc7d887f50de3f.

* Update meta.json

* Update meta.json

* Update lathe.yml

* Update arsenal.yml

Changelog for PR #22406 (#22824)

Automatic changelog update

Makes sabre sheathe use ItemSlots (#22792)

* added item slot

* fixed filled

* localized verbs

* github check was acting up

Add migration for MiasmaCanister (#22830)

Fix glorfcode for real (#22838)

Fix glorfcode

Convert atmos device events to ref events (#22843)

Change range of 10-sided dice (#22833)

* d10s now roll values from 0 to 9

* Changelog for PR #22406 (#22824)

* Remove meta entry for 10 value state

* Gotta delete the 10 face state or the RSI validator complains

* Attempting to fix invalid state causing tests to fail

* Another, better attempt to fix the test

* Once again

* I am an overcomplicating dingbat

---------

Co-authored-by: Pieter-Jan Briers <[email protected]>

nukie planet update (#22818)

* whole lotta shebang

* no more powercreep

* shot dead

Try fix invalid entities in device networks (#22845)

* Try fix invalid entities in device networks

* more fixes

* a

* fix device merging

Fix a collection enumeration modification exception in ArrivalsSystem (#22839)

Fix collection enumeration

adds embedding + throw damage to cybersun pen (#22822)

cyberpen throw damage

Adds top surgery scar markings to the character creator (#22806)

* Adds top surgery scar markings to the character creator

* Darkens scars and adds new short and long variants

Added ashtrays (#22837)

added

add gambling to cargo (#22842)

* gambling

* fix typos

DumpableComponent on an empty container no longer stops other interactions (#22831)

DumpableComponent does not block the entity from being disposed via InteractOn a DisposalUnit

Fixed issue with the station map UI (#22848)

Fixed issue with dragging the nav map in the station map UI

PARTY HATS YIPPIE (#22850)

* :party:

* a little trolling

Glossary (#22840)

* Added a glossary to the guidebook to help new players understand slang.

:cl: 2013HORSEMEATSCANDAL
- add: What's a Greytide ? The new edition of your employee guidebook now has a glossary !

* added one more definition

Fix various errors/exceptions (#22841)

* Fix entity storage localization

* Fix HumanoidAppearanceComponent resolve

* Fix null reference exceptions

* Fix duplicate key error

* Fix artifact error spam

* actually maybe this is what its meant to do

* Fix entities playing sounds on deletion

Add some clothes to the uniform printer (#22829)

all the clothes (ft. emag)

Add YAML gas reactions (#22803)

* Add YAML gas reactions

* Convert more reactions

* Use enum names

* Convert more names

* Add migration for MiasmaCanister

* Prevent reactants from going negative

* Fix energy conservation, lift energy calculation

* Fix comment

* Comment

* Add rate multiplier

hotfix for party hats  (#22852)

lololo

Reach update (#22854)

* reach update

* lights n shit

It's time to build a barbershop! (#22565)

* barber!

* 5% change to maintenance

Rigged boxing gloves have variant TC costs. (#22851)

Made the rigged boxing gloves have variant TC costs.O[Oi

add latejoin spawn list (prototype for on-station)

comment

a

add missing check

Use ECS prototype-reload events (#22613)

* Use ECS prototype-reload events

* better constructors

* Maybe this fixes tests?

Consistent Absorbent System behavior (#22723)

Use different chatbox placeholder when dependent keys unbound (#22747)

Remove job specific traitor items from vendors (#22867)

Update chapel.yml

Update WizDen's borg definition of crew (#22873)

update borg definition of crew

Check for divide by near zero (#22876)

Doggy Ears  (#22832)

* add content

* sprite update

* goodbuy nose

jaws cant pry bolted doors (#22860)

* jaws cant pry bolted doors valid jaws can

* no valid jaw

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

add saturation to TC inhand sprites (#22870)

change

Anomaly synchronizer buff (#22771)

* Update production.yml

* Update electronics.yml

* Wat

* Update anomaly_sync.yml

* Update anomaly_sync.yml

New sprites for books on bookshelves in order to look less sad. (#22874)

Changed sprites for books on bookshelves, added one missing sprite

Drug overlay shader rework - a little more motion-sickness friendly, a little less shonky (#22872)

* reworks the drug overlay effect to be less motion-sickness inducing and a bit less shonky

* UNAUTHORIZED fucking THING. DESTROY it immediately

* further tweaks - adds another gradient to control the color effect too

Cargo request plasma canister locale (#22858)

* name and desc removal

* locale

* shouldnt have touch that for now

Vial Drinking (#22886)

vial drink

Corner Clothing UI (#22883)

* Corner clothing (save point)

* IT WORKS. YIPPEE

* the last of it

* template rejigs

Move HUD options to general options tab (#22884)

Add a bottle of water to the survival box (#22881)

* BO'OH'O'WA'ER

* smallbottle

* extendedbox

Add Chef's Belt (#22868)

* Add Chef's Belt

* Reduce contents in filled belt to just s&p

---------

Co-authored-by: Jeff <[email protected]>

temporarily override WizDen admin names (#22878)

update global WizDen cvars

Correct spelling mistakes for daily tips (#22893)

Update tips.yml

Fixes GLES2 crashing when compiling the drug shader (#22899)

fixes drug shader not compiling in gles2 and also applies DRY

Fix accidental plasma burn nerf (#22894)

fixes drug shader in compatibility mode FOR REAL THIS TIME (#22903)

fixes drug shader FOR REAL THIS TIME

Update Credits (#22906)

Co-authored-by: PJBot <[email protected]>

fix cargo backpack inhand sprite (#22888)

Update inhand-right.png

Adds a vscode launch option for starting the client in the compatibility renderer (#22904)

adds a vscode launch option to start the client with the compatibility renderer

Clamp after AdjustMoles() (#22907)

Clamping is needed because x - x can be negative with floating point
numbers. If we don't clamp here, the caller always has to call
GetMoles(), clamp, then SetMoles(), which makes this function not very
useful.

Fix missing pipe on barratry (#22889)

* Update barratry.yml

* Revert "Update barratry.yml"

This reverts commit c8bbaae930c4129a45c65ddbdf003f4378716e41.

* Update barratry.yml

Added Santa's hardsuit and helmet. (#22898)

* Added Santa's hardsuit and helmet.

* Fixed missing files

Fix nettle seeds inhand sprite (#22891)

fix

Power monitoring console overhaul (#20927)

* Prototyping whole station wire map

* More prototyping

* Added icons for the different power distributors and toggleable cable displays

* Power cable layouts are now only sent to the client when the power monitor is open

* UI prototyping

* Power monitors can now see the sprites of distant entities, long entity names are truncated

* Updated how network devices are added to the player's PVS

* More feature prototypes

* Added source / load symbols

* Final prototype! Time to actually code it properly...

* Start of code clean up

* Continuing code clean up

* Fixed UI appearance

* Code clean up complete

* Removed unnecessary changes

* Updated how power values are calculated, added UI warnings for power sinks and power net checks

* Updated how power values are calculated again, added support for portable generators

* Removed unnecessary files

* Map beacons start toggled off, console map now works outside the station, fixed substation icon

* Made some of Sloth's requested changes. Power distributors don't blink anymore, unless selected

* Moved a number of static variables in PowerMonitoringHelper to sensible places in the main files. Added a NavMapTrackableComponent so that you can specify how individual entities appear on the navmap

* Updated the colors/positions of HV cables and SMESes to improve contrast

* Fixed SMES color in map legend

* Partially fixed auto-scrolling on device selection, made sublists alphabetical

* Changed how auto-scroll is handled

* Changed the font color of the console warning messages

* Reduced the font size of beacon labels

* Added the station name to the console

* Organized references

* Removed unwanted changes to RobustToolbox

* Fix merge conflict

* Fix merge conflict, maybe

* Fix merge conflict

* Updated outdated reference

* Fixed portable_generator.yml

* Implemented a number of requested changes, move bit masks to a shared component

* Navigate listings via the navmap

* First attempt at improving efficiency

* Second attempt at optimization, entity grouping added for solar panels

* Finished solar panel entity joining

* Finished major revisions, code clean up needed

* Finializing optimizations

* Made requested changes

* Bug fix, removed obsolete code

* Bug fixes

* Bug fixes

* STarted revisions

* Further revisions

* More revision

* Finalizing revisions. Need to make RT PR

* Code tidying

* More code tidying

* Trying to avoid merge conflicts

* Trying to avoid merge conflicts

* Removed use of PVS

* Improving efficiency

* Addressed a bunch of outstanding issues

* Clear old data on console refresh

* UI adjustments

* Made node comparison more robust. More devices can be combined into one entry

* Added missing component 'dirty'

ItemToggle system expansion (#22369)

* Fixed EnergySword and variants having incorrect sound on attacking when in their Off state.

* Removed the unused ItemToggle from the serverside and created a new shared ItemToggleComponent and System, now used for the e-blade family of items. Also added e-blade hum and swing sounds. Thanks Sloth for the initial code!

* Changing Stunbaton system to include the itemToggle system.

* Adapted changes that have come up in the meantime.

* Changed damagespecifier to be serializable and autoNetworked in melee weapon components. Fixes a bug that makes it so client-side, damage values are not updated on toggle.

* Made the ItemToggleSystem have both a shared and a server component. Ported the Stun Baton and Stun Prod to the new toggleable system. Added a failure to activate noise component.

* Ported the welders to the new item toggle system. Set it so deactivated damage and item size default to the item's regular options.

* Removed unnecessary usings.

* Small modification to the stun prod.

* Made the integration test use the new method to turn the welders on.

* Fixed a few testing issues, applied a few changes requested by Delta.

* Updated Stunbaton code for consistentcy when it comes to calling the itemToggle component.

* Removed a redundant return; as per Delta.
Made examining the stun baton for charge rely on the battery component instead.

* Removed the welder visualizer system, now using the generic one. Removed some unused usings. Removed the welder visuals and layers.
Ported lighters to the new system.
Added zippi (sic) lighters.

* Renamed variables used to make them less generic.

* Simplified the light update code.

* Fixed the unit test to use the itemToggle system for welders now.

* Made the name shorter. I can't tell if the welding damage when interacted with actually does anything though. I can't figure out how to trigger it.

* Fixed some YML issues.

* Added a client side item toggle system just to make the shared code run on local UID's too.

* Fixed some more Yaml.

* Made the Zippi lighter have its own parent item, so it doesnt' conflict with the random pattern on the regular lighter.

* Made the zippi lighter its own in-hand sprites.

* Added a summary for the activated property in itemtoggle component.

* Fixed a typo in the itemToggle Component.

* Fixed a typo.

* Added to the remarks for the ItemToggleComponent.

* Fixed up the lighter yaml to make it use a generic term instead of a toggle layer enum for the random skin.

* Fixed a bug I introduced accidentally with the humming sound.

* Removed 2 unnecessary events from the ItemToggleSystem and component.

* Fixed a bug by only making the server run the item activation code, since the client cannot predict whether or not the activation will be cancelled.

* Cleaned up some names and functions getting called.

* Renamed a couple of variables and removed the explicit datafields from the component. Removed "activated: false" from yml since they're already deactivated by default.

* Added an IsActivated function, used it in the welder and stun baton systems code.
Refactored welder code to remove the WelderToggle event, now using the ItemToggleActivatedEvent instead for eye protection check.

* Fixed a typo. Added some comments.

* Split the ItemToggle into smaller components.
Changed the items that used the toggle system to work with the smaller components.
Made the mirror shield reflect energy shots with a 95% chance.

* Fixed the namespaces for the server components and whatnot.

* Fixed a doubled deactivation sound from using activated wieldable items (like the double Esword).
Fixed wrong yml with the e-dagger.
Fixed the disarm malus code.

* Added the zippo lighter to the detective's trench coat.

* Removed the default hit sound for the double e-sword since it was unnecessary.

* Changed e-sword damage numbers to be in line with the changes made by Emisse.

* Made no damage sounds be autoNetworked, so it changes can be changed on activation/deactivation of items.
Made Welders and Eswords sound like themselves but quieter if they hit for 0 damage, instead of taps.
You can choose what sound to play when a weapon does 0 damage when activated now.
Fixed a bug with swing sounds.

* Typo.

* Fixed a bug where the welder would blind you if you used it while it was off.

* Created a single abstract method called when an item has completed its toggle.

* Update Content.Server/Eye/Blinding/EyeProtection/EyeProtectionSystem.cs

Co-authored-by: metalgearsloth <[email protected]>

* Fixed a comment.

* Made most component variables readOnly for ItemToggle. There is no need to be able to change them from within the variable viewer.

* Removed trailing white spaces.

* Made the Use a field instead of a property in the itemToggleActivation/Deactivation attempt events.

* Small fixes.

* Removed ForceToggle, just use the toggle method instead.

* Fixed a bug with item sharpness staying even after getting deactivated, if the item gained sharpness that way (esword).

* Used ProtoId in the welder component.

* Made damage NetSerializable as well.

* Added networking and data fields to a couple of components.

* Made component variables autonetworked. Added some comments.

* Moved the events that modify item components on toggle to events, handled (where possible) in the systems linked to said components.

* Made all the component variables readWrite again.

* Added the component get to the WelderStatus.

* Added a predictable bool to the item toggle component.

* Replaced the Activated/Deactivated events with ToggleDone, with an Activated argument. Used that to simplify some systems.

* Added a reflect update raise event.

* Removed the Zippo changes. To add in a later PR.

* Removed the zippo from meta.json too.

* Small fix.

* Another small fix.

* Fixed the wieldable system thing in ItemToggle.

---------

Co-authored-by: metalgearsloth <[email protected]>

Core update (#22909)

add

Ion law visuals (#22908)

Fixed PaperSystem bugs (#22896)

bagel update (#22910)

New Thief minor antagonist  (#21520)

* start working

* add right-click thief antagins
some architecture restruct

* add meh thief greeting audio

* add thief subgamemode to Traitors gamemode

* add late join thief (not tested yet)
add briefing

* add pacifism

* add Steal tasks to thief

* fix crash thief+traitor on person

* add new condition: collection steal

* add tracking of succes collection objective

* add stamp collection target
remove some boring steal target
add check pulling entity to collection target

* finalize first 2 group objective

* start merging stealing objective systems

* merging

* finish merging. Now traitor steal objective work better

* we don't check the items of pullable sentient entity

* clear naming, enable thief signle item objective start

* objective pack add

* finish with steal item objectives

* convert string to ProtoId<>

* some clean up

* add thieves to revolution game mode

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl

Co-authored-by: Flareguy <[email protected]>

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl

Co-authored-by: Flareguy <[email protected]>

* update pacifism: fix crashing, monkey-thief without pacified

* adaptive animal briefing, cleaning locales

* add structure steal objectives

* remove RCD target

* add thiefs to manifest, but bug with traitor duplications

* add escape objective

* add chat briefing

* setup animal objective group system

* add animal steal objectives

* add animal objectives notroleconditions

* add morty

* now thief mode has a chance of not launching Now there are a random number of thieves per round from 1 to 3

* 6 hours of trying to fix duplicate tasks. Failure

* added thief pinpointer (buggy)

* start thief backpack UI work

* revert pinpointer for scope reason

* UI continue work

* add thief starter kits content

* remove ERP kit :trollface:

* finally! giving starting items to thief. Now it playable, but still need more work

* clean up

* fix

* fox

* add merged items into thief
new Starting Kit (buggy)

* fix YES antag menu

* objection tweaks

* remove hearts objective, working on spawning things from toolbox

* smug

* fixes

* add race specifier objective condition LAMPS

* meh

* fix fix fix

* the alive

* Adding stamps

* Update backpack.ftl

* Revert1

* Revert ftl

* add voice mask to communicator kit

* Update Resources/Locale/en-US/administration/antag.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/objectives/conditions/steal.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/prototypes/roles/antags.ftl

Co-authored-by: Colin-Tel <[email protected]>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <[email protected]>

* update

* fix

* more reusable function, add documentation

* fix doc

* faint fixes

---------

Co-authored-by: Flareguy <[email protected]>
Co-authored-by: Colin-Tel <[email protected]>

New boxstation emergency shuttle (#22912)

new boxstation emergency shuttle (omega has the old one now also)

maybe no nullables in stationSpawninComp

use discard, dont remove latejoins brother

fix value check

dont remove spawnpoint when its the last one

add ninja borg laws (#22778)

add ninja laws

Co-authored-by: deltanedas <@deltanedas:kde.org>

Add maximum atmos temperature limit (#22882)

* Add Tmax

* Increase Tmax

Adds sound to Smoke Grenades (#22866)

* New smoke grenade sound

Very new to PR's and stuff, sorry

* Adds sound to smoke grenades and tear gas grenades on trigger

* Update attributions.yml

Deltanadas asked for it

* Update grenades.yml

* Change sound to an unlicenced sound

* Update attributions.yml

Adding intermediate industrial chems (#22614)

* added hydroxide, benzene, and changed the phenol recipe

* I forgot to commit a bunch of changes, whoopsie doopsie

* Update chemicals.yml

made an error while resolving conflicts

* Update chemicals.yml

same here

* Update flavor-profiles.ftl

* Update chemicals.yml

* Update chemicals.ftl

* Update chemicals.ftl

* Update chemicals.yml

* Update medicine.yml

* Update chemicals.yml

* Update medicine.yml

* guh

* Revert "guh"

This reverts commit a0e5dfd4182d1a407bffd21d0eaa36355023993c.

* final touches and fixes

* fixed all the issues, for realsies

* thefuck

* Revert " thefuck"

This reverts commit 22068cb73d9902ccf81d065d92d078f423c67aea.

* maybe this fix?

* Revert " maybe this fix?"

This reverts commit 4bfd534f73a956e595c809ce77e52819ed142f2b.

* Update chemicals.yml

* Update chemicals.yml

* Update chemicals.yml

Trying to figure out my issue

* Update chemicals.yml

* Update chemicals.yml

* Update chemicals.yml

* Disabled the ethanol breakdown, fixing the issue

* Revert "Update chemicals.yml"

This reverts commit 1239512c0b7df5eab106bf64ec2af38185f2f016.

* Revert "Disabled the ethanol breakdown, fixing the issue"

This reverts commit 96190c967d22b1422d144e4211579f5af7bf9a09.

* Emo suggested I'd do this

* Update chemicals.yml

* made temps needed for the uhh hydroxide and benzene

* Update chemicals.yml

* removed SugarBreakdown

Minor alert locale (#22926)

locale

Janitor equipment slot locale, vehicle slot (Keys) locale (#22859)

* stuff

* fixes

* vehicle locale

Nerfed bloodsuckers- They can no longer tank some incoming damage types by chugging blood (#22880)

Nerfed bloodsuckers- Can no longer tank some damage types by chugging blood

Co-authored-by: Warentan <[email protected]>

Increase cigarette count in cig packs (#22919)

add

Central Command Access, Doors, and Locked Vendor (#22924)

* CentComm Acess and Doors

* Central Command Access Windoor

nukie medic chest rig explosion res buff (#22923)

leave my beaker alone

Co-authored-by: deltanedas <@deltanedas:kde.org>

remove max item size from storage implant (#22928)

fix fireaxe rotation (#22930)

* Update fireaxe.yml

* i am so dumb

Janibelt whitelist fix and update (#21058)

* Update belts.yml

added LightReplacer and JanicartKeys tags to the Jani belt

* removed LightReplacer from whitelist but added Plunger

adding LightReplacer to the Whitelist doesn't get rid of the error msg.

Now it just adds Plunger & JanicartKeys (both tags already exist)

* added spray to botany belt and syringe to med belt

* fixed things, i hope

* added self tag to LightReplacer

* added LightReplacer to the taglist

* lightreplacer tag does exist now

Add a 'Copy' button to the fax UI (#22027)

* Add a 'Copy' button to the fax UI

* Add ValidatePrototypeId attribute

Co-authored-by: Kara <[email protected]>

---------

Co-authored-by: Kara <[email protected]>

add limits to steal objectives (#22672)

* add ObjectiveLimit comp/system

* give ian and disk limits

* all

* up limit

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

Make some items goodlooking in inventory (rotate) (#22935)

comit

exterminator midround minor antag (#19946)

* terminator locale

* terminate objective

* terminator components and shared system

* terminator roles rules and system

* terminator events

* skeleton recolour

* terminator and endoskeleton

* ghost role spawn

* damage modifier sets

* :trollface:

* :trollface:

* add antag prototype

* ghost role locale

* skynet

* :trollface:

* :trollface:

* :trollface:

* add endoskeleton body prototype

* :trollface:

* :trollface:

* smite locale

* implement terminate smite

* :trollface:

* :trollface:

* implement PopupBehavior

* endoskeleton transform popup

* move stuff from shared to server since nothing actually used it

* recolour everything

* update parts

* :trollface:

* :trollface:

* ok fire was using the damage set, back to 1.0

* tweak

* :trollface:

* :trollface:

* simplemob ops

* 1 rule per pro

* :trollface:

* :trollface:

* update some sprites

* structural damage

* :trollface:

* :trollface:

* Revert "update some sprites"

This reverts commit 459196c6a8942c5412885d5fe2f1a83a48408ddc.

* offbrand, add die objective to maybe remove fear of murderbone

* add shut down objective to the list

* fix ghost role

* fix control mob

* :trollface:

* :trollface:

* please

* naming

* code changes for GenericAntag terminator

* yml changes for GenericAntag terminator

* :trollface:

* moved kill objective override to an objective component

* use kill objective override

* fix

* oh

* locale changes

* change burn to heat for skin melting gib

* change some endoskeleton stuff

* pro

* i already did this dementia ops

* objective

* fix

* pro

* swap out full sprite

* update parts

* forgor

* fix mind transfer

* type

* endoskeleton has 500 mass

* evil

* fishops

* warops

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

Thief pacifist (#22932)

* pac

* to settings

* ensuuure me princess

* Update Content.Server/GameTicking/Rules/Components/ThiefRuleComponent.cs

Co-authored-by: faint <[email protected]>

* Update Content.Server/GameTicking/Rules/ThiefRuleSystem.cs

Co-authored-by: faint <[email protected]>

---------

Co-authored-by: faint <[email protected]>

Make some prototypes use frozen collections (#22576)

* Make some prototypes use frozen collections

* poke tests

* Remove frozen dictionary enumeration

Fix closet skeletons spawning in nullspace (#22942)

Revert "Add YAML gas reactions (#22803)" (#22939)

This reverts commit 054321d2c2c17eb55a1640150131c61c29a3eb2b.

Co-authored-by: Kevin Zheng <[email protected]>

give plasma half of co2 air alarm threshold (#22938)

Co-authored-by: deltanedas <@deltanedas:kde.org>

Automatic holiday sprites (#22929)

add round time to the ahelp relay (#22937)

* Basic roundtime implementation

* Forgot to clamp the length checker

Make cargo arbitrage test ignore gambling crate (#22943)

Fix pulling mispredicts (#22941)

* Fix pulling mispredicts

* Make behaviour consistent

* Good ol terminating entities

Add sprite movement states (#22940)

* Add sprite movement states

Did it for borgs for reference for future implementations.

* Fix

* Fix prediction issue

* review

Atmos crab pet: Tropico! (#22773)

* tropico mob fully functional, adjusted base crab mob

* FINALLY YES I GOT THE MAPS COMMITTED

* origin fix hopefully

* removed ghost role

* undid map changes, pulled from current master

* tropico is no longer communist

change the restart vote to have no effect with admins online (#22945)

* Change the vote and cvar

* Only denies successful votes

* Add comments because I'm a good coder, I swear

* I added a space to the first line of ccvars it's so over

centcomm update (#22944)

nukieplanet update (#22946)

reduce nuke required floor radius variable (#22947)

Update NukeComponent.cs

bagel update (#22948)

Adds gingerbread men to the game (#22927)

adds gingerbread men to the game

Thief description & grammar fixes (#22951)

* Thief description & grammar fixes

* sad

* cant do that sad

Botany yaml fixing (#22865)

* 1

* Update chapel.yml

* Revert "Update chapel.yml"

This reverts commit 3e297a1b20254823a088af2aa3d179184c377638.

* add to seeds vendor

Fix multi-ghosts (#22964)

* Fix multi-ghosts

* Fix mind visits

add ninja borg laws (#22778)

add ninja laws

Co-authored-by: deltanedas <@deltanedas:kde.org>

Add maximum atmos temperature limit (#22882)

* Add Tmax

* Increase Tmax

Adds sound to Smoke Grenades (#22866)

* New smoke grenade sound

Very new to PR's and stuff, sorry

* Adds sound to smoke grenades and tear gas grenades on trigger

* Update attributions.yml

Deltanadas asked for it

* Update grenades.yml

* Change sound to an unlicenced sound

* Update attributions.yml

Adding intermediate industrial chems (#22614)

* added hydroxide, benzene, and ch…
qwerltaz pushed a commit to qwerltaz/space-station-14 that referenced this pull request Dec 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants