* [no gbp] Watchers don't glow while they are dead (#77910)
## About The Pull Request
Removes watcher emissive appearance while dead.
## Why It's Good For The Game
Made it look like they were haunted by their own ghost, spooky but
inappropriate.
## Changelog
🆑
fix: Watchers won't retain an ethereal outline of their wings hovering
over their dead body.
/🆑
* [no gbp] Watchers don't glow while they are dead
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Updates message for HREF Dock Exploit (#77891)
## About The Pull Request
Hey there,

This message randomly popped up while I was adminning, and it was
completely dogshit useless (as well as not being an HREF exploit since
Snowdin was loaded and you should be expected to do that, but that's
indicative of a harder bug). Let's yeet the `message_admins()` portion
(as well as make it actually actable information rather than just
'Unknown' and give it an actual follow jump button) and if then if we
don't have a client, stack_trace (in case people want to make basic mobs
keymash to send shuttles in the future).
## Why It's Good For The Game
This is completely useless and confusing. It's not even an HREF exploit
because this behavior is completely intended. It's more helpful to
coders now too because this thing failing isn't just locked to
admin-only logs, it stack traces (which is publically available).
## Changelog
🆑
admin: The "HREF Dock Exploit" message should now contain a bit more
usable information (such as a jump link) so you can investigate if
something is really going wacky with shuttles.
/🆑
---------
Co-authored-by: Gallyus <5572280+francinum@ users.noreply.github.com>
* Updates message for HREF Dock Exploit
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Gallyus <5572280+francinum@ users.noreply.github.com>
* Fixes a bunch of callbacks that were being qdeleted, and code cleanup (#77904)
## About The Pull Request

Continuing the work of
https://github.com/tgstation/tgstation/pull/77850.
it started with finding one that was being missed and causing a
runtime...then I noticed a whole lot more. While I was doing this I
found callbacks that weren't being nulled in `Destroy()`, so I added
that wherever I found these spots as well as some general code cleanup.
There were a lot more of these than I initially hoped to encounter so
I'm labeling it as a refactor.
## Why It's Good For The Game
Fixes lots of runtimes, improves code resiliency.
## Changelog
🆑
refactor: fixed a bunch of instances of callbacks being qdeleted and
cleaned up related code
/🆑
* Fixes a bunch of callbacks that were being qdeleted, and code cleanup
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Replaces or removes miscellaneous sources of clone damage from the game (#77832)
## About The Pull Request
Might as well go over all of them here.
1. Holoparasites deal half of the damage they take as clone damage to
their summoner when they are knocked out. Now it deals damage to the
brain instead.
2. Prion peptides used to deal a little bit of clone damage every
reagent tick. Now they do it to the brain.
3. When transforming back to human from a slime via a shapeshift spell,
the total damage you have gets flat converted into clone damage. Now it
gets flat converted to toxin damage.
4. Black stabilized slimes let you drain health from other people if you
latched onto them, dealing clone damage to whoever you latched onto,
same as slimes used to do. This has been converted to brute damage.
## Why It's Good For The Game
Explanation from #77569:
> Clone damage is a damage type that shouldn't exist anymore, it's a
relic left from the era of cloning and it's so specific of a damage type
that it rarely gets used as a result. It really should be a type of
affliction (wound etc) instead of its own damage counter.
Only a few left to go, cosmic heretic lore, the greed ruin and the
decloner gun. Then we can remove clone damage completely.
## Changelog
🆑
del: Removes miscellaneous sources of clone damage from the game.
/🆑
* Replaces or removes miscellaneous sources of clone damage from the game
---------
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
* Makes explosions consistently throw debris (#77880)
## About The Pull Request
It was possible for explosions to process throwing FIRST, then the
actual explosion. That's dumb, let's not do that.
Fixes a bug with SS explosions, it used SSair defines for its currentrun
default, which because of misordered defines lead to it running throwing
first for ONLY the first explosion. DUMB.
Changed how objects pick where they land. instead of using get_dir we
get the angle to the center, then invert it. Should lead to a nicer
picture
Unanchors broken disposal pipes so they'll get flung around Ups the
throw range for explosions. This needs more tweaking someday, but this
is ok for now
## Why It's Good For The Game
Throwing will happen consistently now, less fuckin floating shit sitting
in spac
* Makes explosions consistently throw debris
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes apocalypse rune applying invisibility on mobs. (#77822)
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/77714
Icons for apocalypse weren't pathed properly, so they were just applying
non-existing icons.
Also changed preview image for unholy water bottle on the altar, as it
was added it's own icon.
## Changelog
🆑
fix: fixed apocalypse rune applying invisibility to mobs.
fix: Unholy water preview icon is now similar with the icon it has.
/🆑
* Fixes apocalypse rune applying invisibility on mobs.
---------
Co-authored-by: Helg2 <93882977+Helg2@users.noreply.github.com>
* fixes regal rats not running away (#77888)
## About The Pull Request
fixes the regal rat not running away from whoever attacked him. also
adds a new pet command behavior which makes the king's minions drop
whatever they are doing and defend their king from whoever has attacked
him.
## Why It's Good For The Game
the rats now behave right
## Changelog
🆑
fix: regal rats now run away from whoever attacked them
add: new pet behavior which makes pets defend their owners if they got
attacked
/🆑
* fixes regal rats not running away
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
* strips access restrictions to all cargo orderable animals (#77892)
## About The Pull Request
pretty much what it says on the tin, did you know that you have to have
medical access to order cats? or that only the HoS can order crabs and
even then it requires bluespace pods? or how about the fact that cows
are locked behind hydroponics access?
this has been rectified by stripping the access requirements from all
the animals in the livestock category of the cargo orders console,
PLEASE TAKE NOTE: this does not allow you to purchase crates that were
locked behind some other form of locking mechanic, such as crabs needing
bluespace pods, or butterflies requiring contraband access via hacking,
they still require those things, just no longer an ID.
## Why It's Good For The Game
let assistants build their farms, there isn't actually any mechanical
bonus to being able to buy animals other than i guess you can ride pigs
and horses? its fun to be able to buy all the animals without me having
to go to the HoP and get a chefs ID with botanical access, and then get
medical access, and then ask the HoP to tag along so i can get him to
buy a corgi crate, you know what i mean?
## Changelog
🆑
balance: removes the access restrictions from all animals found under
the livestocks tab of the cargo order console, now assistants can
private order animals for their farms without access hunting
/🆑
* strips access restrictions to all cargo orderable animals
---------
Co-authored-by: Donglesplonge <120208006+Donglesplonge@users.noreply.github.com>
* Reverts the change to QM jumpsuit/skirt not exposing the torso when adjusted. (#77901)
## About The Pull Request
The latest cargo resprite changed the QM jumpsuit/skirt to only expose
the arms, which was not even brought up in the changelog.
This is stupidly annoying to deal with for both the QM and doctors at
medbay, since surgery becomes a lot more clumbersome and opens the QM
for free theft.
The bulk of the uniforms already expose the torse as the standard and I
can't see a reason for the QM to go outside the norm, even more when
their uniform is basically a copy of the CT ones, and the CT ones can be
adjusted properly.
Also kills a duplicate sprite since I was there.
## Why It's Good For The Game
Consistency.
## Changelog
🆑 Guillaume Prata
qol: QM jumpsuit/skirt expose the torso when adjusted.
/🆑
* Reverts the change to QM jumpsuit/skirt not exposing the torso when adjusted.
---------
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
* Immovable rod meets unstoppable tram (#77656)
## About The Pull Request
Adds interaction between immovable rod and the tram for the rare
occasions the rod hits it at the front or back while flying at a
parallel angle.
The rod will push/pull the tram in the direction it's flying until a
short distance past the tram's usual landmark, eventually winning and
carrying on.
- Only applies to random rods, if the rod has a target it will ignore
the tram as usual.
- Looping rod only pushes the tram once.
- As long as the tram has power, can be returned to the rails as usual
by calling it.
## Why It's Good For The Game
When the HoP is having a really unlucky day.
https://github.com/tgstation/tgstation/assets/83487515/2f0393cd-f796-4b00-8674-d97e57358543https://github.com/tgstation/tgstation/assets/83487515/f74c8497-8d62-4fcf-80a0-da7259160b7f
## Changelog
🆑 LT3
add: Immovable rod will now battle the unstoppable tram should they
cross paths
fix: Birdshot's maint tram doors now work properly
fix: Tramstation's exterior light fixtures no longer get destroyed as
soon as the tram moves
code: Tram landmarks are now all subtyped instead of map varedits
/🆑
* Immovable rod meets unstoppable tram
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
* ninja stungloves nerf + quirks (#77810)
## About The Pull Request
the ninja stungloves are no longer a knockdown + shove in one click (not
a stun). clicking on people now first does the shove and THEN knocks
someone down for 3 seconds after a 0.3 second delay. this means you need
to click on them twice
ninja's stealth module now gives you the silent footsteps trait when
active
all ninjas now have the light step and freerunning quirks
## Why It's Good For The Game
ninjas really cool but he doesn't really need 1 click stuns in addition
to all his other tools, he can escape pretty much anything and has a
sword for melee encounters, and knocking someone down instantly is still
really powerful
ninjas getting quirks that fit them is cute i think, makes sense and is
useful
## Changelog
🆑
balance: ninja's stealth module gives silent footsteps when active
balance: all ninjas now have the light step and freerunning quirks
balance: ninja's hacker module shove no longer stuns in 1 hit. first
shove knocks down and pushes away, second one stuns
fix: fixes ninja shoves not causing sparks
qol: the person in an energy net is now reasonable to hit, the dark part
of the sprite is now an underlay, so you can click the person inside the
net pretty easily and if you wanna hit the net you click the green part
or the darker sides that the human sprite doesnt cover
/🆑
* ninja stungloves nerf + quirks
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* small modlink fixes (#77804)
## About The Pull Request
fixes bug in multitools where they didnt unregister signals
fixes modlink scryers checking battery charge without a battery
frequency stuff is a bit more explained
## Why It's Good For The Game
good stuf
## Changelog
🆑
fix: fixes multitools possibly randomly losing their buffer
fix: fixes modlinks checking battery charge without a battery and
working without charge
qol: modlink stuff is a bit more explained
fix: modlinks printed from rnd no longer start with a frequency
(remember to copy it from another one with a multitool buffer, robotics
starts with 2 NT frequency linked ones)
/🆑
* small modlink fixes
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Doafter cleanup, disables stoplag dynamic sleeping in unit tests (#77868)
## About The Pull Request
[Makes the do_afters list behave as
expected](b7cd6c520f)
Half the code expected it to be a flat list of things we are acting on,
half expected it to be an assoc list of thing -> interaction count
Let's make that second dream a reality yeah?
[Disables stoplag's lag stoppage for unit
tests](88b2bb371c)
Because of the unique environment of unit tests (High cpu usage, lots of
sleeping) this risks spurious hard deletes from neverending stoplag
runs.
## Why It's Good For The Game
Less errors/guesswork in testing, better code
Potentially addresses #77865
* Doafter cleanup, disables stoplag dynamic sleeping in unit tests
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes a Typo on a fluff paper on oldstation (#77898)
## About The Pull Request
title
## Why It's Good For The Game
typo bad
## Changelog
too minor to make a difference
* Fixes a Typo on a fluff paper on oldstation
---------
Co-authored-by: DATAxPUNGED <44149906+DATA-xPUNGED@users.noreply.github.com>
* [NO GBP] Moussaka/pita bread fixes (#77743)
## About The Pull Request
When doing my new food release, I thought moussaka used both potatoes
and eggplants when it only uses eggplants, which can be substituted for
potatoes (which is lame and not authentic!)
Also, pita bread no longer burns on the griddle
## Why It's Good For The Game
Food becomes a bit more consistent!
## Changelog
🆑
fix: Moussaka now only uses eggplants instead of eggplants and potatoes
fix: Pita bread no longer burns on the griddle/oven
/🆑
* [NO GBP] Moussaka/pita bread fixes
---------
Co-authored-by: MidoriWroth <kodyman@att.net>
* Grilles take 0-1 damage when shocking something, power sinks are available at lower reputation (#77860)
## About The Pull Request
Ports BeeStation/BeeStation-Hornet#3590. As it is right now, it's
trivial to set up a contraption using a conveyor belt and a shocked
grille to continuously shock monkey bodies. While this is very funny, it
also serves as a ghetto powersink that's hard to locate, easy to
replicate, and lasts effectively forever, since you can just keep
shocking the same bodies over and over again.
This doesn't completely remove the ability to make these, but it makes
them require at least a little maintenance and provides a way for them
to stop working even if the crew isn't able to locate them.
In an attempt to finally get people using the _actual_ powersink,
they'll show up a bit earlier in progression now. I'm not convinced 20
minutes is enough, but I don't want to put them in early enough that it
fucks with Engineering's ability to set things up at round start. We can
turn this down further if need be.
I'm also up for turning the TC requirement down, but 11 feels about
right for what they're supposed to do, so I'd prefer we try this first
and see how that works.
## Why It's Good For The Game
I'm all for goofy weird shit players have found, but there's an issue
with being able to do what an antag item is supposed to do but just
plain better. This shouldn't make creating these impossible or make them
unusable, but it'll require players to actively monitor them if they
want it to run for an extended period.
Additionally, we don't really see powersinks much anymore, and while
that might be more because powernets are kind of buggy and unreliable, I
think making them easier to get will make them show up a little more.
## Changelog
🆑 Vekter
balance: Grilles will now take 0-1 damage every time they shock
something.
balance: Powersinks are now available earlier in traitor progression.
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Grilles take 0-1 damage when shocking something, power sinks are available at lower reputation
---------
Co-authored-by: Vekter <TheVekter@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Adds error on qdeling callback, fixes errors this causes (#77850)
## About The Pull Request
You shouldn't ever qdel a callback. If you don't want to own it free
your ref (remove it from a list/set it to null). When all refs are
cleared it'll get cleaned up by byond itself
* Adds error on qdeling callback, fixes errors this causes
* Update cell_component.dm
* Update acid.dm
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Implements byond_status() for harddel hunting (#77818)
## About The Pull Request
In addition, improves dump_harddel_deets usage to hopefully hit in unit
testing
byond_status() will dump as a part of find_references(). While I'd like
to expand that if we ever get a proper version, this is good for how we
have things setup rn.
* Implements byond_status() for harddel hunting
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Adds a check grep for using `src` as a trait source rather that `REF(src)` (#77836)
## About The Pull Request
Using `src` as a trait source is an error and can often lead to
hard-deletes
If you wish to tie a source to a certain datum, it is common to use
`REF(src)` instead.
Ideally, we would lint or test for any use of a reference rather than a
string in use in trait sources, but that's a bit harder to setup.
Currently (from what I can see) the *only* erroneous use of references
as sources are via `src`, so it being the most common error, I see it
fine to lint for it.
## Changelog
Nothing player facing.
* Adds a check grep for using `src` as a trait source rather that `REF(src)`
* Update style.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Very quick wound code improvement (#77814)
## About The Pull Request
Replaces four hardcoded `locate(wound) in wounds` with a proc and 1
loop.
## Why It's Good For The Game
Why iterate over a loop four times when you can iterate once?
## Changelog
🆑 Melbert
code: Cleans up limb wound examine text code a tad.
/🆑
* Very quick wound code improvement
* Modular update
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* flabable
* why is there enclave uniforms in the donator tab
* forgot this bit
* flammable pants and sealable helmets
* my continued hubris on not hitting ctrl shift b
* the pants were sticking out this whole time??
---------
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
* Fix a compiler mis-optimization in create_character (#77801)
`mind.transfer_to` sets mind to null.
`mind.set_original_character` thus, should not work, but happens to
because BYOND incorrectly caches this.
This is causing problems with OpenDream because they do not have this
same bug.
* Fix a compiler mis-optimization in create_character
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Fix sleep status effect not processing (#77637)
## About The Pull Request
Some fixes in #77219 brought up some weirdness with the sleep status
effect. Healium would perma-sleep people, and sleeping in general lost
the ability to heal minor wounds.
## Why It's Good For The Game
Fix bugs, wow healium is abusable right now
* Fix sleep status effect not processing
---------
Co-authored-by: FlufflesTheDog <piecopresident@gmail.com>
* Removes all the skyrat edits in all_nodes.dm and moves them to master files
* Resets diffs to tg
* Update all_nodes.dm
* Future proofing
Who knows what they'll do upstream with the return value here
* Adds labels for organization
* Update all_nodes.dm
* Oh no, find and replace moment
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
* Fixes copy paste mistake!
* Yeah, we can just condense the two sections
---------
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
* Remove unused override comments and fix a few I found
* remove lighting icon overrides (obsolete)
* remove laz/borg overrides (obsolete)
* Remove the catch-all e-gun override, manually overrides the two severely out of date sprites that we ACTUALLY have updates for
* oop
* removes obsolete surgery table sprite (probably technically too close to Bay's to be using actually)
* Love un-updated pathing
* oop
* this back icon wasn't even on this gun ever was it
* didn't notice this override >:(
* General code maintenance for Mat container related stuff (#77671)
1. Removes `/obj/machinery/ore_silo/proc/remote_attackby()`. This proc
calls `datum/component/material_container/user_insert()` anyway which
performs all the checks necessary for inserting stuff into the ore silo
and `/obj/machinery/ore_silo/proc/remote_attackby()` was just repeating
its code & checks. So now inserting into the ore silo is directly
handled by the mat container without this proxy proc making the
operation slightly faster
2. Removed silo `attackby` code. Same operations can be done via
`screwdriver_act` & `crowbar_act` procs much cleaner
3. The ore silo now hooks onto signals
`COMSIG_MATCONTAINER_ITEM_CONSUMED` and
`COMSIG_MATCONTAINER_SHEETS_RETRIVED` and logs into silo when they are
triggered. This means when you insert/eject sheets from the silo the
connected machine performing the operation no longer has to do the
logging manually thus the proc `silo_log` has been removed from a lot of
places ,reducing overall code size
4. A lot of stuff that use materials from the ore silo follow this
pattern.
i.e. They first use the materials from the silo and then log it via
`silo_log` proc. This code pattern is repeated in a lot of places so
let's just merge these 2 lines with some extra sanity checks into a
single proc inside `remote_materials` itself. That's what was done and
the number of places where you log manually into the silo has been
removed further reducing code size everywhere.
5. Added auto doc & cleaned up some procs
Since logging is now done by the ore silo directly, we need a way to
pass the machine that is inserting items into the silo to the signal
handlers of the ore silo [via the `context` var]. So other code changes
elsewhere is because of this var
* General code maintenance for Mat container related stuff
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Reverts Laser Ammo Capacity To Pre-Buff Values (#77799)
## About The Pull Request
Closes#77793
This PR reverts the buffs made to ammo capacity on laser weapons in PR
#75329 . This PR does not touch anything else about the laser buffs
(damage and wound chance).
## Why It's Good For The Game
In the eyes of some, the laser buffs were a necessity to prevent them
feeling like a wet noodle (which I don't think was the case, but I
digress). However, the laser buffs also brought along a reduction in
energy cost per shot, which has allowed people to effectively spam the
newly buffed lasers to an unhealthy degree, since they only need to land
4 of the many shots a laser gun can currently produce to win the fight.
The buff as a whole has created a massive power gap between the rest of
the crew's weaponry and lasers, who wildly outclass anything else the
crew can currently obtain along with some antag gear. The crew was
already in a position of strength compared to the antagonists they face,
so the buff has had negative implications regarding the current balance.
However, if we allow antags to get buffed in line with the new lasers,
then lasers will become the only option as opposed to the clear best
option, which I don't think we want. So, I think nerfing the ammo
capacity back down to what it was originally is the most healthy way to
bring lasers back in line without making them feel weak. Let's see what
happens.
## Changelog
🆑
balance: Lasers now have increased energy cost, reverting the cost back
to the initial value before the laser buff.
/🆑
* Reverts Laser Ammo Capacity To Pre-Buff Values
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* Mining mob tweaks (#77763)
## About The Pull Request
~~I wanted to do this after #77700 (wow cool numbers) but nobody has
merged it yet despite how simple it is so i'll just hope they don't
conflict.~~ Thanks san
I'm fucking about with mining mobs with the intention of making them
more interesting but not necessarily towards making mining _harder_, but
some of these changes unquestionably have done so.
These changes are mostly in response to feedback about Watchers who are
definitely significantly more threatening than previously, although some
of this is user error.
- Watchers are annoying when traversing lavaland because they use their
ability on you instantly upon acquiring a target, if you are trying to
escape other fauna this quickly becomes deadly.
- A lot of players don't really realise what the overwatch ability is
actually doing and so just complain about getting machine gunned.
- If you _do_ react properly to the ability it still makes fighting them
take a lot longer than it used to.
- The "look away" icon is hard to see in the dark sometimes
To ammeliorate these factors I have:
- Reduced watcher health by ~20%
- Display an alerted graphic over the head of the watcher every time you
trigger the overwatch.
- Multiple watchers now won't overwatch you at the same time (this made
the "penalty" volley essentially become instant death)
- The "look away" icon is rendered above the lighting plane so you can
always see it
- Added a new component which tracks how long a mob has had a specific
target.
- - Watchers will now only Overwatch you if they've seen you for at
least 5 seconds (usually they'll try and shoot at you twice before
this).
- - Goliaths will only tentacle you if they've seen you for at least 3
seconds.
If overwatch is still problematic after this I guess I can just nerf it
to not track movement at all and only respond to attacks.
## Why It's Good For The Game
I don't want to discourage miners from "actually mining" by having them
get sniped just for walking around and the added time-to-kill on these
guys could make clearing tendrils more tedious too.
## Changelog
🆑
balance: Watchers have less health
balance: You can't be overwatched by several watchers at a time
balance: Watchers won't overwatch you instantly upon seeing you
balance: Goliaths won't launch tentacles at you instantly upon seeing
you
/🆑
* Mining mob tweaks
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Adds green jester shoes for the green jester outfit. (#77721)
## About The Pull Request
I went back and did a few fixes for GBP to do this.
This adds a set of green jester shoes to the game and to the autodrobe,
since for some reason, while we HAVE jester shoes in the game, it's only
for the alternative set of yellow jester clothes. These shoes don't
waddle but they do jingle a bit.
## Why It's Good For The Game
There are 0 good shoes that go with the green jester outfit since it's
lacking an entire third of the costume for some inconceivable reason.
Here are some shoes that go with it and jingle.
## Changelog
🆑
add: Adds green jester shoes that jingle to the autodrobe!
/🆑
---------
Co-authored-by: oilysnake <63020759+oilysnake@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Adds green jester shoes for the green jester outfit.
---------
Co-authored-by: DeerJesus <willgiscool@gmail.com>
Co-authored-by: oilysnake <63020759+oilysnake@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Adds a handful of Ninja Hacking MODule interactions of varying usefulness (#77707)
## About The Pull Request
Adds a few new interactions with the Ninja's ~~right click multipurpose
trolling tool~~ Hacking MOD Module. These new effects are not tied to
objectives and are geared towards expanding the ninja's access,
disabling equipment, and giving them more ways to punk the crew.
### **Useful additions**
Ninjas can now hack open **windoors** and **elevator control panels**.
Both trigger emag_act() when hacked, opening in the case of the windoor,
and disabling the access restrictions _(and also maybe the safeties)_ in
the case of the elevator controls.
**Buttons** can also be emagged by the hacking modules, which removes
their access restrictions.
Hacking a **camera** will now EMP it, disabling it for about 90 seconds.
This can especially useful when trying to complete objectives, and works
better than smashing the cameras with your sword or lugging around
tools.
**Firelocks** can be right-click opened now too, thanks to the hacking
MODule.
**Energy guns** of all variety, useless to a ninja since they can't use
ranged weapons, can now be drained and used to charge your suit. This
takes a brief do_after to complete, so pulling it off mid-combat may be
as risky as it is stylish.
### **Being a nuisance**
**Vendors** can be hacked, expending some charge to trigger the "throw"
wire, making it launch inventory at anyone who passes by.
You can now hack **simplebots**, expending some charge from your suit to
overload and detonate them. It's faster than tipping, and far more
tragic. Sentient simplebots should take care when a ninja is around.
### **Sabotage opportunities**
The **recycler** can now be hacked. This takes 30 seconds and notifies
the AI, just like the communications console hack. Completing the hack
will emag it. That's it.
Hacking the **tram control console** will trigger an extended Tram
Malfunction event, and can be repeated after the event is done. This can
only be done to the "main" tram of the map, which I forsee will be an
absolute nightmare to complete on highpop tramstation.
Neither of these, presently, contribute towards any objectives. They can
be useful for diverting attention, but I see them more as ways for an
overachieving ninja to flex or continue the chaos after their objectives
are complete.
### **OH ALSO**
Hacking open doors costs energy. This really shouldn't be an issue just
remember to recharge sometimes.
The charge drains and do_after lengths for all of these were chosen on
vibes. In all honesty I think the drainage values don't _really_ matter,
due to how easy recharging is, but I had a hard time settling on how
long some of these hack do_afters should take (even if I know they
probably won't matter either).
## Why It's Good For The Game
Being able to hack open airlocks but not windoors always irked me. I
figured that they would be openable like any other door, and that losing
their status as a "-1 dash charge gate" wouldn't be a big enough balance
change to spark arguments. The same philosophy extends to buttons and
elevator controls.
Sapping power from eguns expands on the list of sources energy can be
siphoned from. You can also use it to disarm opponents (like the badass
ninja you are), take emergency charge from a recently-gored officer's
disabler, or dunk on security by draining their entire armory.
Hacking simplebots, vendors, and by extension elevator lifts (since that
also disables the safeties!) give opportunities for minor sabotage. Not
meant to be super disruptive, just a bit silly and annoying for the
crew.
The recycler/tram hacking in particular are meant to be bonus goals,
only sought out by the ballsiest (or more likely boredest) of ninjas.
I see all of these additions as expanding upon the current abilities of
the ninja (not really making them much more powerful, just expanding
their flexibility), or providing more interactions to have fun (and
antagonize the crew) with when not mainlining their objectives.
## Changelog
🆑 Rhials
add: Ninjas can now temporarily disable cameras with the Ninja MOD
right-click hacking ability.
add: Ninjas can emag windoors, elevator controls, and buttons with their
hacking ability.
add: Ninjas can drain the power from energy weaponry, adding the charge
to their MODsuit.
add: Ninjas can now hack simplebots, overloading and detonating them
after a brief delay.
add: Ninjas can now hack vendors, causing them to eject their inventory
at people.
add: Ninjas can now hack the recycler, which notifies the AI and emags
it once complete.
add: Ninjas can now trigger an extended tram malfunction by hacking the
tram control console.
add: Ninjas can now hack open firelocks (temporarily) with right-click.
balance: Hacking open doors with the Ninja Hacking MODule will subtract
a paltry amount of energy from your suit.
/🆑
* Adds a handful of Ninja Hacking MODule interactions of varying usefulness
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
* Miscellaneous fishing code changes. (#77739)
## About The Pull Request
This PR contains a few changes that I hadn't got to do earlier,
including: different pressure / air mixture thresholds for different
fish (if amphibious), fish being able to be fed directly without the
need of an aquarium, replacing the `available_in_random_cases` variable
with a weight define of value 0, the preset fishing sources global list
so we don't have to manually instantiate lazy fishing spots and assign
them stupid string defines, chasm detritus made into datums, a couple
balloon alerts and removal of unused code.
## Why It's Good For The Game
The fishing portal generator UI is unused, the perfect variable for the
fishing minigame is also unused.
There's no reason for chasm detritus to be an item instead of a datum.
It isn't a map spawner.
Chasm chrabs, if given the amphibious trait, should be able to survive
Lavaland/Icemoon's atmosphere.
I don't even know why I made a snowflake proc to instantiate the
evolutions global list instead of `init_subtypes_w_path_keys`
The shiny lover and wary fish traits were actually making the minigame
slightly easier.
The background icons for the UI had a zero-alpha, one pixel thin stripe
on top that needed to be colored.
Improved `fish_source/proc/dispense_reward`.
Some doc comments and a typo or two.
## Changelog
🆑
add: You can now feed fish with the can of fish feed without having to
put the fish in a aquarium first.
balance: Some fish may survive in different, harsher atmospheres if
given the amphibious trait, like chasm chrabs on lavaland.
qol: aquarium now uses balloon alerts when feeding fish.
fix: The wary and shiny lover no longer incorrectly remove difficulty
from the minigame if conditions aren't met.
/🆑
* Miscellaneous fishing code changes.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* updates martian can sprites, fixes misc text and bugs in wellcheers (#77757)
## About The Pull Request
this is kind of a miscellaneous pile of fixes for soda.dmi, rolled up
with a larger resprite of the new cans that were added with #75988. you
can see everything visually changed (other than inhands) in the image
below

and then the inhands here:

also changes wellcheers mood event text, and the mood switch to be based
on sanity instead. apparently the mood test allowed for foolproof
traitor testing, which is not ideal. this hopefully fixes that.
## Why It's Good For The Game
the new martian drinks used the previous style of cans, which was
updated in #77424. this makes them consistent with that style.
everything else is minor things i missed or forgot to do in that PR.
also things that enable traitor testing are not great, even if they're
niche and require amputation to pull off.
## Changelog
🆑
fix: wellcheers is now based on sanity rather than mood
image: resprites martian cans
image: adds inhands for martian cans and wellcheers
image: minor tweaks to other cans
spellcheck: updates wellcheers mood text
/🆑
* updates martian can sprites, fixes misc text and bugs in wellcheers
---------
Co-authored-by: Lamb <110322848+CoiledLamb@users.noreply.github.com>
* Fixes beakers disappearing when switching in chem heater (#77770)
## About The Pull Request
Fixes#77762
The function to replace beakers in the Chem Heater unregistered the
signal from the beaker after removing it, causing it to break and the
beaker to disappear. This fixes that by unregistering the signal first.
## Why It's Good For The Game
Beakers don't disappear when you try to swap them in the Chem Heater
anymore.
## Changelog
🆑
fix: fixed beakers disappearing when swapped in a chem heater
/🆑
* Fixes beakers disappearing when switching in chem heater
---------
Co-authored-by: Ical <86125936+Ical92@users.noreply.github.com>