## About The Pull Request
Moves a lot of the unique renaming implementations described in #82664
to the functions given by the `obj_flag` `UNIQUE_RENAME`.
`UNIQUE_RENAME` has been given new properties to account for
non-standard renaming, these being the `RENAME_NO_DESC` flag that
prevents changing the description, the `nameformat()` and `descformat()`
procs that, when modified, allow for applying naming formats(i.e. "Body
Bag - [input]"), as well as other post-renaming handling such as
changing the name of the output plant of a renamed seed, the
`rename_checks()` proc that allows for unique naming prevention(such as
a locked personal closet), and the `rename_reset()` proc to clean up
other possible renamed variables potentially changed in `nameformat()`
and `descformat()`.
This also adds `/datum/element/tool_renaming` to crayons, which will let
them rename anything that has `UNIQUE_RENAME`. I looked through
everything with that flag, and I didn't see anything that I don't think
should be renameable by a crayon(except things that shouldn't be
renamable with pens), so it shouldn't fuck anything up.
## Why It's Good For The Game
moves all of the non-honorable mentions in #82664 to the same renaming
system, and also moves all of the honorable mentions save for:
- plaques, as they only get renamed once and wouldn't benefit from
`UNIQUE_RENAME` imo
- books, because they're far more than just renaming, and are persistent
- paintings, because they're persistent
- photos, because they're not normal renaming and they're persistent
- endoskeletons, because they're done with a multitool in UI
- cardboard IDs, because they're far more than just renaming
Additionally, this fixes:
- Implanter renaming didn't work because a ! was missing
- Clown borg picket sign renaming didn't work because they didn't use
the correct arguments
This'll make it easier to make renameable objects in the future, as
well.
## Changelog
🆑
fix: fixes implanter renaming not working
fix: fixes clownborg picket sign renaming not working
code: brought most unique renaming implementations under UNIQUE_RENAME
/🆑
## About The Pull Request
This PR adds 4 new types of soil and a holder item; the soil sack, to
contain and transport said soils.
<img width="496" height="378" alt="bild"
src="https://github.com/user-attachments/assets/57f42a9c-c731-4195-91df-b4456ec45e7b"
/>
Two of the new soils + the regular old soil are available in the premium
section of the nutrimax.
All 5 soil types are available from cargo.
It also adds two new plant traits; soil lover and semiaquatic, that
allows coders to confer maluses to plants growing in trays or soil
respectively.
Potatoes, sweet potatoes, carrots, parsnips, cahn'roots, white and red
beets currently have soil lover, reducing their produced yield by 30%
and their potency randomly between 20-80% if grown hydroponically.
Rice has semiaquatic which increases the amount of weeds gained by 50%
if grown in soil rather than hydroponically.
## Advanced soil types
### Vermaculite
#### Stats
Max Nutrients: 20u
Max Water: 150u
#### Special Effects
Multigraft: Up to 3 grafts can be cut from a plant planted in
vermaculite.
Graft Medium: Graft cuttiongs can be directly placed into vermaculite to
create a new plant vegetatively.
### Hydrogel Beads
#### Stats
Max Nutrients: 15u
Max Water: 300u
#### Special Effects
Hydroponic + Soil: Both water loving and soil loving plants can grow
without maluses.
Super Water: Water consumption rate is decreased by 50%
### Korta Coir
#### Stats
Max Nutrients: 20u
Max Water: 100u
#### Special Effects
Fast Mushrooms: Mushrooms mature(and age) 40% faster if planted in this
soil.
### Worm Castings
#### Stats
Max Nutrients = 35u
Max Water = 200u
#### Special Effects
Slow Release: If the nutrients run out, 1u nitrogen will be
automatically added to the nutient pool.
Worm Habitat: Composting veggies in this soil has a chance to produce an
extra slimy worm.
### Soil Sacks
Use them on the floor to place a soil at that location.
You can reverse this process by right clicking a soil with a shovel.
The sacks are huge items that deals stamina damage, but have slowdown
when carried.
They can be wielded to remove slowdown, double the damage output and
gain 25% block chance.
They have unique normal and wielded inhands for each sack type.
#### Price List
**Soil**
Nutrimax: 50 cr
Cargo: 400 cr / 5 sacks
**Vermaculite**
Nutrimax: 100 cr
Cargo: 400 cr / 3 sacks
**Hydrogel**
Nutrimax: 100 cr
Cargo: 400 cr / 3 sacks
**Coir**
Nutrimax: N/A
Cargo: 600 cr / 3 sacks
**Worm Castings**
Nutrimax: N/A
Cargo: 800 cr / 3 sacks
#### Misc Soil Changes
Soil now have a new armour type and are generally much harder to destroy
by shooting or bashing them.
Fixed a bug where weeds would instantly reduce yield to 3 instead of
lowering it by 1-2 per cycle.
## Why It's Good For The Game
I have long been a fan of using soils in botany, they are the cheapest
and easiest way to make new trays and enable many interesting
strategies.
The default soil is fine for what is but it kinda sucks, not only having
low stats but also missing autogrow, a feature botanist have grown
completely addicted and dependent on.
When self sustaining trays were removed and autogrow added, it was
intended as a way to keep a couple of plants alive while you ran out to
do errands or grab a drink.
However, the feature has devolved into basically a shift start self
sustaining for all your trays and standard practice is using it on every
single tray that currently is not trying to mutate.
This has resulted in certain core botany mechanics like water and pests
being made totally irrelevant, shrinking design space a lot.
Rather than just reaching for the stick, I thought it would be fun to
instead offer them a carrot in the form of an expanded toolset of soils
with unique effects that cannot be replicated by trays.
These new soils offer niche benefits that enable advanced botany
gameplay and provides a framwork for deepening plant / tray interactions
in the furture.
## Changelog
🆑
add: Added 4 new types of soil
add: Added soils sacks to the nutrimax
add: Added soil sack crates to cargo.
balance: Soil now has higher armor values.
balance: Rice now gets more weeds if grown in soil.
balance: Carrots, potatoes, beets and their mutations now get reduced
yield and potency if grown hydroponically.
fix: Weed overgrowth no longer instantly sets yield to 3.
/🆑
## About The Pull Request
Removes `TRAIT_SHOW_EXAMINE` from default botany trait flags, keeps it
for only a handful of traits that you could sensibly see or intuit at a
glance
## Why It's Good For The Game
In the beginning, only like three genes showed on examine, this was
handled by the "description" var
But when a bunch of nice QoL was added to botany (explaining how traits
work in game), it used the same "description" var, making every plant
examine box a mess of text that spoils every aspect of the plant
Here's bluespace tomato, for example
<img width="415" height="245" alt="image"
src="https://github.com/user-attachments/assets/9509e810-7689-4161-b576-d47263a0e1a6"
/>
I think this is
1. Really spammy. The more complex plants may have 10-12 traits, and it
fills out the text box rapidly
2. Really ugly. Examining a plant just to see if it's a fruit or vege
gives you a bunch of stuff most people don't care about
3. Really spoilery. You know at a glance everything a botany plant is
capable of, even stuff which is meant to be less than obvious (backfire
effects).
So I went through and basically made it so visual traits show on
examine:
- Hypodermic Prickles
- Prickly Adhesion
- Bioluminescence (All forms + Shadow)
- Heated Petals
- Rose Thorns
- Burning Stem
- Stinging Stem / Aggressive Stinging Stem
- Active Capsicum Glands
I also figured some "POV" effects would make sense on examine, such as:
- Large Bites
- Oculary Mimicry
IF the general opinion is that "Seeing these traits on examine is good
actually because I want to differentiate a death plant from a normal
plant", then I will instead just split "Plant analyzer description" from
"Examine description" so we can have more appropriate examine text for
many of these genes
Alternatively, this might be an appropriate use of examine tags. `It is
small, slippery, and liquid.`
## Changelog
🆑 Melbert
del: A bunch of botany genes no longer indicate their presence on
examine
/🆑
## About The Pull Request
This unassuming line was added in the middle of tray attackby to allow
for sharp objects to extract poppy sap
https://github.com/tgstation/tgstation/blob/71c49cb4d1024515c98fe6de531620010cdf4334/code/modules/hydroponics/hydroponics.dm#L941-L945
Unfortunately, spades are sharp, and the shovel interaction followed
lower in the chain. This also isn't proper use of `interact_with_atom`
so we can fix two birds with one stone here.
Now, poppy seeds hook the `COMSIG_ATOM_ITEM_INTERACTION` signal on the
tray when planted, so we can run snowflake checks on the seed itself.
## Changelog
🆑 Melbert
fix: Spades work on trays again
qol: Poppy seeds now give better feedback when unable to harvest
qol: Poppy seeds now have an immutable gene indicating they can be
sliced for sap
del: Lilys and Geraniums can no longer be tapped for sap
/🆑
## About The Pull Request
Anything that iterates contents for all cells now use a new helper,
`get_all_cells`, which only checks equipped items and storage contents
for cells, rather than... everything
This means we avoid grabbing abstract cells, and thus avoid this
<img width="676" height="113" alt="image"
src="https://github.com/user-attachments/assets/955f38e5-7428-477d-ab6a-dcc338960c99"
/>
Note:
This means these random recharge-all objects (like Xenobio stuff) no
longer recharges Ethereals
If we want these objects recharging Ethereals, we should *probably* add
a bespoke interaction
## Changelog
🆑 Melbert
fix: Things that recharge "all cells on your person" now avoid
recharging Ethereal stomachs, and thus, will no longer cause spontaneous
overcharge or weird chat messages
/🆑
## About The Pull Request
In https://github.com/tgstation/tgstation/pull/92884, someone pointed
out that logs from tree flora only yielded **one** plank when cut, which
isn't enough to make a bonfire, and also is ridiculously low.
This PR ups that amount from 1 to 10, just enough to craft a bonfire.
I'd also make tree chopping not so instantaneous and slightly more
realistic, however that's outside the scope of this PR.
## Why It's Good For The Game
Trees are weak af source of wood compared to hydroponics.
## Changelog
🆑
balance: Tree logs (not hydroponics towercaps) give more planks when
cut. From 1 -> 10.
/🆑
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa
small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however
having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).
need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
## About The Pull Request
<img
width="612" height="185" alt="dreamseeker_SNMvxqCRiR"
src="https://github.com/user-attachments/assets/1d3103e9-edc1-4e50-8793-c8c2ace53aea"
/>
This is a small expansion to narcotics, their production, and presence
in the game! For my esteemed Terry and Manuel/Sybil sector colleagues
I've added:
- 2 new solid drug items: **crystal meth and opium**!
- A **precipitation reaction** for meth after it's been cooled,
producing a solid crystal form, 2u sulfuric acid, 10u meth. **Above 90%
purity, the meth will gain an increasingly blue tint!**
- A production method for opium! Slice a well developed poppy pod with
any sharp item, **before it's fully mature and flowered** to extract a
small amount of opium to enjoy! It's a small container for morphine. Can
be pressed together to combine the concentrations up to 10u, as each
extraction contains trace amounts. Scales off poppy's potency.
- Populated narcotics/contraband spawners with new items, and items that
really should have been on there.
- Added a brand new smoking apparatus, the glass pipe! Can be crafted.
Fixed the transparent pixel.
- **Fixed methsplosions so that now spacemen can finally smoke meth
without exploding!!!** Omegaweed too. Normal methsplosions are
untouched!
- **Expanded the ability for players to insert all drug items into
pipes**, so now players can smoke moon rocks, SaturnX, and my new items!
Previously, only 'dried' items were.
- Fentanyl patch box for narcotics spawner, also for a new ruin I've
made.
- **Expanded these changes to the black market uplink.**
<img width="640" height="256" alt="demo"
src="https://github.com/user-attachments/assets/c8a0eb2c-b0fa-4e70-b6c1-2e741cd170a2"
/>
Now, players can precipitate meth into a solid form, and produce opium.
I added a lot of these substances and the ones that didn't exist into
spawners that they were partially in, or could reasonably be in. The
opium poppy extraction required a new variable that can be used for
similar interactions too. Crystal sprites are transparent, smoked sprite
has a nice little animation and glow.
These items are now on the black market uplink, in both expensive dealer
shipments of varying rarities for different narcotics, as well as
personal use quantities on a different rotation, at a steeper price.
Expanded randomized spawners to give the black market and ruins more
teeth and edge, without adding another weapon.
Credit to the moon rock guy, I'm just happy I made your stuff smokable!!
<img width="219" height="201" alt="dreamseeker_N8x9bsN3kS"
src="https://github.com/user-attachments/assets/64d23c27-92b9-423b-91ac-903b8476d0b4"
/>
tl;dr added opium and meth
## Why It's Good For The Game
For **too long**, narcotics, chems and stims have been mere integers or
buffs/debuffs in pills or syringes, so I introduced two new methods for
making them and populated niche, criminal vectors with them. These are
real items now, with more interactions. Allowing these to be smoked also
allowed moon rocks and SaturnX to be smoked too, including them into
this and enticing players to have another reason to make them as well.
Buffs with drawbacks, addictions and problems are actually great.
It's a new venue for flavor. I've put thought into the balance for
addition and quantity. It'll add a criminal, or exotic tone to a round,
provide new business opportunities, and new access to stims and chems
without going over the top. Perhaps something peaceful antagonists can
do. More proverbial floor pills give security or command something to
selectively enforce, and absolutely provide novel opportunities for
medical staff!
Also, methsplosions now don't happen in cigarette items! You can smoke
omegaweed without fucking dying!
## Changelog
🆑
add: Added meth, opium, and their production! Also added to black market
uplink.
add: Added a craftable glass pipe.
add: Added to contraband spawners.
qol: Can now insert any drug item into a pipe.
fix: Spacemen can now smoke meth without exploding!!
/🆑
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
## About The Pull Request
<img width="1300" height="706" alt="image"
src="https://github.com/user-attachments/assets/c7971eab-6af3-4fea-94f5-b76104696b73"
/>
1. Chems are no longer hidden in an icon's tooltip. There is a separate
tab for chems. Right clicking to do a chem scan will pull up the chem
tab, but you can also just use the two buttons at the top - Closes
#91172
2. You no longer need to repeatedly scan a tray to update the UI.
Standing adjacent to a scanned tray will update it regularly.
3. Units have been redefined from pure seconds to minutes/seconds where
applicable.
4. The report has been swapped around, with tray on top and plant on
bottom.
5. The nutrient bar is now colored based on contents of the tray. It no
longer has a tooltip listing the tray's contents, that's now in the
chemicals tab.
6. Auto-grow, pollinating, and yield modifier icons have been brought
center below the tray, instead of in the top right section. They now
change color to make it more apparent at a glance.
7. Traits have been moved from icons to a collapsible list at the bottom
of the UI, and are now printed entirely. They still have tooltips
explaining what they do.
8. Grafted gene was moved center below the plant, and is now printed
entirely.
9. Mutations have been moved to a collapsible list center below the
plant.
10. Plants now indicate if they are dead in the UI.
11. Scanning produce now lists all the chemicals inside it on top of all
the chemicals it produces. - Closes#89443, Closes#90793
12. Restores lost behavior of seed unique data - Closes#90706
Also
13. Added Hydroponics to Runtime station
14. Added screentip for dumping reagents from hydro-trays
## Why It's Good For The Game
While I was initially supportive of the move to a plant analyzer UI it
was undeniable it was a huge UX stepdown from printing results to chat.
This PR aims to bring back some of those lost UX features by making more
information visible at a glance (instead of requiring memorization of
mystery meat icons or hovering over many elements to find information
hidden in tooltips)
I know it's a little bit of a mess with the colors and layout, I planned
on doing a whole custom css and layout and such but I kinda just wanted
to get it out.
## Changelog
🆑 Melbert
qol: Plant analyzer: Scanning a tray will regularly update the UI with
the tray's information while you stand adjacent to it, no longer
requiring you re-scan the tray to update it.
qol: Plant analyzer: UI is now split between chems and stats - RMB will
open directly to the chem tab.
qol: Plant analyzer: UI received several UX changes - listing out more
information at a glance, rather than behind tooltips or icons
fix: Plant analyzer: Chem scanning plants now shows the plant's current
chemical contents once again (on top of their genes)
fix: Plant analyzer: Unique seed data (kudzu mutation, replica pod dna)
is shown again
qol: Added hydroponics to runtime station
qol: Added screentip to hydroponic trays for clearing reagents
/🆑
## About The Pull Request
I was unable to actually reproduce the issue locally, but its been
occuring very frequently on the servers (I suspect this is some sort of
a race condition between subsystems?) so I'm going to reinforce this
code with a foolproof solution which shouldn't be able to break.
Closes#92783
## Changelog
🆑
fix: Fixed biogens bricking themselves, again
/🆑
## About The Pull Request
Closes#92638
Tracking item count via a var is a pretty bad idea as there's a ton of
ways this could backfire, so I changed it to track entries/exits/qdels
instead
Also updated them to use item_interaction and tool acts
Moves all the dna block handling onto singleton datums initialized
inside global lists, to make the handling dna less of a copy-paste mess
and make adding new blocks significantly easier. There is still some
work to be done in the copypaste department but ultimately that falls
under its own PR scope after the core refactor goes through. (Ill
probably do those but it will also be easier for everyone else as the
code is now significantly less of an eyesore)
Both features and identities have been tested through and through, and
seem to be working fine.
Also removed the reliance on weird hardcoded lookup tables for length,
and other similar things that just didn't make sense when I was passing
through DNA code. There's a lot more that fall out of scope for this
exact PR's goal however
I've been told the maintainers will love me for doing this
🆑
code: feature keys are no longer magical strings floating around the
codebase and use proper defines
refactor: DNA blocks are now handled with singleton datums.
/🆑
## About The Pull Request
Moves all the dna block handling onto singleton datums initialized
inside global lists, to make the handling dna less of a copy-paste mess
and make adding new blocks significantly easier. There is still some
work to be done in the copypaste department but ultimately that falls
under its own PR scope after the core refactor goes through. (Ill
probably do those but it will also be easier for everyone else as the
code is now significantly less of an eyesore)
Both features and identities have been tested through and through, and
seem to be working fine.
Also removed the reliance on weird hardcoded lookup tables for length,
and other similar things that just didn't make sense when I was passing
through DNA code. There's a lot more that fall out of scope for this
exact PR's goal however
## Why It's Good For The Game
I've been told the maintainers will love me for doing this
## Changelog
🆑
code: feature keys are no longer magical strings floating around the
codebase and use proper defines
refactor: DNA blocks are now handled with singleton datums.
/🆑
## About The Pull Request
Adds Anti-Cannabis, or "Anti-Weed", a mutation of Cannabis which
contains Naloxone, Antihol, and Diphen-Synaptizine
These three chemicals will purge like 90% of all addictive substances
and their side effects (at the cost of negative mood and some tox
damage)

## Why It's Good For The Game
I thought it'd be really funny if a botanist offers you a smoke, you get
super high, and then to help they offer you another smoke
## Changelog
🆑 Melbert
add: Anti-cannabis mutation
/🆑
## About The Pull Request
Adds Anti-Cannabis, or "Anti-Weed", a mutation of Cannabis which
contains Naloxone, Antihol, and Diphen-Synaptizine
These three chemicals will purge like 90% of all addictive substances
and their side effects (at the cost of negative mood and some tox
damage)

## Why It's Good For The Game
I thought it'd be really funny if a botanist offers you a smoke, you get
super high, and then to help they offer you another smoke
## Changelog
🆑 Melbert
add: Anti-cannabis mutation
/🆑
## About The Pull Request
title
## Why It's Good For The Game
it inherits a lot of behavior from clothing which leads to lots of bugs
when it isn't actually clothes, for example: shredded overlays. this
should be better.
probably fixes a bunch of bugs
## Changelog
🆑
code: mob holders are no longer subtypes of clothes, report any issues
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
title
## Why It's Good For The Game
it inherits a lot of behavior from clothing which leads to lots of bugs
when it isn't actually clothes, for example: shredded overlays. this
should be better.
probably fixes a bunch of bugs
## Changelog
🆑
code: mob holders are no longer subtypes of clothes, report any issues
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Refactors most of blood handling code untouched by #90593 and completely
rewrites all blood decals, components and reagents.
- Blood types now have behavioral flags which allow them to control
where they leave decals/DNA/viruses. Oil no longer transfers DNA and
viruses with it, while podpeople water-blood doesn't leave visible
decals on turfs and items, but still can be picked up by DNA scanners.
- Multiple blood types have received unique handling - liquid
electricity blood now glows in the dark, oil trails are flammable and
lube ones are slippery. Oil blood can be restored with fuel, lube with
silicon and slime with stable plasma (as normal plasma already passively
regenerates their blood), instead of everything using iron. Saline
solution only supplements on iron-based blood and won't do anything to
help with bloodloss for species who rely on different blood types.
(Roundstart this applies only to Ethereals)
- All blood logic has been moved away from the blood reagent itself into
a blood element that is assigned to the blood reagent by default, and to
any reagent that's drawn from a mob as their "blood" (in
``transfer_blood_to``). This means that blood you draw from lizards will
be green and have lizard's blood description instead of mentioning red
blood cells, Ethereal "blood" will actually contain their DNA and genes,
etc.
- Refactored all blood decals. Blood states are no more, everything is
now handled via blood DNA. Credits to MrMelbert and Maplestation, as a
significant amount of code has been taken from
https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his
followup PRs. Oil and xenomorph splatters are now subtypes of blood,
blood drying is now animated, blood trails now curve and can be
diagonal.
- Rewrote bloodysoles and bloody_spreader components, credits to Melbert
again for the former, while latter now makes more sense with its
interactions. Bloody soles no longer share blood DNA with your hands.
- Ported Melbert's bloody footprint sprites and bot-blood-spreading
functionality.
- Removed all species-side reagent interactions, instead they're handled
by said species' livers. (This previously included exotic blood
handling, thus the removal)
- Slightly optimized human rendering by removing inbetween overlay
holders for clothing when they're not needed.
- Blood-transmitted diseases will now get added to many more decals than
before.
- Cleaned up and partially refactored replica pods, fixed an issue where
monkeys/manipulators were unable to harvest mindless pods.
- Exotic bloodtype on species now automatically assigns their blood
reagent, without the need to assign them separately.
- Clown mobs now bleed (with colorful reagent instead of blood during
april fools), and so do vatbeasts (lizard blood)
- Implemented generic procs for handling bleeding checks, all sorts of
scanners now also correctly call your blood for what it is.
- Podpeople's guts are now lime-green like their organs, instead of
being weirdly greyish like their water-blood. (Their bleeding overlays
are still grey, as they're bleeding water)
- Slimepeople now can bleed. Their jelly is pale purple in color, but
their wound overlays copy their body color.
- Injecting/spraying/splashing/etc mob with a reagent preserves its
data, so you could theoretically recycle fine wines from someone's
bloodstream
- Fixed burdened chaplain's sect never actually giving a blessing when
applying effects, and giving a blessing when nothing can be healed.
Inverted check strikes again.
- Closes#91039
A lot of blood here has dried, visually the blood colors are almost
exactly the same as before either of the blood refactors.


## About The Pull Request
Refactors most of blood handling code untouched by #90593 and completely
rewrites all blood decals, components and reagents.
- Blood types now have behavioral flags which allow them to control
where they leave decals/DNA/viruses. Oil no longer transfers DNA and
viruses with it, while podpeople water-blood doesn't leave visible
decals on turfs and items, but still can be picked up by DNA scanners.
- Multiple blood types have received unique handling - liquid
electricity blood now glows in the dark, oil trails are flammable and
lube ones are slippery. Oil blood can be restored with fuel, lube with
silicon and slime with stable plasma (as normal plasma already passively
regenerates their blood), instead of everything using iron. Saline
solution only supplements on iron-based blood and won't do anything to
help with bloodloss for species who rely on different blood types.
(Roundstart this applies only to Ethereals)
- All blood logic has been moved away from the blood reagent itself into
a blood element that is assigned to the blood reagent by default, and to
any reagent that's drawn from a mob as their "blood" (in
``transfer_blood_to``). This means that blood you draw from lizards will
be green and have lizard's blood description instead of mentioning red
blood cells, Ethereal "blood" will actually contain their DNA and genes,
etc.
- Refactored all blood decals. Blood states are no more, everything is
now handled via blood DNA. Credits to MrMelbert and Maplestation, as a
significant amount of code has been taken from
https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his
followup PRs. Oil and xenomorph splatters are now subtypes of blood,
blood drying is now animated, blood trails now curve and can be
diagonal.
- Rewrote bloodysoles and bloody_spreader components, credits to Melbert
again for the former, while latter now makes more sense with its
interactions. Bloody soles no longer share blood DNA with your hands.
- Ported Melbert's bloody footprint sprites and bot-blood-spreading
functionality.
- Removed all species-side reagent interactions, instead they're handled
by said species' livers. (This previously included exotic blood
handling, thus the removal)
- Slightly optimized human rendering by removing inbetween overlay
holders for clothing when they're not needed.
- Blood-transmitted diseases will now get added to many more decals than
before.
- Cleaned up and partially refactored replica pods, fixed an issue where
monkeys/manipulators were unable to harvest mindless pods.
- Exotic bloodtype on species now automatically assigns their blood
reagent, without the need to assign them separately.
- Clown mobs now bleed (with colorful reagent instead of blood during
april fools), and so do vatbeasts (lizard blood)
- Implemented generic procs for handling bleeding checks, all sorts of
scanners now also correctly call your blood for what it is.
- Podpeople's guts are now lime-green like their organs, instead of
being weirdly greyish like their water-blood. (Their bleeding overlays
are still grey, as they're bleeding water)
- Slimepeople now can bleed. Their jelly is pale purple in color, but
their wound overlays copy their body color.
- Injecting/spraying/splashing/etc mob with a reagent preserves its
data, so you could theoretically recycle fine wines from someone's
bloodstream
- Fixed burdened chaplain's sect never actually giving a blessing when
applying effects, and giving a blessing when nothing can be healed.
Inverted check strikes again.
- Closes#91039
#### Examples
A lot of blood here has dried, visually the blood colors are almost
exactly the same as before either of the blood refactors.


## About The Pull Request
This PR adds a ghetto method of extracting mushroom "seeds".
Attack any grown that expresses the fungal metabolism gene with a piece
of paper and a spore print is created which can be used as a seed.

## Why It's Good For The Game
This helps the underwhelming roster of mushrooms feel a bit more
differentiated from the plants.
It adds some flavour and can be a nice little trick for ghetto or
roaming botany strats.
## Changelog
🆑
add: Added the ability to create a spore print seed by using paper on
mushrooms.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.
What this PR does:
- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

<details><summary>Mappers rejoice!</summary>


</details>
<details><summary>Uses iconforge so it does not take up much time during
init</summary>

</details>
---
this still applies:
Note for Spriters:
After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.
Note for Server Operators:
In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt
No more error icons in SDMM and loadout.
🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
This PR adds a ghetto method of extracting mushroom "seeds".
Attack any grown that expresses the fungal metabolism gene with a piece
of paper and a spore print is created which can be used as a seed.

## Why It's Good For The Game
This helps the underwhelming roster of mushrooms feel a bit more
differentiated from the plants.
It adds some flavour and can be a nice little trick for ghetto or
roaming botany strats.
## Changelog
🆑
add: Added the ability to create a spore print seed by using paper on
mushrooms.
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.
What this PR does:
- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

<details><summary>Mappers rejoice!</summary>


</details>
<details><summary>Uses iconforge so it does not take up much time during
init</summary>

</details>
---
### Copied from https://github.com/tgstation/tgstation/pull/86482 as
this still applies:
Note for Spriters:
After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.
Note for Server Operators:
In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt
## Why It's Good For The Game
No more error icons in SDMM and loadout.
## Changelog
🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack
This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.
This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).
🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
## About The Pull Request
This PR includes a number of fixes, buffs and improvements to the clown
mobs to make them more playable and worthwhile.
### Atmos tolerance buffs
This PR removes the insane unsuitable atmos and temperature damage clown
mobs used to take and bring it in line with other mobs.
In addition, clownanas can tolerate lower oxygen levels and are immune
to carbon dioxide due to their half plant biology.
### Movement speed changes
A lot of these mobs were previously unviable due to their slow speed,
one of the most important stats.
This problem will only get worse for basic mobs if the proposed basic
mob stamina changes get implemented.
Most of them are still slower than humans but now have some chance to
corner a human in some circumstances.
(I plan to add more ways to modify basic mob run speed in the future to
help with this.)
The flesh clown and honkling are now fast again, I remember the original
speed nerf of fleshclown upset the very few fleshclown enjoyers once i
PR'd in the initial balance pass years back.
### Glutton buffs
The banana glutton is now given a mechanical incentive to eat lots of
foods to nudge them into good RP.
They heal for every item and gain max health every 5 items eaten!
The banana glutton can now smash doors.
They can now prank the crew with ink sacs should they find them.
### Biotype update
Clownana has gained the plant biotype.
Living lube has gained the slime biotype.
### cell lines & samples
clownana and longface; the two other clown cell lines now have samples
associated with them and can be biopsied to create pure samples of each
cell line.
The clownana banana bunch can also be swabbed for the pure clownana cell
line!
### death drop changes
The death drop element now spreads the items out slightly instead of
stacking lots of drops in the center of the tile.
Clown mobs now drop less soap and more peels, with some of the rarer
ones dropping mimana, bluespace or gros michel peels.
The clownana now has a chance to drop full bananas or even a full banana
bunch.
The banana glutton has a chance to drop a heart of freedom.
The flesh clown now drops a meatclown instead of soap, and a piece of
human skin instead of a bloated human suit.
### other stat changes
living lube is now highly resistant to brute damage
longface can now acutally fight a little bit, still kinda terrible
though.
## Why It's Good For The Game
These mobs are quite beloved but their level of playability is low due
to poor balance.
The main problem is atmos.
Even a whiff of bad atmos would gib these mobs before they could get to
safety.
Many of them had their speed set way too high or way too low when they
were first added, even after i adjusted their speeds years ago I was
being too conservative.
Their loot tables were too similar, this helps with that a little bit. A
couple of them might even be worthwhile farming for their drops in
certain niche situations!
The banana glutton has such a cool sprite but has been neglected
mechanically, this helps make him a little more worthwhile and the extra
obj damage helps him not be in that sucky place where he is too large to
vent crawl and not powerful enough to break down doors.
Ideally in the future we should probably be more restrictive with
allowing mobs to smash airlocks and give them another way of opening
doors via armblade -like prying or ID implants.
## Changelog
🆑
add: banana gluttons gain max health and heal by eating foods! And they
can smash doors.
balance: clown mobs no longer get nuked by bad atmos.
balance: blown mobs have new death drops.
balance: most clown more are now faster!
balance: clownanas are now plants and are immune to carbon dioxide.
balance: living lube is now a slime and highly brute resistant.
balance: longfaces now hit decently hard.
fix: clownanas and longfaces can now be biopsied.
/🆑
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack
This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.
This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).
## Changelog
🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
## About The Pull Request
This PR includes a number of fixes, buffs and improvements to the clown
mobs to make them more playable and worthwhile.
### Atmos tolerance buffs
This PR removes the insane unsuitable atmos and temperature damage clown
mobs used to take and bring it in line with other mobs.
In addition, clownanas can tolerate lower oxygen levels and are immune
to carbon dioxide due to their half plant biology.
### Movement speed changes
A lot of these mobs were previously unviable due to their slow speed,
one of the most important stats.
This problem will only get worse for basic mobs if the proposed basic
mob stamina changes get implemented.
Most of them are still slower than humans but now have some chance to
corner a human in some circumstances.
(I plan to add more ways to modify basic mob run speed in the future to
help with this.)
The flesh clown and honkling are now fast again, I remember the original
speed nerf of fleshclown upset the very few fleshclown enjoyers once i
PR'd in the initial balance pass years back.
### Glutton buffs
The banana glutton is now given a mechanical incentive to eat lots of
foods to nudge them into good RP.
They heal for every item and gain max health every 5 items eaten!
The banana glutton can now smash doors.
They can now prank the crew with ink sacs should they find them.
### Biotype update
Clownana has gained the plant biotype.
Living lube has gained the slime biotype.
### cell lines & samples
clownana and longface; the two other clown cell lines now have samples
associated with them and can be biopsied to create pure samples of each
cell line.
The clownana banana bunch can also be swabbed for the pure clownana cell
line!
### death drop changes
The death drop element now spreads the items out slightly instead of
stacking lots of drops in the center of the tile.
Clown mobs now drop less soap and more peels, with some of the rarer
ones dropping mimana, bluespace or gros michel peels.
The clownana now has a chance to drop full bananas or even a full banana
bunch.
The banana glutton has a chance to drop a heart of freedom.
The flesh clown now drops a meatclown instead of soap, and a piece of
human skin instead of a bloated human suit.
### other stat changes
living lube is now highly resistant to brute damage
longface can now acutally fight a little bit, still kinda terrible
though.
## Why It's Good For The Game
These mobs are quite beloved but their level of playability is low due
to poor balance.
The main problem is atmos.
Even a whiff of bad atmos would gib these mobs before they could get to
safety.
Many of them had their speed set way too high or way too low when they
were first added, even after i adjusted their speeds years ago I was
being too conservative.
Their loot tables were too similar, this helps with that a little bit. A
couple of them might even be worthwhile farming for their drops in
certain niche situations!
The banana glutton has such a cool sprite but has been neglected
mechanically, this helps make him a little more worthwhile and the extra
obj damage helps him not be in that sucky place where he is too large to
vent crawl and not powerful enough to break down doors.
Ideally in the future we should probably be more restrictive with
allowing mobs to smash airlocks and give them another way of opening
doors via armblade -like prying or ID implants.
## Changelog
🆑
add: banana gluttons gain max health and heal by eating foods! And they
can smash doors.
balance: clown mobs no longer get nuked by bad atmos.
balance: blown mobs have new death drops.
balance: most clown more are now faster!
balance: clownanas are now plants and are immune to carbon dioxide.
balance: living lube is now a slime and highly brute resistant.
balance: longfaces now hit decently hard.
fix: clownanas and longfaces can now be biopsied.
/🆑
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
adds snails to the game

these are harmless critters you can find in maints. they love eating all
variety of fruits, and are gravitated towards snail people, where
they'll dance around them.
you can also pick them up and put them on your head.
finally, you can also grab them and put them in hydrotrays (they will
swim around in it very slowly). they'll help ur plants grow as they act
as natural weed-repellants, as they'll eat weeds that grow in trays.

## Why It's Good For The Game
there's not that many mobs you can usually find in maints, currently
there's only mice and cockroaches, this helps expand the pools a bit.
## Changelog
🆑
add: adds snails to the game. (keep them away from salt!)
/🆑
## About The Pull Request
adds snails to the game

these are harmless critters you can find in maints. they love eating all
variety of fruits, and are gravitated towards snail people, where
they'll dance around them.
you can also pick them up and put them on your head.
finally, you can also grab them and put them in hydrotrays (they will
swim around in it very slowly). they'll help ur plants grow as they act
as natural weed-repellants, as they'll eat weeds that grow in trays.

## Why It's Good For The Game
there's not that many mobs you can usually find in maints, currently
there's only mice and cockroaches, this helps expand the pools a bit.
## Changelog
🆑
add: adds snails to the game. (keep them away from salt!)
/🆑
## About The Pull Request
This PR:
- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.
- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.
- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.
- For the admins: Adds a clown blood smite.
My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.
I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.
This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...
...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!
I also tried to replace some of those single letter vars/args but there
are just way too many of them.
Improving old code. And I want to be able to pet mobroaches while
holding them too.
🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
## About The Pull Request
Holidays with mail allowed are now able to have a pool of mail goodies
associated with them.
(If anyone has any ideas I missed please do tell me them. Ones I really
wanted to add are things for Ramadan and Hanukkah but I both don't know
enough about them and also don't know any traditional Islamic/Jewish
foods/trinkets we have in our codebase)
## Why It's Good For The Game
Adds more flavor to the game's various holidays.
## Changelog
🆑 Wallem
add: Some holidays have been given their own pool of mail goodies.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Introducing more weather types! And yes, you can now have rain be
reagent based!
<details>
<summary>Regular Rain</summary>

</details>
<details>
<summary>Blood Rain</summary>

</details>
<details>
<summary>Acid Rain</summary>

</details>
You can even make it rain ants, plasma, or drugs. All of their effects
get applied to turfs, objects, and mobs depending on the weather options
you select.
Did I mention... there is thunder?
<details>
<summary>Thunder Strikes</summary>

</details>
<details>
<summary>Sand Storms</summary>

</details>
Despite all this new stuff, none of it has been directly added to the
game but the code can be used in the future for:
- Wizard event - Similar to lava on floor, but this time make the
reagent random or picked from a list and give wizard immunity
- Chaplain ability - Maybe make this a benefit or ability once enough
favor has been obtained
- Admin events - I have added a BUNCH of admin tooling to run customized
weather events that let you control a lot of options
- New station maps/biomes for downstreams (Jungle Station, etc.)
- Change Ion storms to use the new weather system that triggers
EMP/thunder effects across the station
- IceBox could get plasma rain
- Lavaland could get thunder effects applied to ash storms
Relevant PRs that removed/added some of the weather stuff I used:
- #60303
- #25222
---
- Rain sprites were added via [novaepee](https://github.com/novaepee) in
https://github.com/tgstation/TerraGov-Marine-Corps/pull/9675
- Sand sprites were added via [TiviPlus](https://github.com/TiviPlus)
(who commissioned them from bimmer) in
https://github.com/tgstation/TerraGov-Marine-Corps/pull/4645
- Rain sounds [already existed on
tg](https://github.com/tgstation/tgstation/pull/25222#discussion_r106794579)
and were provided by provided by Cuboos, using Royalty Free sounds,
presumed under default tg sound license - Creative Commons 3.0 BY-SA
- Siren sound is from siren.wav by IFartInUrGeneralDirection --
[Freesound](https://freesound.org/s/46092/) -- License: Attribution 4.0
The original `siren.ogg` sound used on a lot of SS13 servers doesn't
seem to have any attribution that I could locate. The sound was added
about 15 years ago. So I just looked for a somewhat similar sounding
siren noise on Freesound.
More weather customization!
🆑
add: Added new weather types for rain and sandstorms. Rain now uses a
reagent that gets exposed to the turfs, mobs, and objects. There is also
a thunder strike setting you can apply to any weather.
add: Hydro trays and soil will now add reagents to their trays when
exposed to a chemical reaction. (weather, shower, chem spills, foam
grenades, etc.)
add: Weather temperature now affects weather reagents and mobs body
temperature.
bal: Snowstorm temperature calculations were tweaked to allow universal
weather temperature effects.
sound: Added weather sounds from TGMC for rain and sirens (attributed to
Cuboos and IFartInUrGeneralDirection )
image: Added weather images from TGMC for rain and sand storms
(attributed to Novaepee and Bimmer)
refactor: Refactored a lot of the weather code to be more robust
admin: Admins can now control more weather related options when running
weather events. The weather admin verbs have been moved to their own
"Weather" category under the Admin tab.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Noticed on downstream. You can't grind soybeans into veggie oil despite
it being in the seed reagents as the `grind_results` overwrites it.
Swaps that to `juice_typepath`.
## Why It's Good For The Game
Lets you grind soybeans down for vegetable oil, and juice them for soy
milk.
## Changelog
🆑
fix: soybeans now grind into the proper reagents and juice into soymilk.
/🆑
## About The Pull Request

### Kronkus vine buffs:
Kronkus seeds are now three times as common.
The Kronkus vine has a greatly increased endurance stat(10->40) so it
does not die on you while you run around gathering ingredients and
matures quicker (8->6)
### Kronkaine buffs:
* The instant stamina boost restores **double stamina**(12 per u) when
injected or smoked.
* Now also restores stamina over time based on volume: **0.08 stamina
per unit each cycle**.
* Heart damage from kronkaine is now also dose dependant, overdose
damage has been adjusted to account for this.
* Reaction requires less ammonia(5->3u) and welding fuel(10->5u).
* Added an alternate reaction that uses lye instead of ammonia, also
takes 3u.
* Added some new drug messages for when using these optimized methods of
administration.
* Reworked how the anti-purging mechanic works, now it only punishes you
with adrenal fatigue while you take >30 stamina damage while trying to
purge. This makes life saving OD treatment less annoying, but still
prevents abuse mid combat in a more elegant way.
The amount of heart damage inflicted is much lower if used at low doses,
the same as before at 20u and greater if more than 20u is administered.
The heart damage formula is : **0.1 + 0.04 * volume (+0.5 if overdosed)
damage per cycle**.
It should work out to something like a 27.5u lethal dose with a pristine
heart.
### Kronkus extract buffs:
Lasts twice as long.
More heart damage per cycle 0.1 -> 0.2. This value is still pretty
modest.
UPDATE: I had previously buffed the stamina regen of this reagent, but
now kronkaine itself has stamina regen per cycle.
#### Technical changes:
proc/copy_to can now trigger on_transfer and pass exposure methoid if
the new copy_method parameter is set.
This enables sources that use copy_to like smoke clouds to trigger
INHALE dependent effects like the new kronkaine enhancement.
Infinite hyposprays now also have the inject method like normal
hyposprays.
These two were the only two cases where reagents where reagents were
added to a mob using copy_to.
#### Fixes:
kronkus extracts heart damage now uses seconds_per_tick.
## Why It's Good For The Game
After surveying the available discussion on the subject, the kronkaine
drug itself seems to be generally well received.
However the rarity of the seed and the arcane preparation method has
limited player engagement with the mechanic.
There is confusion regarding both the preparation and, especially
regarding how the stamina restoring effect works.
This PR seeks to make things a little smoother and more pleasant without
making a rare thing into a trivial thing,.
Players seems to mostly use the action speed part of kronkaine so I have
massively buffed the stamina restoration part in a flavourful way to
encourage more types of players to plant the seeds should they find
them.
Over time more and more stuff have been added to the maintenance loot
spawn lists which have diluted the spawn chance of the seed packet which
contributes to the problem.
This PR increases the weight from 1 -> 3.
## Changelog
🆑
balance: kronkaine now restores double stamina when smoked or injected.
balance: kronkaine now restores stamina each cycle, the effect is dose
dependant.
balance: kronkaine now causes heart damage in a dose dependant manner,
instead of a flat value.
balance: kronkus seed packs are now three times as common.
balance: the kronkaine anti-purging disease now only triggers if you
take stamina damage while using purging chems.
balance: the kronkaine reaction uses less ammonia and welding fuel.
add: added an alternative kronkaine reaction that uses lye instead of
ammonia.
balance: kronkus extract now lasts twice as long but deals a bit more
heart damage(0.1->0.2)
balance: the kronkus vine plant is now a lot hardier(endurance: 10 ->
40) and matures a bit quicker.
tweak: kronkaine now warns the user more if it is about to kill your
heart.
fix: kronkus extract now inflicts heart damage correctly.
/🆑
## About The Pull Request
This PR:
- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.
- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.
- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.
- For the admins: Adds a clown blood smite.
My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.
I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.
This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...
...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!
I also tried to replace some of those single letter vars/args but there
are just way too many of them.
## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.
## Changelog
🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑