## About The Pull Request
Empath has become a component instead of a trait, letting it store
variables or whatever components are good for. Also, it works slightly
differently for empath quirk users and moon heretics alike.
Additionally:
- You can only shiver when you see an evil person once. After that it
won't happen again.
- Empaths no longer get a mood debuff from seeing someone distressed.
- Moon heretic empaths no longer get smited by evil people.
- Moon heretic empaths aren't scared of evil people.
The component also supports empaths being able to tell if a fake dead
body is actually dead, and being able to use empath on yourself, but
those aren't enabled for the empath quirk or moon heretics. (Self-empath
would probably powercreep self aware)
## Why It's Good For The Game
While the empath quirk is incompatible with the evil quirk, the trait
wasn't. That means you could potentially become an evil empath and still
feel bad about other people feeling bad and get smited by other evil
people. Being an empath is different from having empathy, and there's
now a personality trait (compassionate) that has a very similar feature
so the mood debuff got axed and moon heretics can't get smited by
mending touch anymore.
I think being a heretic and looking into pierced realities probably
means you have the mental fortitude to not freak out when you see an
evil person. Evil people are (probably) a lot less scary than whatever
mind destroying thing is in those holes.
As for the only-getting-scared-once bit, freaking out when you see an
evil person is flavorful but annoying after it happens multiple times.
Especially if it happens after examining the same person multiple times.
## 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.
## About The Pull Request
ports https://github.com/DaedalusDock/daedalusdock/pull/1144
ports https://github.com/DaedalusDock/daedalusdock/pull/1147
full credit to @Kapu1178 for the juice
instead of `reacher.CanReach(target)` we now do
`target.CanBeReachedBy(reacher)`, this allows us to give special
behavior to atoms which we want to reach, which is exactly what I need
for a feature I'm working on.
## Why It's Good For The Game
allows us to be more flexible with reachability
## Changelog
🆑
refactor: refactored how reaching items works, report any oddities with
being unable to reach something you should be able to!
/🆑
## About The Pull Request
When a Mind Reader examines someone who is typing, it will show them
what they are actively typing
<img width="518" height="97" alt="image"
src="https://github.com/user-attachments/assets/8d54aa56-85fc-4e03-b0a3-bfb8e475beff"
/>
No, it won't read OOC messages.
## Why It's Good For The Game
Your next line is, "This sounds really funny for gimmicks like security
interrogations or fortune telling, or for getting the jump on someone as
they try to get the jump on you, or just to be a badass by finishing
people sentences"
## Changelog
🆑 Melbert
add: When a mind reader examines a mob, they'll get a glimpse into what
that mob is currently typing, before they even send the message.
qol: Mind Reader now groups up all the information it gives you in a box
admin: Mind Reader now logs everything the reader gleamed from the
read-ee
/🆑
## About The Pull Request
fixed copy paste mistake where there are 2 constructors for chav, 1
below elvis since it was copy pasted without being changed
## Why It's Good For The Game
chav accent might have been using the elvis word replacements and elvis
didn't replace words at all??
## Changelog
nobody will notice this :trollface:
## About The Pull Request
Increases the minimum possible damage an unarmed attack can inflict by
your athletics level.
For a normal human punch, you would typically roll between 5 and 10
damage. For a legendary athlete, they will always roll 10 damage.
For a normal human kick, you would typically roll between 7 and 15. For
a legendary athlete, they will instead roll between 14 and 15.
This alteration cannot increase your maximum potential damage. Only
improve the floor. If your arm has a max value of 1, it will be still 1
even if you're a legendary athlete.
TRAIT_STRENGTH increases the maximum possible damage you can roll by 2,
regardless of limb values. You still need to roll that damage, and this
is not a flat increase to the damage you deal.
The Strength gene has a higher instability due to its new functionality.
(5 > 10)
Your athletics skill also improves the possible outcomes of a stagger
combo.
## Why It's Good For The Game
Kryson has been nudging about this for weeks at this point so I'm taking
him up on his offer and implementing athletics benefits to standard
unarmed attacks.
Damage consistency does improve the average unarmed damage output of the
standard spaceman's humble fist, but it still keeps it within a
particular damage bound. Effects that increase the actual damage are
still gated behind temporary buffs, limb improvements or genetics, which
mostly means you're interacting with other players in some fashion or
will need to interact with other players to get the full monty of
possible unarmed improvements.
It also just _feels_ right. Improving fitness gives a lot of minor
imrpovements, but this one seems obvious for what it otherwise
thematically should be doing. If you appear to be strong, getting
punched by you probably will hurt and you are probably pretty good at
hitting with a particular kind of explosive power consistently.
## Changelog
🆑
balance: Unarmed attacks deal more consistent damage and more impactful
against staggered opponents the more athletic you are.
balance: The strength gene now improves your unarmed upper potential
damage a bit. It increases instability slightly more as a result.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
### Special versions are no longer vulnerable to recoil
There are two versions of hulk that are not available under normal
circumstances. The version given by wizard's Transformation, and the
version that Warlord pirates spawn with. These versions no longer break
their arms when destroying walls.
Normal versions, like the genetic hulks and the orc variant, still
suffer this effect.
### oof ow my bones
Hulk recoil damage now utilizes RNG wound determination. This allows for
the wound to escalate normally if the wound meets the threshold. The
damage passed means that there is a roughly 50/50 chance to cause a
dislocation, a very slim chance to roll a fracture, and this probability
will grow worse once the arm is wounded and threshold penalties start to
take effect.
This also means that the mutation respects wound resistance and wound
vulnerability, where as the previous behavior did not.
### Cleans up some mutation code a smidge
There is clearly some leftovers from prior refactors still littered
through mutation code, so I did some maintenance while I was here.
## Why It's Good For The Game
https://github.com/tgstation/tgstation/pull/51389 introduced this
weakness to dissuade hulks from flattening walls all the way to the
armory (for the fuckbillionth time). However, it applies to all versions
of hulk, including instances where it is an antagonist's ability or
power. Rather than have antagonists suffer from balance considerations
largely aimed at crew/tiders, we make them exempt so that they can SMASH
to their heart's content.
Hulk wound determination was kind of weird. For one, it relied heavily
on the arm health consistently being 50. When it wasn't, you started
getting into less reliable behaviour. In addition, it does not at all
respect any kind of vulnerability or resistance to wounding.
It is possible that utilizing this system was so that the wounding
effects would be staggered out rather than sporadic, and so slightly
fairer on the user by being more reliable. However, I think letting it
operate similarly to how our natural wound determination effects work
provides some more interesting outcomes for those who might want to use
the mutation in an earnest fashion, and still otherwise limits those
people who are just looking to low effort grief.
I think in retrospect this might have been a pretty heavy-handed nerf,
but I'm not wholly reversing it, I'm just making it...different.
Outcomes should be largely the same.
## About The Pull Request
Fixes#85028
Obscured flags and covered flags are tracked on carbons, updated as
items are equipped and unequipped. It's that shrimple.
Closes#92760
Just removes the species exception checks for not making sense
Also refactors handcuffs / legcuffs removal. In all of these situations
they were hardcoded when they could easily just use an inventory proc to
work.
## Why It's Good For The Game
Stops a million excessive calls to `check_obscured_slots`
Makes obscured behavior more consistent
Makes obscured behavior easier to use
Cleans up human rendering (There was some cursed stuff before with
render item -> updated obscured -> update body -> cause side effects)
## Changelog
🆑 Melbert
del: Golems which somehow manage to grow wings and somehow manage to
equip something that covers their jumpsuit can no longer fly.
(Seriously, this will not affect anyone)
refactor: Refactored clothing obscurity entirely. Items should be a
loooot more consistent and what covers what, and should update a lot
snappier. As always, report any oddities, like mysteriously disappearing
articles of clothing, hair, or species parts
refactored: Refactored handcuffs and legcuffs a bit, report any odd
situations with cuffs like getting stuck restrained
/🆑
## About The Pull Request
This fixes several bitfield operations that were missing parenthesis
encapsulation. I noticed this problem in:
- #92601
And decided to use regex to search for similar patterns which I came
across in:
- Move loops bypassing the `MOVELOOP_STATUS_RUNNING` status
- Elastic arms mutation bypassing `ABSTRACT` object flags for picking up
objects
- Species radiation bypassing `HEAD_HAIR` hairstyle flags for balding
- Damaged APC board status bypassing `EMAGGED` and `BROKEN` status for
screentips
- Shuttle cleanup code bypassing `MOVE_CONTENTS` for moving old turfs
- Tram crossing signals bypassing `NORTH` and `EAST` direction checks
## Why It's Good For The Game
Code behaves as intended.
## About The Pull Request
Fixes the issue of usr pointing to admins by making Trigger pass down
clicker, as usr is fucky and can be passed down by other unrelated
procs. Fun.
Added the clicker arg to all usages of Trigger as well
Also changes isobserver check in antagonist ui_act code that prevents
observers from clicking UI's instead to check if the ui.user is
owner.current
## Why It's Good For The Game
Fixes admins giving heretic to people opening the heretic UI for the
admin instead
## About The Pull Request
There was a PR I wanted to make, but one of the features I wanted the
addition to have was for an affected mob to only speak aphasic, but
understand whatever languages they'd normally be able to understand.
This, in turn, required refactoring language holders to separately block
language speech and comprehension. This change, I decided, would be good
to split into its own PR.
## Why It's Good For The Game
Allows more fine-grained control over what languages an atom is blocked
from speaking or understanding. This will be useful for future PRs or
admin events.
## Changelog
no player-facing changes
## About The Pull Request
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.
The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.
## Why It's Good For The Game
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.
## Changelog
🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
## 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
I was about to start working on something, but then I've noticed
chromosomes-related code was looking quite old and had some magic
numbers in it, so I've decided to update it a little.
## Why It's Good For The Game
Better code.
## Changelog
N/A
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
## About The Pull Request
Fixes#90637
Adds on remove effects for Farsight and Rock Absorber, because I forgot.
## Changelog
🆑 Melbert
fix: Losing Farsight or Rock Absorber mutations will properly drop their
effects as well
/🆑
## About The Pull Request
- Hypermetabolic Blood
- You bleed 1.5x more, but regenerate blood 6x faster.
- For reference: A moderate slash wound is ~2 blood loss per tick, a
crit slash wound is ~4 blood loss per tick, and you regenerate ~0.25
blood per tick.
- For weak bleed wounds, you will net lose less blood per tick with the
mutation than without.
- However, for strong bleed wounds you will net lose more blood per tick
with the mutation.
- Ultimately, you will (obviously) recover much faster once closing the
wound.
- Affected by synchronizer and power
- Rock Eater
- You can eat materials like a golem.
- Rock Absorber
- You can eat materials like a golem, and you will also gain golem buffs
from them.
- Combination gene from "Rock Eater" and "Stoner"
- I didn't (deeply) vet if any of these effects would be OP combined
with other genes, but I'm chalking it up to emergent gameplay if I miss
something
- Farsight
- Gives you an action button which lets you expand your view range
- Affected by power
- Inexorable
- Disables soft crit, but entering the threshold for soft crit will
cause ticking brute/toxin damage and force you to whisper.
- No slimepeople can't cheese this
- Also is an innate "painkiller".
- Affected by synchronizer
## Why It's Good For The Game
Just some random mutation ideas I had, for more genetics shenanigans.
They're all relatively unobtrusive but have some niche potential
(Bleeding more for Blood Cult? Farsight + Thermals? Inexorable +
Martyrdom?)
## Changelog
🆑 Melbert
add: "Hypermetabolic Blood" Mutation
add: "Rock Eater" Mutation
add: "Rock Absorber" Combination Mutation
add: "Farsight" Mutation
add: "Inexorable" Mutation
/🆑
## About The Pull Request
https://github.com/Monkestation/Monkestation2.0/pull/5690 exposed the
fact that `/datum/mutation/human/radioactive/modify()` assumes we have
an owner.
However, the parent proc, `/datum/mutation/human/modify()`, does not
make this assumption - and as such,
`/datum/mutation/human/radioactive/modify()` shouldn't either.
This PR modifies `/datum/mutation/human/radioactive/modify()` to check
if our `owner` variable is set (and valid!) before applying the
radioactivity changes.
## About The Pull Request
Fixes#85980
- Pixel adjustments are now sourced
When tweaking a mob's pixel w, x, y, z, is is now done via `add_offsets`
and must have a source string associated
- Refactors riding
Refactors how riding component selects the offsets to use. It's now all
done via the getter rather than a weird mix of a var, a cache, and a
getter.
- Moves a bunch of animations to use `pixel_w` / `pixel_z`
Largely to prevent conflicts with adjustments to a mob's pixel position,
but also as many animations are not actual movements, but visual
movements. Floating is one such example.
## Why It's Good For The Game
It just works
## Changelog
🆑 Melbert
fix: Fixed grab offsets not showing for anything but passive grab
fix: Fix jank with mob offsets when riding things
refactor: Refactored riding component, particularly how it selects layer
and offsets. Report any oddities
refactor: Refactored pixel offsets of mobs. Report any oddities
/🆑
## About The Pull Request
fixes https://github.com/tgstation/tgstation/issues/89149
## Why It's Good For The Game
This trait not only no longer is needed, but functionally allows for an
exploit! Let's get rid of it.
## About The Pull Request
This PR completely rewrites our embedding system in favor of embedding
datum handlers which acts as containers for all embedding-related data
and logic.
Currently embedding logic relies on an element-component-datum triad,
where elements on the items handle embedding logic, singleton datums
store embedding data and components (which get assigned to ***mobs*** in
whom the item embedded) handle pain and the item being ripped out. How
do we access all the procs? By using comsigs as procs, which is really
bad. This code was written back in 2020 when DCS was hot stuff but in
hindsight this implementation was a mistake, as it heavily restricts
custom embedding behaviors unless you're willing to constantly run
GetComponent (bad, ugly, incarnation of evil)
This PR rewrites all that logic to be handled by lazyloaded
``/datum/embedding``, which is stored similarly to current
``/datum/embed_data``. Upon being requested, it is initialized and
assigned to a parent from whom all the logic is handled, from being
embedded to pain and having the item ripped out. On projectiles this
only handles one proc, after which it copies itself down to the shrapnel
item instead and runs the chain further from there.
Ideally, most embedding-related logic now should be handled purely
datum-side - in most cases items should not be hooking up to themselves
like they did before (unless said logic is for when the item is made
sticky or smth) and instead the code should be handled by the embedding
datum (see sholean grapes implementation in this PR). This should allow
us to do fancy stuff like syringe guns embedding syringes into targets
and injecting them that way, and fix some bugs along the way.
Closes#88115Closes#87946
Also fixed a bug with scars not displaying when examined closely from
#86506 because i was in the area anyways
## About The Pull Request
This is the first PR in a series attempting to modernize our damage and
armor, both from a code and a gameplay perspective. This part implements
unique attack animations, adds alternate attack modes for items and
fixes some minor oversights.
Items now have unique attack animation based on their sharpness - sharp
items are now swung in an arc, while pointy items are thrust forward.
This change is ***purely visual***, this is not swing combat. (However,
this does assign icon rotation data to many items, which should help
swing combat later down the line).
Certain items like knives and swords now have secondary attacks - right
clicks will perform stabbing attacks instead of slashing for a chance to
leave piercing wounds, albeit with slightly lower damage - trying to
stick a katana through someone won't get you very far!
https://github.com/user-attachments/assets/1f92bbcd-9aa1-482f-bc26-5e84fe2a07e1
Turns out that spears acted as oversized knives this entire time, being
SHARP_EDGED instead of SHARP_POINTY - in order for their animations to
make sense, they're now once again pointy (according to comment,
originally they were made sharp because piercing wounds weren't very
threatening, which is no longer the case)
Another major change is that structure damage is now influenced by armor
penetration - I am not sure if this is intentional or not, but attacking
item's AP never applied to non-mob damage.
Additionally, also fixes an issue where attack verbs for you and
everyone else may differ.
## About The Pull Request
~~Kept you waitin huh!~~
The projectile refactor is finally here, 4 years later. This PR (almost)
completely rewrites projectile logic to be more maintainable and
performant.
### Key changes:
* Instead of moving by a fixed amount of pixels, potentially skipping
tile corners and being performance-heavy, projectiles now use
raymarching in order to teleport through tiles and only visually animate
themselves. This allows us to do custom per-projectile animations and
makes the code much more reliable, sane and maintainable. You (did not)
serve us well, pixel_move.
* Speed variable now measures how many tiles (if SSprojectiles has
default values) a projectile passes in a tick instead of being a magical
Kevinz Unit™️ coefficient. pixel_speed_multiplier has been retired
because it never had a right to exist in the first place. __This means
that downstreams will need to set all of their custom projectiles' speed
values to ``pixel_speed_multiplier / speed``__ in order to prevent
projectiles from inverting their speed.
* Hitscans no longer operate with spartial vectors and instead only
store key points in which the projectile impacted something or changed
its angle. This should similarly make the code much easier to work with,
as well as fixing some visual jank due to incorrect calculations.
* Projectiles only delete themselves the ***next*** tick after impacting
something or reaching their maximum range. Doing so allows them to
finish their impact animation and hide themselves between ticks via
animation chains. This means that projectiles no longer disappear ~a
tile before hitting their target, and that we can finally make impact
markers be consistent with where the projectile actually landed instead
of being entirely random.
<details>
<summary>Here is an example of how this affects our slowest-moving
projectile: Magic Missiles.</summary>
Before:
https://github.com/user-attachments/assets/06b3a980-4701-4aeb-aa3e-e21cd056020e
After:
https://github.com/user-attachments/assets/abe8ed5c-4b81-4120-8d2f-cf16ff5be915
</details>
<details>
<summary>And here is a much faster, and currently jankier, disabler
SMG.</summary>
Before:
https://github.com/user-attachments/assets/2d84aef1-0c83-44ef-a698-8ec716587348
After:
https://github.com/user-attachments/assets/2e7c1336-f611-404f-b3ff-87433398d238
</details>
### But how will this affect the ~~trout population~~ gameplay?
Beyond improved visuals, smoother movement and a few minor bugfixes,
this should not have a major gameplay impact. If something changed its
behavior in an unexpected way or started looking odd, please make an
issue report.
Projectile impacts should now be consistent with their visual position,
so hitting and dodging shots should be slightly easier and more
intuitive.
This PR should be testmerged extensively due to the amount of changes it
brings and considerable difficulty in reviewing them. Please contact me
to ensure its good to merge.
Closes#71822Closes#78547Closes#78871Closes#83901Closes#87802Closes#88073
## Why It's Good For The Game
Our core projectile code is an ungodly abomination that nobody except
me, Kapu and Potato dared to poke in the past months (potentially
longer). It is laggy, overcomplicated and absolutely unmaintaineable -
while a lot of decisions made sense 4 years ago when we were attempting
to introduce pixel movement, nowadays they are only acting as major
roadblocks for any contributor who is attempting to make projectile
behavior that differs from normal in any way.
Huge thanks to Kapu and Potato (Lemon) on the discord for providing
insights, ideas and advice throughout the past months regarding
potential improvements to projectile code, almost all of which made it
in.
## Changelog
🆑
qol: Projectiles now visually impact their targets instead of
disappearing about a tile short of it.
fix: Fixed multiple minor issues with projectile behavior
refactor: Completely rewrote almost all of our projectile code - if
anything broke or started looking/behaving oddly, make an issue report!
/🆑
## About The Pull Request
Reverts change that altered pyrokinesis recipe to require firebreath
instead of fiery sweat
## Why It's Good For The Game
I don't know who did this and why. Fiery breath is a PITA to obtain and
I never wanted it to need it.
## Changelog
🆑
fix: Reverts change that altered pyrokinesis recipe to require
firebreath instead of fiery sweat
/🆑
## About The Pull Request
Rewrite `/datum/generecipe` to have two variables, `input_one` and
`input_two` that hold the type path of the ingredients for the recipe,
instead of it being a semicolon-separated string.
## Why It's Good For The Game
Better code, will catch invalid type paths in recipes at compile-time.
## Changelog
No player-facing changes
## About The Pull Request
Changes the required genes for `/datum/generecipe/cindikinesis` and
`/datum/generecipe/pyrokinesis` to have the correct path to the fire
breath gene.
## Why It's Good For The Game
Bug fix is good.
## Changelog
🆑
fix: The gene recipes for cindikinesis and pyrokinesis should now work
properly.
/🆑
## About The Pull Request
This PR kills the abstract internal and external typepaths for organs,
now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds.
This PR also fixes fox ears (from #87162, no tail is added) and
mushpeople's caps (they should be red, the screenshot is a tad
outdated).
And yes, you can now use a hair dye spray to recolor body parts like
most tails, podpeople hair, mushpeople caps and cat ears. The process
can be reversed by using the spray again.
## Why It's Good For The Game
Time-Green put some effort during the last few months to untie functions
and mechanics from external/internal organ pathing. Now, all that this
pathing is good for are a few typechecks, easily replaceable with
bitflags.
Also podpeople and mushpeople need a way to recolor their "hair". This
kind of applies to fish tails from the fish infusion, which colors can't
be selected right now. The rest is just there if you ever want to
recolor your lizard tail for some reason.
Proof of testing btw (screenshot taken before mushpeople cap fix, right
side has dyed body parts, moth can't be dyed, they're already fabolous):

## Changelog
🆑
code: Removed internal/external pathing from organs in favor of a bit
flag. Hopefully this shouldn't break anything about organs.
fix: Fixed invisible fox ears.
fix: Fixed mushpeople caps not being colored red by default.
add: You can now dye most tails, podpeople hair, mushpeople caps etc.
with a hair dye spray.
/🆑
## About The Pull Request
Shock Touch does slightly less burn damage from its shock (5), but does
a reasonable amount of stamina damage in return (20). The cooldown is
also lower. This makes it a less-than-lethal attack. The damage is
reduced by the targets energy armor. Obviously, still does nothing
against targets immune to shocks.
If it has a power chromosome, rather than chain, it instead staggers for
6 seconds.
Still does full lethal damage to any non-carbon mobs.
## Why It's Good For The Game
Shock touch is vaguely useful, but fairly mediocre except as a surprise.
While it does indeed remove weapons from peoples hands, just disarming
mostly for free isn't quite enough to turn a fight sometimes. I've
definitely disarmed someone only for them to pull out a new weapon and
keep fighting, since I didn't stop them actually responding easily. The
confusion effect is fairly light, and it wasn't quite working as a 'zap
and run' kind of power.
With this change, it definitely makes it more useful for defensive
purposes all around, without necessarily being too good as an actual
fight closer. An emergency tool at most, and maybe a decent attack to
mix in during the right circumstances.
Especially, much, much more enticing to security, who I think are the
ones this power should be most attractive too but I've struggled to
convince sec players to take the power when offered (they're quite happy
to take insulated though).
It also makes the cooldown reduction or power increase an actual choice.
Attack more often, and reduce stamina faster, or get a stagger off and
potentially slow a target down and make them easier to hit/easier for
you or harder for them to flee?
The power upgrade, previously, was complete dogshit. It mostly was just
for friendly firing a bunch of people in the vicinity of the target for
fairly minor damage at best, and didn't really contribute very much to
ending a fight sooner. Meanwhile, spamming more shock touches means more
damage output, so it was always the best option to take.
## Changelog
🆑
balance: Shock touch is now less-than-lethal, dealing a decent amount of
stamina damage at the cost of lethal damage. Lower cooldown. Power
chromosome makes it force a stagger rather than cause a chain lightning
effect (this used to do like only 5 damage so...)
/🆑
## About The Pull Request
As it says on the tin. This is just cleaning up some of the code from
reviews that got missed due to an early merge.
## Why It's Good For The Game
Oops.
No real player facing changes since I doubt anyone has noticed anything
yet. They might during Halloween though so hopefully this is merged
before then.
## About The Pull Request
At a baseline, Mending Touch now burns anyone who is undead or
fundamentally evil.
Pacifists can still heal evil people, but avoid touching the undead with
the healing hand.
Evil people psychically crush empaths, so long as they're not undead.
Evil people can heal other evil people and undead (includeling evil
chaps)
Undead can heal as normal, including other undead, but not evil people
(its not a mutual friendship)
Chaplains incinerate potential targets especially well using mending
touch. Chaplains and spiritualists even shout out their god's name as
they do so. (but only chaps get the extra damage)
Empathic Chaplains are not shaken by identifying evil people. **THEY
JUST SEE A NEW TARGET TO SMITE FOR THE CRUSADE.**
## Why It's Good For The Game
**Consistency:** Undead are negatively impacted by healing effects of a
similar nature. Rather than make a whole new mutation to heal undead,
instead, we apply some different rules to allow undead or evil people
the opportunity to apply and have applied different effects based on
their status.
**Evil people are already arbitrarily shafted by niche aspects of the
game for fun:** It'd be funny if a well meaning medical staff member
tries to use mending touch on an evil guy and they just burst into
flames instead. Why? They took the quirk to screw over empaths and
nothing else.
**Undead are immensely uncommon:** This isn't going to come up much
whatsoever given that undead are almost unseen outside of Halloween.
~~What do you mean that's a few weeks away?~~
**Dumb Bullshit:** Empaths and Evil people are diametrically opposed for
silly reasons. If Empaths still hurt undead, it stands to reason that
evil people heal them out of pure spite. The two sides hurt one another
with the mutation.
**Chaplains smiting people is funny:** Chaplains aren't the main users
for the mutation, its mostly for medical staff, but they damn will seek
it out a lot of the time to augment their existing healing powers. Since
this is a feature about moral self-righteousness, its now especially
funny for chaplains to be either one of the quirk holders primary enemy
if they're on the opposing side.
## Changelog
🆑
add: Mending touch now has additional effects based on whether or not
the target or user is evil, an undead or an empath. Don't use mending
touch on evil people or undead, or they might go up in flames. Though
evil people can get back at empaths specifically and heal udnead as
normal.
add: Chaplains engulf people using mending touch's harmful reactions to
diametrically opposed entities especially well. Because of religious
zeal, of course.
add: Empath chaplains ignore the fear consequences of examining an evil
person. They instead get additional information about what to do to
these people if the need arises.
/🆑
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
## About The Pull Request
Its now a priority -> color assoc list with a pair of helper procs to
wrap lazylist stuff. New priorities should go to
``code/__DEFINES/bodyparts.dm`` as defines as to be seen and not
overridden.
## Why It's Good For The Game
Wasn't a problem until carps came along as before only hulks used this
thing, now we've got clashing.
## Changelog
🆑
fix: Losing hulk after becoming a carp no longer turns you black
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
I randomly came across a `var/list/static` in the code, which does not
actually do what was intended, and thought it was silly. A ctrl+f
revealed that this was a fairly common mistake, so I went and fixed all
the instances of it I could find.
~~Including one in lighting code, which it looked like they were trying
to create a global list to cache generated lighting sheet values for
speed, but it was just a normal list that got created each time
pointlessly. Now those values are actually being cached (using a global
var, because a `static` list was not the right thing to use there in the
first place).~~
Nevermind, it seems that this was in fact being cached even if it
shouldn't have been, because byond. Just rearranged it there seeing as
it works either way.
## Why It's Good For The Game
Code that does what it's supposed to
## Changelog
🆑
fix: fixes a bunch of improper static list declarations
/🆑
## About The Pull Request
Adds the Fundamentally Evil quirk. The quirk does nothing in of itself.
If an Empath examines you, they will be shaken up by the fact that you
are totally evil.
Mindreaders can literally see that you're evil. If they're ALSO evil, it
gives a gives a unique message.
Honorbound chaplains can freely attack you without first declaring you
evil. You are already evil. There is no outward tells for this fact, but
if the chaplain pays attention to the medical records, you might have a
problem on your hands.
You are significantly harmed by holy water and holy explosions. So don't
drink holy water if you can help it.
## Why It's Good For The Game
I just think it'd be funny to have some crew, for whatever reason, be
fully committed to being evil for no reason other than it is funny to
bother empaths.
I want a chaplain to come to the realization that I'm evil and see what
happens.
## Changelog
🆑
add: Fundamentally Evil quirk. You might act normal, but you know deep
down that you totally don't give a shit about anyone but yourself.
Empaths better watch out.
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
## About The Pull Request
This PR significantly enhances how zero-g movement works. Its no longer
locked to one of 8 directions, everything now has inertia and is
affected by weight. This means that throwing a piece of wire will no
longer completely reverse your movement direction, and that being thrown
out of mass driver no longer will slow you down to a halt at some point.
This leads to following gameplay changes:
* Guns now accelerate you. Ballistics have higher acceleration than
lasers, and higher calibers have higher acceleration than smaller ones.
This means that firing full-auto weapons in zero-g will make you drift
and accelerate significantly. While this can be a hilarious way to
travel in space, it makes using them trickier.
* Impacting a wall or an object while moving at high speeds will cause
you to violently crash into it as if you were thrown. Careful when
exploring!
* Jetpacks now have inertia. Changes introduced in #84712 have been
mostly reverted, although speed buff has been reduced to 0.3 instead of
0.5 (although this is compensated by new movement mechanics, so overall
speed should be roughly equal). All MODsuit jetpacks now possess the
speed boost. Advanced MODsuit jets (which has also been added back) and
captain's jetpack instead have higher acceleration and stabilization
power, providing much more precise control over your movement.
* Firing guns while moving on a jetpack will partially negate your
pack's acceleration, slowing you down. Non-advanced jetpacks'
stabilization is not enough to compensate for heavy caliber weaponry as
sniper rifles, shotguns or rocket launchers.
* You no longer instantly decelerate upon sliding along a wall. Instead,
it may take a few tiles if you are moving at extreme speeds. Passing
over lattices still allows you to grab onto them!
As space movement is angle-based instead of dir-based now, its much more
smooth than before due to using new movement logic.
Example of jetpack stabilization in action:
https://github.com/tgstation/tgstation/assets/44720187/6761a4fd-b7de-4523-97ea-38144b8aab41
And, of course, you can do this now.

**This pull request requires extensive gameplay testing before
merging**, as a large amount of numbers have been picked arbitrarily in
an attempt to keep consistency with previous behavior (guns and
normal-sized items applying 1 drift force, which is equal to what
everything applied before this PR). Jetpacks and impacts may also
require adjustments as to not be frustrating to use.
Closes#85165
## Why It's Good For The Game
Zero-G refactor - currently our zero-g movement is rather ugly and can
be uncomfortable to work with. A piece of cable being able to accelerate
you the same as a duffelbag full of items when thrown makes no sense,
and so does instantly changing directions. Inertia-based version is
smoother and more intuitive. This also makes being thrown into space
more of a hazard (possibly opening the door for explosive
decompressions?)
Jetpack inertia and gun changes - this is mostly a consequence of
inertia-based movement. However, zero-g combat being preferred during
modes like warops was an issue due to it negatively affecting everyone
without jetpacks which are in limited supply onboard. This reverts the
mobility changes which severely impacted space exploration, while making
zero-g combat more dangerous and having it require more skill to be a
viable option.
## What's left
- [x] Refactor moth wings to use jetpack code
- [x] Refactor functional wings to use jetpack code
- [x] Locate and fix a recursion runtime that sometimes occurs upon
splattering against a wall
- [x] Add craftable tethers and modify engineering MOD tethers to use
the same system
## Changelog
🆑
add: You can now craft tether anchors, which can be secured with a
wrench and attached to with right click. They won't let you drift into
space and you can adjust tether length/cut it via lmb/rmb/ctrl click on
the wire.
add: MOD tethers now remotely place and connect to tether anchors
instead of throwing you at where they landed.
balance: MOD tethers can now be used in gravity
balance: Jetpacks are now inertia-based.
balance: Guns can accelerate you significantly in zero-g.
balance: All jetpacks now give you equal speed buff, however advanced
MOD ion jets and captain's jetpack have higher acceleration/deceleration
values.
refactor: Refactored zero-g movement to be inertia-based and utilize
angles instead of directions.
/🆑
## About The Pull Request
<details>
- renamed ai folder to announcer
-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer
- separated the ambience folder into ambience and instrumental
-- ambience --
- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it
-- instrumental --
- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)
-- items --
- moved secdeath to hailer
- moved surgery to handling
-- effects --
- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects
-- vehicles --
- moved mecha into vehicles
created mobs folder
-- mobs --
- moved creatures folder into mobs
- moved voice into mobs
renamed creatures to non-humanoids
renamed voice to humanoids
-- non-humanoids--
created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg
-- humanoids --
-- misc --
moved ghostwhisper to misc
moved insane_low_laugh to misc
I give up trying to document this.
</details>
- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc
- [X] mobs
- [X] runtime
- [X] vehicles
- [ ] attributions
## Why It's Good For The Game
This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.
## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
## About The Pull Request
this is a revival of #82635 . i got permission from potato to reopen
this, he did almost all the work. i only just solved the conflicts and
fixed all the bugs that were preventing the original from being merged
(but it should be TMed first)
## Why It's Good For The Game
slightly improves the performance of basic mob AI
## Changelog
🆑
LemonInTheDark
refactor: able_to_run and incapacitated have been refactored to be event
based
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: ZephyrTFA <matthew@tfaluc.com>
## About The Pull Request
Fixes several errors to spelling, grammar, and punctuation.
## Why It's Good For The Game
## Changelog
🆑
spellcheck: fixed a few typos
/🆑
## About The Pull Request
Fixes several errors to spelling, grammar, and punctuation.
## Why It's Good For The Game
## Changelog
🆑
spellcheck: fixed a few typos
/🆑
## About The Pull Request
Fixes#85100
Roundstart monkeys are monkeys before they're monkeys, whoops.
## Changelog
🆑 Melbert
fix: Fixed roundstart monkeys not having monkified
fix: Fixed being "de-monkified" while dead making it difficult to
actually de-monkey you going forward
fix: Fixed genetic scanner showing dead mobs as "transforming"
/🆑
## About The Pull Request
- Being monkified / humanified no longer knocks you down
- Fairly certain this was one of the consequences of the stun refactors
of ages past, using `Paralyze` rather than `Stun`.
- Having monkifiaction cured now gives you the cure text
- Didn't call parent for some reason
- Monkification grant / cure text now has spans
- Self evident
- Being humanified now tells you what species you are rather than you're
"Human"
- Just a small tweak
## Changelog
🆑 Melbert
fix: When Monkified or Humanified, you are no longer knocked down.
fix: When cured of Monkified, you get the cure text now.
fix: The text shown when cured / given Monkification now has color.
fix: Being humanified now tells you what species you become rather than
assuming you are a human.
/🆑
## About The Pull Request
I was investigating a bug with hulk in which using it while damaged
doesn't put you back on full speed
I noticed `TRAIT_IGNOREDAMAGESLOWDOWN` on its own was subtly broken, in
that it did nothing if the user did not call `updatehealth` afterwards
And guess what, most (if not all) uses of the trait did not do this, so
it never applied correctly
So I nuked the trait entirely, made all uses of it use the same thing
morphine uses (`/datum/movespeed_modifier/damage_slowdown`)
And since I was auditing this I saw the ball module was broke, it
removed the immunity but never added it. Quick fix
I also cleaned up some Hulk stuff while I was in the area because I was
in the area. I removed all instances of `check_mutation` and replaced it
with trait checking because it made more sense.
I also also fixed a bug with the simple flying element never removing on
detach because I touched something that uses it for the above change.
## Changelog
🆑 Melbert
fix: Using hulk (and a myriad of similar effects) now properly updates
your movespeed to ignore the damage movespeed penalty
fix: Some things which temporarily make you fly don't make you fly
forever
fix: MODsuit ball module now properly makes you immune to damage
movespeed penalty when in ball form
fix: Adding Hulk via VV dropdown doesn't default to adding the strongest
hulk available (that which is used by the medieval pirates)
/🆑
## About The Pull Request
Adds a subtype of hulk mutation created by mixing it with clumsy. Makes
the owner's skin olive green and forces a funny speech impediment on
them. Essentially revival of #69473 with some more lines

## Why It's Good For The Game
WARBOYZ NEEDA MOAR DAKKA
funny flavor subtype for hulks which makes them sound even more brain
damaged
## Changelog
🆑
add: A new ork mutation which can be acquired by mixing hulk and clumsy.
/🆑
## About The Pull Request
So, this one needs some explanation. First, how does H.A.R.S. work code
wise? Well, it's pretty simple:
7d7a6da735/code/datums/mutations/body.dm (L611-L613)
It removes the victim's brain from their head and then immediately puts
it back into their chest. It also sets that special flag to true. This
is what the docs have to say about that flag:
7d7a6da735/code/modules/surgery/organs/organ_movement.dm (L27)
So basically, it suppresses the side effects of having the organ
removed. This is why H.A.R.S. doesn't kill you instantly despite
removing your brain. So why does still deactivate skillchips, since
that's also a side effect? Well, that's because brain code doesn't
actually take it into account properly:
7d7a6da735/code/modules/mob/living/brain/brain_item.dm (L112-L119)
Instead of treating the special flag as "should we prevent side
effects?" It treats it as "should we make this silent?" So I just took
the obvious route and changed that part.
There was also another bug, where you'd be shown this text upon gaining
or losing H.A.R.S.:
> You feel slightly disoriented. That's normal when you're just a brain.
That obviously shouldn't be happening, so I made H.A.R.S. pass
`movement_flags = NO_ID_TRANSFER` as well.
Fixes#84010
## Why It's Good For The Game
Bugfix. To know why I fixed the bug in this way specifically, see above.
## Changelog
🆑
fix: H.A.R.S. will no longer disable your skillchips or show you text
reserved for total brain removal.
/🆑
## About The Pull Request
Added a ``/datum/component/speechmod`` component which can be used to
perform basic speech modifications. It use either simple replacements or
regex, add a string at the end of any message (at a chance if required)
and convert speech to uppercase. However, a good chunk of speechmods are
far too niche and specific to be put into a speechmod component and thus
have been left alone.
## Why It's Good For The Game
Cuts down on copypasted code, makes making new speechmods easier.
## Changelog
🆑
refactor: Refactored a lot of speech modifiers to use a component
instead of copied over code.
/🆑
## About The Pull Request
This refactors embedding elements to make them use singleton datums
(similarly to armor) instead being bespoke and creating a new element
every time armor values are supposed to be adjusted.
Default values have been removed from defines due to now being declared
in base class itself.
Additionally fixes vending machines and tackling gloves setting
generated shards (which they instantly embed into their victim) embed
properties to null after running the embedding code, despite said shards
having non-null embedding values by default, making them not be able to
embed into anyone else, also potentially breaking the pain/jostling code
if they somehow get updated.
## Why It's Good For The Game
Current embedding system is an unnecessarily complicated mess as bespoke
elements are hard to work with, and creating a new element every time
you change values is hacky at best. This change should make it easier to
read and work with.
## Changelog
🆑
fix: Fixed glass shards generated from falling vending machines or
tackling windows not being able to embed into anyone.
refactor: Refactored embedding code to use datums instead of bespoke
elements and ugly associated lists.
/🆑
## About The Pull Request
fixed MT hurting simplemobs
Fixed the multiplier bug properly (last fix overrode coefficients),
Improved its wound effects, allowing it to transfer severe and critical
wounds if upgraded.
Allowed it to transfer blood between the patient and doctor as well. It
adds a teensy bit of toxin damage if the blood types are incompatible.
Added balloon alerts on various failure states.
Added an inability to use the mutation if your active arm is inorganic.
Improved the code of the mutation overall, improving and updating the
comments.
## Why It's Good For The Game
> Fixed the multiplier bug properly (last fix overrode coefficients),
I forgor to draft it... in my defence it hadn't been approved or been up
for 24 hours so I didn't expect a speedmerg.
> Improved its wound effects, allowing it to transfer severe and
critical wounds if upgraded.
Felt lacking that it couldn't transfer severe wounds, or critical ones
if you went the extra mile.
> Allowed it to transfer blood between the patient and doctor as well.
It adds a teensy bit of toxin damage if the blood types are
incompatible.
Blood is an important part of medbay now, it's wack that I didn't gave
it that before. Also the tox thing is funny.
> Added balloon alerts on various failure states.
Player feedback : GOOD
> Added an inability to use the mutation if your active arm is
inorganic.
How are you gonna transfer wounds to you if you have a robot arm?
## Changelog
🆑
fix: fixed MT hurting simplemobs
fix: Fixed the multiplier bug properly (last fix overrode coefficients),
add: Improved its wound effects, allowing it to transfer severe and
critical wounds if upgraded.
add: Allowed it to transfer blood between the patient and doctor as
well. It adds a teensy bit of toxin damage if the blood types are
incompatible.
imageadd: Added balloon alerts on various failure states.
add: Added an inability to use the mutation if your active arm is
inorganic.
code: Improved the code of the mutation overall, improving and updating
the comments.
/🆑
## About The Pull Request
Fixed adaptations not conflictnig
## Why It's Good For The Game
Haha whoops
## Changelog
🆑
fix: Fixed temp n space adaptations not conflicting
/🆑