Commit Graph

42 Commits

Author SHA1 Message Date
nikthechampiongr
04d5f5b5ad Fix RA0032 (#32514) 2025-07-20 14:22:41 +10:00
VMSolidus
edf9b969f3 Pretty Big Atmos Fixes PR (#2486)
# Description

This PR ports some fixes to the order of operations for air pressure
processing, which will help fix issues with temperature not correctly
diffusing, as well as errors in the order of operations processing that
made it so that Space Wind was receiving wildly incorrect pressure
values.

Additionally, this fixes a math error that made it so that the diagonal
airflows were contributing 41% more to airflows, making diagonal motion
unusually harsh. There's still two more bugs I need to fix though.
2025-07-20 13:21:40 +10:00
VMSolidus
af499da8af Last Bugfixes For Space Wind (#2089)
# Description

This PR fixes all remaining bugs with Space Wind, while providing
extremely significant performance improvements by way of aggressive
early exits, and also completely reworking how pressure moved entities
are tracked(The server now caches entities under active air movements).
I haven't profiled it yet, but the performance improvements are
extremely noticeable on the machine I'm running in comparison to before,
which is particularly noteworthy since previous versions of space wind
caused significant frame drops in testing on my monster rig. While this
new update to space wind straight up doesn't even budge the tickrate on
my machine anymore.

I had to also rip out some of Monstermos' Guts, and deprecate the
tileripping system. In the future, Tile-ripping will be handled by MAS.
Also, MAS outright no longer requires Monstermos to work, and can
operate entirely off of the much cheaper LINDA system. However, while
LINDA is cheaper, Monstermos is needed for handling "Extra violent air".

Eventually I can do away with Monstermos entirely, and have it replaced
with an airflow system that outright does not require pathfinding
algorithms.

# Changelog

🆑
- fix: Fixed a bug where items thrown by space wind could remain in air
for as long as 500 seconds. Items thrown by space wind can now remain in
the air for a maximum of 2 seconds past the last time they were thrown.
- fix: DRAMATICALLY IMPROVED SPACE WIND PERFORMANCE.
- tweak: ShowAtmos command now shows vectors representing the exact
direction space wind at a given tile is trying to throw objects! The
length of the lines shown directly correspond to how powerful the flow
of air is at that tile. Shorter lines = shorter throws. Longer lines =
more powerful throws. These are also no longer restricted to compass
directions, and can point in arbitrarily any direction on a circle.
- tweak: Space Wind now no longer has Monstermos as a hard requirement.
It'll be as weak as a toddler without it, but if you're running your
server on a toaster, you can turn off Monstermos and still have working
space wind.
- tweak: Wreckages in space are now never airtight. I'm sorry, but this
was basically the cost I had to pay in exchange for making Atmos no
longer even on the top 20 systems for server tickrate cost.

(cherry picked from commit 2fcc806423a259fd75977b78350c2232a823739b)
2025-03-29 16:45:43 +03:00
Spatison
a3a8c195e5 Upstream 09.03-15.03 (#349)
* Trait Cost Balancing (#1906)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Makes a lot of disabilities give more points (based off community and
personal opinions), and makes some very strong traits cost more points.

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- tweak: Narcolepsy gives 6 points instead of 2
- tweak: Pacifist gives 8 points instead of 6
- tweak: Muted gives 6 points instead of 4
- tweak: Sluggish gives 5 points instead of 3
- tweak: Snail Paced gives 8 points instead of 5
- tweak: Blood Deficiency gives 6 points instead of 5
- tweak: Hemophilia gives 4 points instead of 2
- tweak: Clumsy gives 4 points instead of 1
- tweak: Bad knees gives 5 points instead of 3
- tweak: Will to live costs 3 points instead of 1
- tweak: Tenacity costs 4 points instead of 3
- tweak: Steadfast costs 6 points instead of 4
- tweak: Bionic Arm costs 10 points instead of 8
- tweak: Bionic leg costs 8 points instead of 6

---------

Signed-off-by: EctoplasmIsGood <109397347+EctoplasmIsGood@users.noreply.github.com>

(cherry picked from commit d38eb0b536a34475feefa8253b9a3ed128e57f4d)

* Automatic Changelog Update (#1906)

(cherry picked from commit 8a2626ef6b62508a6479525555522b516e090feb)

* Lightbehaviour Bug Fix (#1908)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Description.

Fix bug affecting torches, flares and glowsticks that made them not emit
light when turned on as described by [this
issue.](https://github.com/Simple-Station/Einstein-Engines/issues/1685)

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

https://github.com/user-attachments/assets/799631e0-bcf1-4008-9683-3d0ba7c02a24

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- fix: Torches, flares, glowsticks now able to emit light again

(cherry picked from commit b25e3447148948ee658d1b81dac0d1e076641fcc)

* Automatic Changelog Update (#1908)

(cherry picked from commit 83fbb13c3aab8fedb1e56f73b949ac1a458eee41)

* Mining Shuttle & Dignitary Stuff for Arena (#1893)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

<p>
Adds the mining dock & mining shuttle console for travel to lavaland.
Adds NTR office with the NTR locker mapped. Also adds the BSO locker to
bridge without an office cause BSO is not worthy.
Map render under images. NTR office is south east of brig. Just has a
desk and a bed. No fax as the NTR already has their own fax, I feel like
having a second fax would increase where the NTR would need to look for
faxes.
Referring to the shuttle that takes one to lavaland as mining shuttle,
not the pathfinder.
</p>

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

![Arena](https://github.com/user-attachments/assets/a9719209-becd-4315-8b57-e0179b8eb8d7)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
no cl no fun

(cherry picked from commit e481e2f182f162b78e22524dfe6988b2135bd32f)

* Automatic Changelog Update (#1893)

(cherry picked from commit f59bd7df32f6942f3b2646c1e3a08ee88343301d)

* Fireplace Construction (#1897)

# Description

Porting - Allow Construction of Fireplaces and Bonfires

Ported from - https://github.com/Goob-Station/Goob-Station/pull/1646

Yeah it's a port of a port. Yes there was sofas, benches and banners,
I've very lazily stolen just the fires. Sofa might be nice but that's
lot more code pinching.

---

# TODO

- [ ] Pray it works

---

# Changelog

🆑
- add: Recipes to build Fireplaces and Bonfires

---------

Signed-off-by: Raikyr0 <Kurohana@hotmail.com.au>
(cherry picked from commit 90485d5a0c49f76950d61e42c3cc596f988dc982)

* Automatic Changelog Update (#1897)

(cherry picked from commit c7327f55f8576267f30a384d4a84fd85f357d52f)

* Terminus (#1881)

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Added a new weapon, the DT-8 "Terminus"
It's a large melee weapon capable of firing a spread of disabler rounds
on alternate fire.
It's an arsenal tech research, and uniquely can only be wielded by onis.

(I'm being bribed to make this)
Also, I had to move the OniComponent.cs file to shared. I'm not sure if
that borked anything but tell me if it does.

(PS. Thank you VMSolidus for helping me make this ten times less
shitcoded.)

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [x] Textures complete
- [x] Add lathe recipe
- [x] Add to research

---

<details><summary><h1>Media</h1></summary>
<p>

!![image](https://github.com/user-attachments/assets/cf02d64a-53a8-4454-9312-010fa92cf597)

</p>
</details>

---

# Changelog

🆑 SolsticeOfTheWinter, OtherPersonPlaceHolder
- add: Added a new weapon for oni security players, the terminus.

---------

Signed-off-by: Solstice <solsticeofthewinter@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit 3fdf1102dc20af7bd724e449808d2d38571e62c2)

* Automatic Changelog Update (#1881)

(cherry picked from commit 9de8ab79e61227620833b88f5c616c63f38c9a86)

* Add RPD and Pipe Stacking (#1857)

# Summary

To add the RPD into the game for both atmos and CE's to use. Introduce
pipe stacking as well since the RPD will introduce better atmos
configuration. Most of the code was ported over from goob LRP. With some
of it being touched up on and adding a bit of quality of life to the
RPD.

This was a PR originally made for goob-mrp but requested to be moved to
EE. Check out the detailed commits here:
https://github.com/Goob-Station/Goob-Station-MRP/pull/96

---

# Description

## RPD
From the original PR made on goob-station the RPD has been ported over.
It is similar to the RCD where you will be able to make
pipes/vents/pumps/mixers quickly. Each dial on the main radial will
bring up specific pipes like ie pipes-> corner, t-shape -cross shape.

The RPD starts out in the CE and Atmos lockers with 50 charges. Each
construction and deconstruction cost 1 charge. There is also one extra
compressed matter in the starting lockers for both CE and Atmos for the
RPD.

You can research the recipe of the RPD with the reverse engineering
machine. The recipe cost of the RPD is a bit more compared to the RCD.

![RPD_UI](https://github.com/user-attachments/assets/ed2fe76b-009a-4081-abe4-7c431f21ab27)

## Pipe Stacking

With the introduction of the RPD, it was fair to check for pipes that
overlapped when making new pipes. But with introducing the code from LRP
goob station it was decided to bring over the pipe stacking feature too.
You can make certain components pipe stackable or allow if you can put
multiple of the same pipe on the same tile. If you want you change a
pipe to be non-stackable by using the component type:
PipeRestrictOverlap

Here's an example of pipe stacking. You can make a simple scrub loob
tighter or keep it normal. The freedom is given.
![pipe-stacking
example](https://github.com/user-attachments/assets/69aa19d4-2ff4-4cee-a2d1-b6709884c6e0)

Here is an extreme example. This compact design creates a ton of frezon.
Obviously, replace the trit miner with an actual burn chamber.

![image](https://github.com/user-attachments/assets/4db7b627-0d3a-4c78-b5a1-8d52551b3127)

## Belt overlay

I decided to add a simple belt overlay sprite to the game for the RPD.

Here's what it looks like outside the belt and inside the belt

![RPD](https://github.com/user-attachments/assets/d599dbed-56d0-42c7-acee-20fa23f04f2c)

## RPD Borg Module

I decided to add experimental RPD that will self-charge. The only way to
get this RPD is through admeme spawn or being a borg. The starting
charge of the Borg module is 25 and will self-charge at the same rate at
10 seconds per charge. I also added an admeme version that charges at 1
second per charge.

Here is what the borg module looks like
![Borg
module](https://github.com/user-attachments/assets/6fd1bcff-fdb7-49ad-a8f5-e4bab86bd8f4)

The borg module can be researched in the t2 industrial branch as the
same research for the RCD module.

![Research-rpd](https://github.com/user-attachments/assets/d325dd3f-eed9-4744-9003-3b7d51387432)

---

# credit
Original RPD PR: https://github.com/Goob-Station/Goob-Station/pull/1203
Original Pipe Stacking PRs:
https://github.com/Goob-Station/Goob-Station/pull/391
https://github.com/Goob-Station/Goob-Station/pull/389
Prevent stacking pipes (#28308) - Original Link is dead.

---

# TODO
- [X] Add RPD
- [X] Add RPD to reverse engineering
- [x] Add toolbelt equipped sprites
- [x] Add Pipe Stacking
- [x] Add an experimental RPD module for engie borgs.

---

# Changelog

🆑
- add: Added RPD, glory to atmosia!
- tweak: RPD now spawns in Atmos and CE lockers
- tweak: Extra compressed matter has been added into both Atmos/CE
lockers for more RPD/RCD uses
- add: You can research RPD with the reverse engineering machine.
- add: A belt overlay sprite to the CE and utility toolbelt.
- add: Pipe Stacking ported over from LRP Goob station. Compress those
frezon factories!
- add: Toolbelt overlay sprite for the RPD.
- add: RPD Borg module researched in t-2 industrial advanced tools.

---------

Co-authored-by: Nathaniel Adams <60526456+Nathaniel-Adams@users.noreply.github.com>

(cherry picked from commit b32710c94628f90e4b2c43796ac3ab81892926f3)

* Automatic Changelog Update (#1857)

(cherry picked from commit 3270ee0327054fd0187cb03756d23a1a84d7916c)

* SS13 Combat Parity Part 0.5: Stun Meta [PREREQUISITE] (#1914)

# Description
Ports Stun Meta from
[/Goob-Station#788](https://github.com/Goob-Station/Goob-Station/pull/788)
Splits stuncrit into knockdown and paralysis, like on 13. knockdown lets
you crawl on the floor, and paralysis is the same as current stamcrit.
The stun baton has been buffed, doing 15 stamina damage per swing, and
40 stamina damage overtime.
This lets you stamcrit someone in two baton swings, but it takes a few
seconds before they actually fall down to the ground. About the same
amount of time as 4 baton swings back to back.

This PR also reverts #809, since I plan on reworking shoving entirely
soon.
(also for my sanity. wouldn't have been able to port stunmeta
otherwise.)

## Condemn Trillions
Required for the rest of the SS13 Combat Parity changes listed
[here](https://discord.com/channels/1218698320155906090/1348171706061033502)

# TODO
* [x] Await merge
* [x] Gaming

# Media

![shitcurity](https://github.com/user-attachments/assets/4f83937f-7eaa-4d6d-a446-4044f9ec0286)

# Changelog
🆑 Eagle

* tweak: Stamina Crit has been split into Knockdown and Paralysis
* tweak: Stun batons now do 15 stamina damage on hit, and 40 over time

(cherry picked from commit b8045750e91b8e43fcf91deaeb49b295a0984cdc)

* Automatic Changelog Update (#1914)

(cherry picked from commit cbadf45b9e1bbb8cbb122a579e9c37a3234d506b)

* Miscellaneous Fixes From White Dream (#1911)

# Description

Ports the following PRs:
https://github.com/WWhiteDreamProject/wwdpublic/pull/271
https://github.com/WWhiteDreamProject/wwdpublic/pull/282
https://github.com/WWhiteDreamProject/wwdpublic/pull/255
https://github.com/WWhiteDreamProject/wwdpublic/pull/254
https://github.com/WWhiteDreamProject/wwdpublic/pull/246
https://github.com/WWhiteDreamProject/wwdpublic/pull/223
https://github.com/WWhiteDreamProject/wwdpublic/pull/220
https://github.com/WWhiteDreamProject/wwdpublic/pull/219
https://github.com/WWhiteDreamProject/wwdpublic/pull/213

This is a rather huge variety of fixes to be honest.

# Changelog

🆑 White Dream
- fix: Fixed airlock opening and closing visuals
- fix: Fixed Weather spamming infinite sounds.
- fix: Cockroaches no longer spam organs when stepped on.
- fix: Fixed the timer on the Return To Round button
- fix: Fixed Return to Round not remembering how long it's been since
you died if you re-enter your body.
- fix: Fixed harpy flight visuals not showing for other people.
- fix: Fixed disabler bolts not going through windows like other kinds
of lasers.
- fix: Fixed Vim Harness being free
- fix: Fixed handcuffs not respecting your arm length.
- fix: Made tending wounds not as message spammy.
- fix: Fixed shuttle windows not preventing you from being electrocuted
by grills under them.

---------

Co-authored-by: vanx <61917534+Vaaankas@users.noreply.github.com>
Co-authored-by: vanx <discord@vanxxxx>
Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>
Co-authored-by: Repo <47093363+Titian3@users.noreply.github.com>

(cherry picked from commit ced8a565a32cfa340140674c073d90a2a6002799)

* Automatic Changelog Update (#1911)

(cherry picked from commit 89f27f4b2f3882ba97132d69f9d6477cea3195d1)

* Faction Clothing Bug Fix (#1917)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Fixed bug that made ClothingAddFactionComponent not add the faction of
the clothing to the mob when the clothing is equipped.

The bug is described in greater detail in [this
issue](https://github.com/Simple-Station/Einstein-Engines/issues/1228).

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

https://github.com/user-attachments/assets/41fe9411-0eac-478d-956c-b094f211f565

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- fix: Fixed bug that made ClothingAddFactionComponent not work.

(cherry picked from commit 639f46a68b84ad6d0655ec318ccc62fa3061c5cd)

* Automatic Changelog Update (#1917)

(cherry picked from commit b4c488af30ad9e21e41b409282aeac1f8ae37c9e)

* Crafting Curtains and Tables No Longer Consumes Entire Stack (#1916)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Stolen from https://github.com/Fansana/floofstation1/pull/152, courtesy
of cynical24. When you craft a curtain or make a table into a _fancy_
table, it doesn't take the entire stack of carpet. This should hopefully
stop me from having to return to the HoP to ask for another 10 carpet.

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [x] general thievery of text (with permission)

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

![curtains](https://github.com/user-attachments/assets/0c960653-311a-40e7-bcbe-53e50d771c63)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- tweak: you don't use the entire stack of carpet now when crafting
colored curtains or fancy tables.

(cherry picked from commit 508dbc35d3576be768122604d39194ee715ab02a)

* Automatic Changelog Update (#1916)

(cherry picked from commit f4641de5073d3cf1ccc54a5599281bb6025149fc)

* Markings From Impstation 2 (#1925)

what the funny title says

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Adds some markings from Impstation (Again, who would have thought it'd
be Impstation again?), ports the merciful IPC wings from Goob LRP, adds
some markings to arachnids, a bunch of markings for Reptilians, and a
new hairstyle.

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [ ] Task
- [x] Completed Task

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑 Diggy
- add: New markings for arachnids, reptilians.
- tweak: Allows IPCs to pick up overlay markings such as the gauze
stuff, Onis can now have the curved horn marking humans can have.

(cherry picked from commit b955652cf18f1a11e7d48206f32c8d3e24e819bd)

* Automatic Changelog Update (#1925)

(cherry picked from commit 78149f74ac386a81b4ecb46679db29c9e5f1946e)

* Fix Vulpkanin Markings (#1894)

# Description

Vulpkanin no longer wear their undergarments "Superman Style"

# Changelog

🆑
- fix: After lengthy retraining, NanoTrasen has taught Vulpkanin that
underwear is meant to be worn inside pants, not outside them.

(cherry picked from commit 190dddf7c59537ffc2781f3d8f7bcb16e5a449fb)

* Automatic Changelog Update (#1894)

(cherry picked from commit a7138473115dfe767b822eb2b24179a04f6133e5)

* Fairer Turrets (#1923)

# Description

It had basically always bothered me, and evidently a lot of other people
that turrets were previously "Unfair enemies". They had perfect aimbot
accuracy, tracked targets instantly at any angle, and were
nigh-indestructible. It was telling that players were pretty much only
ever killed by turrets once or twice, and then they figure out that the
turrets are outright impossible to beat in a fair fight, so they end up
resorting to underhanded tactics like using an RCD to wall the turret
off. Or use a pickaxe to go around them.

I previously added a new turret for the SAN dropship, and with it had
tried out a very different approach for "Fairer Turret" balancing. A
more reasonable healthbar, no instant tracking, and no perfect accuracy,
The players enjoyed these a lot more than the original turrets. Plus
they were more visually interesting firing an inaccurate spray at their
targets.

<details><summary><h1>Media</h1></summary>
<p>

I'm on my lunch break at college right now, so no media.

</p>
</details>

# Changelog

🆑
- tweak: Adjusted turrets to be a more "Fair" fight. They no longer have
perfect aimbot accuracy, they don't track targets instantly, and they
also have a "More fair" healthbar that can reasonably be shot through by
someone with good enough weapons and armor,

(cherry picked from commit 6bdd73efe210d6e556e6accbc89cb9134f716e2e)

* Automatic Changelog Update (#1923)

(cherry picked from commit bedcd65d4d8324a651101a978ba90d46d4199cfa)

* Fix A Minor Test Fail (#1902)

Just a random event that had a tiny chance to spawn an Abstract entity.

(cherry picked from commit f49712f82569d7e5f0a486d00130216dc73520bd)

* Throw Errant Into The Spider Pit (#1896)

# Description

@Errant-4 by request in your comment.
I had annihilated this before during the NyanoCombat reworks, but during
a recent wizmerge most of said reworks were accidentally reverted. This
is the one that was brought back, comment and all. So this PR fixes for
a second time a problem left by the old combat system.

# Changelog

🆑
- fix: Power attack and light attack damages are no longer swapped.

Signed-off-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit 4b988b2b01e379d5a2c6c8eae72f70c00876d024)

* Automatic Changelog Update (#1896)

(cherry picked from commit 505765017a164ca20582571f92f5ec95ff3e5579)

* Nerf .45 (#1895)

# Description

Somehow I didn't realize that .45 magnum, despite being a common ammo
type available to a lot of people, deals literally double the damage of
all other comparable smallarms. No wonder people were complaining about
the Universals being comically overpowered. This PR normalizes their
damage so that it's still "More than other equivalent small arms
calibers", but not ".45 is more than double the damage of 9mm".

# Changelog

🆑
- tweak: Nerfed universals and other .45 auto guns. I get the meme that
.45 is better than 9mm, but not "More than double" the damage of 9mm.

(cherry picked from commit f7f49f67d69e6a19a3b83eec1d4cb4b0b7ca93a1)

* Automatic Changelog Update (#1895)

(cherry picked from commit cfd95ca7c4237030cebba16cf1d81798a5d801a6)

* More Lavaland Fixes (#1892)

# Description

Apparently the lavaland ore crates are supposed to have an ore magnet,
but this didn't work because they're missing something from the ore
bags. So this fixes that. Also I made sure the lavaland's ores actually
have the same naming conventions as our regular ores.

# Changelog

🆑
- tweak: Ores mined from lavaland now have names matching their
real-world counterparts.
- fix: Fixed the lavaland ore crates not having working ore magnets.

(cherry picked from commit 2f02dd1a0621437587d143641b4a66ef59d87bab)

* R25 Rifle Tweaks (#1869)

# Description

This PR tweaks the stats of the R25 rifle so that it isn't completely
useless. Its accuracy when wielded has been improved so that it can more
consistently hit targets at between half and a full screen length away.
As a tradeoff, its cooldown between bursts has been increased so that
its DPS isn't comically overtuned.

<details><summary><h1>Media</h1></summary>
<p>

https://github.com/user-attachments/assets/7b862f2a-09c3-450b-9482-a6ce69b4c971

</p>
</details>

# Changelog

🆑
- tweak: Increased the accuracy-when-wielded of the BRDI-R25 rifle. As a
tradeoff, it has a longer cooldown between hyperbursts.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Gameplay Adjustments**
	- Updated the weapon's handling by refining its firing angles.
	- Adjusted the burst cooldown period to alter the firing rhythm.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

(cherry picked from commit be595f4fbe52e612dbaf58363287e9d483442a12)

* Automatic Changelog Update (#1892)

(cherry picked from commit 2cc6e37b996d5074affebd7d8813778b3f9824d2)

* Automatic Changelog Update (#1869)

(cherry picked from commit fd9c5bb1bfddb94e8aa8d4ecfcb4587629110949)

* Footstep Netcode Fixes (#1909)

# Description

Port of https://github.com/WWhiteDreamProject/wwdpublic/pull/298

---------

Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

(cherry picked from commit 36627e2e655471e118867c1ae05870b1cb9c0be4)

* Automatic Changelog Update (#1915)

(cherry picked from commit a8994b38b0ade548152a5868a0ab87fd727da81d)

* Embeddable Projectile Fixes (Courtesy Of White Dream) (#1907)

* embed children

* locale

* fix

* Update Resources/Locale/ru-RU/weapons/throwing/throwing.ftl

* // WWDP MY BELOVED

# Description

This is a port (and general cleanup of)
https://github.com/WWhiteDreamProject/wwdpublic/pull/278
Plus clearing a bunch of compiler warning causing things, and also a fix
for one of our Heisentests. This PR mainly fixes issues with embeddable
projectiles being potentially unintentionally destroyed when the thing
they are embedded in gets destroyed. Which can be disastrous for example
if my energy sword embeds into a wall, and also destroys that wall,
which destroys my precious energy sword...

# Changelog

🆑 Spatison
- fix: Embeddeable projectiles are no longer always destroyed when the
thing they are embedded in gets destroyed. Energy Sword throwing
enthusiasts may rejoice now that their precious sword is safe.

Co-authored-by: vanx <61917534+Vaaankas@users.noreply.github.com>
Co-authored-by: vanx <discord@vanxxxx>
Co-authored-by: Spatison <137375981+Spatison@users.noreply.github.com>

(cherry picked from commit 2c30abbb072238ed7478c9716a66db58f69ddc67)

* Automatic Changelog Update (#1907)

(cherry picked from commit a97ae4aa2fdaf1bf70149fa994682debd2162779)

* Health Analyzer UI Fix (#1928)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Fix the bug described by [this
issue.](https://github.com/Simple-Station/Einstein-Engines/issues/1820)

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

![image](https://github.com/user-attachments/assets/567f62e6-bdae-4a9b-a4eb-bd8c15fae8c9)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- fix: Health analyzer's doll is now in the normal size.

(cherry picked from commit ce489662c54195cd3f5865f5003d40fe3ba7c0d3)

* Automatic Changelog Update (#1928)

(cherry picked from commit 0b4b338af37f2222065063364b76db3c63fa8025)

* Magma Hand (#1927)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Sprited by Greenwall, YML'd by myself. The Magma Hand is a slime-like
creature that you can encounter in Lavaland. It's very hostile, but you
_can_ pet it!

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [x] Add to Lavaland spawning list

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>
Its blood is sulfur!

![image](https://github.com/user-attachments/assets/7008c190-5502-4e7e-800a-a1027e2ef9f8)

Its attacks burn you!

https://github.com/user-attachments/assets/0bf21207-1dc2-4cf5-9b9b-89a558488963

Ice makes it die very quickly!

https://github.com/user-attachments/assets/4c742c6e-ac5e-462f-9f1e-e05ce0fcaa0b

![image](https://github.com/user-attachments/assets/feb78377-179c-47bd-991a-b88e37af7c95)

![image](https://github.com/user-attachments/assets/92a875cd-fdb2-4edf-843b-a26c671fbd99)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑 Greenwall
- add: Magma Hand! Sprite by Greenwall, YML by Timfa. Bring a water gun
filled with ice, and you'll be fine!

(cherry picked from commit 545a20fd19a25f833cc32e21c6f0f53f7f872e22)

* Automatic Changelog Update (#1927)

(cherry picked from commit f8c127f1432d24f98e5eeeb4099fa2899db74c15)

* Cyber Eye Changes (#1876)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Removes the flare shielding trait, instead adding welding arc protection
to the diagnostics hud, and giving the medical hud a built in chem
scanner.

No trait will give you access to immunity to flashes however, and you
will instead be required to have proper eye protection on again to
counteract it. This makes securities lives a lot better, and makes the
flash a viable tool again.

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- remove: Removes flare shielding
- tweak: Adds eye protection to diagnostics hud
- tweak: Adds chemical analyser to med hud
- tweak: Increases med hud and diagnostics hud costs to 2

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Gameplay Balance**
- Reduced the negative impact for the `FlareShielding` trait, offering a
milder penalty.
- Removed the flash immunity effect from the `FlareShielding` trait to
streamline its behavior while retaining it in the
`FlareShieldingModule`.
- Updated requirements for the `Blindness`, `Nearsighted`, and
`Photophobia` traits by removing the dependency on the
`FlareShieldingModule`.
- Adjusted point values for several traits, reflecting a more
significant negative impact for others.
- Introduced new components, enhancing the functionality of various
traits.
- **Feature Enhancements**
- Expanded the description of the `CyberEyesMedical` trait to include a
Chemical Analysis Hud.
- Updated the `CyberEyesDiagnostic` trait description to incorporate
flare shielding for improved eye protection.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: EctoplasmIsGood <109397347+EctoplasmIsGood@users.noreply.github.com>

(cherry picked from commit 516c53e8ea97680b8029b79dae9fab0a229d0709)

* Automatic Changelog Update (#1876)

(cherry picked from commit 085163904a3bc64c2217553afe5e43a8938cfc8c)

* Space Wind Version 5 (FINAL) (#1765)

# Description

MY ASCENSION IS COMPLETE, I HAVE DEFEATED THE ATMOS SYSTEM. MY POWERS
HAVE GROWN TO NEW AND UNFATHOMABLE HEIGHTS. THE EQUATIONS FOR SPACE WIND
ARE NOW PERFECTED. I HAVE BECOME THE PHYSICS CHAD THAT CAN NOW ACCOUNT
FOR FRICTION AND AIR RESISTANCE.

SPACE WIND HAS BEEN PERFECTED. THERE IS NO MORE WORK FOR ME TO DO ON IT.

# TODO

<details><summary><h1>Media</h1></summary>
<p>

PROOF THAT MY EQUATIONS HAVE BEEN PERFECTED.

https://github.com/user-attachments/assets/b3eb43b2-e8db-4f75-a142-2c86308e8113

</p>
</details>

# Changelog

🆑
- add: Added Space Wind V5. This version of space wind now accounts for
the coefficients of friction and gravity as a calculated way to resist
space wind. There is no more guesswork on if space wind should be able
to throw an object. Additionally, thanks to a standalone module from
Matrix Airflow System, space wind is capable of calculating airflow at
arbitrarily any point in a room, regardless of whatever garbage
Monstermos is saying.

(cherry picked from commit a5151c7622c424af6fd7e4c0b916e8ddda75c3df)

* Automatic Changelog Update (#1765)

(cherry picked from commit ba32a82331ffba42919ff57b48c1d80ba02c1343)

* Fix Oni (#1935)

# Description

I didn't notice during the last PR that someone added an override for
the Tags component of Oni, otherwise I'd have said something about it.
You can't add a tag component to a species because it overrides a
massive shitton of tags that are needed for player characters to be able
to do certain things, such as DoorBumpOpener...

# Changelog

🆑
- fix: Fixed Oni not being able to do a ton of things that required
hardcoded tags. I fucking hate the tag system.

(cherry picked from commit 3950fb0a6c9cbb9febb30b00f183a8d049f0ca0c)

* Automatic Changelog Update (#1935)

(cherry picked from commit 12876a1ce113a68a79d2cae79e99a6748446c13e)

* Rev Manifesto Inhand Use Cooldown (#1936)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Add a two second cooldown on the Revolutionary Manifesto's secondary use
(the purely cosmetic one) to not make it cause chat spam.
I made this change from web and have NOT tested it yet (unless I checked
the checkbox below in the TODO section!

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [ ] TEST IF IT WORKS

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- tweak: Tweaked rev manifesto to not spam chat anymore

(cherry picked from commit 3a6634125445a3a71ab33dae090942ce3216d340)

* Automatic Changelog Update (#1936)

(cherry picked from commit 0ba6aae78f5ee3804f8eaf30afc2e35bafc8e17c)

* More Tolerable Default CVars (#1945)

# Description

I can't believe we never cleaned these up. Yea so our codebase made an
astoundingly fucking poor first impression on BPL during their huge
playtest, and most of these CVars were to blame. In particular is the
godawful Ramping Event Scheduler having "Murder the station with
ventcritters every 10 seconds at the 30 minute mark" as its settings.

# Changelog

🆑
- tweak: Disabled Monstermos Tile Ripping by default.
- tweak: Default settings for Ramping Event Scheduler no longer throws
"Ventcritters every 10 seconds, 30 minutes into the round".

(cherry picked from commit ef5dc3441aa3b7c62d771039c3e1a93ba04a0d32)

* Automatic Changelog Update (#1945)

(cherry picked from commit 0fce50daf5ba999e3bc9b8c97e8e7b8791fb7f7e)

* BRDI Repaints (#1957)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]? -->

A downstream port of https://github.com/TheDenSS14/TheDen/pull/306
providing Blue and Red paintjobs for the Blueshield and Head of Security
BRDIs respectively.

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name This includes
all available types for the changelog -->

🆑
- tweak: Gave the BSO and HoS BRDIs a fancy paintjob.

(cherry picked from commit 4f23e0d40549fc3780d1dd94f7fea2ff83e37c24)

* Automatic Changelog Update (#1957)

(cherry picked from commit 2d7e39eca59cee8c8c883501c8f185bcb8bff4cb)

* ADT Markings Port (#1951)

Truly the PR of all time...

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

The markings by themselves have localization or whatev. When you color
them they will however appear as marking_etc_etc.
Yes, i'm aware it's lazy, but i'm not doing it for over 80 markings,
just not feeling it, this is really just a test to see if it gets
allowed without some locale files setup.

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [ ] Task
- [x] Completed Task

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑 Diggy
- add: Most markings from ADT, along with two new hairstyles, new
markings for Shadowkin (Despite all my hate for them).
- fix: Shadowkin ears are now colorable again, fuck around and find out
if you want your Shadowkin's ears to be pink with red or something.

(cherry picked from commit a36b5dc2404578c64a93a9881714f00180c1da02)

* Automatic Changelog Update (#1951)

(cherry picked from commit cd81f90db975061f9d968b45beab9a461834f4c1)

* Cyberiad 1.0: Service Rework (#1938)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Changes Box to Cyberiad, with the service area receiving a rework, in
the future there will be more updates in the depts, with the next one
probably being the Sec.
Make some fixes on Gax and Bagel.

I changed the maintainer of some maps from "Estação Pirata" to "Ichai".
I am not part of the Estação Pirata

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

![image](https://github.com/user-attachments/assets/e18d2441-8c01-49b9-9c6a-9d2c2c4672b6)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑 Ichai
- add: Cyberiad added to the rotation.
- fix: Gax: Fixed missing window in CE office, Fixed walls in SM to
prevent radiation leaks.
- tweak: Port changes to Bagel from GoobStation
- remove: Box is no more.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

(cherry picked from commit 3da2771a5509b189b4599a2323e9df5d7b9fb562)

* Automatic Changelog Update (#1938)

(cherry picked from commit 755fc9912d4152dca446477ea2693ed91aac59c1)

* R-25 BRDI Back Slot Sprites (#1962)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Added back slot and suit storage sprites for the R-25 BRDI.

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

🆑
- add: Added back worn sprites for the R-25 BRDI.

(cherry picked from commit 2cf4957ccd3ed2e0a673c7a7c774f4d779428cb5)

* Automatic Changelog Update (#1962)

(cherry picked from commit d6ba9f7c0da450e0b8ae6623b33e6933360ae43c)

* Remove Random Stencil Clear On Left Leg (#1955)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

I don't know why this was being done, but it didn't seem to do anything
and I know for a fact it was causing issues with shaders that were
applied on all humanoid layers, so... "Imaginary Technique: Shitcode
Removal" go.

If anything breaks, it's this.

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [X] Check that the game didn't incinerate itself.

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

![image](https://github.com/user-attachments/assets/ff7f41e5-827e-4fdf-98e2-b5885aadf467)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `🆑` to change the name that appears
in the changelog (ex: `🆑 Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

no cl

Signed-off-by: Eris <eris@erisws.com>

(cherry picked from commit e674f782e24da7a7825520ca650473f155e9e4c1)

* fix upstream

---------

Co-authored-by: EctoplasmIsGood <109397347+ectoplasmisgood@users.noreply.github.com>
Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>
Co-authored-by: Paulo Artur Pinheiro Viana Villaça <112904295+algumcorrupto@users.noreply.github.com>
Co-authored-by: astriloqua <129308840+astriloqua@users.noreply.github.com>
Co-authored-by: Raikyr0 <Kurohana@hotmail.com.au>
Co-authored-by: Solstice <solsticeofthewinter@gmail.com>
Co-authored-by: Solaris <60526456+solarisbirb@users.noreply.github.com>
Co-authored-by: Eagle-0 <114363363+eagle-0@users.noreply.github.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: Tirochora <leotabletdb@gmail.com>
Co-authored-by: BloodfiendishOperator <141253729+Diggy0@users.noreply.github.com>
Co-authored-by: Timfa <timfalken@hotmail.com>
Co-authored-by: Rosycup <178287475+Rosycup@users.noreply.github.com>
Co-authored-by: Ichaie <167008606+ichaie@users.noreply.github.com>
Co-authored-by: Eris <eris@erisws.com>
2025-03-15 16:05:58 +02:00
VMSolidus
e7c44b4319 Space Wind Version 3 (#1537)
# Description

I promised I would return to this code when I had gotten down the basics
of Calculus, and so I have. This PR reworks Space Wind to be even more
efficient, while also making it run significantly smoother. Previously,
my last optimization to this system involved replacing the need to take
the square root of a large float a few thousand times per tick by adding
an early exit, cleverly rearranging the math so that it multiplies a few
times instead of square rooting, and changing it to use the throwing
system.

That is no longer necessary, it now operates on the Derivative of said
function with respect to time. It's no longer necessary to square
anything. This new space wind is significantly smoother than before.

<details><summary><h1>Media</h1></summary>
<p>

Final refinements of V3 courtesy of review by Mu Alpha Theta.

https://github.com/user-attachments/assets/a48d43ae-7b79-4d83-81d5-028dd4e8c6c3

</p>
</details>

# Changelog

🆑
- add: Added Space Wind Version 3. Smoother motion, better performance.
- add: Monstermos rip tiles has returned as a default CVar.
- tweak: Floor Tiles once again are embeddable projectiles.

(cherry picked from commit a8cb5a9703df0b38a3fefa87aca1ee24e7c9aba8)
2025-01-15 18:30:09 +03:00
VMSolidus
4cf0d136dc Merge branch 'master' into pr/DEATHB4DEFEAT/540 2024-07-19 18:02:48 -04:00
VMSolidus
952953be07 Physics Based Air Throws (#342)
# Description

I've made it so that when a room is explosively depressurized(or when a
body of high pressure air flows into one of lower pressure air), that
entities inside are launched by the air pressure with effects according
to their mass. An entity's mass is now used as an innate resistance to
forced movement by airflow, and more massive entities are both less
likely to be launched, and will launch less far than others. While
lighter entities are launched far more easily, and will shoot off into
space quite quickly! Spacing departments has never been so exciting!
This can be made extraordinarily fun if more objects are given the
ability to injure people when colliding with them at high speeds.

As a note, Humans are very unlikely to be sucked into space at a typical
force generated from a 101kpa room venting into 0kpa, unless they
happened to be standing right next to the opening to space when it was
created. The same cannot be said for "Lighter-Than-Human" species such
as Felinids and Harpies. I guess that's just the price to pay for being
cute. :)

On a plus side, because the math behind this is simplified even further
than it was before, this actually runs more efficiently than the
previous system.

# TODO

Nothing, this is basically done. I've spent a good 6 hours straight
finely tuning the system until I was satisfied that it reflects
something close to reality.

# MEDIA

**Before the Space Wind Rework:**


https://github.com/Simple-Station/Einstein-Engines/assets/16548818/0bf56c50-58e6-4aef-97f8-027fbe62331e

**With this Rework:**


https://github.com/Simple-Station/Einstein-Engines/assets/16548818/6be507a9-e9de-4bb8-9d46-8b7c83ed5f1d

# Changelog

🆑 VMSolidus
- add: Atmospheric "Throws" are now calculated using object mass, and
behave accordingly. Tiny objects will shoot out of rooms quite fast!

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
2024-07-18 01:24:58 -07:00
Leon Friedrich
52cb6dab3e Atmos device performance improvements (#26493)
* Atmos device performance improvements

* AtmosDirection perf improvements

* Fix errors

* Add GasTileOverlayComponent arguments

* Make excite no longer invalidate a tile
2024-07-11 20:40:16 -07:00
SimpleStation14
a22601c7b5 Mirror: Obsolete Logger cleanup for EntitySystems part 2 (#237)
## Mirror of PR #26159: [Obsolete `Logger` cleanup for `EntitySystem`s
part 2](https://github.com/space-wizards/space-station-14/pull/26159)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)

###### `7d275a4b5e4188db424cc417c609dced3f9aca89`

PR opened by <img
src="https://avatars.githubusercontent.com/u/27449516?v=4"
width="16"/><a href="https://github.com/LordCarve"> LordCarve</a> at
2024-03-15 20:15:41 UTC

---

PR changed 14 files with 36 additions and 25 deletions.

The PR had the following labels:
- Status: Needs Review


---

<details open="true"><summary><h1>Original Body</h1></summary>

> <!-- Please read these guidelines before opening your PR:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
> <!-- The text between the arrows are comments - they will not be
visible on your PR. -->
> 
> ## About the PR
> <!-- What did you change in this PR? -->
> Part 2 of 2, continuation of #25941 
> Gets rid of the remaining obsolete `Logger` method calls from all
`EntitySystem`s and uses the expected `Log` to get at the proper
sawmill.
> 
> In particular:
> 1. Make the `ExamineSystemShared`'s `InRangeUnObstructed` non-`static`
(so finally able to use instance-based `Log` rather than `Logger`) and
inject dependency to all systems that were using it as `static`.
> 2. Adjust 4 more `EntitySystem`s to use `Log` rather than `Logger`
that were missed in the previous PR.
> 
> Tested that the game runs and the affected systems direct logs to the
correct sawmill.
> 
> ## Why / Balance
> <!-- Why was it changed? Link any discussions or issues here. Please
discuss how this would affect game balance. -->
> Using Logger directly for logging is marked obsolete. Brings some
order to logs (i.e. all `EntitySystem` logs start with a preceding
`system.`).
> 
> ## Technical details
> <!-- If this is a code change, summarize at high level how your new
code works. This makes it easier to review. -->
> I'm pretty sure `ExamineSystemShared`'s `InRangeUnObstructed` not
being `static` is the intended way since it being `static` dodges the
IoC entirely. It even has dirty hacks such as getting the occluder
system inside to make it happen. I didn't fix any of that as it's beyond
the scope of this PR, but it's another thing that needs improving.
> 
> These are the changes to the log sawmills:
> `ExamineSystemShared.cs`: BEFORE: `root` -> NEW: `system.examine`
> `AtmosphereSystem.Monstermos.cs`: BEFORE: `root` -> NEW:
`system.atmosphere`
> `TypingIndicatorSystem.cs`: BEFORE: `root` -> NEW:
`system.typing_indicator`
> `PiratesRuleSystem.cs` BEFORE: `pirates` -> NEW: `system.pirates_rule`
> `TabletopSystem.Session.cs` BEFORE: `root` -> NEW: `system.tabletop`
> 
> ## Media
> <!-- 
> PRs which make ingame changes (adding clothing, items, new features,
etc) are required to have media attached that showcase the changes.
> Small fixes/refactors are exempt.
> Any media may be used in SS14 progress reports, with clear credit
given.
> 
> If you're unsure whether your PR will require media, ask a maintainer.
> 
> Check the box below to confirm that you have in fact seen this (put an
X in the brackets, like [X]):
> -->
> 
> - [X] I have added screenshots/videos to this PR showcasing its
changes ingame, **or** this PR does not require an ingame showcase
> 
> ## Breaking changes
> <!--
> List any breaking changes, including namespace, public
class/method/field changes, prototype renames; and provide instructions
for fixing them. This will be pasted in #codebase-changes.
> -->
> Some logs now fall under a different sawmill (more precise). Any
software that analyzes logs and makes assumptions on which sawmill do
these logs fall to will need to be adjusted.


</details>

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: SimpleStation14 <Unknown>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
2024-05-28 21:18:15 -04:00
SimpleStation14
6e0ffe81bc Mirror: Partial atmos refactor (#312)
## Mirror of PR #22521: [Partial atmos
refactor](https://github.com/space-wizards/space-station-14/pull/22521)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)

###### `18a35e7e83b2b71ee84b054d44d9ed5e595dd618`

PR opened by <img
src="https://avatars.githubusercontent.com/u/60421075?v=4"
width="16"/><a href="https://github.com/ElectroJr"> ElectroJr</a> at
2023-12-15 03:45:42 UTC

---

PR changed 43 files with 891 additions and 635 deletions.

The PR had the following labels:
- Status: Needs Review


---

<details open="true"><summary><h1>Original Body</h1></summary>

> This PR reworks how some parts of atmos code work. Originally it was
just meant to be a performance and bugfix PR, but it has ballooned in
scope. I'm not sure about some of my changes largely because I'm not
sure if some things were an oversight or an intentional decision for
some reason.
> 
> List of changes:
> - The `MolesArchived float[]` field is now read-only
> - It simply gets zeroed whenever the `GasMixture` is set to null
instead of constantly reallocating
> - Airtight query information is now cached in `TileAtmosphere`
> - This means that it should only iterate over anchored entities once
per update.
> - Previously an invalidated atmos tile would cause
`ProcessRevalidate()` to query airtight entities on the same tile six
times by calling a combination of `GridIsTileAirBlocked()`,
`NeedsVacuumFixing()`, and `GridIsTileAirBlocked()`. So this should help
significantly reduce component lookups & entity enumeration.
> - This does change some behaviour. In particular blocked directions
are now only updated if the tile was invalidated prior to the current
atmos-update, and will only ever be updated once per atmos-update.
> - AFAIK this only has an effect if the invalid tile processing is
deferred over multiple ticks, and I don't think it should cause any
issues?
> - Fixes a potential bug, where tiles might not dispose of their
excited group if their direction flags changed.
> - `MapAtmosphereComponent.Mixture` is now always immutable and no
longer nullable
> - I'm not sure why the mixture was nullable before? AFAICT the
component is meaningless if its null?
> - Space "gas" was always immutable, but there was nothing that
required planet atmospheres to be immutable. Requiring that it be
immutable gets rid of the constant gas mixture cloning.
> - I don't know if there was a reason for why they weren't immutable to
begin with.
> - Fixes lungs removing too much air from a gas mixture, resulting in
negative moles.
> - `GasMixture.Moles` is now `[Access]` restricted to the atmosphere
system.
> - This is to prevent people from improperly modifying the gas mixtures
(e.g., lungs), or accidentally modifying immutable mixtures.
> - Fixes an issue where non-grid atmosphere tiles would fail to update
their adjacent tiles, resulting in null reference exception spam
>   - Fixes #21732
>   - Fixes #21210 (probably) 
> - Disconnected atmosphere tiles, i.e., tiles that aren't on or
adjacent to a grid tile, will now get removed from the tile set.
Previously the tile set would just always increase, with tiles never
getting removed.
> - Removes various redundant component and tile-definition queries.
> - Removes some method events in favour of just using methods.
> - Map-exposded tiles now get updated when a map's atmosphere changes
(or the grid moves across maps).
> - Adds a `setmapatmos` command for adding map-wide atmospheres.
> - Fixed (non-planet) map atmospheres rendering over grids.
> 
> ## Media
> 
> This PR also includes changes to the atmos debug overlay, though I've
also split that off into a separate PR to make reviewing easier
(#22520).
> 
> Below is a video showing that atmos still seems to work, and that
trimming of disconnected tiles works:
> 
>
https://github.com/space-wizards/space-station-14/assets/60421075/4da46992-19e6-4354-8ecd-3cd67be4d0ed
> 
> For comparison, here is a video showing how current master works
(disconnected tiles never get removed):
> 
>
https://github.com/space-wizards/space-station-14/assets/60421075/54590777-e11c-41dc-b49d-fd7e53bfeed7
> 
> 🆑
> - fix: Fixed a bug where partially airtight entities (e.g., thin
windows or doors) could let air leak out into space.
> 


</details>

Co-authored-by: SimpleStation14 <Unknown>
2024-05-20 02:33:00 -04:00
DrSmugleaf
9cc8a7fc81 Remove 700 usages of Component.Owner (#21100) 2023-10-20 15:31:13 +02:00
Kevin Zheng
80b92c33e5 Make slow spacing variables CCVars (#19862) 2023-09-27 21:59:12 +02:00
metalgearsloth
68480af109 Update content vectors to numerics (#17759) 2023-07-08 14:08:32 +10:00
Tom Leys
28bec85d86 Space sections substantially slower (5-15 sec, exponential) with cooling (#16115)
* Space sections fractionally slower (1 sec, exponential)

- ExplosivelyDepressurize reduces air pressure by about 20% each pass, sets to vacuum below 20 kPa
- Causes some issues with AdjacentBits on airlock close

* Introduced constants for Spacing in atmospherics

* Limit space wind allowed during spacing to 1000 kPa per tile/sec

- Less tile ripping per tick
- Tiles rip based on wind
- Robustness checks

* Slowed down the spacing a bit

* Slowed down the spacing a bit more

* Better dynamics about high pressure air escaping,

- Reduce air temperature (due to decompression) during spacing
- Make some water vapor for flavor

* Limit temperature loss to >8 Deg.C. No Water vapor
2023-05-20 13:53:04 -06:00
Tom Leys
79eeefd813 Fix firelock lights for hot / pressurized rooms (#15892) 2023-05-06 15:54:36 +10:00
metalgearsloth
bf79d76666 Content update for ECS physics (#13291) 2023-01-15 15:38:59 +11:00
Leon Friedrich
2759ef009e Gas tile overlay state handling changes (#12691) 2022-12-19 06:25:27 +11:00
metalgearsloth
3b3963083b Replace GridEntityId with Owner (#12743) 2022-12-12 14:59:02 +11:00
metalgearsloth
6c76061887 Content changes for mapgrid kill (#12567) 2022-11-22 13:12:04 +11:00
Leon Friedrich
20f68d156e Add some atmos logs for debugging (#11970) 2022-10-17 02:50:11 +11:00
metalgearsloth
78a4ab6eb2 Update for collision events by-ref (#10933) 2022-09-14 17:26:26 +10:00
Leon Friedrich
35a142965d Firelock ECS + some other stuff. (#8366)
* firelock rejig

* dont error failed resolves

* fix

* less resolves

* switch fire and pressure messages

* update

Co-authored-by: wrexbe <wrexbe@protonmail.com>
2022-09-05 22:55:33 -07:00
Vera Aguilera Puerto
aa9281d667 Refactors the AtmosphereSystem public-facing API to allow for multiple atmos backends. (#8134)
* Refactors the entirety of the AtmosphereSystem public-facing API to allow for multiple atmos backends.

* actually compiles

* Remove commented out code

* funny bracket

* Move archived moles, temperature from GasMixture to TileAtmosphere.

* WIP customizable map default mixture
still VERY buggy

* broken mess
aaaaaaaaaaaaa

* Fix lattice, etc not being considered space

* visualization for "IsSpace"

* help

* Update Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs

Co-authored-by: Moony <moonheart08@users.noreply.github.com>

* Holy SHIT it compiles AGAIN

* Fix AtmosDeviceSystem crash at shutdown

* Fix immutable tiles on map blueprints not being fixed by fixgridatmos/revalidate.

* Use space instead of gasmixture immutable for heat capacity calculations

* Remove all LINDA-specific code from GasMixture, move it to TileAtmosphere/AtmosphereSystem instead.

* Fix roundstart tiles not processing

* Update Content.Server/Atmos/Commands/SetTemperatureCommand.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs

Changed Files tab is so large I can't commit both suggestions at once mfw

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-07-04 09:51:34 -05:00
wrexbe
1e0babbd50 Make AdminLogsSystem an IoC manager (#8492)
* Make log not entity system

* Fixes
2022-05-28 23:41:17 -07:00
wrexbe
bc68ac96dd Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
Vera Aguilera Puerto
8232d91ad4 Atmos high pressure movements cleanup (#8075)
* Fixes LINDA and monstermos clashing over high pressure difference direction

* Fix space wind CVar not disabling space wind entirely.

* Change 1 (one) variable name
2022-05-10 12:56:17 +02:00
mirrorcult
ec4d4688c7 Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
Vera Aguilera Puerto
0517e12efd Slight AtmosphereSystem cleanup.
- AtmosExposed query now queries transform as well instead of getting it twice.
- Use Proxy methods instead.
2021-12-16 12:10:51 +01:00
Vera Aguilera Puerto
94fa6efefb Misc Atmos Improvements (#5613)
* Revert "Remove atmos archiving."

This reverts commit 7fa10bd17b.

* Explosive Depressurization now brings tiles down to TCMB.

* Tiles now specify heat capacity.

* Do not serialize archived gas mixture values.

* Remove bad idea

* dumb typo

* Space gas mixtures now have a harcoded heat capacity.
This is a bit of a hack, but rooms exposed to space now cool down properly when monstermos is disabled.
Huge thanks to @LemonInTheDark for helping me with this!

* Clean up heat capacity methods

* Better logging based on the original monstermos' logging

* Comment explosive depressurization hack better
2021-11-30 11:42:48 +01:00
Pieter-Jan Briers
64861ff034 Add Content.Shared.Database (#5588) 2021-11-28 14:56:53 +01:00
Vera Aguilera Puerto
af86378995 Log explosive depressurization. (#5474) 2021-11-23 12:22:18 +01:00
Vera Aguilera Puerto
0be5ff829b Gets rid of all ComponentManager usages. (#4707) 2021-09-28 13:35:29 +02:00
Vera Aguilera Puerto
68a78e94b7 Slight explosively depressurize cleanup. 2021-09-06 17:30:38 +02:00
Vera Aguilera Puerto
9f4ea1e5a9 Fix rare atmos crash when explosively depressurizing too many tiles. 2021-09-06 17:16:27 +02:00
Vera Aguilera Puerto
a8e7fb4977 Optimize atmos debug assert.
Seems I missed this one.
2021-09-06 16:55:05 +02:00
Vera Aguilera Puerto
611340e454 Enables nullables for atmos internals 2021-08-02 17:03:13 +02:00
mirrorcult
af2e21c355 Refactor IDoorCheck into entity events (#4366)
* IDoorCheck refactored to events

# Conflicts:
#	Content.Server/Atmos/TileAtmosphere.cs
#	Content.Server/Doors/Components/AirlockComponent.cs
#	Content.Server/Doors/Components/FirelockComponent.cs
#	Content.Server/Doors/Components/ServerDoorComponent.cs
#	Content.Server/Doors/IDoorCheck.cs

* namespaces

* Fix mapinit bug with refreshautoclose

* ok i guess these just didnt feel like staging today
2021-08-02 21:57:06 +10:00
Vera Aguilera Puerto
d8fe13af04 Further optimize atmos by reusing specific arrays instead of using a shared arraypool 2021-07-24 16:33:04 +02:00
Vera Aguilera Puerto
4ade87c040 Add atmos grid impulses, disabled by default. 2021-07-23 17:27:16 +02:00
Vera Aguilera Puerto
da25266dd5 CVar for explosive depressurization tile ripping. 2021-07-23 13:45:56 +02:00
Vera Aguilera Puerto
4112847142 ECS Atmos Part 5: Moves all logic from GridAtmosphereComponent to AtmosphereSystem. (#4331) 2021-07-23 11:09:01 +02:00
Vera Aguilera Puerto
fcafa8f439 ECS Atmos Part 4: Moves all atmos logic from TileAtmosphere to AtmosphereSystem. (#4295)
* Moves all atmos logic from TileAtmosphere to AtmosphereSystem.

* Atmos uses grid anchoring to check for firelocks instead of grid tile lookups.

* CVar for space wind sound

* CVar for explosive depressurization
2021-07-20 18:03:49 +02:00