## About The Pull Request
When the surplus energy sword is inactive you can put it into your belt
slot.
There is a worn sprite for it now as well to accommodate this, shown in
the video below as well as the active check.
https://github.com/user-attachments/assets/59c2e404-b6d7-4125-a207-582697da351c
## Why It's Good For The Game
It's a expensive and powerful black market item, it's cool to be able to
show it off without having to wave it around in people's faces. Belt
slot is valuable real estate already; i don't see any issues with
letting it hold a tiny item, and you can't leave it active while on your
belt.
## Changelog
🆑
qol: you can put the surplus esword onto your belt
image: updated belt.dmi with worn sprites for the surplus esword
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Buffs baseball bats to have equivalent damage to fire extinguishers and
fit on the back slot like a spear
## Why It's Good For The Game
Baseball bats have fallen behind recently due to the buffs to improvised
weapons, they take effort to create and are less powerful than other
options, which I think is a darn shame.
## Changelog
<!--Baseball bats do more damage and fit on the back slot now. -->
🆑
balance: Baseball bats do more damage and fit on the back slot now.
/🆑
## About The Pull Request
So I saw someone was adding a limping quirk in
https://github.com/tgstation/tgstation/pull/96200 and I had tried to do
the same back in https://github.com/tgstation/tgstation/pull/71470 a few
years ago. The codebase has evolved enough to support this behavior that
was not present initially during my first attempt. One of the big
features of my old PR was to add cane-like behavior to a bunch of other
pole objects.
This PR introduces a new modular `/datum/component/walking_aid`
component, moving canes/crutches away from hardcoded object behavior.
This component is now attached to the following items:
- Brooms
- Mops
- Staves
- Scythes
- Spears
- Canes
- Crutches
There are also some notable changes I made to how things work, detailed
below:
- Walking aid objects must be held on the same side as the affected leg
(if your right leg is missing, you need to be holding crutches on your
right arm)
- Objects lose their ability as a walking aid while being wielded with
two hands (ex. spears)
- Limping/Limbless are now both affected by a walking aid, where before
only crutches helped assist limbless mobs
- "Walking Aid" examine tag when the walking aid object is examined
All walking aids (except crutches) reduce limbless slowdown by 40%, and
completely ignore any limping penalties. Crutches reduce the limbless
slowdown by 60% and are much faster.
## Why It's Good For The Game
1. Mah Immersion
2. More modular code
3. Examine tags are peak
4. Assistants can now justify carrying spears as medical equipment
5. Cane/Poles should help with limblessness, but not as helpful as
crutches
While I wanted pole items to offer mobility support, they needed to
remain less effective than dedicated medical crutches. During testing, I
found that a 40% reduction is the point where the benefit becomes
noticeable.
## Changelog
🆑
add: Pole objects like mops, brooms, staves, scythes, and spears can now
be held in a hand to act as walking aids, mitigating limping from
fractures and reducing missing-leg slowdowns.
balance: Walking aids must be held in the hand on the same side as the
injured or missing leg to provide support, and lose their effectiveness
if actively wielded with two hands.
balance: Objects with the walking aid reduce limbless slowdown by 40%,
while dedicated medical crutches reduce it by 60%.
refactor: Refactor cane and crutch code logic into a modular walking aid
component
/🆑
## About The Pull Request
Moves the deep lore proc to the parent for guns.
Adds deep lore to some of the pistols.
Rewrites the deep lore for the stun baton and contractor baton.
Repaths the Liberator pistol to a more sensible path name.
Rechambers the Regal Condor to .45, because I was today years old when I
learned that the Tiger Cooperative are _[radical Christian
extremists](https://github.com/tgstation/common_core/blob/cf1edb9f770e7d3c38ca894e951ab5ac50395a47/Governments%20and%20Organisations/Corporations/The%20Syndicate/The%20Syndicate.md?plain=1#L73)_.
I just thought they were nutso about changelings, I didn't know they
also think they're God's ubermensch. Anyway, that freak who started the
cult would chamber their relic pistol in .45 and you know it.
## Why It's Good For The Game
I love dumping large amounts of text into the code base that will
rarely, if ever, be noticed by the player. It's also the means by which
I can summon forth my good friend Hatterhat to contribute to this
codebase. Like a carrot on a stick.
If I post enough, one day he'll PR flashforge mines like he promised me.
## About The Pull Request
Main changes
- `handle_mutations` is gone, DNA Injectors are now managed via a status
effect
- `handle_diseases` is gone, disease stages are just handled via life
signal
- `handle_bodyparts` is gone, it was unused and in the future any
implementations should use a life signal
- `spec_life` is gone, the main content of it is now in `human/Life`,
most children implementations now use life signal, zombie tongues now
handle zombie groans
- Life signal was split in two (pre and active)
Other changes
- DNA injector code was cleaned up considerably
- HARS now alerts admins when you inject someone else with it like
Monkey
- `COPY_DNA_SE` is no longer mistakenly unused (meaning stuff like
transformation sting no longer copies "active mutations")
## Why It's Good For The Game
Across the course of a full round we spend the same amount of time doing
literally nothing in life as we spend on handling human breathing.
Now in the context of a full round this is 8 seconds. Which in the grand
scheme of things, not a whole lot, but if we can get a tiny performance
gain from... not doing literally nothing (especially when we can do
these things cleaner with signals) that's a win in my book
## Changelog
🆑 Melbert
refactor: Refactored dna injectors (both the ones that change appearance
and activate mutations), report any oddities with them like failing to
revert your appearance or mutations not applying correctly
code: Ever so slightly changed how diseases tick, report any oddities
code: Ever so slightly changed how some species mechanics tick, like
golems and slimes, report any oddities
code: The code behind printing appearance modifying dna injectors from
genetics has changed, report any oddities
code: Some backend transformation sting code changed slightly, report
any oddities
code: Zombie "idle" groaning is now tied to the tongue rather than the
species itself
admin: Force-injecting someone with HARS give an admin alert, the same
as force-injecting someone with Monkey
fix: Several methods of copying DNA (including transformation sting)
mistakenly copied "active mutations", this has been fixed
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
## About The Pull Request
- The `prosthetic replacement` surgical operation has been reverted to
be closer to how it used to work: The operation is done targeting the
limb that's missing
The change was made out of necessity, as surgical state was tied to
limbs - you had to operate on the chest to re-attach limbs because there
was no limb to operate on.
To circumvent that, I have done the unthinkable of adding stumps when
you are dismembered.
- Missing limbs are now represented as an invisible, un-removable,
un-interactable limb.
Making this change was not as difficult as originally anticipated, and
(at least surface level) seems to have broken very little.
Surprisingly little had to change to make this work.
Direct accesses to `mob.bodyparts` was changed to `mob.get_bodyparts()`
with an optional `include_stumps` argument.
Similarly, `get_bodypart()` had an optional `include_stumps` added.
This means we ultimately barely needed to change anything, and in fact,
some loops/checks were able to be streamlined.
## Why It's Good For The Game
- As mentioned, this change was out of necessity and was easily the
least intuitive part of the broader changes. Reverting it back to how it
used to work should make it far easier for people to pick up on, and
means we can cut out a bunch of bespoke instruction sets that I had to
include.
- The addition of stumps also adds a ton of future potential - code wise
it allows for stuff like better damage tracking (we can transfer damage
between limb <-> stump rather than limb <-> chest), and feature we can
do "fun" stuff like have stumps bleed on dismemberment that you can
bandage.
## Changelog
🆑 Melbert
del: "Add prosthetic limb" surgical operation has been reverted to be a
bit closer to how it used to work - you operate on the missing limb /
limb stump, rather than on the chest.
refactor: Missing limbs are now represented as limb stumps. In practice
this should change nothing (for now), as no features were rewritten to
make use of these besides surgery. Please report any oddities with
missing limbs, however.
/🆑
## About The Pull Request
Non-standard null-rods (the skateboard, bow, revolver, carpsie plush,
and eswords) did not receive all the common characteristics of regular
null rods in #93394. In particular, they were not given the
`UNIQUE_RENAME` obj flag, and they did not receive the ability to track
how many cultists they've crit/killed and be turned into cult weapons
when sacrificed. This PR corrects that by extracting the cult kill
tracking behavior to a component, while doing the following refactors to
ensure complete compatibility:
- Skateboard items now move themselves into the skateboard vehicle they
spawn on use, instead of deleting themselves. This was necessary for the
holy board to keep its custom name/desc and cultist kill count.
- Guns (which the bow technically is) will track cultists killed/crit
with bullets fired from them by a mob with a holy role.
- A signal can now be used for an item to provide an arbitrary response
when an offer rune underneath it is activated.
## Why It's Good For The Game
I just wanted the holy eswords to be renameable for chaplains to provide
plausible deniability for the possession of actual eswords, but after I
discovered this consistency issue, and felt the need to fix it.
## Changelog
🆑
fix: The holy energy swords and the carp-sie plushie can once again be
renamed
fix: The holy energy swords and the carp-sie plushie can once again be
sacrificed by cultists to spawn different weapons based on how many
unique cultists the chaplain has crit or killed with them
qol: The holy skateboard can be renamed like other null rod variants can
fix: Unusual null rod variants like the holy skateboard and bow can now
be sacrificed by cultists to spawn different weapons based on how many
unique cultists the chaplain has crit or killed with them. The bow and
the burdened chaplain's revolver, in particular, also count cultists
crit or killed by arrows/bullets fired from them by the chaplain.
/🆑
## About The Pull Request
This PR refactors ``effect_system``s to be a bit easier to use by
getting rid of ``set_up``, allowing ``attach()`` to be chained into
``start()`` and refactoring most direct system usages in our code to use
helper procs.
``set_up`` was unnecessary and only existed to allow ``New``'s behavior
to be fully overriden, which is not required if we split
sparks/lightning/steam into a new ``/datum/effect_system/basic`` subtype
which houses the effect spreading behavior. This allows us to roll all
logic from ``set_up`` into ``New`` and cut down on code complexity.
Chaining setup as ``system.attach(src).start()`` also helps a bit in
case no helper method exists
I've added ``do_chem_smoke`` and ``do_foam`` helpers, which respectively
allow chemical smoke or foam to be spawned easily without having to
manually create effect datums and reagent holders.
Also turns out we've had some nonfunctional effect systems which either
never set themselves up, or never started, so I fixed those while I was
at it (mostly by moving them to aforementioned helper procs)
## Why It's Good For The Game
Cleaner code, makes it significantly easier for users to work with. Also
most of our effect system usage was copypasta which was passing booleans
as numbers, while perfectly fine helper procs existed in our code.
## Changelog
🆑
refactor: Refactored sparks, foam, smoke, and other miscellaneous effect
systems.
refactor: Vapes now have consistent rigging with cigs using the new
system.
fix: Fixed some effects never working.
/🆑
## About The Pull Request
The actual icon state had the incorrect name
It also changed the worn icon state when it shouldn't
## Changelog
🆑 Melbert
fix: Fix alt stunsword skin
/🆑
## About The Pull Request
Fixes#94778
There are a bunch of places where we dismember a limb (or head) and then
do something with it assuming that we actually dismembered it, but that
isn't actually true.
Many of these places then move your not-actually-dismembered head
somewhere else. If you have an unremovable limb (such as if you have
TRAIT_NODISMEMBER) this means that it actually gets removed anyway
because it's physically moved somewhere else.
In all of these cases, if we failed to dismember the limb we should just
leave it alone.
I left anything where after dismembering the limb it immediately deletes
it in though because those are generally supposed to be invariably
fatal.
## Changelog
🆑
fix: Chainsaws can't behead people with unremovable heads.
fix: You can only put your own head on a spear or into a box if it is
possible to remove your head.
fix: Heretic rifts can only remove your arms if your arms can be
removed.
fix: Paperwork can only cut off your head if your head can be cut off.
fix: Smite being reflected can only blow off your arm if your arm can be
removed.
/🆑
## About The Pull Request
Hello hello the evil folder mover goat is back, i will destroy years
worth of muscle memory.
Items is an folder alot of stuff that really didn't get a spefific
location.
Items/Weaponry Contains
Shields.dm
Items/Weaponry/Melee Contains (Most of the extra dm files come from me
splitting misc/weaponry.dm into its own categories killing offf
weaponry.dm in its whole)
baseball_bat.dm, baton.dm, chainofcommand.dm, chainsaw.dm, claymore.dm,
dualsaber.dm, energy.dm
fireaxe.dm, high_frequency_blade.dm, his_grace.dm, katana.dm, knives.dm,
misc.dm, powerfist.dm, sabre.dm
soulscythe.dm, spear.dm, supermatter_sword.dm.
Items/weaponry/ranged Contains
flamethrower.dm, pnuematic_cannon.dm, throwing_star.dm
items/tools Contains
control_wand.dm, extinguisher.dm, inducer.dm, spess_knife.dm,
theft_tools.dm
items/tools/engineering Contains
airlock_painter.dm, decal_painter.dm, paintable_decals.dm, crowbar.dm,
screwdriver.dm, weldingtool.dm
wirebbrush.dm, wirecutters.dm, wrench.dm
items/tools/janitorial Contains
broom.dm, janitor_key.dm
items/tools/medical Contains
bodybag.dm, cane.dm, defib.dm, reflex_hammer.dm
boxcutter.dm is merged into knives.dm
Kitchen.dm renamed into kitchen utensils and moved into food and drinks
module
surgery_tray.dm moved into surgery module
banhammer/extendo hand moved from weaponry into toys.dm
balloon mallet moved into clown_items.dm
ectoplasm moved from weaponry.dm into soulstone.dm (since thats the
resulting residue when a shade dies, and not really a weapon)
## Why It's Good For The Game
So things are way easier to navigate
## Changelog