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

Change sampled seeds to inherit the plant's health instead of needing harvestability #25326

Merged
merged 10 commits into from
Feb 17, 2024

Conversation

PolterTzi
Copy link
Contributor

@PolterTzi PolterTzi commented Feb 17, 2024

About the PR

Makes changes to seeds and plant holders so now clipped seeds keep the modified health of the sampled plant
Also reverts/replaces the changes from #24851

Why / Balance

Attempting to serve as a potential alternative to #24851.
It doesn't revert back to the previous state of effectively free sampling, while still allowing taking samples without needing to wait for growth.

Compared to the current state, it would likely make botany more powerful, but still requiring more resource management than it did before the nerf.

Inspired by the comment here: #25320 (comment)

Technical details

Adds a health value to the Seed packet component that keeps track of the resulting plant's health.

Media

sampling.mp4
  • I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Added a health field to SeedComponent
Added an optional health argument to SpawnSeedPacket
I don't think it should break anything.

Changelog

🆑

  • tweak: Seeds from sampled plants now inherit the sampled plant's health to discourage excessive sampling.
  • tweak: Plants need to grow a bit before being sampled.

@PolterTzi PolterTzi requested a review from Partmedia as a code owner February 17, 2024 00:44
@github-actions github-actions bot added the S: Needs Review Status: Requires additional reviews before being fully accepted label Feb 17, 2024
@Partmedia
Copy link
Contributor

Thank you for your contribution. I think this is an idea in the right direction. Would you also be willing to implement the other part of the suggestion, which is to allow sampling only after a certain growth stage, but a bit earlier than the current harvest stage?

@PolterTzi
Copy link
Contributor Author

Would you also be willing to implement the other part of the suggestion, which is to allow sampling only after a certain growth stage, but a bit earlier than the current harvest stage?

I would hope that would not be necessary, Without healing the implementation here allows for 3 or so samples from a plant and all of them would be at at most 40 health with optimal rolls.

That said, I think I could add that requirement if it is necessary.

@Partmedia
Copy link
Contributor

I agree that this will probably mitigate the issue somewhat. I still think it would be better, more physical, and make more sense to require some amount of growth time before a plant can be clipped.

@ViceEmargo
Copy link

I have not gotten the chance to play Botany since PartMedia's clipper PR. Are you only able to clip a plant once after it his the harvestable state?
If so, this change looks nice as it still allows me to spread 1 fully-robusted plant into multiple trays and beyond.

@PolterTzi
Copy link
Contributor Author

This might be a bit ugly, but this should make sure the plant is at least in its stage 2.

@ViceEmargo
Copy link

Could you explain to me how this if statement works? I don't quite understand what the (int) does at the beginning,
neither do I really understand the math.
if ((int) (component.Age * component.Seed.GrowthStages / component.Seed.Maturation)<=1)

@PolterTzi
Copy link
Contributor Author

Could you explain to me how this if statement works? I don't quite understand what the (int) does at the beginning, neither do I really understand the math. if ((int) (component.Age * component.Seed.GrowthStages / component.Seed.Maturation)<=1)

Lifted straight from the section that calculates growth stages to call the right sprite.
The int is there because the int was there in the sprite code, so it should preserve the rounding.

Basically, AFAIK, Maturity is how long the seed takes to grow to its full development, Age is how old the current plant is. GrowthStages is how many stages the plant has.
Consider it in this order: You divide the age by maturity to get how far along the grow progress the plant is in percentiles. Then multiply it by the amount of stages to determine the stage it lands on. Cast it to int to round it to a whole number.

The <=1 is meant to guarantee it would reach at least the second stage before being able to be cut.

Content.Server/Botany/Components/SeedComponent.cs Outdated Show resolved Hide resolved
Content.Server/Botany/Components/SeedComponent.cs Outdated Show resolved Hide resolved
Content.Server/Botany/Systems/BotanySystem.Seed.cs Outdated Show resolved Hide resolved
Content.Server/Botany/Systems/BotanySystem.Seed.cs Outdated Show resolved Hide resolved
@@ -147,7 +147,7 @@ private void OnInteractUsing(Entity<PlantHolderComponent> entity, ref InteractUs
{
if (!_botany.TryGetSeed(seeds, out var seed))
return;

float? seedHealth=seeds.Health;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please review our whitespace conventions.

component.Health -= (_random.Next(3, 5) * 10);

if (!component.Harvest)
if ((int) (component.Age * component.Seed.GrowthStages / component.Seed.Maturation)<=1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As before, please note whitespace conventions.

Also, since this calculation is not super obvious, it may be better to factor out the common computation into a function (e.g. GetCurrentGrowthStage()) instead of copy/paste.

@PolterTzi
Copy link
Contributor Author

Ok, that's what I get for being hasty.
This should hopefully be about right now.

@@ -148,6 +163,7 @@ private void OnInteractUsing(Entity<PlantHolderComponent> entity, ref InteractUs
if (!_botany.TryGetSeed(seeds, out var seed))
return;

float? seedHealth=seeds.HealthOverride;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry to nitpick, but whitespace here still

Content.Server/Botany/Components/SeedComponent.cs Outdated Show resolved Hide resolved
Content.Server/Botany/Components/SeedComponent.cs Outdated Show resolved Hide resolved
component.Health -= (_random.Next(3, 5) * 10);

if (!component.Harvest)
if (GetCurrentGrowthStage(entity)<=1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

whitespace

Comment on lines 83 to 84
var maturation = component.Seed.Maturation;
var stages = component.Seed.GrowthStages;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These don't have to be re-declared as local variables.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, right, that's from when I was trying to catch where the null reference issue was.

{
var (uid, component) = entity;

var age = component.Age;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These don't have to be re-declared as local variables.


var maturation = component.Seed.Maturation;
var stages = component.Seed.GrowthStages;
var result = Math.Max(1, (int) (age * stages / maturation));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These don't have to be re-declared as local variables.

PolterTzi and others added 4 commits February 17, 2024 03:58
@PolterTzi
Copy link
Contributor Author

Ok, I think that should mostly cover it.

Copy link
Contributor

@Partmedia Partmedia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your (first!) PR. Your work helps improve the game for everyone.

@Partmedia Partmedia merged commit dab2c48 into space-wizards:master Feb 17, 2024
10 checks passed
@Cyber-Finn
Copy link

Cyber-Finn commented Feb 17, 2024

wouldnt this break immersion, since it's not how botany works IRL? (Not every seed inherits a genetic defect from its' predecessor)
It also massively nerfs Botany - which is mostly a 1-man-job (Since your partners always run off somewhere else).

On HRP servers - and other servers where shifts are longer than 50min, this is going to cause botanists to become overstressed (And people to no longer take the role) - as seeds, for some reason, age and inherit the health of the parent..

@deltanedas
Copy link
Contributor

they arent seeds they are grafts

if you want fresh seeds grow it to maturity then extract seeds from the produce which makes sense

@ThatOneGoblin25
Copy link
Contributor

they arent seeds they are grafts

if you want fresh seeds grow it to maturity then extract seeds from the produce which makes sense

Moot point because no mutations or traits are saved by the seeds spat out by the extractor.

@deltanedas
Copy link
Contributor

that has to be fake why would anyone use extractor

@PolterTzi
Copy link
Contributor Author

I'll be honest, this was somewhat hastily implemented in response to the previous nerf. I think some degree of samples keeping damage is "realistic" (they aren't seeds per-se, it's meant to represent part of the plant being cut so it can grow elsewhere), but I wouldn't say it's out of the question that the damage might use some reeling in one way or another.
We'll have to see how the game reacts (players will probably not like it at first, but that's the usual for nerfs).

Moot point because no mutations or traits are saved by the seeds spat out by the extractor.

That's either a bug or factually incorrect.

joshepvodka pushed a commit to joshepvodka/space-station-14 that referenced this pull request Feb 18, 2024
Make seeds from clipped plants inherit the decreased health from parents.
Also require one growth stage before clipping.
joshepvodka added a commit to TucanoStation/tucano-station-14 that referenced this pull request Feb 18, 2024
* predict egg cracking + refactor (space-wizards#25028)

* move stuff to server and some refactoring

* update spikables to not use triggering

* add Delete bool just incase

* a new egg

* mom can we have webedit. no, we have webedit at home

---------

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

* Paper is now bad food (space-wizards#25065)

* allow building atmos devices on lattice or thindow tiles (space-wizards#25057)

do

* Remove tail wag emote text (space-wizards#25054)

Removed emote text

* Automatic changelog update

* Small t-ray scanner resprite (space-wizards#25047)

add

* Automatic changelog update

* Fix brig timer labels to displaying correctly. (space-wizards#25033)

* Fix brig timer labels to displaying correctly.

The TextScreenSystem was expecting a string, but the value inputted for
the label was an array of strings.

* Address nitpick

This should do the exact same thing but it is semantically clearer I guess.

* fix follow comannd help locale (space-wizards#25032)

* Automatic changelog update

* Fixes indestructible mop buckets (space-wizards#25001)

* destructible mop buckets

* remove wwod

* spacing

---------

Co-authored-by: doom <ghostrecon5123@gmail.com>

* Automatic changelog update

* Straw hat. (space-wizards#24997)

* Straw hat.

A craftable, flammable straw hat.

Thats it.

* seems to made it go in flames!

* Automatic changelog update

* Alphabetically sorted guidebook entries  (space-wizards#24963)

* - Renamed GetSortedRootEntries to GetSortedEntries and added child sorting logic
- Removed unessesary Tree.SetAllExpanded(true) call in RepopulateTree

* Adding back deleted setallexpanded call to check if test passes

---------

Co-authored-by: Your Name <you@example.com>

* Automatic changelog update

* atlas update (space-wizards#25071)

* atlas update

* untroll

---------

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

* box update (space-wizards#25074)

* fland update (space-wizards#25075)

* marathon update (space-wizards#25076)

* meta update (space-wizards#25077)

* Syndicate key grammar fix (space-wizards#25085)

* Syndicate encryption key grammar fix

An encryption key used by... wait... Who is owner of this chip? > An encryption key used by... wait... Who is the owner of this chip?

* Syndicate key grammar fix

An encryption key used by... wait... Who is owner of this chip? > An encryption key used by... wait... Who is the owner of this chip?

* Fix hybridization seedless probability (space-wizards#25084)

Fix comparison

Hybrids (different plants being crossed) are supposed to have a high
chance of becoming seedless to balance overpowered plants.

However, a logic error in the comparison gave seedless to plants when
they were from the same seed (not hybrids) rather than the other way
around.

Reported by:    @genderGeometries

* Added Tourniquets to stop bleeds (space-wizards#23198)

* Fixed Error with RobustToolbox Edits. Removed the addition of secbelt tag from assault belt.

* Resprite of the monstrosity

* Resprite of the tourniquet NO LONGER PHALLUS SHAPED

* too bright, now darker and edgier

* Tourniquet resprite

* metajson yay

* Update Skelly Vs The Rev lobby art (space-wizards#25088)

Someone said the original was a bit low res
and I agreed.

This is a 1440p (from an 8k base image) rendition
of the same scene, with a new dramatic forced
perspective look, and generally cleaner art throughout.

Also now there's two mothroaches.

* Automatic changelog update

* Minor airlock assembly clean up (space-wizards#25073)

1

* Update README.md (space-wizards#25067)

* Update README.md

* emo review

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* prevent opening debug menus without perms (space-wizards#25091)

prevent people without permissions from opening the tile, entityspawn, or decal menus

* Remove battery from crew observation kit, fix description (space-wizards#25000)

-Remove battery from crew observation kit, fix description

* Laughin' Peas (space-wizards#25089)

* laughter

* make clownmobs bleed laughter

* laughin syrup and laughter recipe

* add laughin peas

* Automatic changelog update

* QM drip DLC (space-wizards#24477)

* New Drip for the QM

QM beret and QM formal uniform

* Asd

Asd

* Adds the new clothing to the uniform printer

what it says on the tin

* I always forget to update the copyright RAAAAAH

yup

* EMT Belt Part 2 (space-wizards#24289)

* add

* fix

* aaaa

* Flipped caps real (space-wizards#24961)

* Flipped caps real

* oops

* whoops

* flip not fold

* fix formatting

* cargosoft formatting

* Automatic changelog update

* Nerf Beanbags (space-wizards#24653)

Lowers beanbag damage from 55 stam to 30 stam

* Automatic changelog update

* Fix screenspace popups (space-wizards#24987)

* Fix screenspace popups

Never got around to it earlier but need to draw it above UI controls.

* Minor null change

* Automatic changelog update

* Fix crew manifest department bugs (space-wizards#24975)

* Automatic changelog update

* Changed door remote to trigger based on vision occlusion(space-wizards#25093)

Changed door remote to trigger based on vision occlusion rather than opaque collision targeting check. Ian's butt will no longer absorb your 5G signals.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* GPS In Paramed Locker (space-wizards#25096)

GPS in paramed locker

* Remove 'travis scott day' from the game (space-wizards#25106)

* remove travis scott from the game

* KILL TRAVIS EVEN MORE

* Automatic changelog update

* Remove erroneous changelog (space-wizards#25107)

* fixed fland cargo shuttle not having tiny fans (sorry) (space-wizards#25095)

* Glass box for antique laser pistol (space-wizards#25104)

* glassbox

* fix

* Gibbing refactor (Per-part gibbing and giblet throwing!) (space-wizards#24989)

* Moving Gibbing rework out from medrefactor into it's own PR

* Re-enabled warning for missing gibbable on TryGibEntity

* Implemented better logic for gibbing failover and better logging

* Allowing audio params and drop scattering customization per component. Created UnGibbable organ base types and made brains ungibbable.
Removed delete brain from gibBody function. Artifact crusher does not destroy brains anymore. It only destroyed brains before not other organs which was wierd.

* Update Content.Shared/Body/Systems/SharedBodySystem.Body.cs

Fixing space for multiplication

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

* Added event raised when attempting to gib contained entities to allow modification of allowed and excluded container ids

* removing audioParams var from component (sound specifier includes it)

* Fixing signature

---------

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

* Automatic changelog update

* Gibbing contents hotfix (space-wizards#25114)

Fixing gibbing contents not respecting Include/Exclude container lists. This is currently unused

* Predict two-way levers (space-wizards#25043)

* Predict two-way levers

Annoys me the rare occasions I touch cargo. Doesn't predict the signal but at least the lever responds immediately.

* space

* a

* Replace Romerol with Ambuzol in chemist guidebook (space-wizards#25108)

replace romerol with ambuzol

* Fix borgs being able to emag themselves (space-wizards#24748)

* Fix self emagging borgs

* Add popup on self emag failure.

* Ectoplasm is grindable into Necrosol (space-wizards#25053)

add

* Automatic changelog update

* Automatic changelog update

* Roundstart Food Service research (space-wizards#25046)

add

* Automatic changelog update

* Add option for character name colors in chat & move coloration to clientside (space-wizards#24625)

* Adds option to disable character names in chat/speechbubbles

* Moved the coloring of names to clientside

* Move string functions to SharedChatSystem to avoid duplicate code in SpeechBubble.cs

* Changed to be put under Accessibility section

* Cache CVar

* Automatic changelog update

* Update Credits (space-wizards#25115)

Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>

* Replace fixed drink glasses with metamorphic versions (space-wizards#25134)

* Replaced fixed drink glasses with metamorphic versions

* Fine, no milkshake then

* ambuzol beef (space-wizards#25119)

* Automatic changelog update

* Shuttle floor resprite (space-wizards#25127)

* resprites shuttle tiles

* resprites shuttle floor tiles & adds grey/black shuttle tiles

* attributions.yml update

* Adding a period to an object description (space-wizards#25138)

Added a period to an object description.

Adds a period to silk's description. This is my first and last pull request.

* Door Remote Changelog Entry (space-wizards#25144)

I'm so dumb.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Lowered Ion Storm Reoccurence Delay to 20 (space-wizards#25135)

* Lowered reoccurencedelay to 45

* Lowered Further down to 20

* Re-added shivs to crafting menus (space-wizards#25094)

Added a recipe for crafting menu

* Automatic changelog update

* Color Tipped Ammo (space-wizards#25103)

* Tipped .35 ammo

* used layers instead of new sprites

* remove the useless old sprites

* changed the green slightly

* Automatic changelog update

* Add overlay decals for mini tiles and bricks (space-wizards#24949)

Add minitile and brick decals overlay

* Update Core (space-wizards#24862)

* add

* Update Resources/Textures/Parallaxes/attributions.yml

* sprite change

* address review

---------

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

* Buyable Jani Trolley (space-wizards#25139)

Trolley

* Added display for amount of hits left in stun batons/stun prods. (space-wizards#25141)

Added display for amount of hits left in stun batons/stunprods.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* autolatheable air tanks (space-wizards#25130)

* gastankening

* fix price

* Automatic changelog update

* Fix pointing arrow trajectory (space-wizards#25061)

Initial commit

* make linking logic gates 1000% better (space-wizards#25041)

* make door status use SendSignal

* LastSignals and logic, add ClearSignal api too

* make everything outputting a logic signal default to false

* refactor ops

* :trollface:

* :trollface:

* protoid for LastSignals

* oop

---------

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

* Buff emergency toolbox fill (space-wizards#24225)

Resolves issue space-wizards#23059, for which the submitter wrote:

Emergency toolboxes contain a crowbar, two flashlights (sometimes one), two breath masks, and two chocolate. With the addition of water bottles to survival boxes and emergency nitrogen tanks, I think emergency toolboxes should be updated to include said water bottles and emergency tanks. Would make these just a little bit more useful. It feels weird they don't have oxygen tanks when they have two breath masks, and since water bottles are now commonplace it would be a good idea to put them in a place where emergency food is stored as well.

* Void jetpack resprite (space-wizards#25150)

add

* Automatic changelog update

* Allow configuring gen_build_info.py through environment variables (space-wizards#25162)

This makes the life of forks slightly easier by letting you pass an
environment variable instead of having to maintain this file yourself.

* Significantly nerf Deathnettles (space-wizards#25068)

* Balancing my beloved

Significantly nerfs deathnettles so botanists can't just take down jug's like it's no issue, we have guns, we should be using them

* Additional Balancing Changes.

* Losing my mind

* Automatic changelog update

* Fix spelling errors in mechs.yml (space-wizards#25168)

* fix showhealthbars perms (space-wizards#25157)

* Allow inspecting ID's and Health of people behind glass (space-wizards#25163)

Hops will love me

* Automatic changelog update

* Fix decal error spam (space-wizards#25172)

* Restore MonoOverlay (space-wizards#25170)

space-wizards#24949 nuked it.

* Automatic changelog update

* Added "wink" and "tearfully smiles" emotes + more cry emote variations (space-wizards#25129)

Added wink and tearfully smiles emote + more cries  variations

* Automatic changelog update

* Update submodule to 210.0.0 (space-wizards#25175)

* Update submodule to 210.0.0

* 210.0.1 instead, the previous one was broken

* 210.0.3 instead, the previous one was ALSO broken

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>

* The medical beret is real (space-wizards#25176)

* 1

* 2

* button is real.

* Automatic changelog update

* Fixed Tipped ammo not being Spent (space-wizards#25167)

Fix Tipped Ammo not being Spent

* Automatic changelog update

* Hoods and some chaplain's hats now hides hair (space-wizards#25142)

* Hoods now hide hair

* additional

plague hat and witch hat now hide hair

* fixing some tags in hats

* hoods tag fix

* Glassbox shatter resprite (space-wizards#25136)

* Automatic changelog update

* Random spontaneous cleanup PR (space-wizards#25131)

* Use new Subs.CVar helper

Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.

This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.

* Fix a bunch of warnings

* More warning fixes

* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.

* Get rid of some more ISerializationHooks for enums

* And a little more

* Apply suggestions from code review

Co-authored-by: 0x6273 <0x40@keemail.me>

---------

Co-authored-by: 0x6273 <0x40@keemail.me>

* Decrease the chemical cost of regen mesh and sutures and move them to their own file (space-wizards#24948)

* WHYWEREMEDSINMEALRECIPES

* 20chem

* didiforgettosavethis

* Split slime marking leg gradient (space-wizards#24928)

* Split slime marking leg gradient

* up markings to 4

* Automatic changelog update

* Require plants to be harvestable before sampling (space-wizards#24851)

* Add verbs to Open/Close Openable containers, and add optional seals (space-wizards#24780)

* Implement closing; add open/close verbs

* Add breakable seals

* Allow custom verb names; make condiment bottles closeable

* Remove pointless VV annotations and false defaults

* Split Sealable off into a new component

* Should have a Closed event too

* Oh hey, there are icons I could use

* Ternary operator

* Add support for seal visualizers

* Moved Sealable to Shared, added networking

* Replaced bottle_close1.ogg

* Automatic changelog update

* Shadow anomaly returns (space-wizards#24629)

* content

* add cat

* ambient

* I FORGOT HEARTS!

* fix ambient

* some fixes

* canCollide: false

* connect to damageable

* pi

* remove fx

* some fixes

* *sad bruh*

* hazed

* Update base_shadow.yml

* Automatic changelog update

* Microwave UX enhancements  (space-wizards#24547)

* Facelift Microwave UI

Includes new background light in UI, Uses predictive input, UI now properly disables buttons when microwave is active

* Microwave now shows Elapsed time

* Fixed bad formatting

* Added new term for "BottomMargin"

* Change yellow color

* Update StyleNano.cs

just spacing fixed

* Cook time countdown now detached from server


Instead of the server constantly sending out messages for the cook countdown, it is now predicted client side using TimeSpan

* Update MicrowaveMenu.xaml

forgot to re-add item space

* Automatic changelog update

* Additional damage visualisers (space-wizards#24618)

* brute

* add

* Anomaly Synchronizer + Signallers tweaks (space-wizards#24461)

* content

* nerf

* fix rsi

* Automatic changelog update

* saltern update (space-wizards#25182)

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

* Allow players to run saveconfig command. (space-wizards#25200)

Benign client-side command.

* Revert "Allow configuring gen_build_info.py through environment variables" (space-wizards#25201)

Revert "Allow configuring gen_build_info.py through environment variables (#2…"

This reverts commit 163e6d2.

* Fax machines can print from text file (space-wizards#23262)

* added

* checks tweaking

* fixed what sloth wanted

* fixed?

* dialog diposing fix

* checks tweaking

* more changes

* dispose streamreader

* Update Content.Client/Fax/UI/FaxBoundUi.cs

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

* Update Content.Server/Fax/FaxSystem.cs

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

* fix minor typo

---------

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

* Automatic changelog update

* Vox names, species prototype cleanup, some cosmetic changes (space-wizards#24994)

* voxnames

* New generator parameters, names are more readable

* bunch of missing vox stuff

* more names

* sad

* Balanced ChemVend Stock (space-wizards#25207)

* Balanced ChemVend Stock

ChemVend needs more balanced stock for what actually gets used

* +1 Sugar

* Ranged Holosigns (space-wizards#25120)

* Changed holo signs to be ranged and used on click rather than Z.

* Updated comments

* Failed attempt at ignoring walls

* Getting rid of unused libraries

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Minor test fixes (space-wizards#25174)

Stuff that probably shoulda been wrapped ig but our test runner stinky.

* Add pun to diagnostic hud description (space-wizards#25209)

Seaborgium is element number 106 and is presumably what lets these glasses "see" "borgs".

* Add events for TemperatureProtection and PressureProtection (space-wizards#25165)

* Update criminal-records.ftl (space-wizards#25229)

* Adds always powered variants of colored lights (space-wizards#25185)

Co-authored-by: Jeff <velcroboy333@hotmail.com>

* Fixes silver bars being whole stacks (space-wizards#25239)

Co-authored-by: Jeff <velcroboy333@hotmail.com>

* Makes clumsy not delete guns (space-wizards#25243)

clumsy no longer deletes guns

Co-authored-by: Jessica M <jessica@maybe.sh>

* Predict Injector (syringes), cleanup (space-wizards#25235)

At least the mode/transfer amount logic. Actual transfer logic needs Bloodstream which I didn't wanna move into shared.

* Updated disabler to have suitStorage tag under slots. (space-wizards#25238)

* Automatic changelog update

* Updates to Origin (space-wizards#24908)

Replaced medical's HM console with a CM console, added janitor equipment closet

* Fix spawn priority persistence on reconnect and restart (space-wizards#25246)

Because of course I would forget one line

* Add French accent beret (space-wizards#21430)

* Allow thermomachines to exchange with air instead of inlet (space-wizards#25247)

Add purely atmospheric heat exchange to the gas thermomachine component (in preparation for space heaters).

* Fix: Holosigns can be stored again (space-wizards#25249)

* Holosigns can be stored again

* TryComp to HasComp

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Death acidifier fix (space-wizards#25251)

* Automatic changelog update

* Clarify stripping logs (space-wizards#25190)

* Indicate whether pickpocketing is stealthy in logs, change :user to :actor, and clean up messages.

* Remove ugly whitespace

* Do the thing I should have done but didn't because I didn't want to think

* Fix spacing

* Fix disposals bins not automatically flushing after an object is inserted (space-wizards#25233)

Fix disposals bins not automatically flushing after an object is inserted.

Because of Spaghetti Code:tm:, AfterInsert() in DisposalUnitSystem still handles insertion itself. Except in all cases except drag/drop insert, the object is already inserted so this check fails and the remaining logic doesn't happen anymore. Fixed now.

* Sec & greysec jumpskirt fix (space-wizards#25269)

* "resprites" sec & greysec jumpskirts

* adjustments

* Automatic changelog update

* Reduce eshield hp (space-wizards#25258)

reduce eshield hp

* Automatic changelog update

* Artifact hemoglobin trigger now accepts all sentient blood types (space-wizards#25240)

* Artifact blood trigger now accepts all sentient blood types

* Update artifact-hints.ftl

* Update engine to v210.1.0 (space-wizards#25288)

* Made ghost.role_time a server modifiable only cvar (space-wizards#25292)

Fix

* Nuke fancification (space-wizards#25297)

Actually use more icon states for deployed/armed/about to explode

Also unlit layer.

Also examine text

* Automatic changelog update

* Change copper blood from ferrous to metallic (space-wizards#25217)

changed copper blood from ferrous to metallic

* Thindow glass dupe fix (space-wizards#25304)

smite glass dupe off the face of the planet

eww nasty dupe exploits blehh

* Automatic changelog update

* Kill Seperated Mindshield Icons (space-wizards#25303)

* Unghettoify mindshield icons

Adds support for layers in status icons, through the StatusIconLayer enum and the new "layer" datafield. Defaults to the Base layer where functionally remains unchanged.

* TG icon for shield

probably better than the shitty one I made in paint

* forgor meta.json

I forgor

* Emo review

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Automatic changelog update

* MORE SUFFIXES (space-wizards#25314)

Co-authored-by: Jeff <velcroboy333@hotmail.com>

* Fix spawning glass shard for each glass sheet in stack (space-wizards#25308)

* fix: SpawnEntitiesBehavior now works with stacks

Fixed the issue of SpawnEntitiesBehavior not executing multiple times on
entities with stack conponent.

Fixes space-wizards#25287

* fix: reduced dictionary iterations

* Automatic changelog update

* Adds atmospherics access to the fire fighting door remote. Feels like… (space-wizards#25097)

Adds atmospherics access to the fire fighting door remote. Feels like an oversight for the atmos door remote to not have atmos access.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Re-organise main menu screen (space-wizards#25173)

- The dummy control of 2px size has annoyed me for almost 5 years.
- Why is it in the top-right.
- Why is the server address not labelled.

* Allow t-ray to penetrate carpets and puddles (space-wizards#25276)

* Allow t-ray to penetrate carpets and puddles

* handle edge cases

* Automatic changelog update

* Add sfx for writing on paper (space-wizards#25257)

* Initial commit

* Moved params to sound

* Removed type tag

* Removed null check

* Forced default

* Automatic changelog update

* New sprites for guidebooks (space-wizards#25232)

* added books to roles

* First pass

* removed yaml to split pull requests into resprite first, then giving the books to assistants

* new science

* Automatic changelog update

* LockVisualizer (space-wizards#25224)

* LockVisualizer

* Fix state

* Clean some code

* Make it component, fix tests fail

* Fix for StateUnlocked

Now it is possible to manually set the unlocked state and it will work!

* Optimize LockVisualizer, add check for unlocked state

* No todo I guess

* Solution precision fixes (space-wizards#25199)

* Add test for two chemistry issues

1. rounding issue with reaction processing when making chloral hydrate
2. reliable assert trip due to the ValidateSolution() heat capacity issue.

* Fix FixedPoint2 arithmetic

Fix internal floating point arithmetic in places where it could be avoided.

Fix incorrect rounding mode used in other places (it should always floor, like regular int arithmetic).

I had to add an explicit epsilon value for float -> FixedPoint2 because something like 1.05 is actually like 1.04999 and that'd cause it to be rounded down to 1.04.

This fixes reaction reagent processing in cases where the reagent inputs can't cleanly divide. Previously, when making 30u chloral hydrate by adding the chlorine in 10u increments you'd end up with 0.04 chlorine left over. This was caused by division in the reaction code rounding up in some cases. Changing division here to always round down fixes it.

* Attempt to fix heat capacity precision assert issues.

Fixes space-wizards#22126

First, we just increase the tolerance of the assert. It was way too low.

Second, actually put a cap on float drift from one-off _heatCapacity changes.

* Fix float -> FixedPoint2 epsilon for negative number, fix tests.

* Fix DamageableTest

* Oh yeah I need to call CleanReturnAsync

* Automatic changelog update

* WebP lobby images (space-wizards#25184)

* Allow webp in lobby background files

* Make lobby art webp images

Reduces folder from 10 MB to 2.5 MB without only slight quality loss.

* Update PutLobbyScreensHere.txt

* New lobby art : Blueprint (space-wizards#25179)

* add

* replace image with webp version

waiting on space-wizards#25184

* Automatic changelog update

* Diona Nymphs & Splitting (space-wizards#24630)

* Porting & implementation

* Fix two stupid errors

* Human not humans

* fix audio path

* Fix test fails & update cooldown

* Work on reviews & test fail

* Rework nymph organ system.

* Make the nymph organs nospawn.

* IsDeadIC

* Automatic changelog update

* reform cooldown 10 minutes (space-wizards#25328)

* Change plant clipping mechanics (space-wizards#25326)

Make seeds from clipped plants inherit the decreased health from parents.
Also require one growth stage before clipping.

* Automatic changelog update

* Fix nymphs being deleted immediatly after spawning (space-wizards#25344)

* nymphs now don't get deleted together with the body of the diona

* moved nymph system to server

* Automatic changelog update

* Fix: Grenades don't make trigger sound (space-wizards#25321)

* Fix: Grenades don't make trigger sound

* transform instead of trycomp transform

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>

* fixed the specific if statement called when plant age is under 0 (space-wizards#25346)

* Save round information into replay_final.yml (space-wizards#23013)

* Save round information into the replay

* Add round end text too

* This is way better

* Get actual job

* oop

* OK THERE

* Fake line endings to make life easier

* I was told this yaml is legal

* I just realised this will make my life easier

* REVIEWS BABY IM A PROGRAMMER MOMMY

* Live pjb reaction

* Live pjb reaction 2

* Reviews 2

* Dont need this

* Please no more have mercy on my soul

* Oh frick

* Adds a massban flag to the admin flags (space-wizards#25327)

Adds a massban flag to the admin flags used on ss14 to ban large amounts of players rom a .tsv file

Co-authored-by: Geekyhobo <66805063+Ahlytlex@users.noreply.github.com>

* Automatic changelog update

* Fix missing line in nuke exploding sprite (space-wizards#25351)

I could've sworn I corrected this before committing but guess not ???

* Added Evidence Markers for the Detective! (space-wizards#25255)

* added evidence markers

* box tweak

* fixed a spelling mistake

* new sprites, tweaked yml too

* Add "tailed" hair (space-wizards#25216)

* add

* yes

* Clean up scars.yml and add a new chest scar (space-wizards#25215)

add

* Automatic changelog update

* Add new "OptionsVisualizer" (space-wizards#25128)

This is a visualizer somewhat similar to the Generic. It allows configuring appearance info based on specific CVars the user has set. This allows YAML to easily configure alternatives for accessibility CVars like reduced motion.

* Suffix spelling mistake on seed vendor (space-wizards#25352)

spelling error

* Update engine to v210.1.1 (space-wizards#25354)

Important fixes from the UI PR

* Stop wagging tails on crit (space-wizards#25323)

* Add Flammable Touch Reaction for liquid tritium

* Stop tail wagging action on crit

* Revert "Add Flammable Touch Reaction for liquid tritium"

This reverts commit 41be57b.

* Automatic changelog update

* EVA suit helmets now have (un)equip sounds (space-wizards#25349)

add (un)equip sounds to EVA helms

* Automatic changelog update

* Newton Cradle Fix + Addition to Bureaucracy Crate (space-wizards#25357)

fixes

makes the newton cradle not able to decimate ears while also adding it to the bureaucracy crate and lowering its volume and range a little bit

* Automatic changelog update

* Shadow anomaly respects "reduced motion" (space-wizards#25355)

Enabling "reduced motion" now makes the smoke effects not animate. This helps some people with vision issues.

* Fixed directional window durability (space-wizards#25259)

shit

* Very little cleanup (space-wizards#25364)

* atualiza locale

* arruma uns locales novos

---------

Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Tunguso4ka <71643624+Tunguso4ka@users.noreply.github.com>
Co-authored-by: Ilya246 <57039557+Ilya246@users.noreply.github.com>
Co-authored-by: Krunklehorn <42424291+Krunklehorn@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
Co-authored-by: Vero <73014819+vero5123@users.noreply.github.com>
Co-authored-by: doom <ghostrecon5123@gmail.com>
Co-authored-by: Adrian16199 <144424013+Adrian16199@users.noreply.github.com>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: Armok <155400926+ARMOKS@users.noreply.github.com>
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
Co-authored-by: PoorMansDreams <150595537+PoorMansDreams@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: lapatison <100279397+lapatison@users.noreply.github.com>
Co-authored-by: router <messagebus@vk.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Varen <ychwack@hotmail.it>
Co-authored-by: potato1234_x <79580518+potato1234x@users.noreply.github.com>
Co-authored-by: Hanz <41141796+Hanzdegloker@users.noreply.github.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: YuNii <benjamin@bhenrich.de>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: Mangohydra <156087924+Mangohydra@users.noreply.github.com>
Co-authored-by: Nim <128169402+Nimfar11@users.noreply.github.com>
Co-authored-by: Jezithyr <jezithyr@gmail.com>
Co-authored-by: Fluffiest Floofers <thebluewulf@gmail.com>
Co-authored-by: Jajsha <101492056+Zap527@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: forgotmyotheraccount <133569389+forgotmyotheraccount@users.noreply.github.com>
Co-authored-by: FungiFellow <151778459+FungiFellow@users.noreply.github.com>
Co-authored-by: Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
Co-authored-by: Alex Nordlund <deep.alexander@gmail.com>
Co-authored-by: EdenTheLiznerd <138748328+EdenTheLiznerd@users.noreply.github.com>
Co-authored-by: deepdarkdepths <155149356+deepdarkdepths@users.noreply.github.com>
Co-authored-by: Genkail <50331122+Genkail@users.noreply.github.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: James Simonson <jamessimo89@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: Agoichi <92464780+Agoichi@users.noreply.github.com>
Co-authored-by: KREKS <132602258+xKREKSx@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: wafehling <wafehling@users.noreply.github.com>
Co-authored-by: Interrobang01 <113810873+Interrobang01@users.noreply.github.com>
Co-authored-by: k3yw <grenadiumdota@gmail.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: Jessica M <jessica@jessicamaybe.com>
Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: Zadeon <loldude9000@gmail.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: Menshin <Menshin@users.noreply.github.com>
Co-authored-by: liltenhead <104418166+liltenhead@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Daxxi3 <158596935+Daxxi3@users.noreply.github.com>
Co-authored-by: MACMAN2003 <macman2003c@gmail.com>
Co-authored-by: Golinth <amh2023@gmail.com>
Co-authored-by: Łukasz Mędrek <lukasz@lukaszm.xyz>
Co-authored-by: PotentiallyTom <67602105+PotentiallyTom@users.noreply.github.com>
Co-authored-by: MilenVolf <63782763+MilenVolf@users.noreply.github.com>
Co-authored-by: LankLTE <135308300+LankLTE@users.noreply.github.com>
Co-authored-by: Flesh <62557990+PolterTzi@users.noreply.github.com>
Co-authored-by: Arendian <137322659+Arendian@users.noreply.github.com>
Co-authored-by: Geekyhobo <66805063+Geekyhobo@users.noreply.github.com>
Co-authored-by: Geekyhobo <66805063+Ahlytlex@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: Peptide90 <78795277+Peptide90@users.noreply.github.com>
Co-authored-by: ArchPigeon <bookmaster3@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: Vigers Ray <60344369+VigersRay@users.noreply.github.com>
joshepvodka added a commit to TucanoStation/tucano-station-14 that referenced this pull request Feb 19, 2024
* predict egg cracking + refactor (space-wizards#25028)

* move stuff to server and some refactoring

* update spikables to not use triggering

* add Delete bool just incase

* a new egg

* mom can we have webedit. no, we have webedit at home

---------

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

* Paper is now bad food (space-wizards#25065)

* allow building atmos devices on lattice or thindow tiles (space-wizards#25057)

do

* Remove tail wag emote text (space-wizards#25054)

Removed emote text

* Automatic changelog update

* Small t-ray scanner resprite (space-wizards#25047)

add

* Automatic changelog update

* Fix brig timer labels to displaying correctly. (space-wizards#25033)

* Fix brig timer labels to displaying correctly.

The TextScreenSystem was expecting a string, but the value inputted for
the label was an array of strings.

* Address nitpick

This should do the exact same thing but it is semantically clearer I guess.

* fix follow comannd help locale (space-wizards#25032)

* Automatic changelog update

* Fixes indestructible mop buckets (space-wizards#25001)

* destructible mop buckets

* remove wwod

* spacing

---------

Co-authored-by: doom <ghostrecon5123@gmail.com>

* Automatic changelog update

* Straw hat. (space-wizards#24997)

* Straw hat.

A craftable, flammable straw hat.

Thats it.

* seems to made it go in flames!

* Automatic changelog update

* Alphabetically sorted guidebook entries  (space-wizards#24963)

* - Renamed GetSortedRootEntries to GetSortedEntries and added child sorting logic
- Removed unessesary Tree.SetAllExpanded(true) call in RepopulateTree

* Adding back deleted setallexpanded call to check if test passes

---------

Co-authored-by: Your Name <you@example.com>

* Automatic changelog update

* atlas update (space-wizards#25071)

* atlas update

* untroll

---------

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

* box update (space-wizards#25074)

* fland update (space-wizards#25075)

* marathon update (space-wizards#25076)

* meta update (space-wizards#25077)

* Syndicate key grammar fix (space-wizards#25085)

* Syndicate encryption key grammar fix

An encryption key used by... wait... Who is owner of this chip? > An encryption key used by... wait... Who is the owner of this chip?

* Syndicate key grammar fix

An encryption key used by... wait... Who is owner of this chip? > An encryption key used by... wait... Who is the owner of this chip?

* Fix hybridization seedless probability (space-wizards#25084)

Fix comparison

Hybrids (different plants being crossed) are supposed to have a high
chance of becoming seedless to balance overpowered plants.

However, a logic error in the comparison gave seedless to plants when
they were from the same seed (not hybrids) rather than the other way
around.

Reported by:    @genderGeometries

* Added Tourniquets to stop bleeds (space-wizards#23198)

* Fixed Error with RobustToolbox Edits. Removed the addition of secbelt tag from assault belt.

* Resprite of the monstrosity

* Resprite of the tourniquet NO LONGER PHALLUS SHAPED

* too bright, now darker and edgier

* Tourniquet resprite

* metajson yay

* Update Skelly Vs The Rev lobby art (space-wizards#25088)

Someone said the original was a bit low res
and I agreed.

This is a 1440p (from an 8k base image) rendition
of the same scene, with a new dramatic forced
perspective look, and generally cleaner art throughout.

Also now there's two mothroaches.

* Automatic changelog update

* Minor airlock assembly clean up (space-wizards#25073)

1

* Update README.md (space-wizards#25067)

* Update README.md

* emo review

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* prevent opening debug menus without perms (space-wizards#25091)

prevent people without permissions from opening the tile, entityspawn, or decal menus

* Remove battery from crew observation kit, fix description (space-wizards#25000)

-Remove battery from crew observation kit, fix description

* Laughin' Peas (space-wizards#25089)

* laughter

* make clownmobs bleed laughter

* laughin syrup and laughter recipe

* add laughin peas

* Automatic changelog update

* QM drip DLC (space-wizards#24477)

* New Drip for the QM

QM beret and QM formal uniform

* Asd

Asd

* Adds the new clothing to the uniform printer

what it says on the tin

* I always forget to update the copyright RAAAAAH

yup

* EMT Belt Part 2 (space-wizards#24289)

* add

* fix

* aaaa

* Flipped caps real (space-wizards#24961)

* Flipped caps real

* oops

* whoops

* flip not fold

* fix formatting

* cargosoft formatting

* Automatic changelog update

* Nerf Beanbags (space-wizards#24653)

Lowers beanbag damage from 55 stam to 30 stam

* Automatic changelog update

* Fix screenspace popups (space-wizards#24987)

* Fix screenspace popups

Never got around to it earlier but need to draw it above UI controls.

* Minor null change

* Automatic changelog update

* Fix crew manifest department bugs (space-wizards#24975)

* Automatic changelog update

* Changed door remote to trigger based on vision occlusion(space-wizards#25093)

Changed door remote to trigger based on vision occlusion rather than opaque collision targeting check. Ian's butt will no longer absorb your 5G signals.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* GPS In Paramed Locker (space-wizards#25096)

GPS in paramed locker

* Remove 'travis scott day' from the game (space-wizards#25106)

* remove travis scott from the game

* KILL TRAVIS EVEN MORE

* Automatic changelog update

* Remove erroneous changelog (space-wizards#25107)

* fixed fland cargo shuttle not having tiny fans (sorry) (space-wizards#25095)

* Glass box for antique laser pistol (space-wizards#25104)

* glassbox

* fix

* Gibbing refactor (Per-part gibbing and giblet throwing!) (space-wizards#24989)

* Moving Gibbing rework out from medrefactor into it's own PR

* Re-enabled warning for missing gibbable on TryGibEntity

* Implemented better logic for gibbing failover and better logging

* Allowing audio params and drop scattering customization per component. Created UnGibbable organ base types and made brains ungibbable.
Removed delete brain from gibBody function. Artifact crusher does not destroy brains anymore. It only destroyed brains before not other organs which was wierd.

* Update Content.Shared/Body/Systems/SharedBodySystem.Body.cs

Fixing space for multiplication

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

* Added event raised when attempting to gib contained entities to allow modification of allowed and excluded container ids

* removing audioParams var from component (sound specifier includes it)

* Fixing signature

---------

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

* Automatic changelog update

* Gibbing contents hotfix (space-wizards#25114)

Fixing gibbing contents not respecting Include/Exclude container lists. This is currently unused

* Predict two-way levers (space-wizards#25043)

* Predict two-way levers

Annoys me the rare occasions I touch cargo. Doesn't predict the signal but at least the lever responds immediately.

* space

* a

* Replace Romerol with Ambuzol in chemist guidebook (space-wizards#25108)

replace romerol with ambuzol

* Fix borgs being able to emag themselves (space-wizards#24748)

* Fix self emagging borgs

* Add popup on self emag failure.

* Ectoplasm is grindable into Necrosol (space-wizards#25053)

add

* Automatic changelog update

* Automatic changelog update

* Roundstart Food Service research (space-wizards#25046)

add

* Automatic changelog update

* Add option for character name colors in chat & move coloration to clientside (space-wizards#24625)

* Adds option to disable character names in chat/speechbubbles

* Moved the coloring of names to clientside

* Move string functions to SharedChatSystem to avoid duplicate code in SpeechBubble.cs

* Changed to be put under Accessibility section

* Cache CVar

* Automatic changelog update

* Update Credits (space-wizards#25115)

Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>

* Replace fixed drink glasses with metamorphic versions (space-wizards#25134)

* Replaced fixed drink glasses with metamorphic versions

* Fine, no milkshake then

* ambuzol beef (space-wizards#25119)

* Automatic changelog update

* Shuttle floor resprite (space-wizards#25127)

* resprites shuttle tiles

* resprites shuttle floor tiles & adds grey/black shuttle tiles

* attributions.yml update

* Adding a period to an object description (space-wizards#25138)

Added a period to an object description.

Adds a period to silk's description. This is my first and last pull request.

* Door Remote Changelog Entry (space-wizards#25144)

I'm so dumb.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Lowered Ion Storm Reoccurence Delay to 20 (space-wizards#25135)

* Lowered reoccurencedelay to 45

* Lowered Further down to 20

* Re-added shivs to crafting menus (space-wizards#25094)

Added a recipe for crafting menu

* Automatic changelog update

* Color Tipped Ammo (space-wizards#25103)

* Tipped .35 ammo

* used layers instead of new sprites

* remove the useless old sprites

* changed the green slightly

* Automatic changelog update

* Add overlay decals for mini tiles and bricks (space-wizards#24949)

Add minitile and brick decals overlay

* Update Core (space-wizards#24862)

* add

* Update Resources/Textures/Parallaxes/attributions.yml

* sprite change

* address review

---------

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

* Buyable Jani Trolley (space-wizards#25139)

Trolley

* Added display for amount of hits left in stun batons/stun prods. (space-wizards#25141)

Added display for amount of hits left in stun batons/stunprods.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* autolatheable air tanks (space-wizards#25130)

* gastankening

* fix price

* Automatic changelog update

* Fix pointing arrow trajectory (space-wizards#25061)

Initial commit

* make linking logic gates 1000% better (space-wizards#25041)

* make door status use SendSignal

* LastSignals and logic, add ClearSignal api too

* make everything outputting a logic signal default to false

* refactor ops

* :trollface:

* :trollface:

* protoid for LastSignals

* oop

---------

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

* Buff emergency toolbox fill (space-wizards#24225)

Resolves issue space-wizards#23059, for which the submitter wrote:

Emergency toolboxes contain a crowbar, two flashlights (sometimes one), two breath masks, and two chocolate. With the addition of water bottles to survival boxes and emergency nitrogen tanks, I think emergency toolboxes should be updated to include said water bottles and emergency tanks. Would make these just a little bit more useful. It feels weird they don't have oxygen tanks when they have two breath masks, and since water bottles are now commonplace it would be a good idea to put them in a place where emergency food is stored as well.

* Void jetpack resprite (space-wizards#25150)

add

* Automatic changelog update

* Allow configuring gen_build_info.py through environment variables (space-wizards#25162)

This makes the life of forks slightly easier by letting you pass an
environment variable instead of having to maintain this file yourself.

* Significantly nerf Deathnettles (space-wizards#25068)

* Balancing my beloved

Significantly nerfs deathnettles so botanists can't just take down jug's like it's no issue, we have guns, we should be using them

* Additional Balancing Changes.

* Losing my mind

* Automatic changelog update

* Fix spelling errors in mechs.yml (space-wizards#25168)

* fix showhealthbars perms (space-wizards#25157)

* Allow inspecting ID's and Health of people behind glass (space-wizards#25163)

Hops will love me

* Automatic changelog update

* Fix decal error spam (space-wizards#25172)

* Restore MonoOverlay (space-wizards#25170)

space-wizards#24949 nuked it.

* Automatic changelog update

* Added "wink" and "tearfully smiles" emotes + more cry emote variations (space-wizards#25129)

Added wink and tearfully smiles emote + more cries  variations

* Automatic changelog update

* Update submodule to 210.0.0 (space-wizards#25175)

* Update submodule to 210.0.0

* 210.0.1 instead, the previous one was broken

* 210.0.3 instead, the previous one was ALSO broken

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>

* The medical beret is real (space-wizards#25176)

* 1

* 2

* button is real.

* Automatic changelog update

* Fixed Tipped ammo not being Spent (space-wizards#25167)

Fix Tipped Ammo not being Spent

* Automatic changelog update

* Hoods and some chaplain's hats now hides hair (space-wizards#25142)

* Hoods now hide hair

* additional

plague hat and witch hat now hide hair

* fixing some tags in hats

* hoods tag fix

* Glassbox shatter resprite (space-wizards#25136)

* Automatic changelog update

* Random spontaneous cleanup PR (space-wizards#25131)

* Use new Subs.CVar helper

Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.

This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.

* Fix a bunch of warnings

* More warning fixes

* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.

* Get rid of some more ISerializationHooks for enums

* And a little more

* Apply suggestions from code review

Co-authored-by: 0x6273 <0x40@keemail.me>

---------

Co-authored-by: 0x6273 <0x40@keemail.me>

* Decrease the chemical cost of regen mesh and sutures and move them to their own file (space-wizards#24948)

* WHYWEREMEDSINMEALRECIPES

* 20chem

* didiforgettosavethis

* Split slime marking leg gradient (space-wizards#24928)

* Split slime marking leg gradient

* up markings to 4

* Automatic changelog update

* Require plants to be harvestable before sampling (space-wizards#24851)

* Add verbs to Open/Close Openable containers, and add optional seals (space-wizards#24780)

* Implement closing; add open/close verbs

* Add breakable seals

* Allow custom verb names; make condiment bottles closeable

* Remove pointless VV annotations and false defaults

* Split Sealable off into a new component

* Should have a Closed event too

* Oh hey, there are icons I could use

* Ternary operator

* Add support for seal visualizers

* Moved Sealable to Shared, added networking

* Replaced bottle_close1.ogg

* Automatic changelog update

* Shadow anomaly returns (space-wizards#24629)

* content

* add cat

* ambient

* I FORGOT HEARTS!

* fix ambient

* some fixes

* canCollide: false

* connect to damageable

* pi

* remove fx

* some fixes

* *sad bruh*

* hazed

* Update base_shadow.yml

* Automatic changelog update

* Microwave UX enhancements  (space-wizards#24547)

* Facelift Microwave UI

Includes new background light in UI, Uses predictive input, UI now properly disables buttons when microwave is active

* Microwave now shows Elapsed time

* Fixed bad formatting

* Added new term for "BottomMargin"

* Change yellow color

* Update StyleNano.cs

just spacing fixed

* Cook time countdown now detached from server


Instead of the server constantly sending out messages for the cook countdown, it is now predicted client side using TimeSpan

* Update MicrowaveMenu.xaml

forgot to re-add item space

* Automatic changelog update

* Additional damage visualisers (space-wizards#24618)

* brute

* add

* Anomaly Synchronizer + Signallers tweaks (space-wizards#24461)

* content

* nerf

* fix rsi

* Automatic changelog update

* saltern update (space-wizards#25182)

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

* Allow players to run saveconfig command. (space-wizards#25200)

Benign client-side command.

* Revert "Allow configuring gen_build_info.py through environment variables" (space-wizards#25201)

Revert "Allow configuring gen_build_info.py through environment variables (#2…"

This reverts commit 163e6d2.

* Fax machines can print from text file (space-wizards#23262)

* added

* checks tweaking

* fixed what sloth wanted

* fixed?

* dialog diposing fix

* checks tweaking

* more changes

* dispose streamreader

* Update Content.Client/Fax/UI/FaxBoundUi.cs

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

* Update Content.Server/Fax/FaxSystem.cs

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

* fix minor typo

---------

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

* Automatic changelog update

* Vox names, species prototype cleanup, some cosmetic changes (space-wizards#24994)

* voxnames

* New generator parameters, names are more readable

* bunch of missing vox stuff

* more names

* sad

* Balanced ChemVend Stock (space-wizards#25207)

* Balanced ChemVend Stock

ChemVend needs more balanced stock for what actually gets used

* +1 Sugar

* Ranged Holosigns (space-wizards#25120)

* Changed holo signs to be ranged and used on click rather than Z.

* Updated comments

* Failed attempt at ignoring walls

* Getting rid of unused libraries

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Minor test fixes (space-wizards#25174)

Stuff that probably shoulda been wrapped ig but our test runner stinky.

* Add pun to diagnostic hud description (space-wizards#25209)

Seaborgium is element number 106 and is presumably what lets these glasses "see" "borgs".

* Add events for TemperatureProtection and PressureProtection (space-wizards#25165)

* Update criminal-records.ftl (space-wizards#25229)

* Adds always powered variants of colored lights (space-wizards#25185)

Co-authored-by: Jeff <velcroboy333@hotmail.com>

* Fixes silver bars being whole stacks (space-wizards#25239)

Co-authored-by: Jeff <velcroboy333@hotmail.com>

* Makes clumsy not delete guns (space-wizards#25243)

clumsy no longer deletes guns

Co-authored-by: Jessica M <jessica@maybe.sh>

* Predict Injector (syringes), cleanup (space-wizards#25235)

At least the mode/transfer amount logic. Actual transfer logic needs Bloodstream which I didn't wanna move into shared.

* Updated disabler to have suitStorage tag under slots. (space-wizards#25238)

* Automatic changelog update

* Updates to Origin (space-wizards#24908)

Replaced medical's HM console with a CM console, added janitor equipment closet

* Fix spawn priority persistence on reconnect and restart (space-wizards#25246)

Because of course I would forget one line

* Add French accent beret (space-wizards#21430)

* Allow thermomachines to exchange with air instead of inlet (space-wizards#25247)

Add purely atmospheric heat exchange to the gas thermomachine component (in preparation for space heaters).

* Fix: Holosigns can be stored again (space-wizards#25249)

* Holosigns can be stored again

* TryComp to HasComp

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Death acidifier fix (space-wizards#25251)

* Automatic changelog update

* Clarify stripping logs (space-wizards#25190)

* Indicate whether pickpocketing is stealthy in logs, change :user to :actor, and clean up messages.

* Remove ugly whitespace

* Do the thing I should have done but didn't because I didn't want to think

* Fix spacing

* Fix disposals bins not automatically flushing after an object is inserted (space-wizards#25233)

Fix disposals bins not automatically flushing after an object is inserted.

Because of Spaghetti Code:tm:, AfterInsert() in DisposalUnitSystem still handles insertion itself. Except in all cases except drag/drop insert, the object is already inserted so this check fails and the remaining logic doesn't happen anymore. Fixed now.

* Sec & greysec jumpskirt fix (space-wizards#25269)

* "resprites" sec & greysec jumpskirts

* adjustments

* Automatic changelog update

* Reduce eshield hp (space-wizards#25258)

reduce eshield hp

* Automatic changelog update

* Artifact hemoglobin trigger now accepts all sentient blood types (space-wizards#25240)

* Artifact blood trigger now accepts all sentient blood types

* Update artifact-hints.ftl

* Update engine to v210.1.0 (space-wizards#25288)

* Made ghost.role_time a server modifiable only cvar (space-wizards#25292)

Fix

* Nuke fancification (space-wizards#25297)

Actually use more icon states for deployed/armed/about to explode

Also unlit layer.

Also examine text

* Automatic changelog update

* Change copper blood from ferrous to metallic (space-wizards#25217)

changed copper blood from ferrous to metallic

* Thindow glass dupe fix (space-wizards#25304)

smite glass dupe off the face of the planet

eww nasty dupe exploits blehh

* Automatic changelog update

* Kill Seperated Mindshield Icons (space-wizards#25303)

* Unghettoify mindshield icons

Adds support for layers in status icons, through the StatusIconLayer enum and the new "layer" datafield. Defaults to the Base layer where functionally remains unchanged.

* TG icon for shield

probably better than the shitty one I made in paint

* forgor meta.json

I forgor

* Emo review

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Automatic changelog update

* MORE SUFFIXES (space-wizards#25314)

Co-authored-by: Jeff <velcroboy333@hotmail.com>

* Fix spawning glass shard for each glass sheet in stack (space-wizards#25308)

* fix: SpawnEntitiesBehavior now works with stacks

Fixed the issue of SpawnEntitiesBehavior not executing multiple times on
entities with stack conponent.

Fixes space-wizards#25287

* fix: reduced dictionary iterations

* Automatic changelog update

* Adds atmospherics access to the fire fighting door remote. Feels like… (space-wizards#25097)

Adds atmospherics access to the fire fighting door remote. Feels like an oversight for the atmos door remote to not have atmos access.

Co-authored-by: Plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Re-organise main menu screen (space-wizards#25173)

- The dummy control of 2px size has annoyed me for almost 5 years.
- Why is it in the top-right.
- Why is the server address not labelled.

* Allow t-ray to penetrate carpets and puddles (space-wizards#25276)

* Allow t-ray to penetrate carpets and puddles

* handle edge cases

* Automatic changelog update

* Add sfx for writing on paper (space-wizards#25257)

* Initial commit

* Moved params to sound

* Removed type tag

* Removed null check

* Forced default

* Automatic changelog update

* New sprites for guidebooks (space-wizards#25232)

* added books to roles

* First pass

* removed yaml to split pull requests into resprite first, then giving the books to assistants

* new science

* Automatic changelog update

* LockVisualizer (space-wizards#25224)

* LockVisualizer

* Fix state

* Clean some code

* Make it component, fix tests fail

* Fix for StateUnlocked

Now it is possible to manually set the unlocked state and it will work!

* Optimize LockVisualizer, add check for unlocked state

* No todo I guess

* Solution precision fixes (space-wizards#25199)

* Add test for two chemistry issues

1. rounding issue with reaction processing when making chloral hydrate
2. reliable assert trip due to the ValidateSolution() heat capacity issue.

* Fix FixedPoint2 arithmetic

Fix internal floating point arithmetic in places where it could be avoided.

Fix incorrect rounding mode used in other places (it should always floor, like regular int arithmetic).

I had to add an explicit epsilon value for float -> FixedPoint2 because something like 1.05 is actually like 1.04999 and that'd cause it to be rounded down to 1.04.

This fixes reaction reagent processing in cases where the reagent inputs can't cleanly divide. Previously, when making 30u chloral hydrate by adding the chlorine in 10u increments you'd end up with 0.04 chlorine left over. This was caused by division in the reaction code rounding up in some cases. Changing division here to always round down fixes it.

* Attempt to fix heat capacity precision assert issues.

Fixes space-wizards#22126

First, we just increase the tolerance of the assert. It was way too low.

Second, actually put a cap on float drift from one-off _heatCapacity changes.

* Fix float -> FixedPoint2 epsilon for negative number, fix tests.

* Fix DamageableTest

* Oh yeah I need to call CleanReturnAsync

* Automatic changelog update

* WebP lobby images (space-wizards#25184)

* Allow webp in lobby background files

* Make lobby art webp images

Reduces folder from 10 MB to 2.5 MB without only slight quality loss.

* Update PutLobbyScreensHere.txt

* New lobby art : Blueprint (space-wizards#25179)

* add

* replace image with webp version

waiting on space-wizards#25184

* Automatic changelog update

* Diona Nymphs & Splitting (space-wizards#24630)

* Porting & implementation

* Fix two stupid errors

* Human not humans

* fix audio path

* Fix test fails & update cooldown

* Work on reviews & test fail

* Rework nymph organ system.

* Make the nymph organs nospawn.

* IsDeadIC

* Automatic changelog update

* reform cooldown 10 minutes (space-wizards#25328)

* Change plant clipping mechanics (space-wizards#25326)

Make seeds from clipped plants inherit the decreased health from parents.
Also require one growth stage before clipping.

* Automatic changelog update

* Fix nymphs being deleted immediatly after spawning (space-wizards#25344)

* nymphs now don't get deleted together with the body of the diona

* moved nymph system to server

* Automatic changelog update

* Fix: Grenades don't make trigger sound (space-wizards#25321)

* Fix: Grenades don't make trigger sound

* transform instead of trycomp transform

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>

* fixed the specific if statement called when plant age is under 0 (space-wizards#25346)

* Save round information into replay_final.yml (space-wizards#23013)

* Save round information into the replay

* Add round end text too

* This is way better

* Get actual job

* oop

* OK THERE

* Fake line endings to make life easier

* I was told this yaml is legal

* I just realised this will make my life easier

* REVIEWS BABY IM A PROGRAMMER MOMMY

* Live pjb reaction

* Live pjb reaction 2

* Reviews 2

* Dont need this

* Please no more have mercy on my soul

* Oh frick

* Adds a massban flag to the admin flags (space-wizards#25327)

Adds a massban flag to the admin flags used on ss14 to ban large amounts of players rom a .tsv file

Co-authored-by: Geekyhobo <66805063+Ahlytlex@users.noreply.github.com>

* Automatic changelog update

* Fix missing line in nuke exploding sprite (space-wizards#25351)

I could've sworn I corrected this before committing but guess not ???

* Added Evidence Markers for the Detective! (space-wizards#25255)

* added evidence markers

* box tweak

* fixed a spelling mistake

* new sprites, tweaked yml too

* Add "tailed" hair (space-wizards#25216)

* add

* yes

* Clean up scars.yml and add a new chest scar (space-wizards#25215)

add

* Automatic changelog update

* Add new "OptionsVisualizer" (space-wizards#25128)

This is a visualizer somewhat similar to the Generic. It allows configuring appearance info based on specific CVars the user has set. This allows YAML to easily configure alternatives for accessibility CVars like reduced motion.

* Suffix spelling mistake on seed vendor (space-wizards#25352)

spelling error

* Update engine to v210.1.1 (space-wizards#25354)

Important fixes from the UI PR

* Stop wagging tails on crit (space-wizards#25323)

* Add Flammable Touch Reaction for liquid tritium

* Stop tail wagging action on crit

* Revert "Add Flammable Touch Reaction for liquid tritium"

This reverts commit 41be57b.

* Automatic changelog update

* EVA suit helmets now have (un)equip sounds (space-wizards#25349)

add (un)equip sounds to EVA helms

* Automatic changelog update

* Newton Cradle Fix + Addition to Bureaucracy Crate (space-wizards#25357)

fixes

makes the newton cradle not able to decimate ears while also adding it to the bureaucracy crate and lowering its volume and range a little bit

* Automatic changelog update

* Shadow anomaly respects "reduced motion" (space-wizards#25355)

Enabling "reduced motion" now makes the smoke effects not animate. This helps some people with vision issues.

* Fixed directional window durability (space-wizards#25259)

shit

* Very little cleanup (space-wizards#25364)

---------

Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Tunguso4ka <71643624+Tunguso4ka@users.noreply.github.com>
Co-authored-by: Ilya246 <57039557+Ilya246@users.noreply.github.com>
Co-authored-by: Krunklehorn <42424291+Krunklehorn@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: crazybrain23 <44417085+crazybrain23@users.noreply.github.com>
Co-authored-by: Vero <73014819+vero5123@users.noreply.github.com>
Co-authored-by: doom <ghostrecon5123@gmail.com>
Co-authored-by: Adrian16199 <144424013+Adrian16199@users.noreply.github.com>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: Armok <155400926+ARMOKS@users.noreply.github.com>
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
Co-authored-by: PoorMansDreams <150595537+PoorMansDreams@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: lapatison <100279397+lapatison@users.noreply.github.com>
Co-authored-by: router <messagebus@vk.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Varen <ychwack@hotmail.it>
Co-authored-by: potato1234_x <79580518+potato1234x@users.noreply.github.com>
Co-authored-by: Hanz <41141796+Hanzdegloker@users.noreply.github.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: YuNii <benjamin@bhenrich.de>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: Mangohydra <156087924+Mangohydra@users.noreply.github.com>
Co-authored-by: Nim <128169402+Nimfar11@users.noreply.github.com>
Co-authored-by: Jezithyr <jezithyr@gmail.com>
Co-authored-by: Fluffiest Floofers <thebluewulf@gmail.com>
Co-authored-by: Jajsha <101492056+Zap527@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: forgotmyotheraccount <133569389+forgotmyotheraccount@users.noreply.github.com>
Co-authored-by: FungiFellow <151778459+FungiFellow@users.noreply.github.com>
Co-authored-by: Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
Co-authored-by: Alex Nordlund <deep.alexander@gmail.com>
Co-authored-by: EdenTheLiznerd <138748328+EdenTheLiznerd@users.noreply.github.com>
Co-authored-by: deepdarkdepths <155149356+deepdarkdepths@users.noreply.github.com>
Co-authored-by: Genkail <50331122+Genkail@users.noreply.github.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: James Simonson <jamessimo89@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: Agoichi <92464780+Agoichi@users.noreply.github.com>
Co-authored-by: KREKS <132602258+xKREKSx@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: wafehling <wafehling@users.noreply.github.com>
Co-authored-by: Interrobang01 <113810873+Interrobang01@users.noreply.github.com>
Co-authored-by: k3yw <grenadiumdota@gmail.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: Jessica M <jessica@jessicamaybe.com>
Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: Zadeon <loldude9000@gmail.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: Menshin <Menshin@users.noreply.github.com>
Co-authored-by: liltenhead <104418166+liltenhead@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Daxxi3 <158596935+Daxxi3@users.noreply.github.com>
Co-authored-by: MACMAN2003 <macman2003c@gmail.com>
Co-authored-by: Golinth <amh2023@gmail.com>
Co-authored-by: Łukasz Mędrek <lukasz@lukaszm.xyz>
Co-authored-by: PotentiallyTom <67602105+PotentiallyTom@users.noreply.github.com>
Co-authored-by: MilenVolf <63782763+MilenVolf@users.noreply.github.com>
Co-authored-by: LankLTE <135308300+LankLTE@users.noreply.github.com>
Co-authored-by: Flesh <62557990+PolterTzi@users.noreply.github.com>
Co-authored-by: Arendian <137322659+Arendian@users.noreply.github.com>
Co-authored-by: Geekyhobo <66805063+Geekyhobo@users.noreply.github.com>
Co-authored-by: Geekyhobo <66805063+Ahlytlex@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: Peptide90 <78795277+Peptide90@users.noreply.github.com>
Co-authored-by: ArchPigeon <bookmaster3@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: Vigers Ray <60344369+VigersRay@users.noreply.github.com>
@bobangaming
Copy link

bobangaming commented Feb 19, 2024

why have these nerfs in the first place? what kind of balance issue are you trying to fix?

I don't understand how are you trying to fix some issue by ruining a fundamental part of botany.

@Partmedia
Copy link
Contributor

why have these nerfs in the first place? what kind of balance issue are you trying to fix?

Please spend two seconds looking for the relevant context and discussions on GitHub and Discord. Since you likely didn't even try to look, or had trouble finding the relevant information, I've linked them below for your convenience:

Please read the linked discussions thoroughly to see what has already been said for both sides before you continue the discussion.

@bobangaming
Copy link

bobangaming commented Feb 19, 2024

why have these nerfs in the first place? what kind of balance issue are you trying to fix?

Please spend two seconds looking for the relevant context and discussions on GitHub and Discord. Since you likely didn't even try to look, or had trouble finding the relevant information, I've linked them below for your convenience:

* [Plant genetics #11407](https://github.com/space-wizards/space-station-14/pull/11407)

* [Require plants to be harvestable before sampling #24851](https://github.com/space-wizards/space-station-14/pull/24851)

* [Revert "Require plants to be harvestable before sampling" #25320](https://github.com/space-wizards/space-station-14/pull/25320)

* [Change sampled seeds to inherit the plant's health instead of needing harvestability #25326](https://github.com/space-wizards/space-station-14/pull/25326)

Please read the linked discussions thoroughly to see what has already been said for both sides before you continue the discussion.

Yes, I've read them. There is no reason for those nerfs, since what the person is describing is unviable, since clipped seeds will inherit any bad mutations that are on the plant, therefore making the plant useless and wasting seeds. The initial complaint that this person had was wrong and so, you are the one who didn't "spend two seconds looking for the relevant context and discussions on GitHub and Discord".

@Partmedia
Copy link
Contributor

There is no reason for those nerfs, since what the person is describing is unviable, since clipped seeds will inherit any bad mutations that are on the plant, therefore making the plant useless and wasting seeds.

This logic completely misses the main point. The main point, which can be gleaned with some critical reading of the linked discussions, is that clipping bypasses the seedless trait. The seedless trait is supposed to make it hard for you to duplicate very strong plants by making them not have seeds. Plant clipper "sampling" lets you obtain a seed, bypassing the seedless limitation. That, and not the straw man problem you identified, is the main problem.

@bobangaming
Copy link

There is no reason for those nerfs, since what the person is describing is unviable, since clipped seeds will inherit any bad mutations that are on the plant, therefore making the plant useless and wasting seeds.

This logic completely misses the main point. The main point, which can be gleaned with some critical reading of the linked discussions, is that clipping bypasses the seedless trait. The seedless trait is supposed to make it hard for you to duplicate very strong plants by making them not have seeds. Plant clipper "sampling" lets you obtain a seed, bypassing the seedless limitation. That, and not the straw man problem you identified, is the main problem.

Yes, there is no issue with clippers being used to extract seeds from seedless plants. That's how they are intended to be used

@mirrorcult
Copy link
Contributor

Yes, there is no issue with clippers being used to extract seeds from seedless plants. That's how they are intended to be used

so you're aware, @Partmedia is the person who implemented the seedless trait, as is obvious from the PR #11407 they linked--i dont think an argument from intentionality applies here

@bobangaming
Copy link

Yes, there is no issue with clippers being used to extract seeds from seedless plants. That's how they are intended to be used

so you're aware, @Partmedia is the person who implemented the seedless trait, as is obvious from the PR #11407 they linked--i dont think an argument from intentionality applies here

well otherwise what's the point of the trait and having 2 ways of getting seeds? It doesn't make sense any other way

@mehx3
Copy link

mehx3 commented Feb 19, 2024

What if you balance the botany around "unintentional" mechanic that people actually enjoyed and it made botany way more in depth. Players made botany PRs around an assumption that botany is working fine and everything really was fine(aside from flukies getting nettled). Worst part is - really strong plants like amatoxin nettle and ambrosia deus are still easy-ish to get, but everything else requires much more time. Also getting seedless is guaranteed if you are trying to make any kind of interesting plant, so you basically can't use seed extractor ever. I don't get why spamming seeds is such a terrible thing. Why care about realism when everything else is unrealistic?

@PolterTzi
Copy link
Contributor Author

I think the issue is less just the simple fact that it circumvents the trait at all and more the fact that without the nerf it effectively circumvented it entirely, allowing for virtually infinite replication of seedless plants.
Which also made the seed maker obsolete.
I'm not gonna argue the current state is perfect, but at least it leans more towards the direction of involving more of botany's mechanics (even if you could argue it's flawed in the specifics).

@mehx3
Copy link

mehx3 commented Feb 19, 2024

I think the issue is less just the simple fact that it circumvents the trait at all and more the fact that without the nerf it effectively circumvented it entirely, allowing for virtually infinite replication of seedless plants. Which also made the seed maker obsolete. I'm not gonna argue the current state is perfect, but at least it leans more towards the direction of involving more of botany's mechanics (even if you could argue it's flawed in the specifics).

Current state would've been fine, if you could actually grow any plant, get produce and get seeds. But using robust to get 50 potency guarantees seedless and using swabs guarantees seedless as well. So realistically you can never use seed extractor. Players didn't use clippers to circumvent seed extractor, they used them because it's the only way to reliably get seeds and it's still is, even after this PR

@bobangaming
Copy link

bobangaming commented Feb 19, 2024

I think the issue is less just the simple fact that it circumvents the trait at all and more the fact that without the nerf it effectively circumvented it entirely, allowing for virtually infinite replication of seedless plants. Which also made the seed maker obsolete. I'm not gonna argue the current state is perfect, but at least it leans more towards the direction of involving more of botany's mechanics (even if you could argue it's flawed in the specifics).

then how about you change seedless plants so that they can't be clipped, instead of making the entirety of botany worse

edit: oh wait, I thought you are talking about seedless plants as a mutation, not pollenated/robust harvest'ed plants, nvm then

@mehx3
Copy link

mehx3 commented Feb 19, 2024

then how about you change seedless plants so that they can't be clipped, instead of making the entirety of botany worse

So no way to get seeds from almost any modified plant? Great idea!

@bobangaming
Copy link

then how about you change seedless plants so that they can't be clipped, instead of making the entirety of botany worse

So no way to get seeds from almost any modified plant? Great idea!

yeah, only now realised what they meant

@deltanedas
Copy link
Contributor

clipping should give a graft not a seed packet since it isnt seeds its a cutting of it + where is the packet material coming from :trollface:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S: Needs Review Status: Requires additional reviews before being fully accepted
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants