* Plonts takke2 (#79484)
## About The Pull Request
Okay; Take two at this ~~because I totally didn't delete my sprites and
set myself back when all I had to do was fix a few merge issues and
instead decided to entangle myself in adding another plant.~~
This PR aims to add THREE new plants; Pepper-Corn, Saltcane and
Butterbeans.
Peppercorn can be ground for black pepper.
Saltcane can be ground for salt or dried into a seaweed sheet
replacement.
Butterbeans can be pressed into a small slice of butter, or ground for a
small amount of milk/cream and fermented for yoghurt.
I have also added fermentation of Soybeans to produce soysauce... since
that's literally how authentic soysauce is made.
## Why It's Good For The Game
I personally feel this will be good for the game as it means the kitchen
can rely on their botanists to produce higher quality ingredients and
don't have to harass other places or hemorraghe money to make good food
for the crew. Easier access to condiments allows for easier production
of a varied amount of food.
* Plonts takke2
---------
Co-authored-by: xXPawnStarrXx <53197594+xXPawnStarrXx@users.noreply.github.com>
* Adds engi improvised weapon - rebar crossbow + Engi Exclusive Tot Shop Variant (#78777)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request

Engi now has access to a Half Life 2 Inspired rebar crossbow! Made of
rods, wire, and an inducer, it shoots sharpened iron rods at a high
velocity. High damage and good embed chance, but requires you to reload
every shot which requires you to stand still for three seconds to pull
the string back. You can also Use a wrench on it to force it to store
more rods (read: more than one), but risks it exploding and shooting you
instead.
The syndicate variant, avaliable to traitor engis, can fire three rounds
before needing a reload, and features a scope and better armor piercing
ammpo, but costs 10TC. I see it as a sidegrade to the revolver - quieter
and has much more widespread ammuniton, but holds less ammo and doesnt
have the same burst stopping power. And, to those concerned about the
balance of a non-traitor with this item - the AP ammo can only be made
by the traitor who bought it, and anyone else has to use normal ammo.
GUN STAT JUNK
Normal one has 60% embed chance and does 40 damage (against unarmored
targetd), but requires you to wait at least 3 seconds not moving to pull
the string back. Good alpha strike but not sustainable in a long fight.
Its akin to a pipegun.
Lacks any AP qualities besides piercing a jumpsuit, because any wound
chance it has is due to a bare skin bonus. Generally not a great weapon
to fight sec with.
Syndie version is generally the above but better. Takes less to pull the
string back, slightly higher damage, better fire rate, etc. Doesnt fare
well against any armor thats equivalent to sec gear or better due to
most having low (relatively) AP and wound chance, but good bare wound
bonus.
STATS TLDR: Its good against unarmored chumps and greyshirts but anyone
in armor that protects against bullets will kick your teeth in.
Also, Ammo is crafted from an iron rod. I wanted to have it just fire
rods as is, but theyre stacked items which you cant define projectiles
or ammo from.
## Why It's Good For The Game
I've always felt engi, for as big of a department as it is, is lacking
in the "fun weapons" area. Sci has mechs and xenobio, med has chem nades
and syringe guns, and cargo has anything the QM will buy - but other
than the flamer and shocked doors, engi doesnt have much. Thats why I
made this pr. it was originally just a traitor item, as they lacked many
traitor items in their shop, but I felt like a worse, bootleg version
would suit them.
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
add: Enginenering rebar crossbows + tot kit
add: Added a bunch of ammos and crafting junk to make the ammo exist
image: added icond for all the above
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Adds engi improvised weapon - rebar crossbow + Engi Exclusive Tot Shop Variant
---------
Co-authored-by: KingkumaArt <69398298+KingkumaArt@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Balances the stormtrooper shotgun mob (#79578)
## About The Pull Request
A few months ago during the conversion to a Basic mob the shotgun range
was changed to 1 instead of staying at what it was prior, meaning the
mob itself would get in your face and unload instantly.
## Why It's Good For The Game
Fighting an npc mob that is as fast or faster than you, with 250 health
and basically 1 shots you isnt very fun, this returns their range some
even though they dont really act like they did prior still. I thought
about making it match the SMG range as well? But 3 leaves it as below

## Changelog
:cl:zergspower
balance: NPC Syndicate Shotgunners range requirement returned
/🆑
* Balances the stormtrooper shotgun mob
---------
Co-authored-by: Zergspower <Griffinj88@yahoo.com>
* Increases the time it takes for venus human traps to die off vines from 5 to 8 seconds (#79507)
## About The Pull Request
Exactly what it says on the tin, 20 damage -> 12.5 damage.
## Why It's Good For The Game
At first glance, 20 damage per second seems pretty harsh. but
reasonable, considering your job is to protect the kudzu. but a 5 second
time limit sounds _extremely_ unfairly punishing on multi-z maps where
you can fall off your kudzu, especially considering the kudzu can block
your view of open spaces.
I figured 12.5 damage per second would work since it adds up to a flat 8
seconds until you reach 100, and it should give the player a few more
precious to process how fast they're dying, since its easy to
underestimate how fast 5 seconds goes by in the heat of combat.
## Changelog
🆑
balance: Venus human traps now take 12.5 damage per second instead of 20
while off kudzu.
/🆑
* Increases the time it takes for venus human traps to die off vines from 5 to 8 seconds
---------
Co-authored-by: Toastgoats <63932673+Toastgoats@users.noreply.github.com>
* [NO GBP] Material market buy buttons greys out correctly (#79574)
## About The Pull Request
The buy buttons in the material market UI now takes into consideration
the value of a crate (200 cr) when computing final price and thus
prevents you from placing an order that would exceed the available
budget.
Also, since private orders have a multiplier of 1.1x that too is taken
into account so overall you should not be able to place an order that
exceeds the available budget in the UI.
Additional checks applied in the back end as well.
## Changelog
🆑
fix: Material market buy buttons greys out correctly and thus prevent
you from placing orders that exceeds the available budget.
/🆑
* [NO GBP] Material market buy buttons greys out correctly
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Adds wibbles to certain anomalous entities (#79549)
## About The Pull Request
Adds wibble animation to portals, some anomalies, and bluespace rifts.
https://github.com/tgstation/tgstation/assets/51863163/9355dc53-590e-4558-82a3-15145829ce16
## Why It's Good For The Game
It looks kinda cool.
Helps cement these as anomalous, wacky things that don't necessarily fit
in our plane of existence.
## Changelog
🆑 Melbert
add: Anomalies, portals, and bluespace rifts will now wibble a bit.
/🆑
* Adds wibbles to certain anomalous entities
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Hey what if I made Sleeping Carp better at nonlethal takedowns and also deflect with combat mode instead of throw mode (but cost more) (#79517)
## About The Pull Request
It's been a hot minute hasn't it?
When I initially reworked Sleeping Carp, we didn't have combat mode. Now
that we do, and that Sleeping Carp has substantially less defensive
power to justify having to make a choice between deflection and
attacking, it's probably about time we updated this aspect back to what
it was before my rework. Sorta.
Now, we can have all the deniability of the previous method, while also
letting you reliably protect yourself from ranged attacks at all times
while it matters. Because of this, I increased the price up to 17 TC
because of this change just to be on the safe side. The higher uptime of
projectile immunity while also being able to attack during that time
makes this a lot stronger overall.
Secondly, Sleeping Carp presently just isn't as good as a good ol'
baton. It takes a lot more hits to accomplish the same task that a baton
can. Many people feel like they can't even reasonably fight anyone for
fear of the baton, or they would rather use a baton and kill someone at
their leisure. So we've updated some of the moves in order to facilitate
Sleeping Carp as a substantial contender for 1v1 fighting, and lessen
the need for a baton by adding a lot more Stamina damage overall to the
various attacks;
**Keelhaul**: Now a Shove Shove combo. Does literally zero lethal
damage, but now temporarily blinds and dizzies the target as well as its
previous effects. The amount of lethal damage it did was...extremely
small, so this isn't a particularly big loss.
**Grabs and Shoves**: Deal some amount of stamina damage (20). You need
to be in combat mode in order to perform these special attacks (more
deniability). Grabbing someone while they have 80 Stamina damage or more
will cause them to fall unconscious. Yes, I really did just want to add
a Vulcan Nerve Pinch, what do you want from me?
That's it actually. Oh, I guess they are heavy sleepers now too. Because
its funny.
## Why It's Good For The Game
I often get told (read: thrown various insults and slurs at me while
mentioning this as the justification) that Sleeping Carp is not very
strong anymore since it lost all that invisible armor I added way back +
I removed the stuns in my initial rework. This made some people upset (I
think at least one person wished for my death).
So, having given it at least 2 years, I wanted to recapture parts of
what made the older Sleeping Carp (before my rework) strong, some of the
benefits of the new version, and introduce a brand new aspect; nonlethal
takedowns. This makes it beneficial for pacifists, as well as for
kidnapping.
This should not meaningfully make Sleeping Carp any stronger against the
things that typically ruin its day. I suspect in a straight joust with a
baton, Sleeping Carp will still struggle. But against what should be its
strong points (lone targets and ranged weapons), it will be strong once
again rather than clumsily unable to do very much at all.
## Changelog
🆑
balance: Harnessing Shoreline Quay (bluespace energy, probably), a
mystical energy (total bullshit) that permeates the Astral Waterways
(bluespace quantum dimensions, probably), Sleeping Carp users can now
once against deflect projectiles with their bare hands when focused in
on battle (in combat mode).
balance: The Keelhaul technique is now nonlethal (a philosophical
acknowledgement of the familial bond of sleep and death), but causes the
target to become temporarily blind and dizzy along with its previous
effects.
balance: Sleeping carp users, while in combat mode, deal Stamina damage
with their grabs and shoves. If the target of their grab has enough
Stamina damage (80), they are knocked unconscious from a well placed
nerve pinch.
balance: Sleeping carp users find it very hard to wake up once they fall
asleep....
/🆑
* Hey what if I made Sleeping Carp better at nonlethal takedowns and also deflect with combat mode instead of throw mode (but cost more)
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* sets the leaper move and pull forces to strong (#79557)
## About The Pull Request
i forgot to set these in my last pr
## Why It's Good For The Game
they are large heavy monsters they shouldnt be able to be pulled so
easily
## Changelog
🆑
balance: sets the leaper move and pull forces to strong
/🆑
* sets the leaper move and pull forces to strong
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* Fix nuclear operative induction implants (#79554)
## About The Pull Request
Fixes#79547#78597 broke induction implants by replacing the "has antag datum" check
with a "does not have a fake antag datum" check which passes on a null
case. I added an `isnull()` check to cover this.
The introduced `antag_flags` var was by default set to
`FLAG_FAKE_ANTAG`, presumably in error as the only antag datums to
override this are ERT and Valentines and they just set it to
`FLAG_FAKE_ANTAG` anyways. This also means the induction implants ONLY
worked on non-antags and anybody with any antag datum would fail the
implant. I changed the default to `NONE`. This may have some knock-on
effects as `is_special_character()` was returning `FALSE` with any antag
datum (unless allow_fake_antags was passed) but no special role which
this also fixes.
## Why It's Good For The Game
Non-antags can no longer self-antag their way onto a nuclear operative
team and antags can now antag their way onto a nuclear operative team.
## Changelog
🆑
fix: Nuclear operative induction implants now work correctly on
antagonists and fail on non-antagonists
/🆑
* Fix nuclear operative induction implants
---------
Co-authored-by: Isratosh <Isratosh@hotmail.com>
* Reverts reverted toast icons (#79538)
## About The Pull Request
During the notify ghosts refactor I was unsure why we were creating a
custom overlay for each ghost alert when new_master did the same. Turns
out - it resets icons, which is useful here. This also caused #79415.
The original notify ghosts was performing this transformation operation
O(n), which I've made O(1)
## Why It's Good For The Game
Fixes#79415

## Changelog
🆑
fix: The screen alert should no longer break ghost UI when it's huge
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Reverts reverted toast icons
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* All vehicles can no longer cross Force Fields (#79553)
## About The Pull Request
Fixes#78625
The check only applied to mecha vehicles, when in reality there
shouldn't be any vehicle that can freely transverse containment fields,
since that vehicle will have a mob in it, which itself shouldn't be
allowed to traverse containment fields.
## Why It's Good For The Game
Makes behavior more consistent and expectable.
## Changelog
🆑
fix: All vehicles (such as VIMs operated by a mouse or a lizard) will no
longer be able to phase through containment fields.
/🆑
* All vehicles can no longer cross Force Fields
---------
Co-authored-by: san7890 <the@san7890.com>
* Slimes can only reproduce out in the open (#79552)
## About The Pull Request
Fixes#79296
This code was a bit wack since we used `drop_location()` instead of
checking if we even had a valid turf to jump to, so slimes would spawn
directly on a turf above the pipe. This has been changed to see our
`loc` is actually a valid turf before we continue on in the verb.
Also this code was really fuckin' old so I just did a bunch of early
returns in the area to make it just a little bit easier to bear when
some poor sod has to refactor all of this into the basic framework.
## Why It's Good For The Game
Bug: Fixed ✅
Code: Improved ✅
Issue Tracker: One Less Thing ✅
## Changelog
🆑
fix: Slimes now need to be on an open turf to reproduce and split into
more slimy slimes, instead of getting away with using phasing powers in
pipes.
/🆑
* Slimes can only reproduce out in the open
---------
Co-authored-by: san7890 <the@san7890.com>
* Adds a sleeve of tiling colors for several holidays. (#79188)
## About The Pull Request
Inspired by #79108. This concerns Christmas, many national holidays and
a few gimmicky ones where it'd make sense.
Oh, yeah, I've also added "Sacrebleu" to the list of possible station
prefixes for the Bastille day, since "Merde" is already there.
<details>
<summary>some screenshots (got tired of restarting the server over and
over halfway through)</summary>
### St. Patrick (Ireland) :

### Bastille Day (France) :

### Waitangi Day (Union Jack colors, New Zealand) :
**No, it isn't the french flag again, it's the tram tiles that always
display the pattern in vertical stripes...**

### Christmas (Before I realized it looks like the italian flag so I've
removed the white) :

</details>
## Why It's Good For The Game
Implemeting a smidge of festivity and/or celebration to several
holidays. Open to suggestions and thoughts.
## Changelog
🆑
image: Several holidays now have themed floor and tram tiling.
/🆑
* Adds a sleeve of tiling colors for several holidays.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds a user type to integrated circuits, refactors the list pick component. (#79412)
## About The Pull Request
Added a user type to integrated circuits that can't be stored as a user
type but can be typecasted to entity. Useful for components that
directly ask for an input from the user, like the list pick component.
Refactored the list pick component to use this user port and to also
send failure signals whenever a success signal is not sent.
Removed the triggered port for the list pick component.
Also fixes a runtime that occurs with the list pick component if the
list passed in only contains null values.
## Why It's Good For The Game
Can't force a prompt onto people who haven't interacted with your
circuit.
## Changelog
🆑
add: Added a user type to integrated circuits
/🆑
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Adds a user type to integrated circuits, refactors the list pick component.
---------
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes synthflesh not causing toxin damage on healing brute/burn. (#79534)
## About The Pull Request
does what it says on the tin - after the refactor of damage application,
it was going with the minimum value of brute or burn loss vs. the amount
healed, so in fact you could get toxin healing from synthflesh.
## Why It's Good For The Game
synth could probably use some tweaks but this just takes it back to what
it was supposed to do before, it should have a tradeoff of some sort
* Fixes synthflesh not causing toxin damage on healing brute/burn.
---------
Co-authored-by: Higgin <cdonny11@yahoo.com>
* Makes notepad available for laptops and consoles (#79475)
## About The Pull Request
Makes it so that notepad can be used on consoles and laptops
## Why It's Good For The Game
Now everyone have more places to write important information. Also
someone who doesn't have PDA (ghost-role for example) will be able to
use laptop's notepad.
## Proof of Testing
<details>
<summary>Screenshots/Videos</summary>

</details>
## Changelog
🆑
qol: Make notepad available for everyone, who has only laptop or
console.
/🆑
* Makes notepad available for laptops and consoles
---------
Co-authored-by: NeonNik2245 <106491639+NeonNik2245@users.noreply.github.com>
* Fix incorrect metabolization rates in chem dispenser's reagent lookup (#79499)
## About The Pull Request
Chem dispenser was dividing the metabolization rate value by 2 despite
it already being in units per second, I fixed that. Now the rates match
those in chemmaster's reagent lookup

## Why It's Good For The Game
Fixes#79482
## Changelog
🆑
fix: Reagent lookup in chem dispensers now shows correct reagent
metabolization rates
/🆑
* Fix incorrect metabolization rates in chem dispenser's reagent lookup
---------
Co-authored-by: cnleth <113535457+cnleth@users.noreply.github.com>
* Fixes mafia achievements desyncing you from the database (#79555)
I swear to fucking god
PDA mafia has two bodies, the real player body, and the fake mafia
stand-in. When an achievement is obtained, it's marked as achieved
directly on the players client, but then passes the empty mafia stand-in
for any afterwork. This causes achievement notifications to be muted,
the code to runtime and for it not to update every appropriatew database
table (like the achievement highscore table).
On a somewhat related note, anyone that has gotten PDA mafia
achievements (which includes me) is now desynced from the
ACHIEVEMENTS_SCORE table. Looks like the only fix is to reset the score
in the ACHIEVEMENTS_SCORE to a non-numerical value and force the game to
recount every achievement
* Fixes mafia achievements desyncing you from the database
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
* You can fish out of hydroponics trays (#79443)
## About The Pull Request
Adds a fishing spot to hydroponics trays.
Chances
- 33% nothing
- 33% grass
- 20% random seed (discludes rarer seeds, such as gatfruit and most
mutations)
- 10% grass seeds
- 1% strange seed
- 1% axolotl
- 1% frog
Lightly inspired by something (I think) is possible on Goon, but
obviously entirely new code.
## Why It's Good For The Game
Mostly just for laughs, they're basins of water so surely you can get
something out of it.
## Changelog
🆑 Melbert
add: Fishers can now try their luck at fishing out of hydroponics
basins.
/🆑
* You can fish out of hydroponics trays
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Automatic TGS DMAPI Update (#79177)
This pull request updates the TGS DMAPI to the latest version. Please
note any changes that may be breaking or unimplemented in your codebase
by checking what changes are in the definitions file:
code/__DEFINES/tgs.dm before merging.
Co-authored-by: tgstation-server <tgstation-server@ users.noreply.github.com>
Co-authored-by: Jordan Dominion <Cyberboss@ users.noreply.github.com>
* Automatic TGS DMAPI Update
---------
Co-authored-by: orange man <61334995+comfyorange@users.noreply.github.com>
Co-authored-by: tgstation-server <tgstation-server@ users.noreply.github.com>
Co-authored-by: Jordan Dominion <Cyberboss@ users.noreply.github.com>
* Re-adds rounding tweaks for reagent volumes & plumbing reaction chamber tweaks (#79478)
## About The Pull Request
- Closes#79464
This takes the important fixes mentioned in the above PR and adds them
here. The above PR implemented the fixes by reverting a bunch of reagent
PR's but in the process of doing so it has brought back really
inefficient code & even some bugs that were previously fixed.
Rather than reviewing them & bringing back those changes which is time
consuming this PR extracts only those important rounding operations
required for the fix leaving all other optimizations intact
Mentioned @ CliffracerX in the changelog so they can get their GBP
Also plumbing reaction chamber is more active in taking in reagents.
That is if a reagent is not available in the pipe net rather than
waiting for it to become available it will simply skip over it & look
for other listed reagents thus saving time
- Fixes#31206
## Changelog
SyncIt21, CliffracerX
🆑
fix: reagent volumes should be consistent & non breaking across plumbing
& chemistry as a whole
fix: plumbing reaction chambers are more proactive. Will attempt to take
in reagents more frequently
/🆑
* Re-adds rounding tweaks for reagent volumes & plumbing reaction chamber tweaks
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Mafia now starts without admin intervention (#79348)
## About The Pull Request
Mafia should now start without the need of admin intervention.
I made a unit test that should always have a PDA and a ghost spawning in
a game of Mafia and having it run through basic setup to confirm they
both successfully sign up and the game starts.
I had to change a lot of things in order to get this working, such as
giving unique ckeys to mock clients, fixing harddels in Mafia, and
plenty of minor fixes. This is the first time any of this code is put in
CI, so a lot of uncaught errors are now showing their faces.
Because loading maps mid-round runtimes due to smoothing, I have mafia
their own unit test-only map that doesn't use smoothing.
I also split the mafia ui code into its own file, and moved a single
helper that was sitting around in mafia's file into a helpers file.
I also added some comments to explain why certain things are the way
they are, because I wrote some undocumented code previously and forgot a
few things, leading to self-inflicted wasted time.
## Why It's Good For The Game
^
## Changelog
🆑
fix: Mafia games can now start properly.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Mafia now starts without admin intervention
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Basic Wizards (#79476)
## About The Pull Request
Makes NPC wizard mobs into basic mobs. These aren't actually used
anywhere, since their away mission was removed, so I figured I'd have
some fun with them.

Noteworthy changes are as follows:
- Wizard mobs can now wear any of the four basic colors of wizard robe
and hat. Rarely, they will wear the witch ("Marisa") outfit instead.
There was going to be a rare Tape Wizard spawn too, but the outfit
doesn't work correctly for some reason (see comments below).
- Wizard mobs no longer have a set spell loadout. Instead, they always
receive a random **targeted, primary spell**, a random **untargeted,
secondary spell**, and the spell **Blink**.
- Wizard subtypes (or var-edited wizards) can have any of the above
specified rather than random.
- Wizard AI will try to avoid ever being in melee, and will fire off
spells whenever possible with the priority order of primary > secondary
> blink. There is a mandatory 1-second waiting period between casts.
- Wizard mobs use "lesser" versions of Fireball and Blink. Lesser
Fireball does a little less damage and has a smaller explosion, though
it is still extremely dangerous. Lesser Blink simply has a smaller blink
radius so that wizard mobs don't just decide to leave.
Depending on their spell loadout, wizards can be _incredibly_ dangerous
mobs - stunning you with tesla blasts, shooting you with fireballs, and
more. Even weakened, fireball is the nastiest of these by far, able to
set you on fire or remove your limbs if you aren't properly protected.
Watch out!
The random lists have been kept pretty small, since I only wanted to use
spells that I know for sure work. Spell cards is pretty weak in AI
hands, since they don't take advantage of the fact that a human player
can spam it, but I wanted there to be a little variety in primary
attacks.
I included an UpdatePaths script here in case a downstream is using
these, but I doubt it was necessary.
## Why It's Good For The Game
Removes another simplemob.
The actual impact of this change is negligible, since this is an unused
mob, but it's possible that this lays the groundwork for these actually
being used - particularly since mappers can make them as powerful or
weak as they want by specifying a spell loadout. Wizards may make for a
tough boss challenge for a ruin or away mission, or a very mean surprise
for an admin to drop on an unsuspecting station.
## Changelog
As this is an unused mob, there are no player-facing changes.
* Basic Wizards
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
* [no gbp] Don't try and have a status effect destroy walls (#79500)
## About The Pull Request
Fixes#79497

Missed something important here. I put it back.
## Changelog
🆑
fix: Fugu can correctly destroy walls when they get big.
/🆑
* [no gbp] Don't try and have a status effect destroy walls
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* prevents infinite paper glitch in HFR framework (#79493)
## About The Pull Request
Fixes#79492 . Infinite paper isn't so much an exploit as much as it is
annoying to have someone spam the multitool action and just end up
having dogshit amounts of stuff.
## Why It's Good For The Game
There's no particular need for more than one guide to the HFR, this is
an oversight.
## Changelog
🆑
fix: The HFR will not print out a piece of paper every time you
multitool it, saving any desired energy to use for more useful
processes.
/🆑
* prevents infinite paper glitch in HFR framework
---------
Co-authored-by: san7890 <the@san7890.com>
* Gets some of the easy-bad species procs (#78993)
## About The Pull Request
- Kills `spec_death`, everything that used it is now signalized.
- Kills `spec_hitby`, nothing used it. Anything that did hypothetically
can use the signal.
- [x] I tested this PR
## Why It's Good For The Game
These are all bad and using signals is superior.
## Changelog
🆑 Melbert
code: Removed species death and species hitby, replaced any uses with
signals.
/🆑
* Gets some of the easy-bad species procs
* Modular adjustments
* Merge skew
* Update synthetic.dm
* Refactor this
* Update tails.dm
* Update tails.dm
* Final touches
* Update synthetic.dm
* Update synthetic.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Port salute emote sound from CM SS13 (#79382)
## About The Pull Request
This adds a crisp sound to the salute emote that is from the Colonial
Marines server.
## Why It's Good For The Game
Mah Immersion!
## Changelog
🆑 timothymtorres, Rahlzel
sound: Port salute emote sound from Colonial Marines SS13 attributed to
Rahlzel
/🆑
* Port salute emote sound from CM SS13
---------
Co-authored-by: Tim <timothymtorres@gmail.com>
* Basic Shades (#79469)
## About The Pull Request
Makes shades into basic mobs. As they are solely player-controller and
have no AI, this was a very simple conversion.
Things of note:
- I've made shades use the same "theme" system as constructs, to
determine their drops and coloration - as opposed to these things being
manually set by the type of soulstone they're held in.
- I've reorganized files slightly, putting both constructs and shades in
a new "cult" basic mob folder.
That's more or less it. As I said, shades are simple.
## Why It's Good For The Game
Basic-izes another mob and cleans up the code a little. Removes the last
cult-related simplemob, too.
## Changelog
🆑
refactor: Shades now use the basic mob framework. Please report any
bugs.
/🆑
* Basic Shades
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
* Allows TGUI labelled lists to use tooltips, and enables this behavior on preferencelists + adds descs to most character preferences (#79356)
## About The Pull Request
Title.
https://github.com/tgstation/tgstation/assets/59709059/c9fa7d41-6ca4-4b8b-97ec-fdfdd437ce25
## Why It's Good For The Game
The inability to use descriptions in character preferences really limits
the context you can give to readers, which becomes a big problem when
preferences become complicated or laden with policy that must be given
to the reader.
## Changelog
🆑
qol: Character preferences now have descriptions as tooltips - hover
over their names to see them
/🆑
* Allows TGUI labelled lists to use tooltips, and enables this behavior on preferencelists + adds descs to most character preferences
---------
Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
* Makes softspoken quirk no longer apply when using sign language (#79456)
Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/24715
## About The Pull Request
Just makes the softspoken quirk match its description that it should be
for spoken languages. You should still be able to have people view your
signs from a distance.
## Why It's Good For The Game
You can still 'subtly sign' using *whisper with that quirk, but you are
no longer restricted to only doing that. It didn't really make sense
that you were previously.
## Changelog
🆑
fix: Softspoken quirk will no longer be applied to sign language
/🆑
* Makes softspoken quirk no longer apply when using sign language
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Fix admins without `R_POLL` getting (an unusable) poll verb (#79461)
## About The Pull Request
Copy paste error, I assume.
`admin_verbs_poll` only contains `/client/proc/poll_panel` which
requires `R_POLL` to use.
## Changelog
🆑 Melbert
admin: Admins without `R_POLL` no longer have access to "Server Poll
Management", not that they could have used it anyways.
/🆑
* Fix admins without `R_POLL` getting (an unusable) poll verb
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Better feedback on fulton extraction (#79452)
## About The Pull Request
Just playing issues roulette when I came across this gem of old code.
Granted, it's not fully rewritten to perfection, but it should at least
be better. Added feedback for both parties, sounds, documentation, and
swapped references for weakrefs.
Note: It looked like it was trying to put the target around the beacon,
but this didn't seem to be working. Fixed this, so now it places them in
an open spot around the beacon (unless its blocked)
## Why It's Good For The Game
Fixes#35783
Not cool for someone to just zip you up and send you away with no
feedback
The original issue might not even apply since most(?) only work indoors,
but this fixes any case
Might fix a hard del??
## Changelog
🆑
fix: Added feedback for both extractor and extractee while using fulton
extraction packs.
qol: Extraction packs now have better exam text.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Better feedback on fulton extraction
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Removes virtual-specific subtypes of drinking glass + adds a new fishing map (#79423)
## About The Pull Request
Changed how loot signals work with bitrunning entirely, which allows map
creators to attach functionality to objects without creating subtypes of
the item
As a bonus I added a fishing minigame map which uses it
## Why It's Good For The Game
It's a messy solution to need to create subtypes just for the one-off
map that needs them
## Changelog
🆑
add: Added a new fishing map to bitrunning.
add: You are no longer limited to pina coladas on the beach bar domain.
Cheers!
/🆑
* Removes virtual-specific subtypes of drinking glass + adds a new fishing map
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Wall smashing > Wall tearing (#79432)
## About The Pull Request
This PR replaces a bunch of instances of mobs being able to smash walls
by clicking them once to being able to tear walls by standing next to
them for a few seconds while an animation occurs. Wall tearing is a
three-part animation and can be cancelled and resumed at any point from
the most recently completed step so it isn't _exactly_ a single two
second interaction, and is resultingly harder to interrupt.

Some mobs still destroy walls in a single click, such as Flesh Worms and
Star Gazers. Really whether I replaced this or not was largely down to
vibes.
It also deletes the `tear_walls` element because it was the same as
`wall_tearer` but without the fun visuals.
## Why It's Good For The Game
Deleting walls instantly with a single click is pretty obnoxious. This
method slows it down a _little_ bit but also looks visually cooler and
gives people on the _other_ side of the wall a warning that something is
about to bust through kool-aid man style.
## Changelog
🆑
balance: Gorillas, Seedlings, Gold Grubs, Mooks, Constructs, Ascended
Knock Heretics, Fugu and mobs subject to a Fugu Gland now rip up walls
in a slightly slower but more cinematic way.
/🆑
* Wall smashing > Wall tearing
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Changelings take much longer to revive when killed by Megafauna (#79439)
## About The Pull Request
Changelings take 8x as long to revive when felled by Megafauna. (5
minutes 20 seconds, rather than 40 seconds.)
## Why It's Good For The Game
Prior to #77731 , changeling miners had to be cautious around Megafauna
as anyone else.
This is fair, lings should be afraid of Megafauna. As with any other
antagonist, taking on a Megafauna for their loot presents option to
become a much stronger antagonist at risk of losing your antag round.
But now, a ling can just get up again and again until they win the war
of attrition. This is rather lame. It completely eliminates the risk
part of the risk reward, and makes clearing lavaland brain-dead.
I wanted to make them gib lings again, but this raises a big metagaming
issue that I would rather not tackle. ("Lol someone got gibbed, RIP ling
bozo")
I also considered making it so being gutted completely prevents ling
revival, so you need to be revived like any other miner, but I am
certain people would complain about how it makes no sense why a ling
just couldn't Get Up Lol.
So I thought to approach this with a compromise - making it take much
much longer to revive if you are gutted by a megafauna. This makes
clearing all of lavaland less of a brain-dead, risk free thing, as dying
forces you to sit out for a while, but you still have some ling safety
to fallback on.
## Changelog
🆑 Melbert
balance: Changelings gutted by Megafauna now take 8x as long to finalize
revival stasis (~5 minutes).
/🆑
* Changelings take much longer to revive when killed by Megafauna
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Fixes heretic bitrunner issue [NO GBP] (#79451)
## About The Pull Request
Returning a player to their body counts as a body transfer, thus they
lose their living heart
## Why It's Good For The Game
Fixes#78780
## Changelog
🆑
fix: Heretics won't lose their living heart while bitrunning anymore.
/🆑
* Fixes heretic bitrunner issue [NO GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Removes virtual-specific megafauna, fixes boss map issues [NO GBP] (#79424)
## About The Pull Request
Another atomization of the content patch-
Let's not subtype everything into virtual variants
This also fixes some bugs that were present with vdom boss maps
- Made the bubblegum map larger so he wouldn't teleport out
- Legion is just far too annoying to have to fix code wise, given that
few if anyone tries it with the base virtual equipment
<details>
<summary>what do you mean too annoying?</summary>
Legion doesn't handle dying like the standard megafauna - each time it
"dies" it looks to see if there's another legion in the entire game
world. Given the real one very likely exists, this basically means it
won't drop anything. I'd have to modify legion's death proc specifically
for the virtual domain. No other megafauna has this level of weirdness
(nor splitting behavior) and coupled with the fact I think no one tries
the domain, I'm just removing it.
</details>
## Why It's Good For The Game
Cleans up megafauna subtypes that were specific for the virtual domain.
Now, we won't need to keep adding to the list if there's ever a new one
Fixes#79203Fixes#79200
## Changelog
🆑
fix: Bubblegum should no longer teleport out of the simulation when
threatened
del: Chamber of Echoes map removed as it conflicts with the actual
Legion
/🆑
* Removes virtual-specific megafauna, fixes boss map issues [NO GBP]
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fix autosurgeons not respecting implant time (#79404)
## About The Pull Request
Fixes autosurgeons not respecting the passed implant time in
`use_autosurgeon`.
Fixes some spans on autosurgeons.
I noticed it working on a downstream.
## Changelog
This will have 0 effect on /tg/, as the only occurrence of passing an
`implant_time`, passed 8 seconds.
No, this will not make self-use autosurgery take time.
* Fix autosurgeons not respecting implant time
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>