## About The Pull Request
- Added full support for RETA system
- Categorized all configs for search purposes
- Added channel check for most usages of get_announcement_system() calls
## Why It's Good For The Game
## Changelog
🆑
code: Little AAS code cleanup. Added full RETA support. Grouped configs
for search purposes.
/🆑
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack
This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.
This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).
🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
## About The Pull Request
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack
This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.
This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).
## Changelog
🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...
...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!
I also tried to replace some of those single letter vars/args but there
are just way too many of them.
Improving old code. And I want to be able to pet mobroaches while
holding them too.
🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
## About The Pull Request
Adds `/datum/element/voucher_redeemer`, expands `/datum/voucher_set` a
bit, bumps all mining stuff down a level to `/datum/voucher_set/mining`.
## Why It's Good For The Game
Having a generic way to
`input item -> output a choice of a set of items`
would be really handy.
## Changelog
🆑 Melbert
refactor: Minor mining voucher refactor, report any oddities.
/🆑
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...
...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!
I also tried to replace some of those single letter vars/args but there
are just way too many of them.
## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.
## Changelog
🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
## About The Pull Request
Adds `/datum/element/voucher_redeemer`, expands `/datum/voucher_set` a
bit, bumps all mining stuff down a level to `/datum/voucher_set/mining`.
## Why It's Good For The Game
Having a generic way to
`input item -> output a choice of a set of items`
would be really handy.
## Changelog
🆑 Melbert
refactor: Minor mining voucher refactor, report any oddities.
/🆑
## About The Pull Request
- All mentions of "express" have been renamed to "autodelivery"
- Autodelivering goods now comes with transit time. Mining console gets
30 seconds, the chef console gets 2 minutes
- Golem ordering remains the same as before. Forced autodelivery skips
any kind of transit time.
## Why It's Good For The Game
So this has been in the game for awhile, and I think it's a positive
element. But I think I messed up with the balance between the two
choices, because it's clearly far better to autodeliver and eat the
cost. I could change every other factor, and the only relevant one would
be the fact that express delivery instantly gives you what you want,
while the other option doesn't.
This change is meant to replicate the time you'd have to wait for cargo.
It may remain quicker than regular orders, but any amount of delay on
getting what you ordered is going to make the other delay (that comes
with discounts, and kickbacks, etc) more appealing to the orderee.
Ideally, if cargo is active, it should be a no-brainer to run a regular
order instead of express. Not sure if this does that without testing,
but it brings us closer.
I decided to make the delay far less for the mining console, mostly
because of distance to cargo and the cooldown also already mostly
removed.
## Changelog
🆑
balance: The cargo console now has a delay to express orders (renamed to
autodelivery)
/🆑
I standardized stuff in AASs code, and all current reference to it. Also
added interactions for bounty cubes, weather reports and request
consoles, all of it can be changed from AASs UI.
Also it's easier now to add new config entries for AAS to proceed, and
it's now downstream friendly.
Well, because kind of order in code and because it's funny to make
custom messages for... Almost everything?
BTW any entry can be blocked from ingame changes, by default you can't
change Broken Arrival shuttle and Security Officer arrival
announcements, how it was before. But may be we should allow it - it's
an open question.
🆑
add: Many things now handles via AAS: Bounty Cubes, Request Consoles,
Brig Cells, Vending Machines and Orion Trails alerts, Weather Reports,
Cargo Order Console
code: Now anyone can make their own entry for AAS
refactor: AAS internals, also cleanup
/🆑
## About The Pull Request
I standardized stuff in AASs code, and all current reference to it. Also
added interactions for bounty cubes, weather reports and request
consoles, all of it can be changed from AASs UI.
Also it's easier now to add new config entries for AAS to proceed, and
it's now downstream friendly.
## Why It's Good For The Game
Well, because kind of order in code and because it's funny to make
custom messages for... Almost everything?
BTW any entry can be blocked from ingame changes, by default you can't
change Broken Arrival shuttle and Security Officer arrival
announcements, how it was before. But may be we should allow it - it's
an open question.
## Changelog
🆑
add: Many things now handles via AAS: Bounty Cubes, Request Consoles,
Brig Cells, Vending Machines and Orion Trails alerts, Weather Reports,
Cargo Order Console
code: Now anyone can make their own entry for AAS
refactor: AAS internals, also cleanup
/🆑
## About The Pull Request
Fixes issues with var typing and proc arguments, discovered using
OpenDream's WIP TypeMaker feature (using improvements I haven't PR'd
upstream yet).
## Why It's Good For The Game
Codebase maintenance.
Chef produces is 35% cheaper to order from the chef console
## Why It's Good For The Game
If chef is forced to order from the cargo because botany isn't growing
what they need they deserve a discount, also this is inline with mining
and bitrunning discounts.
## Changelog
:cl:oranges
balance: Chef produce orders are cheaper
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
3591 individual conflicts
Update build.js
Update install_node.sh
Update byond.js
oh my fucking god
hat
slow
huh
holy shit
we all fall down
2 more I missed
2900 individual conflicts
2700 Individual conflicts
replaces yarn file with tg version, bumping us down to 2200-ish
Down to 2000 individual conflicts
140 down
mmm
aaaaaaaaaaaaaaaaaaa
not yt
575
soon
900 individual conflicts
600 individual conflicts, 121 file conflicts
im not okay
160 across 19 files
29 in 4 files
0 conflicts, compiletime fix time
some minor incap stuff
missed ticks
weird dupe definition stuff
missed ticks 2
incap fixes
undefs and pie fix
Radio update and some extra minor stuff
returns a single override
no more dupe definitions, 175 compiletime errors
Unticked file fix
sound and emote stuff
honk and more radio stuff
## About The Pull Request
this is a revival of #82635 . i got permission from potato to reopen
this, he did almost all the work. i only just solved the conflicts and
fixed all the bugs that were preventing the original from being merged
(but it should be TMed first)
## Why It's Good For The Game
slightly improves the performance of basic mob AI
## Changelog
🆑
LemonInTheDark
refactor: able_to_run and incapacitated have been refactored to be event
based
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: ZephyrTFA <matthew@tfaluc.com>
## About The Pull Request
Currently to check for Silicon access, we do:
``if is silicon or is admin ghost or has unlimited silicon privileges or
has machine remote in hand``
What has unlimited silicon privileges? Bots, Drones, and admin ghosts.
To check for AI access, it just checks for AI instead of silicon, and
doesnt check for unlimited silicon privileges.
This was kinda silly, so I thought I should make this a little easier to
understand.
Now all silicon/ai traits come from ``AI_ACCESS_TRAIT`` or
``SILICON_ACCESS_TRAIT``. I made a single exception to keep Admin ghost,
since now instead of being a var on the client, we moved it to using the
same trait but giving it to the client instead, but since we have to
keep parity with previous functionality (admins can spawn in and not
have this on, it only works while as a ghost), I kept previous checks as
well.
No more type checks, removes a silly var on the mob level and another on
the client.
Now while I was doing this, I found a lot of tgui's ``ui_act`` still
uses ``usr`` and the wrong args, so I fixed those wherever I saw them,
and used a mass replace for the args.
Other changes:
- machinery's ``ui_act`` from
https://github.com/tgstation/tgstation/pull/81250 had ``isAI`` replaced
with ``HAS_AI_ACCESS``, this has been reverted. Machine wands and admin
ghosts no longer get kicked off things not on cameras. This was my
fault, I overlooked this when adding Human AI.
- Human AI's wand gives AI control as long as it's in your hand, you can
swap to your offhand. I hope this doesn't end up going horribly,
otherwise I'll revert this part. It should let human AIs not have their
UI closed on them when swapping to eat food or use their door wand or
whatnot.
- Bots previously had special checks to scan reagents and be
unobservant, I replaced this with giving them the trait. I also fixed an
instance of unobservant not being used, so now statues don't affect the
basic creature, whatever that is.
## Why It's Good For The Game
This is an easier to understand way of handling silicon access and makes
these mobs more consistent between eachother.
Other than what I've mentioned above, this should have no impact on
gameplay itself.
## Changelog
🆑
fix: Statues don't count as eyes to creatures.
fix: Human AIs and Admin ghosts no longer get kicked off of machines
that aren't on cameranets.
/🆑
Hello everybuddy, your number three rated coder-failure here to clean up
some mess. This PR accomplishes some of the more major structural clean
up changes I wanted to do with /obj/ folder, but decided to wait on
until wallening gets merged, and so, time has come. Several things to
still be done, although I know these cleaning PR's are quite a load, so
will wait for this one to get done with first.
## Why It's Good For The Game
Saner spriters, better sprites, less annoyance. Also deleted a whole
load of redundancy this time around, a lot of sprites which existed
simultaniously in two places now got exit their quantum superposition.
## About The Pull Request
1. Removes `SSshutle.order_history`. This list is responsible for
keeping track of all orders delivered through cargo. This list however
is neither used for logging nor has an UI interface for players to
interact with, it just increases in length & memory as orders are made
and goes unused. By removing this list we can now safely delete supply
orders after cargo has shipped them thus saving memory
2. Mining orders & Material orders now delete their supply packs when
their supply orders are deleted to properly cleanup memory. These 2 are
special orders that generate their own unique supply packs that is not
part of the custom `SSshuttle.supply_packs` list so it won't cause any
issues
3. Removes `SSeconomy.export_total` & `SSeconomy.import_total`. Nobody
used these vars so no reason to keep them around.
## Changelog
🆑
code: removed order history, import & export value from cargo & economy
subsystems. Allow supply packs to be properly deleted. In general memory
savings
/🆑
## About The Pull Request
Continuation of https://github.com/tgstation/tgstation/pull/77946, I
missed quite a few of these it seems.
## Why It's Good For The Game
Stop the spread of these typos!!
## Changelog
Nothing player facing
* Fixes limbgrower and mining order console UI (#76755)
## About The Pull Request
Fixes the alien limbgrower UI from repeating itself
Fixes mining order console UI preventing you from ordering more than 20
items and ordering negative numbers of items by using the buttons for
remove_one and add_one
Closes#74875Closes#76767
## Why It's Good For The Game
Makes it easier to use and look at
Fixes being able to order more items or get them for free from the
mining order conso;e
## Changelog
🆑
fix: Fixed the alien limbgrower UI
fix: Fixed being able to order negative or more than 20 items in mining
order console
/🆑
* Fixes limbgrower and mining order console UI
---------
Co-authored-by: SirNooben <132080629+SirNooben@users.noreply.github.com>
## About The Pull Request
Fixes the alien limbgrower UI from repeating itself
Fixes mining order console UI preventing you from ordering more than 20
items and ordering negative numbers of items by using the buttons for
remove_one and add_one
Closes#74875Closes#76767
## Why It's Good For The Game
Makes it easier to use and look at
Fixes being able to order more items or get them for free from the
mining order conso;e
## Changelog
🆑
fix: Fixed the alien limbgrower UI
fix: Fixed being able to order negative or more than 20 items in mining
order console
/🆑
* Remove initial 500 balance on mining point cards to fix infinite mining points exploit (#76769)
## About The Pull Request
Fixes#76768
## Why It's Good For The Game
The idea is you put the amount of points of cards you want on the card
after buying it. This has the added benefit of making it easier to
transfer smaller amounts of points, since you don't need 500 points to
buy the card.
## Changelog
🆑
fix: Removed initial 500 point balance on mining point transfer cards.
Load them up with points instead.
add: Added mining point transfer cards to mining lockers.
del: Removed mining point transfer cards from mining equipment vendor.
/🆑
* Remove initial 500 balance on mining point cards to fix infinite mining points exploit
---------
Co-authored-by: BlueMemesauce <47338680+BlueMemesauce@users.noreply.github.com>
## About The Pull Request
Fixes#76768
## Why It's Good For The Game
The idea is you put the amount of points of cards you want on the card
after buying it. This has the added benefit of making it easier to
transfer smaller amounts of points, since you don't need 500 points to
buy the card.
## Changelog
🆑
fix: Removed initial 500 point balance on mining point transfer cards.
Load them up with points instead.
add: Added mining point transfer cards to mining lockers.
del: Removed mining point transfer cards from mining equipment vendor.
/🆑
## About The Pull Request
This'll prevent weird "above the max by accident" cases, and also uses
defines instead of hardcoded stuff. This code is often duped, wish we
had a better way of handling it.
Oh also removes a few safety copies before for loops that aren't
actually needed (for x in list copies the list)
## Why It's Good For The Game
Better UX, slightly saner code
* fixes produce console bluescreening when viewing it as ghost (#74897)
## About The Pull Request
the return was too early
## Why It's Good For The Game
fixes produce console bluescreening when viewing it as ghost
## Changelog
🆑
fix: fixes produce console bluescreening when viewing it as ghost
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* fixes produce console bluescreening when viewing it as ghost
---------
Co-authored-by: SMOSMOSMOSMOSMO <95004236+SmoSmoSmoSmok@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
## About The Pull Request
the return was too early
## Why It's Good For The Game
fixes produce console bluescreening when viewing it as ghost
## Changelog
🆑
fix: fixes produce console bluescreening when viewing it as ghost
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* [NO GBP] Wording & Rounding tweaks for produce console (#74893)
1. Rewords "Total Cost" to just "Total" so text does not overflow to the
next line & improves readability
2. Now just one failure message if you don't have enough points for
cargo/express mode to keep it consistent
3. Rounds the total cost before confirming your final order so you don't
have decimal values left in your bank account/mining points
* [NO GBP] Wording & Rounding tweaks for produce console
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
1. Rewords "Total Cost" to just "Total" so text does not overflow to the
next line & improves readability
2. Now just one failure message if you don't have enough points for
cargo/express mode to keep it consistent
3. Rounds the total cost before confirming your final order so you don't
have decimal values left in your bank account/mining points
* Produce consoles now grey out their buttons if the cost criteria aren't met & have dynamic window sizes. (#74773)
## About The Pull Request
Fixes#74645Fixes#72536
If your total order is less than 200 credits/mining points then the
purchase button is greyed out telling you just that

Bonus. If your cart is empty then the express button is also greyed out
telling you to order atleast 1 item

Even more bonus, the width of the window is dynamically adjusted based
on the number of order categories so golem mining console is no longer
obscured

Code changes
1. `var/cargo_cost_multiplier` : as the name implies is now the cost
applied to all stuff ordered through cargo. it takes top
priority(because we assume it will always be cheaper than express) and
all item costs are multiplied with this before being displayed on the
UI. So mining console has this value as 0.65 as intended
2. `proc/retrive_points()` : is used to retrieve the type of points this
console is dealing with from the mobs id card, so for mining it returns
the card's mining point's, for others it returns the card's cash, if you
want to introduce a new currency type and make your own console for it,
make sure you override this proc
3. `proc/subtract_points()` : is used to subtract these points(money,
mining points) from the id card after the order is confirmed, return
true if it was successful, false otherwise to cancel the order
## Changelog
🆑
fix: order consoles cancelling order's less than 200 but still
subtracting money, mining points from the player
code: multiplier for all shipments made through cargo
refactor: 2 new procs retrive_points() & subtract_points() to dela with
different types
/🆑
* Produce consoles now grey out their buttons if the cost criteria aren't met & have dynamic window sizes.
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
## About The Pull Request
Fixes#74645Fixes#72536
If your total order is less than 200 credits/mining points then the
purchase button is greyed out telling you just that

Bonus. If your cart is empty then the express button is also greyed out
telling you to order atleast 1 item

Even more bonus, the width of the window is dynamically adjusted based
on the number of order categories so golem mining console is no longer
obscured

Code changes
1. `var/cargo_cost_multiplier` : as the name implies is now the cost
applied to all stuff ordered through cargo. it takes top
priority(because we assume it will always be cheaper than express) and
all item costs are multiplied with this before being displayed on the
UI. So mining console has this value as 0.65 as intended
2. `proc/retrive_points()` : is used to retrieve the type of points this
console is dealing with from the mobs id card, so for mining it returns
the card's mining point's, for others it returns the card's cash, if you
want to introduce a new currency type and make your own console for it,
make sure you override this proc
3. `proc/subtract_points()` : is used to subtract these points(money,
mining points) from the id card after the order is confirmed, return
true if it was successful, false otherwise to cancel the order
## Changelog
🆑
fix: order consoles cancelling order's less than 200 but still
subtracting money, mining points from the player
code: multiplier for all shipments made through cargo
refactor: 2 new procs retrive_points() & subtract_points() to dela with
different types
/🆑
# MAINTAINER - USE THE BUTTON THAT SAYS "MERGE MASTER" THEN SET THE PR
TO AUTO-MERGE! IT'S MUCH EASIER FOR ME TO FIX THINGS BEFORE THEY SKEW
RATHER THAN AFTER THE FACT.
## About The Pull Request
Hey there,
This took a while to do, but here's the gist:
Python file now regexes every file in `/code` except for those that have
some valid reason to be tacking on more global defines. Some of those
reasons are simply just that I don't have the time right now (doing what
you see in this PR took a few hours) to refactor and parse what should
belong and what should be thrown out. For the time being though, this PR
will at least _halt_ people making the mistake of not `#undef`ing any
files they `#define` "locally", or within the scope of a file.
Most people forget to do this and this leads to a lot of mess later on
due to how many variables can be unmanaged on the global level. I've
made this mistake, you've made this mistake, it's a common thing. Let's
automatically check for it so it can be fixed no-stress.
Scenarios this PR corrects:
* Forgetting to undef a define but undeffing others.
* Not undeffing any defines in your file.
* Earmarking a define as a "file local" define, but not defining it.
* Having a define be a "file local" define, but having it be used
elsewhere.
* Having a "local" define not even be in the file that it only shows up
in.
* Having a completely unused define*
(* I kept some of these because they seemed important... Others were
junked.)
## Why It's Good For The Game
If you wanna use it across multiple files, no reason to not make it a
global define (maybe there's a few reasons but let's assume that this is
the 95% case).
Let me know if you don't like how I re-arranged some of the defines and
how you'd rather see it be implemented, and I'd be happy to do that.
This was mostly just "eh does it need it or not" sorta stuff.
I used a pretty cool way to detect if we should use the standardized
GitHub "error" output, you can see the results of that here
https://github.com/san7890/bruhstation/actions/runs/4549766579/jobs/8022186846#step:7:792
## Changelog
Nothing that really concerns players.
(I fixed up all this stuff using vscode, no regexes beyond what you see
in the python script. sorry downstreams)