* Abductor scientist self-retrieve failure/runtime fix (#73172)
## About The Pull Request
Since the abductor outfit/implant would load before the abductor ship
(and it's teleport pad) when first generating a team, a runtime would
occur when trying to link the pad to the implant. Another would occur
every time you attempted to retrieve yourself (as the linked pad would
be null), preventing recall and completely neutering an abductor team's
most important maneuver.
Now, using the implant will perform the linking process again if no
linked pad is found, and provides the owner with a warning if (by some
great calamity) they genuinely have no pad to teleport back to. This
solves the issue of the implant sometimes not linking to a pad properly
on initialize, and makes them way less prone to breaking.
Apparently this has been broken for a while, presumably since the
abductor ship was made into a lazyloading template.
## Why It's Good For The Game
The funny silly grey men get to torture the poor hapless crew once
again.
## Changelog
🆑
fix: abductor scientist's retrieval implants will now properly recall
the owner, and inform them upon recall failure.
/🆑
* Abductor scientist self-retrieve failure/runtime fix
---------
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fairy Grass Inhands (#73209)
<!-- 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. -->
fixes#72549
## 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. -->
🆑 itseasytosee
imageadd: inhands for fairy grass tiles
/🆑
<!-- 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. -->
* Fairy Grass Inhands
---------
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
* Makes some improvements to how AI can use JPS with movement loops (#72685)
## About The Pull Request
This PR makes some changes to how JPS is used in movement loops, as it
was causing a variety of issues:
- Fixed some code where JPS would fail because the path is still being
made. Instead, the movement loop will now wait.
- Reduced the subsystem wait for the pathfinder subsystem from 2 seconds
to 0.1 seconds. @ LemonInTheDark told me that this is better, I'll update
this with a better explanation once I squeeze it out of him :D
- Allows you to provide an initial path to the movement loop, in case
you pre-calculated one while making a plan.
## Why It's Good For The Game
Makes working with JPS a bit easier when making AI.
---------
Co-authored-by: Capybara <Capybara@ CapybaraMailingServices.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Makes some improvements to how AI can use JPS with movement loops
---------
Co-authored-by: CapybaraExtravagante <110635252+CapybaraExtravagante@users.noreply.github.com>
Co-authored-by: Capybara <Capybara@ CapybaraMailingServices.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@ users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Improves the error message of inducer (#73183)
## About The Pull Request
Now instead of saying "Error unable to interface with device" it says
"Error: unable to interface with device".
## Why It's Good For The Game
The message now sounds better
## Changelog
🆑
spellcheck: Added a ":" to inducer error message
/🆑
* Improves the error message of inducer
---------
Co-authored-by: SuperSlayer <91609255+SuperSlayer0@users.noreply.github.com>
* Tram Mk. IV hotfixes [NO GBP] (#73243)
## About The Pull Request
Fixes some little issues in
https://github.com/tgstation/tgstation/pull/73057
- tram doors only crush people if either emagged (100%) or
malfunctioning (15%)
- emag works on tram doors
- crossing signals use correct amount of power, increased brightness
- crossing signals and destination signs consume power when idle
- green static crossing signal shuts off when power lost
- left/right emag icons are swapped
- tram bench override shouldn't override all benches | Fixes
https://github.com/tgstation/tgstation/issues/73250
- reduced damage from tram door crushing (60 > 45)
## Changelog
🆑 LT3
fix: Fixed motion sensors on tram doors, they will now crush you much
less often!
balance: Reduced damage from being crushed by tram doors
code: Un-nested emag blacklist
code: emag works properly on tram doors
fix: Backwards tram door sparks animation
fix: Tram displays power consumption
fix: Tram crossing signals power consumption
balance: Increased brightness on tram crossing signals
fix: West Wing NW/SW and East Wing NE/SE crossing signals now shut off
when power is lost
fix: Tram benches don't override standard benches
fix: Reduced saturation and brightness of standard bench
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Tram Mk. IV hotfixes [NO GBP]
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Fix some reference leaks (#72669)
For some reason, this repo doesn't have a problem with these references,
but the downstream I work on catches these on the new 515 alternative GC
test 100% of the time, despite us having not modifying these types. Go
figure.
Removed the tank var from the mister as it's basically unused except to
leak a reference.
Garbage collector happy
Not player-facing
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
* Fixes the compile issue
---------
Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Renames Datum Parts above tier 1 accordingly to their tier.
* Makes it so all of our machine also use the datum stock parts, because that's also important
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Adds nutriment factor to liquid gibs. (#73033)
## About The Pull Request
Over the years I've heard quite a few lizard players scratch their heads
in confusion due to the lack of gibs filling you up. I gave it a fairly
low value of 2 so people don't end up trying to power game it.
## Why It's Good For The Game
Adding an alternative use to gibs is always nice, at the moment it's
mostly just used for soap and cytology (Which barely anyone does.)
## Changelog
🆑
balance: Gibs now provide a small amount of nutriment.
/🆑
* Fixes the modular uses of liquid gibs
* Fixes an error that somehow slipped through.
---------
Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind
* Fixes the conflicts and makes shit compile!
* Fixes other things that didn't show up because I hadn't updated
* Fixes the lints.
* Okay NOW it's ready (please don't add anything else that touches blindness I beg you)
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Don't initialize stack components inside machines (#72863)
## About The Pull Request
An attempt at the
[Initiative](https://github.com/tgstation/dev-cycles-initiative/issues/29)
all types/subtypes of `obj/item/stack` no longer exist inside any
machine. Only during deconstruction is the stack created from the
circuit boards requested components.
Also moved the component printer & module duplicator circuitboards into
`machine_circuitboards.dm` so they all are in one place
I was unable to do this for circuitboards because that still needs to
exist so we can use `apply_default_parts()` on the machine. I tried to
do the whole datum circuitboard approach just like with stock parts but
i'm unsure about it so maybe next time
## Changelog
🆑
refactor: stack components no longer exist inside a machine's
component_parts
refactor: move component printer & module duplicator circuitboards into
machine_circuitboards.dm
/🆑
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Replace most uses of say() on tape recorder with balloon alerts to reduce spam (#72784)
## About The Pull Request
The tape recorder would spam the chat with multiple spoken lines when
Play was pressed on an empty tape or when playback ended. This fixes
that by replacing the spoken lines with balloon alerts only visible to
the user of the tape recorder.
Playback still uses say().
## Why It's Good For The Game
Less chat spam
## Changelog
🆑
qol: Tape recorder actions (e.g. starting/stopping playback) now use
balloon alerts instead of say() to reduce chat spam
fix: You can no longer get a tape stuck in the tape recorder by
unspooling it before inserting
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Replace most uses of say() on tape recorder with balloon alerts to reduce spam
---------
Co-authored-by: cacogen <25089914+cacogen@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Last TGC Holodeck PR before the freeze! Card marking and Blank cards! (#73013)
## About The Pull Request
This should be the final PR required to finish my goal of the holodeck
TGC arena having all the features of the tabletop version. Marking cards
(e.g. for hivemind cards) and cards that summon other cards are both
intended to use the flipper as a counter. This is not possible on the
holodeck and as such this PR adds that functionality. When a card is in
a holder a new option to mark the card has been added which will add a
small indicator to the top right of the card summon when activated. For
empty card holders you can now right click them to create a blank card,
you will be prompted to input a name for the blank card, (e.g. Resin
Wall) and then the card will act like a regular card.
## Why It's Good For The Game
TGC can now be played in its entirety on the holodeck, at this point all
tabletop features should have representations on the holodeck.
## Changelog
🆑
add: You can now mark TGC cards on the holodeck battle arena, useful for
keeping track of effects such as hivemind.
add: Right clicking a card holder on the TGC holodeck battle arena will
allow you to generate a "blank card", useful for when using cards that
summon other cards, such as the xenomorph hivelord.
spellcheck: Capitalized some descriptions for TGC machines
/🆑
* Last TGC Holodeck PR before the freeze! Card marking and Blank cards!
---------
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Station monitoring console patches (#73096)
## About The Pull Request
- Distro & Waste loop sensors were only displaying the values of the air
on its turf not the actual pipes they were on, so the values were always
constant. Thats fixed now.
- Created a macro to map chamber id to air sensor to avoid typos. This
also fixed being unable to connect to the waste loop sensor due to a
typo in the word "_sensor".
- When reconnecting to a different chamber other than distro & waste
`atmos_chambers` is not lost when switching so you can once again
connect back to distro & waste. After reconnecting make sure to again
select the chamber from the drop down box cause the ui doesn't update
automatically
https://user-images.githubusercontent.com/110812394/215701505-105eba4d-d5d1-4a09-9ac7-0ab73fee2196.mp4Fixes#73055
## Changelog
🆑
fix: distro & waste sensors not reading values from the actual pipes
they are on
fix: losing distro & waste options from the drop-down box after
connecting to a new sensor.
refactor: all occurrences of _sensor with a macro to avoid typos.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Station monitoring console patches
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
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>
Shuffles around the reagent scan readout to display as empty when only invisible reagents are present (#72915)
<!-- 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
Formerly, the reagent scan would provide a header based on whether or
not reagents are present in a person's blood/stomach. This works, until
you get cases where a user only has invisible reagents in their system,
in which case the "Subject contains the following reagents" header would
appear, but no chemical readouts would be present.
The blood/stomach reagent readouts on the scanner now put their contents
into a separate list, before adding it to the master readout list. This
alternate list is checked for length, rather than whether or not the
user has any reagents in their system at all, to determine what readout
header to give. If there are no reagent readouts to provide, the scanner
will report as if there is nothing present.
In summary: If you have only invisible reagents in your system, the
health scanner will provide the same readout as if you had nothing in
you at all.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Closes#72311.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## 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. -->
🆑 Rhials
fix: The chemical scanner will now properly display that "no" reagents
are present in a subject when only invisible reagents are present.
/🆑
<!-- 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: Rhials <Datguy33456@gmail.com>
Add advanced fire extinguisher to techweb (#72933)
## About The Pull Request
This adds the advanced fire extinguisher to the `Experimental Tools`
node.
## Why It's Good For The Game
There are several advanced engineering tools in this node. This is an
item that is considered a better version of a regular fire extinguisher
for atmos techs. It makes sense to put this with the other upgraded
tools in techweb, since ya know, it's technically an advanced version.
It does spawn empty, so it needs to be refilled with a foam tank
dispenser.
## Changelog
🆑
qol: Add advanced fire extinguisher to techweb
/🆑
Co-authored-by: Tim <timothymtorres@gmail.com>
Adds "welder crafting" to iron sheets, rods and tiles. (#68987)
* Adds "welder crafting", using welders on iron, floor tiles, and iron rods using LMB/RMB to turn them into eachother. Also adds Balloon alerts while doing so, and contextual tips to indicate this is now a thing.
(cherry picked from commit 2a4bec28b9)
# Conflicts:
# code/game/objects/items/stacks/rods.dm
# code/game/objects/items/stacks/tiles/tile_iron.dm
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Mint can gib obese people again (#72970)
## About The Pull Request
Changes minttoxin(a toxin) to mintextract(a food).
## Why It's Good For The Game
Fixes https://github.com/tgstation/tgstation/issues/72969
The chef's mint is intended to gib fat people. Due to
https://github.com/tgstation/tgstation/pull/70764, liver functionality
was reworked so that instead of being purged rapidly, toxin's in a mobs
system with 3 units or less have no effect. Since the chef's mint only
has 2 units of mint toxin, it's intended functionality is impossible
under normal circumstances.
By changing the reagent type from toxin to consumable, it restores the
ability to gib.
## Changelog
🆑
fix: Mint Toxin(a toxin) has been changed to Mint Extract(a food). The
chef's mint can once again gib, fatties beware.
/🆑
Co-authored-by: the-orange-cow <76538214+the-orange-cow@users.noreply.github.com>
[NO GBP] Trading card life and mana panels can be set to 0 life/mana (#72973)
## About The Pull Request
Setting the life or mana values in either of the panels to 0 would
trigger and if statement only meant to trigger if the value was set to
null, meaning that setting life or mana to 0 would be ignored.
## Why It's Good For The Game
Its possible to have 0 mana/life.
## Changelog
🆑
fix: You can now set life and mana panels to 0 life/mana.
/🆑
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* adds atmospheric gloves, small resprite of firefighter gear, repaths stupid glove paths (#72736)
repaths a lot of gloves off /color because they were incredibly stupid
firefighter gear has gotten an update (it doesnt cover hands anymore
though, you need something else)
firefighter helmets no longer hide your mask or glasses

fixed engine goggles starting with darkness vision
to the atmos lockers adds atmospheric gloves, a pair of thick (chunky
fingers) gloves that are fireproof and fire protective, slightly shock
resistant and let you fireman carry people faster.
atmospheric firefighter helmets now are a subtype of welding hardhats,
you can enable a welding visor.
welding hardhats change mode with right click instead of altclick
im not a good spriter but i think this resprite makes them fit nicer
with other engi equipment
lets me firefighter rp
🆑
add: Atmospheric Gloves, thick gloves that are fully fireproof and fire
protective and let you fireman carry people faster.
fix: fixes engine goggles starting with darkness vision
qol: firefighter helmets can now enable a welding visor
qol: welding hardhats change mode with right click instead of altclick
balance: firesuits no longer protect your hands
/🆑
* Makes shit compile
* Updates the digi and snouted stuff to match the new sprites (thanks Halcyon!)
* Fixes a whole ton more issues that popped up
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Moves mining points from the ID to the bank account (+credit type shown on order console) (#72726)
## About The Pull Request
Mining points are now stored on the ID's bank accounts instead of the
individual IDs, bringing them on-par with credits. This allows miners to
safely replace their ID and keep their mining points just like they can
for their credits.
I also added the cost type on Produce Consoles, so people using them
will know whether they're using mining points or credits.
Because all IDs have a bank account by default, this won't be a problem
to Golems or the like.
## Why It's Good For The Game
1. It's more clear to the player what type of credit is being used in
the order console
2. Mining points being tied to the ID is no longer needed as all IDs
have a bank account
3. Brings mining points up to the same standard as credits.
## Changelog
🆑
qol: Mining points is now tied to bank accounts instead of individual
IDs, so they transfer over in cases of an ID replacement.
/🆑
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Life and Mana bars for the TGC battle arena. (#72838)
## About The Pull Request
Adds a life and mana bar for each player in the TGC holodeck arena,
practically removing the need for players to keep track of these stats
using items outside of the holodeck. The mana bar features a next turn
button which will automatically increase the number of slots by 1 and
refill or slots. You can inspect the panels to see these values
numerically rather than visually.

## Why It's Good For The Game
I've set out on a goal on making the TGC battle arena a complete
visualizer for the TGC game, where all you need to bring is a deck of
cards and a friend. Adding this eliminates the need for pen and paper or
an external notepad program for tracking life and mana, and replaces it
with a far more visually interesting option that is also significantly
easier for both players to see and keep track of.
## Changelog
🆑
add: The TGC arena on the holodeck now features display panels to track
each player's life shards and mana.
qol: Slightly increased the amount of space on the TGC holodeck arena's
tables by removing the windows on either side of the player.
/🆑
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Light Replacer Fixes & clean up (#72883)
## About The Pull Request
Fixes#72877
- Bluespace light replacer can only fix lights & turfs containing lights
in its line of sight
- No more spam beaming turfs which has no light sources
- Code clean up i.e early returns
## Changelog
🆑
fix: bluespace light replacer from fixing lights/turfs containing lights
not in its line of sight
fix: beaming any turf even those not containing lights from causing lag
/🆑
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Fix tape recorder recording null messages (fixes#72858) (#72870)
## About The Pull Request
Fixes#72858
Tape recorder was using `message` instead of `raw_message` in the `Hear`
callback:
`/obj/item/taperecorder/Hear(message, atom/movable/speaker,
message_langs, raw_message, radio_freq, spans, list/message_mods =
list(), message_range)`
Other instances of the callback being used seem to use `raw_message`.
Additionally, `living_say` as well as `say` call `Hear` with `message`
being just always being `null`.
Changed tape recorder to use `raw_message` as well
## Why It's Good For The Game
Tape recorders work!
## Changelog
🆑
fix: Tape recorders are not deaf anymore
/🆑
Co-authored-by: Inari-Whitebear <inari_whitebear@fastmail.jp>
Ashwalker Improvements - Torches, Drying Racks, Seeds, and Smoke Pipes (#72683)
## About The Pull Request
This does the following:
- Replaces all of the lamps in the ashwalker ruin with torches (torches
have ~30 mins of fuel)
- Leaves a single lamp in the center
- Adds 2 porcini seeds and an additional towercap seed
- Adds a crafting recipe to make smoke pipes using wood
- Changes drying racks to require no power
This allows Ashwalkers to make more torches if needed AND grow their own
version of mushroom tobacco.
## Why It's Good For The Game
Makes Ashwalkers more cavelike.
## Changelog
🆑
add: Add torches, porcini mushroom seeds, towercap seeds to ash walker
ruin.
add: Change drying racks to not require power.
add: Add crafting recipe for smoking pipe that uses wood
/🆑
Co-authored-by: Tim <timothymtorres@gmail.com>
Amended pet carrier examine to include release command (#72827)
## About The Pull Request
Added a small piece of text to the examine string, under usable and
noticeable, to inform players on how to release pets from the pet
carrier.
## Why It's Good For The Game
I am a relative new/returning player and have noticed there was no way
to know how to release pets once they're inside. This helps people that
want to carry their pets around in the carrier 🙂
## Changelog
🆑
spellcheck: small amendment on pet carrier
/🆑
Co-authored-by: NotRicky <39915556+justricky21@users.noreply.github.com>
RTD fits in toolbelt (#72813)
## About The Pull Request
RTD fits in toolbelt.
## Why It's Good For The Game
Don't give me rapid construction devices that don't fit in my toolbelt,
that's lame!
## Changelog
🆑 Melbert
qol: RTD fits in toolbelts.
/🆑
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Stock Part Datumization Complete (#72559)
So i accidently reverted all my commits in #72511 when resolving a merge
conflict So ummm yeah fuck my bad anyway
Finishes what was started in #71693 and completes the
[initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1)
Except for `obj/item/stock_parts/cell` and its subtypes. All machines
now use `datum/stock_part` for its requested components & component
parts
Not sure if i caught every machine & stuff in the game so merge with
caution
🆑
code: datum stock part for every obj stock part
refactor: all machines & dependent experiments to use datum stock parts
/🆑
* Fixes a teeny tiny Funce mistake :)
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Fix pickle jar crafting (#72590)
## About The Pull Request
Fixes#72568 but not the underlying bug here. also pulls pickles made in
line with the cost

## Why It's Good For The Game
The large beaker is used in the process it should not be added to the
pickle jar, the reason for the post-qdel instead of fixing the
underlying root is because this seems for some part intended, in the
extend that the parts get added to the finished craft. if that isn't
supposed to be the case I could rework it a bit so that reagent
containers dont get added but this will very likely cause bugs in other
crafting recipes
## Changelog
🆑
fix: Pickle crafting no longer gives an empty beaker
fix: Pickle crafting costs/gives 10 cucumbers/pickles
/🆑
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Autisem <36102060+Autisem@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Makes a few previously microwave only cooking options also doable in an oven (#72473)
## About The Pull Request
Make the following list of things that can only be cooked in the
microwave currently also able to be cooked in an oven:
Uncooked rice
Raw spaghetti
Wet leather (YUM!)
Aloe
Onion slices
Cheese curds
Eggs, rotten or not
Ready donk
## Why It's Good For The Game
We've already got stuff that's microwave-oven interchangeable (donk
pockets), sometimes you don't have a microwave and you're just locked
out of more than a few recipes because something that could easily be
made in an oven isn't coded to be. The simple solution is just not have
that be the case.
## Changelog
🆑
qol: A few recipes that were microwave only (like boiling rice, heating
ready donk, so on) can now also be made in an oven
/🆑
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
* Fix compilation on older BYOND versions (#72633)
## About The Pull Request
Fix compilation on certain BYOND versions, among them 514.1582. This
line currently causes an error as floor_designs is already defined
earlier
Co-authored-by: oranges <email@ oranges.net.nz>
* Fix compilation on older BYOND versions
Co-authored-by: Cyprex <35031555+Cyprex@users.noreply.github.com>
Co-authored-by: oranges <email@ oranges.net.nz>
* TGC rulebook added to the card battle arena and fixes a bug with holographic TGC coins (#72595)
## About The Pull Request
The coins spawned by the TGC holodeck arena had monetary value and could
be used as an infinite source of income, they've been replaced with a
worthless subtype.
Also a small QoL change since I've seen people looking for it ICly but
I've added a rulebook to the holodeck so people can access the wiki page
directly.
## Why It's Good For The Game
Infinite money exploit bad and I've watched multiple people go hunting
for a non-existent rulebook.
## Changelog
🆑
qol: Rulebook for TGC has been added to the TGC arena.
fix: Holographic TGC coins are no longer legal tender and cannot be
inserted into your ID.
/🆑
* TGC rulebook added to the card battle arena and fixes a bug with holographic TGC coins
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* Fixes the Crab 17 exploding when someone swipes too early. (#72717)
## About The Pull Request
This bug has personally inconvenienced me one too many times, so I
decided to take a swing at it myself. I didn't expect the fix to be as
straightforward as it ended up being.
You could get the Crab 17 to do its "all bank accounts are safe, let's
explode the checkout machine" check by swiping during the setup
animation. This would be before the list of accounts to rob was actually
set up, meaning the check would succeed and the checkout machine would
be deleted. Nobody would be able to pull money from their accounts, and
with no checkout machine to fix things or automatically resolve the
problem after a while, all crew bank accounts would be rendered
inaccessible.
Now, if the checkout machine isn't mobile (completely set up, done
animating, and ready to cause problems) it will reject your swipe BEFORE
checking the bank account list. No more premature explosions, no more
headaches.
This also balloonifies most of the Crab-17 checkout machine messages.
## Why It's Good For The Game
Closes#58933, putting a long-standing source of headaches to rest.
## Changelog
🆑
fix: Swiping the Crab-17 checkout machine too early will no longer
instantly explode it and lock everyone out of their bank accounts.
/🆑
* Fixes the Crab 17 exploding when someone swipes too early.
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Refactor lighting items that use fuel (#72146)
Fixes#71826
This does the following:
- Makes candles a subtype of flare
- Fixes candles having lighting inconsistencies
- Fixes burning items (welder, candles, flares, etc.) not causing
ignition effects when held in hand
- Adds burnt flares and melted candles to maint loot and trash spawners
- Add match lighting sound when candles are lit
- Add time defines for fuel amounts and rounded them (ex. instead of
32.3333 minutes, it's now 35 minutes)
- Light sources that burn will now spawn a trash item once fuel is spent
- Light sources that burn now have a welder hitsound
- Light sources that burn can now be extinguished by a fire extinguisher
(except flares)
- Light sources that burn can now be used to ignite another object on
fire (ex. a lit candle can be used to light a cigarette)
- Light sources that burn and are lit now do `BURN` damage while
attacking
Code is more cleaner and consistent. Also fixes some bugs.
🆑
soundadd: Candles will now use the match lighting sound when lit
soundadd: Light sources that burn will now have a welding hitsound
fix: Fix candle light behaving erratically
fix: Fix burning items that are held in hand will now have an ignition
effect on the turf. (ex. lit welders in hand will now ignite plasma in
the air)
balance: Light sources that burn and are lit now do `BURN` damage while
attacking
balance: Light sources fuel amounts were rounded to exact numbers (ex.
instead of 32.3333 minutes, it's now 35 minutes)
qol: Light items that burn can now be extinguished by a fire
extinguisher (except flares), used to ignite another object on fire, and
will now leave a trash item once fuel is used
qol: Add burnt flares and melted candles to trash spawners
refactor: Refactor lighting items that use fuel to be more robust
/🆑
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Modular!
* Toggle Light
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Cutting the Burdened Cheese Part 1: Removes free burden points from removing unnecessary or cosmetic organs. (#71938)
Burdened organs now only count for the main organs only. Cyberimplants
don't count, alien organs don't count, etc. This is because someone
could get a bunch of extra organs, and then take the burdened sect and
remove them for free burden points.
Useless organs for species also do not count (stomachs given to species
that do not hunger, for instance)
Removes the error on burden points clamping on negative values. This can
happen when someone previously disabled takes burden sect.
Cheese is being used to bypass the unique gameplay goals burdened sect
provides. Will throw another pr when fikou finishes bat mutants ;)
🆑
fix: Removed some cheese strategies from burdened sect.
/🆑
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Modular!
* Aaaaaa
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate. (#72110)
So, a huge issue with memories and - what I personally believe is the
reason why not many have been added since their inception is - they're
very annoying to add!
Normally, adding subtypes of stuff like traumas or hallucinations are as
easy as doing just that, adding a subtype.
But memories used this factory argument passing method combined with
holding all their strings in a JSON file which made it just frustrating
to add, debug, or just mess with.
It also made it much harder to organize new memories keep it clean for
stuff like downstreams.
So I refactored it. Memories are now handled on a subtype by subtype
basis, instead of all memories being a `/datum/memory`.
Any variety of arguments can be passed into memories like addcomponent
(KWARGS) so each subtype can have their own `new` parameters.
This makes it much much easier to add a new memory. All you need to do
is make your subtype and add it somewhere. Don't need to mess with jsons
or defines or anything.
To demonstrate this, I added a few memories. Some existing memories had
their story values tweak to compensate.
Makes it way simpler to add new memories. Maybe we'll get some more fun
ones now?
🆑 Melbert
add: Roundstart captains will now memorize the code to the spare ID
safe.
add: Traitors will now memorize the location and code to their uplink.
add: Heads of staff winning a revolution will now get a memory of their
success.
add: Heads of staff and head revolutionaries who lose their respective
sides of the revolution also get a memory of their failure.
add: Completing a ritual of knowledge as a heretic grants you a quality
memory.
add: Successfully defusing a bomb now grants you a cool memory. Failing
it will also grant you a memory, though you will likely not be alive to
see it.
add: Planting bombs now increase their memory quality depending on how
cool the bomb is.
refactor: Memories have been refactored to be much easier to add.
/🆑
* Modular!
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
* Fixes ERT Headsets not starting with their key (#72716)
## About The Pull Request
fixes an accident and assigns the second keyslot to null instead of the
first which removed the ability for ERT's to communicate.
## Why It's Good For The Game
Having comms when you're sent in somewhere deadly is a good thing
## Changelog
🆑
fix: ERT Headsets have the proper key
/🆑
* Fixes ERT Headsets not starting with their key
Co-authored-by: Zergspower <Griffinj88@yahoo.com>