* Improves jousting and gives it to more weapons (#76321)
## About The Pull Request
I was reading over components and saw one called jousting, I vividly
remember it being mentioned every so often but I've never seen it
in-game. Turns out the SINGLE case for it is when you are using a spear
on a borg. The code itself was also very over the place, making it a
little confusing to figure out what it did.
I tried cleaning the file up as much as I could, and since I wanted to
see this in-game more often, I made some player-facing changes too:
- You can now joust from any vehicle, not just borgs (Secway, ATV,
scooter, Charger holoparasite)
- Added jousting to the broom, pitchfork, captain's sabre, and energy
sword while active (ONLY esword, NOT desword).
- Added examine text to indicate this feature exists.
Extra notes:
Esword gains half the damage increase and half the knockdown chance than
other ways of jousting
Broom only gets 25% damage increase from jousting, since the broom is
already pretty strong I thought it would be better off as something used
mostly to knockdown.
Spears have to travel a longer distance than other weapons to get their
jousting benefits (since it's supposed to be a ghetto weapon)
Jousting now takes the minimum distance needed into account when
handling knockdown chance & damage dealt, so travelling 5 tiles will no
longer be 100% chance of knockdown if you need a minimum distance of 3
tiles to joust (it will instead be 40%, since you've only traveled 2
tiles in 'jousting' mode).
## Why It's Good For The Game
This is an underused component and I thought it would bring some pretty
cool interactions, especially for Holoparasite & Janitors, as a new way
to use vehicles to your advantage when it's otherwise seen as just a
slowdown.
## Changelog
🆑
balance: Jousting now works on anything you're buckled to, not just
Cyborgs.
balance: Brooms, Pitchforks, the Captain's Sabre, and Energy swords can
now be used for jousting.
balance: Spears need to travel a longer distance to joust now.
balance: Jousting's knockdown and damage now only gets stronger after
you've traveled the minimum tiles needed to joust.
/🆑
* Improves jousting and gives it to more weapons
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Fixes an edge case runtime with the snatcherprod (#76386)
## About The Pull Request
Adds a user check to a line and makes it early return now.
## Why It's Good For The Game
Thrown items don't always have a mob throwing them.
## Changelog
🆑
fix: Fixed snatcherprods potentially giving held objects a one-way
ticket to nullspace if thrown at someone by something that's not a mob.
/🆑
* Fixes an edge case runtime with the snatcherprod
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* New Null Rod Sprites (#76061)
## About The Pull Request
Updates a few Null Rod sprites, and few non null rod sprites, including
the Supermatter sword.

## Why It's Good For The Game
Old sprites give me a headache, so does doing inhands, which I will get
around to, but at least the icon sprites look better.
## Changelog
🆑
image: Updated several Null Rod Graphics. Also updated: the supermatter
sword.
/🆑
* New Null Rod Sprites
---------
Co-authored-by: Mey-Ha-Zah <tomboxallghss@gmail.com>
Co-authored-by: ghost sheep <sheepwiththemask@gmail.com>
* Assistants get a liver trait + Officer's sabre banes against them (#75933)
## About The Pull Request
Assistants get a new liver trait, maintenance metabolism. This trait
only lets them process maintenance drugs, grey bull, and pump-up for 20%
more time and gives them a probably-positive 2 minute moodlet when
ingesting these.
The officer's sabre has gained a small amount of bloodthrist for
assistants!
Fixed liver masters being unable to inspect the liver of scientists.
## Why It's Good For The Game
> Assistants get a new liver trait, maintenance metabolism. This trait
only lets them process maintenance drugs, grey bull, and pump-up for 20%
more time and gives them a probably-positive 2 minute moodlet when
ingesting these.
This trait is pretty much entirely here for the actual
liver-identification of assistants the sabre uses, though I didn't want
to just add an empty trait so I gave it the above effects as pretty damn
harmless effects. I'm sure the maints will dislike even this so I'm open
to anything.
> The officer's sabre has gained a small amount of bloodthirst for
assistants! Or at least their livers.
I find the concept of the sabre having a bane against assistants
amusing, and it wouldn't hurt to give them something that may help
against tiders. As a smidgen of fairness, the detection is tied to the
liver - if they want to take less damage they can have it replaced,
though the captain can also help with that by disemboweling organs. The
liver being used for something that isn't reagents processing might be a
bit controversial, but like I said, I'd rather have that than have it
permanently, intrinsically tied to a job.
> Fixed liver masters being unable to inspect the liver of scientists.
Ballmer metabolism quacks like a duck, traits like a duck, and thus
should be able to be duck inspected by the duck master, since there is
no practical difference between it and other 'official' metabolisms.
## Changelog
🆑
add: Assistants get a new liver trait, maintenance metabolism. This
trait only lets them process maintenance drugs, grey bull, and pump-up
for 20% more time and gives them a probably-positive 2 minute moodlet
when ingesting these.
add: The officer's sabre has gained a small amount of bloodthrist for
assistants!
fix: Fixed liver masters being unable to inspect the liver of
scientists.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Assistants get a liver trait + Officer's sabre banes against them
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Stops shields getting broken by pillows and disablers. (#75759)
## About The Pull Request
See the title. Doing so by adding a new arg for damage type to
`check_shields()` and `hit_reaction()`. The other way would had involved
a couple istype checks for item or projectile damage type, but this is a
longer term solution and can tackle more than just that.
## Why It's Good For The Game
Fixes#74876.
## Changelog
🆑
fix: Stops shields getting broken by pillows and disablers.
/🆑
* Stops shields getting broken by pillows and disablers.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Abductors can now use batons in general. (not just their specialized baton) (#75561)
## About The Pull Request
Abductors can now use any baton instead of just their special baton.
## Why It's Good For The Game
Abductors are a bit fucked if they lose their baton and are unable to
buy one from their shop. Sure they can just use flashes or maint-fu but
those methods are hard and or unreliable. (if they manage to lose their
baton, they probably aren't that robust anyways). This PR gives more
leeway if you fuck up as an abductor.
## Changelog
🆑
balance: The mothership which abductors came from has worked very hard
to train their field agents how to use batons from their specimen's
habitat
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Abductors can now use batons in general. (not just their specialized baton)
---------
Co-authored-by: Singul0 <127663818+Singul0@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
* Implanted foreign bodyparts will resist being removed on species change (#74701)
## About The Pull Request
Title.
Also, to make bodypart code slightly nicer, I retooled some variables to
be part of a new bitfield called bodypart_flags.
## Why It's Good For The Game
We've been trying to move away from the species datum for limb stuff
precisely because of funny shenanigans like this, no?
## Changelog
🆑
refactor: Implanted foreign limbs will no longer be wiped by species
change.
/🆑
* Implanted foreign bodyparts will resist being removed on species change
* fex
---------
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Caps contractor baton stutter to 40s (#74635)
## About The Pull Request
title. mostly relevant for downstreams. still kinda funny to think about
## Why It's Good For The Game
no man should be banished to the stutter dimension for 40 more seconds
after being batonged. also i feel like this is more of a tweak if
anything but i don't see a tweak option so balance it is?
## Changelog
🆑
fix: The contractor baton now only gives you up to 40 seconds of
stuttering, instead of making you stutter for 40 seconds more after
every hit.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* Caps contractor baton stutter to 40s
---------
Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* Replaces internal_organs with organs
* Makes all of the necessary internal_organs -> organs in our files to compile
And it seems to work too!
---------
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Adds the Snatcherprod. It steals stuff from peoples hands and puts it into yours! (#73746)
## About The Pull Request
Adds the Snatcherprod, the telecrystal version of the teleprod. It
yoinks an item out of the victim's hand, and puts it into yours. Or on
the ground, if your hands are full.
You make it like you would a teleprod, but using a telecrystal instead.
## Why It's Good For The Game
It was a funny joke I observed. Also I'm deeply sleep deprived and so my
better judgement eludes me during these capricious moments.
## Changelog
🆑
add: Adds the Snatcherprod. Like a teleprod, but it steals stuff from
peoples hands instead. Made using a telecrystal, rather than a bluespace
crystal.
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Adds the Snatcherprod. It steals stuff from peoples hands and puts it into yours!
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Fixes some invisible inhands from the transforming component (#73807)
## About The Pull Request
The original issue caused by #70037
Esword issue caused by #73716
Originally the transforming component did not override the inhand icon
state of the the item on its own (instead putting the onus on the item
itself if they wanted unique behavior). It was changed to always update
inhand icon state, most of which don't have one
I don't really like this fix, it should be explicit "I want inhand to
change" and not default, but this will work for now
Also the PR that fixed the Jaws issue didn't actually set the var they
created
Fixes#73805Fixes#73711 (Actually)
## Why It's Good For The Game
Invisible sword bad
## Changelog
🆑 Melbert
fix: Fixed a eswords, some tools, and some other misc. items from being
invisible while extended / active
fix: Teleshields and other misc items not extending in hand when active
fix: Switchblades click on extend again
fix: Pendrivers click on extend
/🆑
* Fixes some invisible inhands from the transforming component
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Stunbatons can now only be used during Red Alerts (#73492)
## About The Pull Request
This prevents stunbatons being turned on to full stun mode if the
station is not in a red alert emergency.
## Why It's Good For The Game
The decision to limit the use of stunbatons in TGStation to red alert
emergencies is due to the general degradation of the melee combat design
space in the game. The stunbaton's ability to stun and knock down
opponents with ease has made it the go-to weapon for many players,
leading to a lack of diversity in melee combat strategies.
This over-reliance on stunbatons has made other melee weapons, such as
knives or clubs, obsolete in many situations. This not only limits
player choice but also reduces the overall challenge and fun of melee
combat in the game.
By restricting the use of stunbatons to red alert emergencies, players
are encouraged to explore other melee weapons and develop new
strategies, making the game more engaging and challenging. It also
ensures that the use of stunbatons is reserved for critical situations,
making combat encounters more meaningful and immersive.
## Changelog
🆑 oranges
add: Stunbatons now require a red alert to activate stun mode
/🆑
* Stunbatons can now only be used during Red Alerts
---------
Co-authored-by: oranges <email@oranges.net.nz>
Implements functionality for variable weapon attack and secondary weapon attack speeds. (#72959)
## About The Pull Request
The click cooldown after attacking with a weapon can now be controlled
with a var. A var can also be set for secondary attack cooldown, if
unset it is the same as the weapon's normal attack speed.
The two weapons who already had hardcoded mechanics to achieve this
effect (see: The Stinger, Hyper Frequency Blade) have been converted to
this system.
## Why It's Good For The Game
Future varying of weapon qualities and admin shenanigans.
## Changelog
🆑
code: Greater support for variability in weapon attack speed
admin: Admins are now able to grief you by hitting you with a toolbox 10
times in one second.
/🆑
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
* Makes baton resistance trait actually work against security stunbatons (#72645)
## About The Pull Request
I forgot in https://github.com/tgstation/tgstation/pull/68418 to make it
also work against security batons, this PR fixes that. Security batons
now will not knockdown you if you have baton resistance trait.
## Why It's Good For The Game
Baton resistance is useless against security batons because knockdown,
even if it is short is still a guaranteed disarm, that can leave you
without your cool nukie desword and make you die.
## Changelog
🆑
fix: Fixes security stunbatons knockdowning you even if you have baton
resistance trait
/🆑
* Makes baton resistance trait actually work against security stunbatons
Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
* [no gbp] removes all duplicate armor datums (#72354)
closes#72348
Title
My bad
Heres the script I used this time if you want to
```cs
var baseDir = Environment.CurrentDirectory;
var allFiles = Directory.EnumerateFiles($@"{baseDir}\code", "*.dm", SearchOption.AllDirectories).ToList();
var known = new Dictionary<string, List<KeyValuePair<string, int>>>();
foreach (var file in allFiles)
{
var fileLines = File.ReadAllLines(file);
for (var i = 0; i < fileLines.Length; i++)
{
var line = fileLines[i];
if (line.StartsWith("/datum/armor/"))
{
var armorName = line.Replace("/datum/armor/", "").Trim();
if (!known.ContainsKey(armorName))
known[armorName] = new List<KeyValuePair<string, int>>();
var knownList = known[armorName];
knownList.Add(new KeyValuePair<string, int>(file, i));
}
}
}
Console.WriteLine($"There are {known.Sum(d => d.Value.Count)} duplicate armor datums.");
var duplicates = new Dictionary<string, List<int>>();
foreach (var (_, entries) in known)
{
var actuals = entries.Skip(1).ToList();
foreach (var actual in actuals)
{
if (!duplicates.ContainsKey(actual.Key))
duplicates[actual.Key] = new List<int>();
duplicates[actual.Key].Add(actual.Value);
}
}
Console.WriteLine($"There are {duplicates.Count} files to update.");
foreach (var (file, idxes) in duplicates)
{
var fileContents = File.ReadAllLines(file).ToList();
foreach (var idx in idxes.OrderByDescending(i => i))
{
string line;
do
{
line = fileContents[idx];
fileContents.RemoveAt(idx);
}
while (!String.IsNullOrWhiteSpace(line));
}
File.WriteAllLines(file, fileContents);
}
```
* modular
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
* Crafting/Cooking menu update
* Yeeted away all of the merge conflicts, time to fix the code
* Okay, now it compiles, and after testing, it seems to work just fine
* Actually, early addition of an upstream fix, so those that don't have hunger can still open the cooking menu
* Fixes the units tests by removing the extra comma in the Stuffed Muli Pod recipe
Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* 3/4ths-ify some wall mount sprites (by Kryson and Viro) (#71788)
posters are now 24px tall, new sprites for nanomeds, emergency safes, and ticket machines
(by Kryson)
* 3/4ths-ify some wall mount sprites (by Kryson and Viro)
* DON'T INCLUDE FUCKING OVERRIDES IF THEY DON'T DO ANYTHING HHHNGH MY CI IS FAILING CODERS
* FUCK
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
abductors can now use their batons (#71341)
No one thought of this during the PR, so what's up
Abductors have chunky fingers for some reason, further proving that
species is a bad idea and the only playable mob should be pun pun.
Adds a 'chunky finger usable' var to let Abductor batons allow people
with chunky fingers to use it.
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* You can no longer use batons if you have chunky fingers. (#71285)
You can no longer use batons if you have chunky fingers, which means insulated gloves & hulks.
* You can no longer use batons if you have chunky fingers.
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
* Bed war: add pillow weaponry and pillowman juggernaut suit (#69977)
* Add pillows you can hit someone you hate with it until they collaspe from exhaustion. The pillow can be made with cloth
* Adds a Pillow juggernaut suit, this suit allows you to automatically hit people with a pillow when you bump into them. It can be made from pillows and duct tape via the crafting menu
* Adds a bumpattack component, this can be added to any item and allows the user to auto attack on bump with a target, used for the juggernaut suit.
* Adds a Pillow hat an alternative to the paperbag hat, also made from duct tape and pillow. Very fashionable!
add: Clown/mime pillows
* The beds in dorm now come properly equipped with a pillow
* Bed war: add pillow weaponry and pillowman juggernaut suit
* repathed SR pillow to /obj/item/fancy_pillow
Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Shadowpeople's healing is from their brain, splits up surgery.dmi (#69543)
About The Pull Request
Shadowpeople
brain now holds their healing properties.
while possible to extract the brain and put them in another species, the burn-in-light downside really makes it a lot more worth it to just stay a shadowperson and enjoy their other benefits than to swap.
Now use burning eyes from nightmares instead of an unsprited nightvision granting eyeball.
surgery.dmi split up
surgery_ui.dmi holds zone selection ui things for research
surgery_tools.dmi holds surgical tools
/organs folder holds organs.dmi, and species specific organ files for flies and shadowpeople
flies don't put in their random organs because of dmi memes, all their UNIQUE organs will be in the .dmi
Why It's Good For The Game
moving behavior onto the organ moves us closer to species as a blueprint, not species as something that magically grants immutable bonuses.
surgery.dmi is poorly described, holds many different things, and conflicts often because of it.
Changelog
cl
add: Shadowpeople now heal from their brains! Their brain-tumor-thingy!
code: split up surgery.dmi
/cl
* Shadowpeople's healing is from their brain, splits up surgery.dmi
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Replaces GetComponent in Mining items with Signalers (#68575)
* Replaces many instances of GetComponents in mining items with signals and better uses overall of Components, in drills and the GPS handcuffs.
* To do this, also added 3 new signals to mechs when you are adding/removing mech equipment onto one.
* Replaces GetComponent in Mining items with Signalers
Co-authored-by: Salex08 <33989683+Salex08@users.noreply.github.com>