524 Commits

Author SHA1 Message Date
aKromatopzia 67f3e336f1 reverts specifically the prosthetic organ part of the cyber brain update + 1 minor change (#5333)
## About The Pull Request
That part wasn't finished. It won't! The other change just makes it so
non-vox aug brains can die from emps.

## Proof Of Testing
it didn't work then, it's gone now

## Changelog

🆑
balance: vox get to keep their min brain health threshold from emps,
removed it from roundstart aug brains.
del: surplus cybernetic brain is gone again
/🆑
2026-03-23 13:19:48 +01:00
aKromatopzia a544355b7a Cybernetic brain update + Some Vox touchups (#5088)
## About The Pull Request
Cybernetic/Cortical brain touch-up. Discuss.

Also because vox use cortical brains, we touched their code a little.
Tangent: I wish there was a way to make the brain restore surgery
capable of taking a multitool without being a separate op :\

# But why?
It's been noticed that people are using cortical brains to shoot up some
meth without consequences. This was a) not originally intended b)
genuine power creep, as previously the only way to be able to process
chems without the brain damage was to be a vox, who do start with
robotic-only brains. So, this PR is to address it. Sure you get an EMP
weakness, but this server has a soft-stigmatization against using EMPs
so that's leery on the social contract.

Fret not! You'll still have the option of a roundstart brain which
doesn't take meth damage. It just also takes slightly more EMP damage,
has less health than an ordinary brain, and if it ever gets removed, it
explodes as the other prosthetics do (but doesn't qdel). So really,
there's not much of a consequence.

## Proof Of Testing


https://github.com/user-attachments/assets/f48efc8b-9f4b-4fd1-b71f-145a1d4b63c5

<img width="255" height="167" alt="Screenshot_10"
src="https://github.com/user-attachments/assets/0334b931-0593-4721-9de2-a02211253e28"
/>

yeah i flipped it on the below one. it's correct now though
<img width="661" height="171" alt="Screenshot_11"
src="https://github.com/user-attachments/assets/554eaf09-8ee4-4a1a-a95b-c7332a078610"
/>


## Changelog
🆑
add: Previously-unobtainable surplus-cybernetic brain added to
Prosthetic Organ quirk
add: Cybernetic brains given the ORGAN_PROMINENT trait, following normal
brains.
add: Vox Primalis unique cybernetic brain has been finally added to
their species descriptions. (Bet you didn't know they had one)
balance: (Roundstart) Cortical brains given ORGAN_ORGANIC, so they can
be fixed with both mannitol and a multitool. Vox brains are excluded
balance: Brain options in character prefs have been given a 1
quirkiness-point cost.
fix: Cybernetic/Cortical brains have their repair hints updated to
reflect what they can actually be repaired by
code: Prosthetic Organ quirk moved to modular_zubbers
code: 'Vox Primalis' now considered a collective noun
code: dangerous_organ_removal has a new variable to toggle between organ
qdel or having its damage set to max health.
/🆑
2026-03-10 02:11:24 -04:00
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00
Roxy d0ca474789 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-2025-11-05 2025-11-05 19:43:07 -05:00
Ghom 922bd0cb92 Refactor get_ear_protection() and soundbang_act() to be less bs (#93472)
so, the current `COMSIG_CARBON_SOUNDBANG` signal is kinda lame because:
1) it's relegated to carbon mobs
2) it means ear protection equipment actually has no effect when
`get_ear_protection` is called instead.
3) It's sent in more than one place in the code

So I replaced it with another signal, this one properly sent in
`get_ear_protection`, and therefore `soundbang_act` as well.

What's also lame is that the code for both `get_ear_protection` and
`soundbang_act` can be easily moved to the living type, and it wouldn't
make a huge impact aside causing simple mobs to be stunned very briefly
by flashbangs since they cannot be knocked down anyway. The less the
code is specific to a subtype, the easier it's to work with, the fewer
the paradigms etc.

Another lame thing is some of the code being kinda old. Also I wanted to
fix an issue with the shriek ling ability detailed in #93401. I wanted
to make the ability more consistent with how other sound-related
abilities work by making it use `soundbang_act`, but with an intensity
higher than any other feature so far, beside point-blank flashbangs
(holding on standing on one). I've also buffed the "ear protection"
offered by vacuums from 1 to 3, meaning nothing but point-blank
flashbangs will go through. Yes, this means shrieks are not good in a
vacuum because sound generally propagate in absence of molecules that
can transmit the vibration... at least IRL. The game's an approximation
anyway, but it's still inconsistent, like a fuckton of other things that
are even more outside of the scope of this PR. Well, at least it affects
simple/basic mobs too now.

## Why It's Good For The Game
This will fix #93401 and make some code less old and bad.

## Changelog

🆑
refactor: refactored code for ear/soundbang protection. Flashbangs and
other things can now affect simple/basic mobs as well, not just carbon
and occasionally silicons.
balance: Aliens are no longer impervious to soundbang_act. Still very
resistant to it due to their hardcoded ear protection
balance: How the resonant shriek changeling ability works is now
slightly more consistent with the ear/soundbang protection, meaning it
won't work well in a vacuum, but at least it works on simple mobs now.
fix: Everyone can now hear a changeling shriek, unless they're already
deafened or in a vacuum.
/🆑
2025-11-04 15:22:33 -05:00
MrMelbert f202ceda6d Brains actually turn grey as damage progresses (#93739)
## About The Pull Request

Damaged brains turns partially grey - the more damage, the more grey

<img width="181" height="148" alt="image"
src="https://github.com/user-attachments/assets/eee4e37e-46dd-4165-b1d6-468b967a1ba9"
/>

Top brain is fully damaged, left brain is undamaged, top left stool is
the weapon I used to damage the brain

## Why It's Good For The Game

Reflects the description visually

## Changelog

🆑 Melbert
qol: Brains actually turn grey as damage progresses 
/🆑
2025-11-02 20:34:14 -05:00
tonty 151471868a Repairing brains will turn them a more accurate brighter color (#93716)
## About The Pull Request

Brains getting mannitol'd that aren't pink or shouldn't be changing
color at all still displayed turning a brighter color of pink. This PR
fixes that.

Fixes #93455

## Changelog
🆑
spellcheck: Repairing a brain will now have it turn a brighter shade of
a more accurate color.
/🆑
2025-11-01 23:17:16 +01:00
Roxy e28e9fbdba Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-23-10-2025 2025-10-23 17:38:23 -04:00
Ghom ca2cc70322 Organ damage refactor/cleanup (#93436)
## About The Pull Request
So, my original goal was just a refactor for the emissive overlays of
eyes, as a way to implement the specular emissive introduced by smartkar
some time ago, but somehow I found myself dragged into a bigger refactor
or cleanup of organ damage, thresholds, failures. One of the main
problem was that there were no procs called when a organ suffered enough
damage to fail or when recovering from failure. It'd just enable or
disable a bitflag, leaving it up to subtypes to decide how to tackle
organ failure their own ways: diverse, funky and sometimes incompatible.
More often than not relying on their very own "update_thingamajig" kinda
procs that run whenever the organ takes damage, rather than just when
the threshold is reached (low, high, failure. There are however a couple
organs with their own quirky thresholds, I let those slide).

There's also a bit of old code, especially for ears, with the
`AdjustEarDamage` and temporary deafness both predating the framework
for organ damage as far as I know. It really needed a coat of fresh
paint.

Oh, there were also more than a handful of organs that still heavily
relied on some ORGAN_TRAIT source instead of the `organ_traits` list and
the two add/remove procs `add_organ_trait` or `remove_organ_trait`. This
include organs that lose or gain specific traits when failing et
viceversa.

~~Lastly, felinids (and the halloween ghost species) having reflective
eyes. It's just a nod to the tapetum lucidum that animals with night
vision often have (including cats), which is why their eyes are a bit
brighter in the dark. Felinids however, do not have night vision (nor do
ghosts). This is merely cosmetic.~~ Cut out for the time being due to
issues with the specular emissive...

## Why It's Good For The Game
Refactoring / cleaning up old organ code.

## Changelog

🆑
refactor: Refactored organ damage code a little. Hopefully there won't
be issues (otherwise report them).
/🆑
2025-10-21 16:52:28 -05:00
Roxy d14e538393 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-15-10-2025 2025-10-15 19:34:41 -04:00
EnterTheJake a2c7c8e57b Heretic Antagonist Full Overhaul. (#92119)
## About The Pull Request

Heretic has received a complete overhaul. This PR touches nearly every
aspect of the antagonist. For readability's sake, not every change is
going to be listed in this pull request.

For the full list of changes please refer to the design doc:
https://hackmd.io/@BiST8PJVRjiwVPY86U3bLQ/B11HyChz1g.

Code by Me, @Xander3359 and @Arturlang 

TGUI by @Arturlang 

Sprites by OrcaCora and GregorDM

Writing bits by @necromanceranne 

### Core changes

- Cross-pathing has been removed. Main knowledge spells are now
exclusive to their path (for the most part).

- For every main knowledge unlocked (save for the robes and the blade
upgrade), Heretics can choose one option from a draft of 3 random side
knowledges (this is a free point).

- Heretics can now purchase side knowledges from a new tab, the
"Knowledge Shop". Side-knowledges have been divided by tier (Stealth,
Defense, Summons, Combat and Main). Tiers are unlocked as you progress
toward your main path.

- Heretics now gain the grasp and mark upgrade immediately, but their
main knowledge choices cost twice as much (except for the first spell,
the robes and the blade upgrade).

- Path specific robes have been introduced! They come with their own set
of quirks.

- Each Path has received a passive ability. This passive is upgraded
when you first create your robes, and again when you complete the Ritual
of Knowledge.

- Paths have been rebalanced as a result of the removal of cross-path
progression. Cosmic and Moon paths have received soft reworks.

- Upon unlocking the path 2nd level or reaching a total of 8 points
worth of knowledge, Heretics will lose the ability to blade break (and
the limit on blades all together).

- Ascension now automatically calls the shuttle with no possibility of a
recall.

- Late join Heretic has been removed.

### New UI 
<img width="750" height="635" alt="moon path ui"
src="https://github.com/user-attachments/assets/184ef783-5c9c-48a1-a2f7-4807ca93e990"
/>


### Knowledge shop

<img width="787" height="669" alt="Knowledge shop"
src="https://github.com/user-attachments/assets/3dc89b84-8c70-4d47-b612-54396e3ea6e7"
/>




### Quality of life //General balance changes

- Heretics will now gain X-ray vision for a few seconds when nearby an
eldritch essence (this effect has a cooldown).

- Ritual of knowledge now requires 1 uncommon item instead of 2. You may
now use a stunprod instead of a baton to complete the ritual. Beartraps
have been removed from the list of possible reagents.

- The maximum number of possible sacrifices required to ascend has been
reduced from 6 to 5 while the minimum has been upped to 4.

- Codex Cicatrix no longer requires a special pen to be made.

### Passive abilities

- Heretics now start with a passive ability. You can find what it does
on the path info tab after a path has been selected, and what they gain
when upgraded.

- Crafting your first set of Eldritch robes will bump your passive to
level 2.

- Unlocking the 2nd level will subsequently unlock your "Ritual Of
Knowledge"

- Completing the ritual of knowledge or ascending will net you the final
level.

### Path Specific Robes

- Armorer's Ritual is no longer a side knowledge. Each path will have
their own unique version of the ritual. This is placed after the 2nd
spell in the tree.

- Robes can no longer be destroyed by fire and acid, grant t4 flash
protection (Moth Heretics stay winning) and protection against basic
syringes, to bring them on par with other antagonist's armor sets.

- The recipe to craft the robes is now a set of armor/vest, a mask (any
mask will do now, not just gas masks), plus the unique reagent required
for the blades (Plasma for Cosmic, Trash For Rust, match for Ash and so
on)

- Wearing the robes as a non-heretic may yield some unfortunate
side-effects.

### Moon Path Rework

Moon path  rework.

Moon Heretics gain immunity to brain traumas and slowly regenerate brain
health. Equipping the moon amulette channels its effects through the
moon blade; making it unblockable and cause sanity damage instead of
brute. Ring leader's Rise now summons an army of harmless clones that
explode when attacked; the explosion briefly stuns non-heretics and
cause sanity and brain damage to them. Moon blade can also now be used
when pacified and Moon spells are no longer blocked by regular anti
magic, only mind magic protection.


**Cosmic Path Rework**

Cosmic path has received the biggest batch of changes alongside Moon.
The path has been dead last in ascension and pickrate (less than 5%) for
almost 2 years. It did gain some popularity over the last few months,
reaching the highest ascension rate in the game (12%) while mantaining a
relatively low pickrate.

Cosmic sits in a weird spot, where pretty much every knowledge
surrounding the path is either mediocre or, in the case of the
ascension, dysfunctional. Yet it has maintained a smidge of relevancy
due to how quickly Cosmic heretics can capture and sacrifice targets
thanks to Star Touch.

As a result, the best course of action would be to rebalance the
entirety of the kit; granting the heretic more tools to manipulate space
and dictate the flow of a fight, while lessening their ability to end a
confrontation by instantly sleeping their opponents.

lastly The Star Gazer is now ghost controlled ; And they shoot lazers!

<img width="636" height="451" alt="gazer gag 3"
src="https://github.com/user-attachments/assets/601d6881-c042-4e42-8ce6-ac90cd27848b"
/>


## Why It's Good For The Game


### Ok...but why do we want this?

Again, if you want my full reasoning, please check my doc
https://hackmd.io/@BiST8PJVRjiwVPY86U3bLQ/B11HyChz1g.

To keep it short and concise; Heretic is too complex and unintuitive for
its own good. Too impenetrable for new players and too abusable for
experienced players. This can be chalked up to a lot of poor design
decisions. But ultimately, what I believe being the biggest contributor
to the current status of Heretic is the ability to move into different
paths, also known as "Cross-Pathing".

### Cross Pathing my beloathed.

Cross-pathing, while cool in theory, overcomplicates the antagonist and
overloads them with power. Players dealing with the heretic are
incapable of working out what a given heretic can do. This also leads to
late game heretics having 3 rows Worth of action buttons and virtually
no weakness.

Over the last year, I've often received the understandable but also kind
of unfair accusations of making Heretic too powerful without a clear aim
or purpose.

My goal with the paths I've reworked over the last year (Rust,Void and
Blade) wasn't necessarily to just make them stronger (although that was
also part of the goal, as they were paths that were underperforming),
but for them to have more interactions with the sandbox and to better
live up to the fantasy presented to the player.

If an harbringer of frost gets countered by a cup of coffee, we probably
messed something up.


Unfortunately, the current incarnation of Heretic doesn't really allow
for surgical balance changes to specific paths. Every time a knowledge
gets buffed, we make every path that can easily tap onto that knowledge
stronger by default. It doesn't take a genius to understand why this
system is ultimately unsustainable.

### Blade Breaking

I feel that after a heretic has reached the near peak of their power,
they no longer need the ability to instantly escape any encounter. Check
my doc for my full reasoning.

## Less versatile, more specialized paths.

By removing cross-pathing, we remove a huge maintainability burden from
the antagonist. Paths can now be designed around clearer strengths and
weaknesses. They become easier to balance and less of an headache to
understand for everyone.

It also means we can give paths some needed quality of life quirks
without having to worry how such a change might have a knock-on effect
for other paths.

Ash heretics can finally let loose without dying by their own flames.
Cosmic Heretic can go to space without having to carry a modsuit. Moon
Heretic can use their abilities without fear of one random trauma
ruining their day, and so on.

### What a horrible night to have a curse...., wait how do I curse
people again?

As of right now the heretic tree has quite a hefty amount of trinkets
that pretty much never see use.

Partly because the tree itself is a nightmare to navigate. And partly
because why would anyone set up an elaborate plan or scheme when they
can unleash 2 rows of spell in the span of bunch of seconds.

Heretics mostly gravitate towards powers that push them towards greater,
more potent combat strength. If it doesn't contribute to killing people
quicker, it isn't worth doing for most. And given the opportunity cost
associated for taking those powers, they will remain that way so long as
there are better choices to be poached.

The new draft system encourages Heretics to play more with the tools at
their disposal. If you want to go for a specific combo from the side
path options, you may now do so by tapping into the knowledge shop.

Yes, the shop does include a few knowledges from the other paths. But
these are limited to 1 per path, are very expensive and can only be
unlocked very late into the shift.

## Drip Of the Mansus

The iconic heretic robe is actually sequestered to a side path that is
most easily access by only two paths at a time. Since heretic paths are
being made to be much more specialized, the most obvious way in which
this can be showcased is through an easily
identifiable outfit.

By using the robes, we can both telegraph WHAT heretic you are looking
at, and just how much power they've accumulated and when it is
reasonable to take the kid gloves off and treat them as a genuine
threat. If a heretic is in their
robes, that heretic is now a significantly more prominent danger to the
station.

It also serves as a useful means for gating some of the more powerful
effects of a heretic's path behind the robes, AND enable options for
disarming them of that power should they be captured without making it
something endemic to their mob.

A major problem with heretics is a lack of certainty as to how powerful
they have become. A heretics robes is one of the milestones to help
players dealing with heretics identify that.

### Will this be 100% fair and balanced?

This is a massive overhaul to a pretty complex and bloated antagonist.
I've done my best to show the changes to several maintainers and other
members of the community for their feedback. But at some point we'll
have to see how this behave in the environment to get a feel if
something is over or undertuned. (that's my way of saying, yes this is
likely gonna require a testmerge or two).

What I will say is that I'm not trying to change the core identity of
Heretic.

Heretics should have the upperhand in single encounters early on, be
able to joust a small group of players after they unlock their final
spell, and end the round when they ascend. They're a progression
antagonist. They should retain their payoff as well as pose a danger as
they grow stronger.

But if more players feel like they are more reliably able to play the
antagonist in more varied and interesting ways, rather than the
antagonist largely existing as a measuring stick for 'robustness' due to
its elitist design philosophy, then the rework has been a success. There
should be something for
everyone in the antagonist, as is true for all of our antagonist roles.
2025-10-15 22:34:51 +00:00
Fghj240 cb7b00c3a7 The health analyzer can now tell the difference between curable and incurable traumas (#93433)
## About The Pull Request

TRAUMA_RESILIENCE_MAGIC traumas are now called "Persistent" traumas, and
the health analyzer tells you they can be treated with magic.
TRAUMA_RESILIENCE_ABSOLUTE traumas are unaffected.

## Why It's Good For The Game

Makes it easier to understand why some permanent traumas can be cured
while others can't. Also it's kind of weird that a curable trauma is
called "permanent", but also these are two different resiliences and
they shouldn't share a name anyways.

## Changelog

🆑
qol: Health analyzers now tell the difference between curable and
incurable permanent traumas
/🆑

Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
2025-10-14 22:35:41 +02:00
Xander3359 bbe729aef7 Converts more attackby's to interactions (#93106)
## About The Pull Request
Converts the following:
- Medical Kiosk
- Implant case
- Flamethrower
- Chemical implant case
- Pappercutter

Also I've looked at some alt click procs and adjusted some of their
returns
2025-10-12 22:40:42 -05:00
xPokee b308ee9d78 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-sync 2025-09-24 10:13:01 -04:00
Tim 96129c4089 Fix blink animation for eyes with no eyelids (#93048)
Co-authored-by: Lucy <lucy@absolucy.moe>
2025-09-20 21:40:48 +00:00
nevimer b348b617a3 Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts:
#	README.md
#	code/__DEFINES/admin.dm
#	code/__DEFINES/melee.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/economy.dm
#	code/datums/components/crafting/crafting.dm
#	code/datums/elements/crusher_loot.dm
#	code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
#	code/modules/clothing/suits/_suits.dm
#	code/modules/escape_menu/leave_body.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/mining/equipment/mineral_scanner.dm
#	code/modules/mob/living/living.dm
#	code/modules/plumbing/plumbers/pill_press.dm
#	tgui/packages/tgui/interfaces/Vending.tsx
2025-09-07 00:37:52 -04:00
Leland Kemble 5a5afb9947 Gives lizards lizard brains, and makes brain subtypes derive their traits from the base brain (#92602)
## About The Pull Request

Changes lizard's human brains to lizard brains, giving them the tackling
trait they were supposed to have. Also gives standard brain traits to
lizard brains, as well as giving the tackling trait to ashwalkers.
This ALSO makes it so that all brain subtypes derive their traits from
the standard brain, which'll make them update traits with any additions
to the standard brain.

## Why It's Good For The Game

fixes #92600

## Changelog
🆑

fix: Lizard now have lizard brains

/🆑
2025-08-21 02:42:44 +02:00
Cameron Lennox 20bb9e8487 Fixes runtime when leaving your brains out to dry (#92617)
## About The Pull Request
Fixes a runtime where owner-less brains would runtime upon swapping from
<60 damage to >60 damage.

This makes it so that brains no longer attempt to update their owner's
eyeballs when they have no owner.

before fix:
<img width="1280" height="690" alt="dreamseeker_2025-08-17_10-43-43"
src="https://github.com/user-attachments/assets/d04e794b-2b5e-40e8-b9ce-f9a0be81ae94"
/>

After fix (ignore the fact there was another runtime for something
unrelated, I can't be bothered to dig into signal code):
<img width="1280" height="690" alt="dreamseeker_2025-08-17_11-12-23"
src="https://github.com/user-attachments/assets/bd7b7226-7fd8-48ac-99f4-b6d3849ad95d"
/>
## Why It's Good For The Game
Less runtimes = good

Also keeps the chat from being spammed with BIG BOLD RED TEXT that
there's a runtime
## Changelog
🆑
fix: Brains will no longer runtime when owner-less
/🆑
2025-08-19 22:43:13 -04:00
Cameron Lennox 6a118b1b93 Fixes runtime when leaving your brains out to dry (#92617)
## About The Pull Request
Fixes a runtime where owner-less brains would runtime upon swapping from
<60 damage to >60 damage.

This makes it so that brains no longer attempt to update their owner's
eyeballs when they have no owner.

before fix:
<img width="1280" height="690" alt="dreamseeker_2025-08-17_10-43-43"
src="https://github.com/user-attachments/assets/d04e794b-2b5e-40e8-b9ce-f9a0be81ae94"
/>

After fix (ignore the fact there was another runtime for something
unrelated, I can't be bothered to dig into signal code):
<img width="1280" height="690" alt="dreamseeker_2025-08-17_11-12-23"
src="https://github.com/user-attachments/assets/bd7b7226-7fd8-48ac-99f4-b6d3849ad95d"
/>
## Why It's Good For The Game
Less runtimes = good

Also keeps the chat from being spammed with BIG BOLD RED TEXT that
there's a runtime
## Changelog
🆑
fix: Brains will no longer runtime when owner-less
/🆑
2025-08-19 17:02:23 +02:00
SmArtKar 1ddbd873ef Makes Fluoride Stare less of a meme, fixes lizard blinking (#92426)
## About The Pull Request

Buffs fluoride stare to not be completely unplayable, increasing warning
delay from 30 seconds to 3 minutes, and post-warning grace to 30 seconds
from 10, as well as halving damage per second.
Also fixes lizard blinking being horribly broken, made brain damage
properly update eye blinking instead of you having to wait until an
update_body call to get your brain-damaged blinks.
Additionally, fixes a bug where only roundstart eyes would blink, as
#88300's removal of update_body in eye insertion prevents them from
properly updating their overlays when inserted, thus not granting their
owner passive blinking until forced by another source.

- Closes #90269

## Why It's Good For The Game

Fluoride stare was somewhat of a joke quirk, but people liked the
concept, so it should probably not make you blind in the first five
minutes of the round. Original numbers are extremely detrimental and
require constant micromanaging to the point where you can't do any job
whatsoever.

(cherry picked from commit 3fdc42ba23)

# Conflicts:
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
2025-08-08 15:33:36 -04:00
SmArtKar 3fdc42ba23 Makes Fluoride Stare less of a meme, fixes lizard blinking (#92426)
## About The Pull Request

Buffs fluoride stare to not be completely unplayable, increasing warning
delay from 30 seconds to 3 minutes, and post-warning grace to 30 seconds
from 10, as well as halving damage per second.
Also fixes lizard blinking being horribly broken, made brain damage
properly update eye blinking instead of you having to wait until an
update_body call to get your brain-damaged blinks.
Additionally, fixes a bug where only roundstart eyes would blink, as
#88300's removal of update_body in eye insertion prevents them from
properly updating their overlays when inserted, thus not granting their
owner passive blinking until forced by another source.

- Closes #90269

## Why It's Good For The Game

Fluoride stare was somewhat of a joke quirk, but people liked the
concept, so it should probably not make you blind in the first five
minutes of the round. Original numbers are extremely detrimental and
require constant micromanaging to the point where you can't do any job
whatsoever.
2025-08-07 12:46:54 -05:00
necromanceranne 84b8636d69 Adds the ability for felinids to bite on purpose. This is an action button toggle. (#91955) 2025-07-11 17:59:02 -04:00
necromanceranne 6d0910c396 Adds the ability for felinids to bite on purpose. This is an action button toggle. (#91955) 2025-07-07 14:51:20 -04:00
John Willard 78cffc2101 Adds a new halloween species: Spirits (#90711)
Adds 2 new species: Spirits and Ghosts

Spirits are available roundstart during Halloween, Wabbajack and
Xenobio's black slime extract
Ghosts are available through Magic mirrors

They fly around, and don't have legs and instead float around. They also
can't get legs implanted onto themselves.

They also do have organs, so they are affected by flashbangs, they do
get hungry, they do need oxygen to survive (they don't take damage in
space but they do suffocate & get slowdown), and can process chems.
Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers.

Chaplains also got a buff here, null rod-type weapons' bane is now
against Spirit mobs, rather than hardcoded revenants. This means it now
includes Spirits/Ghosts, but also Soulscythes & Cult shades.

Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was
reverted in https://github.com/tgstation/tgstation/pull/86506 which I
assume was accidental.

Ghosts have an innate ability to become incorporeal, which allows them
to phase through walls and stuff. Using this will immediately make them
drop any non-ghost limb/organ (not implants cause I thought it would be
funny). This ability is not available if they have holy water in their
system, and like revenants they also can't walk over blessed tiles with
it. They are also invisible to cameras while using this (not the obscura
though).

Sprites taken from observers directly, if anyone wants to make custom
sprites for them feel free. If anyone wants to make this obtainable
somehow in-game as well I wouldn't be opposed, halloween is just where I
thought it would fit most.

This also adds a lot of fixes that I encountered trying to add this,
from systems that have been neglected throughout the years.

https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e

We haven't gotten a new halloween species in a long time and thought it
would be fun if you can play as an actual ghost, the soul that remains
after a person passes, so Halloween feels more haunted. It's overall
made in just good fun, with a bonus that Ghosts are a cool species to
play with as well for Wizards & maybe Chaplains in the future (Dead sect
when?)

🆑
add: Added a new halloween species: Spirits, a species without legs and
instead floats.
add: Added a new magic mirror species: Ghosts, like spirits but with the
ability to become incorporeal, traversing through solid wall.
fix: Mobs unable to use storage items now can't use storage items.
fix: Mobs unable to use items can now not open airlocks & closets
fix: Mobs unable to pick items up can no longer pick items up and
immediately drop, moving one tile at a time.
fix: Mobs with intentional missing limbs (Alien larva) no longer show
their limbs as missing on examine (again)
fix: Golems' pref page had a missing icon, it now has one.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
(cherry picked from commit 096c032402)
2025-06-26 19:54:02 -04:00
John Willard 096c032402 Adds a new halloween species: Spirits (#90711)
## About The Pull Request

Adds 2 new species: Spirits and Ghosts

Spirits are available roundstart during Halloween, Wabbajack and
Xenobio's black slime extract
Ghosts are available through Magic mirrors

They fly around, and don't have legs and instead float around. They also
can't get legs implanted onto themselves.

They also do have organs, so they are affected by flashbangs, they do
get hungry, they do need oxygen to survive (they don't take damage in
space but they do suffocate & get slowdown), and can process chems.
Gibbing a ghost gives ectoplasm, an ingredient for ghost burgers.

Chaplains also got a buff here, null rod-type weapons' bane is now
against Spirit mobs, rather than hardcoded revenants. This means it now
includes Spirits/Ghosts, but also Soulscythes & Cult shades.

Also re-adds https://github.com/tgstation/tgstation/pull/81630 which was
reverted in https://github.com/tgstation/tgstation/pull/86506 which I
assume was accidental.

### The difference between Spirits and Ghosts

Ghosts have an innate ability to become incorporeal, which allows them
to phase through walls and stuff. Using this will immediately make them
drop any non-ghost limb/organ (not implants cause I thought it would be
funny). This ability is not available if they have holy water in their
system, and like revenants they also can't walk over blessed tiles with
it. They are also invisible to cameras while using this (not the obscura
though).

Sprites taken from observers directly, if anyone wants to make custom
sprites for them feel free. If anyone wants to make this obtainable
somehow in-game as well I wouldn't be opposed, halloween is just where I
thought it would fit most.

This also adds a lot of fixes that I encountered trying to add this,
from systems that have been neglected throughout the years.


https://github.com/user-attachments/assets/e368d710-80a0-4c63-b271-1abe3dd41a5e

## Why It's Good For The Game

We haven't gotten a new halloween species in a long time and thought it
would be fun if you can play as an actual ghost, the soul that remains
after a person passes, so Halloween feels more haunted. It's overall
made in just good fun, with a bonus that Ghosts are a cool species to
play with as well for Wizards & maybe Chaplains in the future (Dead sect
when?)

## Changelog

🆑
add: Added a new halloween species: Spirits, a species without legs and
instead floats.
add: Added a new magic mirror species: Ghosts, like spirits but with the
ability to become incorporeal, traversing through solid wall.
fix: Mobs unable to use storage items now can't use storage items.
fix: Mobs unable to use items can now not open airlocks & closets
fix: Mobs unable to pick items up can no longer pick items up and
immediately drop, moving one tile at a time.
fix: Mobs with intentional missing limbs (Alien larva) no longer show
their limbs as missing on examine (again)
fix: Golems' pref page had a missing icon, it now has one.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2025-06-22 10:02:06 +02:00
throwawayuseless 4578b4c7b8 Gives posibrains EAL (#91596)
## About The Pull Request
Posibrains have EAL.
## Why It's Good For The Game
borgs have it, AIs have it, pAIs have it, cubes dont have it.
fucked up.
## Changelog
🆑
qol: Posibrains have EAL.
/🆑
2025-06-15 15:54:22 -04:00
throwawayuseless d312760a0d Gives posibrains EAL (#91596)
## About The Pull Request
Posibrains have EAL.
## Why It's Good For The Game
borgs have it, AIs have it, pAIs have it, cubes dont have it.
fucked up.
## Changelog
🆑
qol: Posibrains have EAL.
/🆑
2025-06-13 08:36:03 +02:00
necromanceranne 864dff8110 Bite the Hand that (Doesn't) Feed: Felinids who are both insane and hungry might bite. (#91363)
Felinids have an increasing potential to bite you instead of punch you
based on whether or not they're hungry, and how insane they are. The
more insane, the more likely they are to bite.

Sometimes they bite anyway.

Will this matter at all? Probably not.

Also adds a minor buff to carp teeth and makes their teeth pointy.

We were joking about felinids biting people and I thought it was funny
to make it a felinid problem they deal with when things are going bad
for them. It is unlikely to be something that can be actively exploited,
since it needs you to be suffering from two debuffs to occur with any
amount of frequency to be noticeable. But the idea of a felinid that has
been going through enough shit to snap and just maul someone is funny as
hell. ~~As well as maybe give some IC reason as to why people don't like
felinids beyond just being cat people.~~
2025-05-29 16:19:39 -04:00
necromanceranne 1924305236 Bite the Hand that (Doesn't) Feed: Felinids who are both insane and hungry might bite. (#91363)
Felinids have an increasing potential to bite you instead of punch you
based on whether or not they're hungry, and how insane they are. The
more insane, the more likely they are to bite.

Sometimes they bite anyway.

Will this matter at all? Probably not.

Also adds a minor buff to carp teeth and makes their teeth pointy.

We were joking about felinids biting people and I thought it was funny
to make it a felinid problem they deal with when things are going bad
for them. It is unlikely to be something that can be actively exploited,
since it needs you to be suffering from two debuffs to occur with any
amount of frequency to be noticeable. But the idea of a felinid that has
been going through enough shit to snap and just maul someone is funny as
hell. ~~As well as maybe give some IC reason as to why people don't like
felinids beyond just being cat people.~~
2025-05-29 15:21:45 -04:00
MrMelbert bc2215667f Re-refactors batons / Refactors attack chain force modifiers (#90809)
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)
/🆑
2025-05-22 21:30:07 -04:00
MrMelbert 5261efb67f Re-refactors batons / Refactors attack chain force modifiers (#90809)
## 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)
/🆑
2025-05-19 13:32:12 +10:00
Roxy a67637ef66 Make brain_gain_trauma return null instead of FALSE on failure (#91100) 2025-05-12 15:11:08 -04:00
Roxy 41870966d2 Make brain_gain_trauma return null instead of FALSE on failure (#91100) 2025-05-12 15:06:00 -04:00
Bloop 4ba1520df8 There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## 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.
2025-04-29 18:33:34 -06:00
Ghom 11d82b7995 You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
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.
/🆑
2025-04-29 18:22:44 -06:00
Bloop 3d01e86e29 There will be (colorful) blood: datumizes bloodtypes, greyscales blood sprites, and fixes a lot of inconsistencies with gibs and forensic data (#90593)
## 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.
2025-04-28 00:57:59 -05:00
Ghom 339616ae78 You can now interact with held mobs beside wearing them (feat: "minor" melee attack chain cleanup) (#90080)
## 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.
/🆑
2025-04-23 20:18:26 +00:00
Roxy 2a8574c34e Fix flaky hard delete related to wound-induced brain traumas (#90751)
## About The Pull Request

Brain traumas caused by head wounds are stored as a reference on the
wound, but certain brain traumas (like split personality) `qdel`
themselves in `on_gain()` if conditions aren't valid for them to exist,
`/obj/item/organ/brain/proc/brain_gain_trauma` returns a reference even
if this happens, leading to the ref being stored on the wound and
preventing the trauma from being fully deleted.

## Why It's Good For The Game

Fixes #87752 

## Changelog

No player facing changes

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-04-22 15:23:35 -04:00
Roxy 7f808bcec6 Fix flaky hard delete related to wound-induced brain traumas (#90751)
## About The Pull Request

Brain traumas caused by head wounds are stored as a reference on the
wound, but certain brain traumas (like split personality) `qdel`
themselves in `on_gain()` if conditions aren't valid for them to exist,
`/obj/item/organ/brain/proc/brain_gain_trauma` returns a reference even
if this happens, leading to the ref being stored on the wound and
preventing the trauma from being fully deleted.

## Why It's Good For The Game

Fixes #87752 

## Changelog

No player facing changes

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2025-04-22 16:07:43 +02:00
Waterpig 753d8e5ba4 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a 2025-04-08 18:58:45 +02:00
Lucy 3082e4eb39 Slightly refactors the Cortex Imprint bioware (#90154)
## About The Pull Request

I slightly refactored the Cortex Imprint bioware - instead of ticking
every 2 seconds, it now just registers `COMSIG_CARBON_GAIN_TRAUMA`, and
blocks any basic resilience trauma from even being added - in addition
to curing all basic resilience traumas upon being gained.

I also added a `COMSIG_CARBON_BLOCK_TRAUMA` value, which is exactly what
it says on the tin, and also pass the resilience arg to
`COMSIG_CARBON_GAIN_TRAUMA`.

## Why It's Good For The Game

this doesn't need to tick i dont think, so, like, why not just use a
signal?

## Changelog
🆑
code: Slightly improved the code for the Cortex Imprint bioware.
/🆑
2025-03-24 08:00:30 +01:00
MrMelbert 1406210b6e Improves the "Check mood" printout, reworks the "Check self" printout, minor embed changes (#89854)
## About The Pull Request

1. Reformats "Check Mood" 

Basically just cleaning it up.
- Moodlets are bullet pointed.
- Hunter is displayed here now.
- Quirks are displayed here now.
- It now tells you how drunk you feel.

Sample


![image](https://github.com/user-attachments/assets/1aac1180-1eed-45f7-9615-005eeecef8c8)

2. Reworks "Check self"

Big reworks done here.
- Organs now don't outright say "Your hear is hurty" "Your lugs are
hurty". Now they'll say something like, "Your chest feels tight" -
Unless you're self aware, then it will say "Your heart is hurty".
- Check self no longer reports wounds with 100% accuracy. You get an
approximate of what the wound is like - "Your chest has an open cut".
More severe wounds will still be bolded, though.

Sample 


![image](https://github.com/user-attachments/assets/3da6336c-63db-4298-9fcb-76748608c848)


![image](https://github.com/user-attachments/assets/6e797ef3-cb04-46cd-aa3c-520c9240953d)

3. Embed tweaks

Embeds can be hidden, and thus will only show up on health analyzers.
This means you can't rip them out by hand.
Right now only bullet shrapnel and explosion shrapnel is hidden.

## Why It's Good For The Game

1. Just some cleanup, largely. Stuff like quirks and hunger make more
sense when checking your mental rather than checking your body. Though
this might be weird for if mood is config-disabled, I might have to
revisit htat.

2. I always found that clicking on yourself and just getting a print out
of "Your liver's non-functional, your chest has a weeping avulsion, etc"
is pretty lame... it kind of diminishes diagnosis / doctor's job.
Ultimately, the goal of this is to open up a little more doctor gameplay
- primarily I think it'll allow for some fully roleplay moments, like
"Doc my chest hurts a lil" "You have 7 bullets and broken ribs bro"

3. Adds more punch to some embeds. Mostly for larp though.

## Changelog

🆑 Melbert
add: Your mood printout (clicking on the mood face) has been
reformatted, and should generally be cleaner.
add: Self examining was reworked, and overall gives you a lot less
perfect information, unless you are self-aware.
add: Bullet and grenade shrapnel is now hidden from examining - it's
skin deep. You can't rip them out with your hands, but hemostats /
wirecutters still suffice if you know they're there. Health analyzers
still pick them up too.
qol: Ghosts aren't notified about NPCs getting appendicitis 
/🆑
2025-03-15 05:51:06 +00:00
Hatterhat 4b5f24da4a Spaceman Beatdown - a small tweak to punching people (#89721)
## About The Pull Request
Brains now prioritize using one's arms if you're beating on someone you
have grappled.

Arms now have a 1.5x "pummeling multiplier" that applies to limb
accuracy and damage (rounding down), which brings their damage profiles
more in-line with legs (when they're being used to kick people) so as to
retain the effectiveness of unarmed attacks against horizontal spacemen
while grappling them.

## Why It's Good For The Game
I thought it was kind of silly that you used your legs to kick people
who are down even if you're holding them on the floor to beat them to
death, so I thought about making it prioritize arms. And then I thought
"but then we're kind of nerfing grabs in a punching-based 1v1 scenario
because then you're just punching them and not using your legs to beat
them to death", so I thought to alleviate this by introducing a pummel
multiplier.

*However*, at time of writing, this does apply to any punching attack
when used against someone who's grabbed, so if you're punching a guy who
your buddy has grabbed, your arms are doing kick-tier damage. This could
probably be alleviated by making this boon only benefit the attacker if
they are also the guy grabbing the other guy, but then again, if you're
getting grabbed in a fistfight, you probably weren't making it out
alive.

## Changelog

🆑
balance: Spacemen (e.g. you, the reader) grappling a target now
prioritize using their bare hands to beat their target to death if
they're grappled, instead of contorting in weird ways to kick them
(also, presumably, to death).
balance: Spacemen have learned to Punch Good(er) against grappled
targets, leading to kick-tier damage against standing grappled targets -
even if they're not doing the grappling.
balance: Strong-Arm implant users also benefit from the training of
punching grappled people as well - as a treat, horizontal targets slam
into the ground and break tiling for no additional damage, but a very
visible sign of "oh god someone got pasted here".
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-03-12 17:13:52 -04:00
Kapu1178 b9c803a9d8 Base implementation of /datum/persistent_client (#89449)
Converts `/datum/player_details` into `/datum/persistent_client`.
Persistent Clients persist across connections. The only time a mob's
persistent client will change is if the ckey it's bound to logs into a
different mob, or the mob is deleted (duh).

Also adds PossessByPlayer() so that transfering mob control is cleaner
and makes more immediate sense if you don't know byond-fu.

Clients are an abstract representation of a connection that can be
dropped at almost any moment so putting things that should be stable to
access at any time onto an undying object is ideal. This allows for
future expansions like abstracting away client.screen and managing
everything cleanly.
2025-03-12 16:47:54 -04:00
Time-Green 52d2250fa2 The Organ Tree | New Exotic Seed (#89310)
## About The Pull Request
99% of all code was stolen completely from @MrMelbert, like I spent more
time waiting for the plant to grow for the video than actually
contributing to this

Adds a new tree mutation to the shrub (from exo crate)
It has a High Complexity Gene, which halves the harvest and blocks
pollination benefits. It produces podperson organs and limbs. Limbs are
twice as likely to drop as organs (because there's a lot more organs).
It can also drop plant meat.


https://github.com/user-attachments/assets/88bb89dd-4cd7-4bc9-ac2f-f4c67a5ea9ff

(Yes the sprite is mine please don't bully Melbert for it)

Podpeople now also have their own set of organs, which are mostly just
standard organs but colored green.

## Why It's Good For The Game
Gives us another source of organs and limbs besides the limb grower,
exosuit fab and medical protolathe. Those only produce organic and
robotic organs and limbs, but now we can also produce plant organ and
limbs! (Without committing horrible crimes). This also synergizes well
with #89306 , which makes it so plant bodyparts have actual unique
benefits (more than just a fashion statement).

## Changelog
🆑 MrMelbert, Time-Green
add: Adds an organ tree as a mutation of shrubs (from the exotic seeds
crate)! Spare organs have never been so green!
/🆑

---------

Co-authored-by: MrMelbert <kmelbert4@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2025-03-12 16:35:29 -04:00
Hatterhat f24e05820b Spaceman Beatdown - a small tweak to punching people (#89721)
## About The Pull Request
Brains now prioritize using one's arms if you're beating on someone you
have grappled.

Arms now have a 1.5x "pummeling multiplier" that applies to limb
accuracy and damage (rounding down), which brings their damage profiles
more in-line with legs (when they're being used to kick people) so as to
retain the effectiveness of unarmed attacks against horizontal spacemen
while grappling them.

## Why It's Good For The Game
I thought it was kind of silly that you used your legs to kick people
who are down even if you're holding them on the floor to beat them to
death, so I thought about making it prioritize arms. And then I thought
"but then we're kind of nerfing grabs in a punching-based 1v1 scenario
because then you're just punching them and not using your legs to beat
them to death", so I thought to alleviate this by introducing a pummel
multiplier.

*However*, at time of writing, this does apply to any punching attack
when used against someone who's grabbed, so if you're punching a guy who
your buddy has grabbed, your arms are doing kick-tier damage. This could
probably be alleviated by making this boon only benefit the attacker if
they are also the guy grabbing the other guy, but then again, if you're
getting grabbed in a fistfight, you probably weren't making it out
alive.

## Changelog

🆑
balance: Spacemen (e.g. you, the reader) grappling a target now
prioritize using their bare hands to beat their target to death if
they're grappled, instead of contorting in weird ways to kick them
(also, presumably, to death).
balance: Spacemen have learned to Punch Good(er) against grappled
targets, leading to kick-tier damage against standing grappled targets -
even if they're not doing the grappling.
balance: Strong-Arm implant users also benefit from the training of
punching grappled people as well - as a treat, horizontal targets slam
into the ground and break tiling for no additional damage, but a very
visible sign of "oh god someone got pasted here".
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2025-03-08 11:26:48 +11:00
Kapu1178 a0e862d575 Base implementation of /datum/persistent_client (#89449)
## About The Pull Request
Converts `/datum/player_details` into `/datum/persistent_client`.
Persistent Clients persist across connections. The only time a mob's
persistent client will change is if the ckey it's bound to logs into a
different mob, or the mob is deleted (duh).

Also adds PossessByPlayer() so that transfering mob control is cleaner
and makes more immediate sense if you don't know byond-fu.

## Why It's Good For The Game
Clients are an abstract representation of a connection that can be
dropped at almost any moment so putting things that should be stable to
access at any time onto an undying object is ideal. This allows for
future expansions like abstracting away client.screen and managing
everything cleanly.
2025-02-25 13:52:24 -06:00
Majkl-J b6b8306fda Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-02a 2025-02-20 00:00:19 -08:00
Time-Green 31306fb956 The Organ Tree | New Exotic Seed (#89310)
## About The Pull Request
99% of all code was stolen completely from @MrMelbert, like I spent more
time waiting for the plant to grow for the video than actually
contributing to this

Adds a new tree mutation to the shrub (from exo crate)
It has a High Complexity Gene, which halves the harvest and blocks
pollination benefits. It produces podperson organs and limbs. Limbs are
twice as likely to drop as organs (because there's a lot more organs).
It can also drop plant meat.


https://github.com/user-attachments/assets/88bb89dd-4cd7-4bc9-ac2f-f4c67a5ea9ff

(Yes the sprite is mine please don't bully Melbert for it)

Podpeople now also have their own set of organs, which are mostly just
standard organs but colored green.

## Why It's Good For The Game
Gives us another source of organs and limbs besides the limb grower,
exosuit fab and medical protolathe. Those only produce organic and
robotic organs and limbs, but now we can also produce plant organ and
limbs! (Without committing horrible crimes). This also synergizes well
with #89306 , which makes it so plant bodyparts have actual unique
benefits (more than just a fashion statement).

## Changelog
🆑 MrMelbert, Time-Green
add: Adds an organ tree as a mutation of shrubs (from the exotic seeds
crate)! Spare organs have never been so green!
/🆑

---------

Co-authored-by: MrMelbert <kmelbert4@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2025-02-19 05:46:06 +01:00
aKromatopzia 25a23cd8b3 [TM ready, again] brain augment fluff (#2497)
## About The Pull Request

...this time it should actually have been based correctly. As per [my
previous pr](https://github.com/Bubberstation/Bubberstation/pull/2492).
I know half the code was done in skyrat but this isn't really the type
of PR which can be modularized neatly anyways. Sorry. Anyways, it's done
now.

As for the empathic sensor, that is an item done by request and probably
could be worth higher cost? Now it's removed from roundstart.

## Proof Of Testing
don't mind the world of warcraft noises. I'm not sure why those picked
up. On the floor in the videos you can also see the new vox brain, the
new cortically-augmented brain, and the unchanged android brain.

The experiment works right

https://github.com/user-attachments/assets/2a542499-30ad-4848-b415-1a836d25bfcf
Empathic sensor reads and sends. It no longer is read/send by/to
shadekin, using its own "frequency"

https://github.com/user-attachments/assets/00552f32-829e-4efc-9c2d-0314d8ea0e2e

Removed, but the selection dropdown is there. Just empty.

![Screenshot_3](https://github.com/user-attachments/assets/2e1ad9bf-1da8-4307-946f-aa775e94f776)
Actually 0 now

![Screenshot_2](https://github.com/user-attachments/assets/2b05064f-136f-4102-8c35-81248d298056)
https://github.com/Bubberstation/Bubberstation/issues/2724 is actually
resolved

https://github.com/user-attachments/assets/18b8185c-5e2e-4927-afeb-f06c1887b5c3

## Changelog

🆑
code: "Brain augment" and "Brain implant" selection in prefs
add: Added new brain type for humans. It's chrome, choom
add: One new brain implant for civilian use, the empathic sensor.
balance: androids get a brain damage cap var (999); can't be EMP'd while
already dead; alert texts when they're EMP'd
image: new sprite for vox brain
code: vox (primalis) brain now a child of android brains
/🆑

---------

Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
2025-01-12 13:23:30 -08:00