Commit Graph

40462 Commits

Author SHA1 Message Date
Youtubeboy139 cd4af66ea2 99 bottles of beer on the wall... (#76274)
## About The Pull Request

Adds in new, shiny, beer bottle sprites that look more like bottles than
what was previously available. Also adds in a new Two-Time root beer
bottle sprite cause it never existed to begin with. As well as a brand
new Carp Lite bottle.

![Screenshot 2023-06-23
001925](https://github.com/tgstation/tgstation/assets/609886/be2cf6e5-ef51-4ad9-a283-6dc3fd988f04)
## Why It's Good For The Game
Better looking sprites. Simple as that. Also fixes a missing sprite and
adds a different sprite for a variation to beer.
## Changelog
🆑
image: Added new Space Beer sprite
image: Added new Carp Lite sprite
image: Added new Ale Bottle sprite
image: Added new Two-Time Root Beer sprite
/🆑
2023-06-23 20:19:08 -06:00
Zephyr 2f26973584 don't infinitely recurse on attempting to log after shutdown (#76229) 2023-06-23 20:13:34 -06:00
Kyle Spier-Swenson a5c32321ab [s] Require affirmative input from the admin to run sdql2 verbs (#76276)
Powerful or dangerous admin verbs should have some prompt or forced
runtime input to lower the attack surface once somebody finds a href
exploit since topics can trigger commands and verbs.
2023-06-23 20:12:30 -06:00
tattle d81eaae90c Build Mode Preview + better help text (#76095)
## About The Pull Request
Gives `Adv Build Mode` and `Fill` an item preview, and puts the help
text for build mode modes into an examine block.


https://github.com/tgstation/tgstation/assets/66640614/6751c721-6ddd-4761-8311-fb002ea905ac


![image](https://github.com/tgstation/tgstation/assets/66640614/3f6fe986-1767-4639-94d3-523f1039c947)


![image](https://github.com/tgstation/tgstation/assets/66640614/a7eae938-a575-46bd-b00e-865f04e0de20)


## Why It's Good For The Game
It's good to see what you're doing. 

## Changelog
🆑 Tattle
admin: build mode help text is in an examine block
admin: adv build mode and fill now have item previews
/🆑

---------

Co-authored-by: tattle <article.disaster@gmail.com>
Co-authored-by: san7890 <the@san7890.com>
2023-06-23 20:04:18 -06:00
lessthanthree b3d040fb2f Enhanced delam/tram counter (#75699)
## About The Pull Request

Gives a makeover to the delam and tram hit counters and adds some new
functionality.


![image](https://github.com/tgstation/tgstation/assets/83487515/cbbeb0df-d205-47ed-be6e-e49cea8c4f12)


![image](https://github.com/tgstation/tgstation/assets/83487515/e042d5e8-cb8b-4feb-b3f0-02365cd8fdbf)


![image](https://github.com/tgstation/tgstation/assets/83487515/c2831f7f-639d-40a8-a74f-d4894a4f67c6)


https://github.com/tgstation/tgstation/assets/83487515/871fb0fd-8b92-45c5-877b-c122a034608c

- The signs now remember your last 'best' score and show the crew if
they're trending in the right or wrong direction since the last
incident.
- Safety Moth PSA panel. In the future this will dynamically change
based on the current events, or function as a status display.
- Tram hit counters no longer waste processing every tram hit.
Previously each sign independently managed tracking, which meant that
deconstructing or constructing a sign would reset it to 0 and it would
become out of sync with the other signs.
- Can be repaired, EMP'd

## Why It's Good For The Game

Provide a little motivation to reach for that high score. The PSA
changing to for example, find a locker during a delam event.

## Changelog

🆑 LT3
image: Delam and tram flipsigns have been replaced with information
displays
fix: Tram hit count is centrally managed instead of independently on
each sign, so they won't get out of sync
/🆑
2023-06-23 19:29:34 +01:00
jughu 78f3cde148 Nerfs summon stickman spam (#76119)
Weakens stickman summoned from the summon stickman spell.
Its very toxic to play against it only encourages spamming stickmen who
die from 4 laser shots(even after the laser gun buff) This will lower
them to be either 1 hittable or 2 hittable depending what weapon you
have available as exchange of how fast they can be summoned.
Most people who do paper wizard tend to cheese it one or the other way
either trough atmos or having self revives as for example a changeling.

🆑 Improvedname
balance: Weakens summoned stickmen to be 1 or 2 hit
/🆑
2023-06-23 11:04:25 +02:00
Helg2 d248321351 Increases bottle max volume for pill press to 50. (#76217)
## About The Pull Request
Bottle volume was increased but not for pill press.
## Why It's Good For The Game
I mean, it should be this way?
## Changelog
🆑
qol: pill press' max volume for bottles are 50, as the volume of bottles
itself.
/🆑
2023-06-23 10:59:26 +02:00
YehnBeep 9fe9150128 instrument beacons can fit in pockets (#76230)
## About The Pull Request

This makes instrument delivery beacons fit in pockets.

## Why It's Good For The Game

In a round I had both a door remote and an instrument delivery beacon.
The door remote, however, would fit in my pocket, while the instrument
delivery beacon wouldn't. The door remote seems like a far higher impact
item, so it seemed odd to be that the beacon was balanced to take up
much more inventory, and that they use the same graphic makes this feel
counterintuitive.

## Changelog

🆑
qol: Instrument delivery beacons now fit in pockets.
/🆑
2023-06-23 10:58:56 +02:00
necromanceranne 99e8b22a95 Arm implants can be properly EMP'd again; Organic implants will NOT be EMP'd. (#76242)
## About The Pull Request

Reverses the logic of an early return in the EMP proc of arm implants.
Rather than returning if the implant is robotic, it returns if it is
organic.

## Why It's Good For The Game

It appears arm implant emp act was broken for about...like 2 years? But
today, I discovered that my vorpal scythe was EMP vulnerable.

I thought 'Oh someone didn't do a proper check that's an easy fix'

Turns out, robotic implants were immune to EMPs this whole time, but the
very few organic arm implants were vulnerable instead!

Well, it's fixed now. I blame the penguin maint.

## Changelog
🆑
fix: Arm implants properly handle EMPs depending on whether it is
robotic or organic. No longer can you EMP an organic organ!
/🆑
2023-06-23 10:58:25 +02:00
GuillaumePrata 867c217c57 New Wizard spell "branch": Vendormancy (#75679)
## About The Pull Request
New item for wizards, ~~the Staff~~ Scepter of Runic Vendormancy.

With it, you can summon Runic Vending machines to block your enemies,
push them 2 tiles back around the summoning tile, throw the vendors 4
tiles away to squash them or simple detonate the vendors for direct
damage against enemies within a 2 tile range.

The scepter has 3 charges that can be recharged after a "long" channel
so while powerful, it is a tactical weapon and wizards can't directly
steamroll the crew with endless vendors. (Unless they buy multiple
scepters, but that is just funny.)

Also, there is a bug with the throw... I copied how baseball bats deal
with knockback, but they consistently don't push the vendors back, just
spin them on the same tile... I appreciate if anyone has any idea on how
to fix or change that to a better system.

## New changes I made
The vendor has a random set of REAL wizard robes and hat, sandals and a
foam vendor scepter as products to sell now.
This gives the crew some real armor, and if it is considered too much, I
can swap it for the fake versions.
IMO the real clothes work as the perfect bait for the crew to approach
the vendors and get exploded in the process, and while a random
assistant might get real wizard armor to go valid hunt the wizard, the
crew might just mistake them for the real wizard and beat them to death,
which is too funny.
## Why It's Good For The Game

![vendormancerPR](https://github.com/tgstation/tgstation/assets/55374212/f9d98f3e-5916-4a17-987e-249f4cdb7185)

About a year ago I played Stoneshard, and it has such an amazing
Geomancy Wizard that I wanted to port some of its gameplay to SS13 as
our wizards, while funny and destructive, are kinda simple to play...

Summoning and blowing up rocks was nice, but I randomly had the idea of
summoning Vendors while at work and vendors squashing people has become
such an iconic SS13 thing to me that I had to stop being lazy and start
working on this.

Something, something, enviromental combat wizard.
## Changelog
Gonna polish the changelog later too...
🆑 Guillaume Prata
add: New Wizard spell branch: Vendormacy! Summon runic vending machines
with your Vending Scepter, force push them on your enemies to squish
them or blow them up while they are busy buying from the machines.
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
2023-06-23 08:56:18 +00:00
Tim 2a19963297 Add UI preference menus for AI hologram and status displays (#75740)
This adds two new dropdown menus for AI preferences with holograms and
status displays. It also sets these preferences if admins transform a
player into an AI.
2023-06-23 08:43:26 +00:00
SyncIt21 674096e74e Don't use usr var inside ui_act() in cargo computer (#76007)
## About The Pull Request

As explained in
https://github.com/tgstation/tgstation/pull/74696#discussion_r1166099547

> no, bad 🗞️
> if this is in ui_act the ui datum holds a reference to the user mob,
use that. We do not guarantee that ui_act will be called off topic()
forever (it runs at the end of ticks so is possibly gonna get verb
delay'd at some point)

So yeah let's do that

## Changelog
🆑
code: makes sure cargo computer doesn't use `usr` var inside `ui_act()`
which could cause undefined behaviour
/🆑
2023-06-23 10:06:23 +02:00
TheVekter 3396d13ed5 Adds shark plushie, removes pickle Rick plushie (#76206)
## About The Pull Request
Come on, look at it. It's adorable.


![image](https://github.com/tgstation/tgstation/assets/7019927/16b30cc4-b416-442f-a8b8-e134692c580a)

![image](https://github.com/tgstation/tgstation/assets/7019927/4ae4bd77-0621-4ca1-a858-f64faffde9aa)
Sprites courtesy of INFRARED_BARON

Available for purchase from Cargo as a goodie.

Acts as a replacement for the pickle Rick plush which is going to Brazil
where it belongs


![image](https://github.com/tgstation/tgstation/assets/7019927/0c5c0a3b-6966-4b27-aba1-0c4a1c5d3c34)

## Why It's Good For The Game
Everyone needs a shark plushie. Happy pride!

## Changelog
🆑
add: Adds a shark plush, obtainable from Cargo for a nominal fee.
del: Removed plush cucumber by popular request. Cucumber has been
replaced by the shark plushie in arcade machines.
/🆑
2023-06-22 12:12:29 -04:00
ChungusGamer666 f030b3b5aa SPECIES NUKING 2023: Refactors a bunch of species traits into flags for the head bodypart (#76074)
## About The Pull Request

Title. 
I saw a comment on psyker code complaining about these species traits
(which admittedly, they suck) and heeded the call to turn all of this
crap into something defined almost entirely by the head bodypart.

## Why It's Good For The Game

Potential to simplify species code further in the future, by delegating
more visuals to bodyparts, which is where most of them should be
handled.

## Changelog

Should not be player facing, unless I fucked up.

---------

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2023-06-22 10:23:19 +02:00
LemonInTheDark 5c032cc098 Adds border smoothing! (Look ma I'm upstreaming) (#76134)
## About The Pull Request

Ok so we currently have 1 (count em) border object that wants to smooth
with other border objects. That's the tram window.

It currently does this manually, via map edits, but that's kinda crappy
so lets be better.

This pr adds a new smoothing mode to handle border objects. 
Unlike other smoothing modes, it returns a bitfield of directions the
border object connects in.

I do this by memorizing a calculation of which dirs "connect" at init,
and reading out of a global list with border object direction, direction
between objects, and if it's a border object, the other object's dir.

I'm doing this primarily because it's become useful for wallening (a
spriter saw the tram thing and is doing the same thing to pod windows,
and I want to support that)

I do think it's potentially useful in other applications too tho, and I
like dehardcoding tram windows.

Also fun bonus (or maybe downside), it's nearly 0 cost because I pulled
the bitmask smoothing define into 2 subdefines, and am swapping the
handler one out to do what I want.
Oh also I got rid of a for loop in smoothing code, redundant and costs
time in list iteration

[Moves tram windows over to the new border object
smoothing](https://github.com/tgstation/tgstation/commit/114873679c94d680788edee9665fa18dba8108c0)

Also replaces some typepath chicanery with a setDir override, for
redundancy in future
Oh and there's a update paths script too, to be nice

## Why It's Good For The Game

More visual possibility in future, fixes a hack we have currently, and
makes some spriters happy.

## Changelog
🆑
fix: Dehardcodes some stuff with tram windows, they'll be easier to map
with now
refactor: Border objects can now smooth with each other. I'm sure
something cool will come of this
/🆑
2023-06-22 00:05:44 -06:00
LemonInTheDark be6b3cf330 Moves ui references from the tgui subsystem to datums themselves (#76215)
## About The Pull Request

Unused vars have 0 memory cost, and the ref and list lookup here is
REALLY expensive, for both init and foam spreading.

## Why It's Good For The Game

Saves 0.2s off a station flood on meta, and 0.17s off init. More time in
other qdel heavy areas
Pulled off #76104 for the sake of cleanliness
2023-06-21 23:55:04 -06:00
LemonInTheDark a8e16030f8 Optimizes timer insertion by 80% (W QDEL_IN micro) (#76214)
<!-- 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

[Reduces timer insertion cost by
80%](https://github.com/tgstation/tgstation/commit/c9e5b285ed74e60108fddd3f6b45d6d3995c92a8)

Timer name generation involved a LOT of string shit, some in ways where
the string only existed for a moment.
This costs a good bit of time, and can be reduced with only minimal
impacts on the end product, so let's do that. Includes a compile flag to
flip it back if we ever have trouble in future.

This is about 0.1s off init, since we do a lot of timer stuff then too

[Removes STOPPABLE flag from QDEL_IN, moves it to a bespoke
macro](https://github.com/tgstation/tgstation/commit/e7a5d7f2a78fcf0dce4742ced258c9505411b202)

Its a waste most of the time, tho I would LOVE to analyze at compile
time to work out if we care
## Why It's Good For The Game

I like it when we don't spend all of our cpu time just setting the name
var on timers. that's good and not bad.
This saves time fucking everywhere. 15% off explosions, 0.1 seconds off
init, bunch of time off foam. it's just good.

Cherry picked out of #76104 since that was too cluttered (sannnnnn)

<!-- 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. -->

<!-- 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. -->
2023-06-21 23:54:20 -06:00
LemonInTheDark cf92862daf Fixes a runtime in atom init management (#76241)
## About The Pull Request

The issue was map verification calling build_cache, which uses the
define which enables/disables init values on sleep. We avoid this by
using a var on map datums and using that to enable the init value
modification only when we are actually loading stuff.

Also fixes a bug in clear_tracked_initialize() where it being called
with no values lead to bad values/potentially overriding initialized on
accident.

Also also I forgot how for loops worked so this would not have worked
regardless

## Why It's Good For The Game

Code should like, function
2023-06-21 20:20:49 -07:00
GuillaumePrata 58f1cc468d Atmos MODsuits now have quick carry module pre installed. (#76180)
#72736 added the firefighter gloves to atmos techs which lets them quick
carry wounded people faster.
Firefighting RP is fun, so this PR just gives the quick carry module to
the Atmos MODsuit. Now they don't miss on the best part of the job!!!
2023-06-21 14:20:28 -05:00
Sealed101 497a9985d4 Makes sechailers/SWAT masks work with gas filters (#76147)
it was missing a GAS_FILTERING lmao lol even

## Why It's Good For The Game
fixes #75218
that also probably means that plasmeme special filters in the sechailers
were not operational lmao

## Changelog
🆑
fix: fixed sechailers/SWAT masks not using the installed air filter
/🆑
2023-06-21 12:15:46 -07:00
Sealed101 ab98d8a67a [NO GBP] adjust mecha generator consumption values to use SHEET_MATERIAL_AMOUNT (#76143)
i should have adjusted these in my previous PR that was touching this
equipment lol thus the no gbp

also makes the `ui_act()` not use `usr`

if my calculations are correct the consumption rates per tick should be
the same — 5% of a sheet when active and 0.65% when idle

## Why It's Good For The Game
fixes #76132

## Changelog
🆑
fix: fixed mecha generators using way too much fuel due to using the old
values of material units per sheet
/🆑
2023-06-21 12:14:25 -07:00
MrMelbert f1c6d9d15e Fix bileworm runtime targeting non-living mobs (#76201)
## About The Pull Request

Targeting datums will target non-living movables which have livings
inside, such as mechas.

So this casting to living as a bad assumption.

## Changelog

🆑 Melbert
fix: Fix runtimes from Bileworms targeting mechas (or other objects
people are hiding in)
/🆑
2023-06-21 15:09:17 -04:00
MrMelbert 024c1c331c Fix guns without magazines loaded making no fire sounds (#76196)
## About The Pull Request

Runtimed from `90 / null` here. 
What's the point in a `?` sanity check if you don't default it to any
values? Come on guys

## Why It's Good For The Game

Bugfix

## Changelog

🆑 Melbert
fix: Fix shooting guns without a magazine loaded making no fire sound
effect
/🆑
2023-06-21 15:08:58 -04:00
LemonInTheDark 61d046d2b6 Fully fixes atom init desyncs (#76179)
## About The Pull Request

The old system was... ok, but the stack trace was unfortuante, and the
potential to double remove was silly.
Let's use a list of source, value instead, to block overremovals and
properly support different load states

## Why It's Good For The Game

Prevents a bug a goodhearted bagilmin showed me where shuttles would
randomly just fail to load.
Calling clear twice should not be a failure

## Changelog
🆑
fix: Maps loaded post init will no longer randomly enter a failed state.
Hopefully.
/🆑
2023-06-21 15:08:45 -04:00
MrMelbert de91a75c83 Fix microwave runtime frrom EMP / wire pulsing (#76200)
## About The Pull Request

Microwaves can be triggered by having their wires pulsed, such as EMPing
or being pulsed by a signaler.
This results in the cook cycle starting, but without passing a `cooker`.
This is valid behavior, so I'm patching these runtimes with some sanity
checks. Also adding documentation for the future.

## Why It's Good For The Game

Bugfix

## Changelog

🆑 Melbert
fix: Fixed EMP'd / signaled microwaves not running as they should
/🆑
2023-06-21 15:08:09 -04:00
kawoppi 0223b10345 adds (space) lizard inhands and onheads (#76198)
## About The Pull Request
The axolotl sprites were based on the lizard sprites so now the axolotl
inhands and onheads will fuel the lizard equivalents to complete the
circle of life.

**Lizard inhands and onheads:**

![lizarbs](https://github.com/tgstation/tgstation/assets/94711066/523c2e1f-b0c8-41ac-9596-7d315381f743)
one of the sprites had a mistake and I didn't wanna redo the entire
picture so here's the updated sprite:

![lizarbfromback](https://github.com/tgstation/tgstation/assets/94711066/a978ea92-6205-42d5-9ed5-b8ae98375c9e)


**Space lizard inhands and onheads:**

![lizarbsfromspace](https://github.com/tgstation/tgstation/assets/94711066/6175a3a4-004f-4abe-b4f3-7f948cb0120f)


The held weight of lizards has been changed to tiny because they look
like they could fit into your pocket. This value wasn't specified before
and it seems to default to normal weight, which seems a bit much for a
creature that's about the same size as a mouse.
## Why It's Good For The Game
More cute little animals to hold on your hands. And they can fit into
your pockets now too!
## Changelog
🆑
image: added lizard inhand- and onhead sprites
image: added space lizard inhand- and onhead sprites
fix: changed held weight class of lizards from normal to tiny
/🆑
2023-06-21 15:06:09 -04:00
SyncIt21 903eea5a69 Air Sensor are Craftable, Removed from RPD UI, Have New Linking System (#75869)
## About The Pull Request

**1. Craftable & Removed from RPD UI**

1. Air sensor's are now craftable
2. You can turn them on/off with hand. Even though turning off the
sensor will change it to a diffrent type[from `obj/machinery/air_sensor`
-> `obj/item/air_sensor`] it's I/O port's are sill preserved when
turning them on although you have to assign it a new name again which is
usefull if you want to change the sensor's purpose in game.
3. They can now only be deconstructed by a welding tool and should be
wrenched in place to turn them on.
4. Turned off air sensor's once unwrenched can be picked up like any
regular item
5. Air sensor's are removed from the RPD UI because they don't go with
pipes so it logically doesn't make sense to group them with pipe related
device's

Removed unused code in the process



https://github.com/tgstation/tgstation/assets/110812394/3439a0f3-9c48-43ac-8f4b-98135435ec13

**2. New ID System**
The problem with air sensor's is that each sensor is assigned a unique
ID which is then stored in `GLOB.objects_by_id_tag` list. Each sensor
name it's assigned based on the gas it's trying to sense(for naming only
even though it can detect other gases) So if 2 sensor's having the same
ID are made they will overwrite each other in this list leaving one
sensor orphaned in the world which cannot be referenced because it's
value was overwritten by a new sensor having the same ID in this list.

The Solution? Rather than having all atmos computer's look up sensor's
from this 1 global list make each computer keep track of all sensor's
it's responsible for in it's own local list[which i called
`connected_sensor's`] this way 2 sensor's can have randomly generated
names in the global `GLOB.objects_by_id_tag` list but the computer will
know what sensor to look up in this list based on the stored sensor ID's
in the `connected_sensor's` list

Basically what i am getting at is now you can make as many air sensor's
as you wish but you will know have to connect that sensor to the
computer using a multitool.
Notice in the video how i made 2 sensor's called `Supermatter Chamber
Sensor's`] and every time you try to connect an sensor which has the
same name[`Supermatter Chamber Sensor's` in this case] they will
ovewrite the old sensor in it's list as shown in the video



https://github.com/tgstation/tgstation/assets/110812394/b5283c3b-c8a1-4b94-a6a8-8ba7a0007615


**Why it's good for the game**
![Screenshot
(247)](https://github.com/tgstation/tgstation/assets/110812394/6a7eb501-4414-4f01-a6ef-3e9b70f4af06)

I agree. Also air sensor's taking up a full Tab/Section in the RPD UI
wasted a lot of UI space so that's removed now. Also making the air
sensor's wrenchable and pickable item's was also requested in
https://github.com/tgstation/tgstation/pull/72019#issuecomment-1355499873
so you relate them to device's like meter's

Another huge issue was that the number of air sensor's you can make in
the world was limited because each sensor in the world must have a
unique ID but that's finally fixed now so yeah make as many sensor's as
you want.

## Changelog
🆑
add: air sensor's are craftable
refactor: air sensor's can now be turned off by hand and can only be
deconstructed by a welding tool
refactor: removed `Params()` proc
qol: unwrenched air sensors can be picked up & recycled like regular
item's
del: air sensor are removed from the RPD UI
qol: air sensor's are no longer restricted by their unique ID's which
mean you can craft as many air sensors as you want.
/🆑

---------

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2023-06-21 18:25:34 +00:00
Ghom 85b72e4b30 The honorbound trauma now makes use of the relay_attackers element. (#75908)
## About The Pull Request
Whoever made the relay_attackers element, thank you for streamlining the
bucketload of signals that had to be registered for everything that
counted as an attack. It's very much needed.

Beside, I only had to add a few flags to be sent by the
ATOM_WAS_ATTACKED signal, so that stamina and shoving doesn't
automatically make the attacker guilty.

Oh, one more thing I have forgot to mention. Currently medical staff is
immune to "guilt" altogether, while the comments suggest they should be
affected by declaration but not attacking. This PR also covers that
issue.

## Why It's Good For The Game
This will fix #75904.

## Changelog

🆑
fix: Fixed the honourbound trauma not reacting to attacks from basic
mobs
fix: Fixed the "Declare Evil" spell not working against the medical
department.
/🆑
2023-06-21 06:01:09 -07:00
OrionTheFox ee53c92a97 [NO GBP] Fixes papercutter's Exited() proc (#76153)
## About The Pull Request
#76131 was merged instead of drafted when asking for this change

Look at this the items get removed right yippee yahoo

![dreamseeker_RJx37zbvzN](https://github.com/tgstation/tgstation/assets/76465278/e68e11d7-212e-42de-baf9-01890b1955ad)
## Why It's Good For The Game
~~maintainer told me to~~ Makes removing stuff from the cutter actually
work right
## Changelog
No player-facing changes
2023-06-21 04:25:06 -04:00
necromanceranne 64eae49042 Replaces the Reaper Scythe with the Vorpal Scythe (also the Morbid trait) (#75948)
adds the Vorpal Scythe, a special chaplain null rod variant, replacing
the Reaper Scythe, a not so special null rod variant.

When you choose the vorpal scythe, it comes as a shard that you implant
into your arm, similar to a cursed katana.

Once implanted, you can draw it at any time like an arm implant.
However, sheathing it again presents some problems. (Also, implanting
the organ gives you ``TRAIT_MORBID``, which I'll explain in a bit)

The Vorpal Scythe has 10 force, one of the weakest null rod variants for
force that isn't a joke null rod. However, it has exceptional armor pen
and also has 2 tiles of reach. So quite unique.

It also has a special beheading ability when you right-click someone.
This borrows some code from amputation shears, functioning pretty
similarly, except with a few additional ways to speed up the action and
restrictions. (It takes 15 seconds baseline to behead someone standing
and conscious, and speeds up or slows down based on factors such as
incapacitation and whether or not our scythe is already empowered)

When you successfully behead someone with a mind, the vorpal scythe
gains 20 force and can be safely stowed and drawn for 2 minutes.
Performing more death knells like this will reset the timer.

If it has not performed its 'death knell', or you haven't hit a living
mob, then it will cause severe damage to you if you ever try and stow it
(or its forced back into your arm). Just hitting a mob with the scythe
will sate it for 4 minutes. Unless it is a non-player monkey. Horrible
things. Just hitting mobs does not reset the timer on empowerment.

What this means is that the chaplain may be more hesitant to simply draw
their weapon on people. It also means that potentially, the chaplain
will not always have magic immunity, since they may end up stowing the
weapon away and be reluctant to draw it on a whim without either taking
damage for sheathing it without hitting something, or dealing with
having one less hand up until they can.

While empowerment only happens when you behead mobs with a mind,
beheading monkeyhumans and other mindless humans subtypes causes their
heads to become haunted! It's mostly harmless and largely just SpOoKy.
We don't want heads with actual players in them to go floating off to
space. (Does not work on monkey heads for sanity reasons)

When you have the Morbid trait, you think creepy stuff is cool and hate
saving peoples lives. You get a mood boost from graverobbing, autopsies,
dissections, amputations (including beheadings with the scythe and
amputations with the shears) and revival surgery. However, you get a
mood penalty when you tend wounds on the living, as well as a hefty
penalty when you perform CPR or defibrillate someone. I was thinking
Victor Frankenstein when I was choosing which actions had an associated
moodlet, so anything that I might have missed would be appreciated.

You also count as potentially cool with regards to haunted objects.
Ghosts think you're neat. (Revenants probably will still kill you if
they had the chance)
2023-06-21 04:37:18 +00:00
carlarctg b7ac832cd2 Adds wound armor to ALL jumpsuits that were missing it (#75956)
## About The Pull Request

Adds wound armor to ALL jumpsuits that were missing it.

Every jumpsuit, by default, has 5 wound armor. However, because for some
godforsaken reason armor datums don't use subtypes (seriously, the
fuck?), the vast majority of jumpsuits weren't updated to have anything
in case they overrode the base armor.

This includes critical oversights such as any nonstandard jumpsuit meant
to be armored (Tracksuits, turtlenecks, admin suit, tgmc suit). This is
especially critical a problem on nuclear operatives, who face a lot of
combat every round and need that wound armor.

Any nonstandard jumpsuit that also protects from departmental hazards
doesn't recieve the wound armor, this is seemingly reasonable with, say,
medical jumpsuits, but starts to get weird when it includes engineering,
botany, the RD, CMO, and CE..

Plasmaman envirosuits also don't by default. This may or may not be on
purpose but I added it on them just in case.

Armored jumpsuits that didn't have the wound resistance now have 10,
instead of the base 5, since they're meant to be, well, armored. This
might also make durathread useful for something (lol, as if)

## Why It's Good For The Game

Consistency. It's very inconsistent that 'wound' armor randomly pops in
and out of places ingame. It requires you to think like a space whale to
figure out what's the Best Combat Uniform rather than picking what
SHOULD be the right choices.

## Changelog

🆑
fix: Adds wound armor to ALL jumpsuits that were missing it
/🆑
2023-06-20 22:01:46 -04:00
cnleth 38983ee289 Fix rockets embedding in people (#76136)
## About The Pull Request
Rockets can't embed anymore and are now blunt objects (so they cause
blunt wounds instead)
This is what could happen before:

![rocket_embed](https://github.com/tgstation/tgstation/assets/113535457/b1213460-fb87-4c28-bde9-454a271a38fc)
## Why It's Good For The Game
I've been told that the embedding is not intentional, so this PR fixes
an oversight
## Changelog
🆑
fix: Rockets can no longer embed in people and cause blunt wounds
instead of piercing
/🆑
2023-06-20 21:57:21 -04:00
Helg2 8a2e6f0eb8 Autolathe, protolathe, mech fab and comp printer now use defines for matter bins values. Also some production ui do. (#76020)
Changed hardcoded matter bins values to use defined
`SHEET_MATERIAL_AMOUNT` for following stuff: autolathe, protolathe, mech
fabricator and component printer.

`Material Access Bar` and `MaterialIcon` used for protolathes, circuit
printers and etc. now also use defined `SHEET_MATERIAL_AMOUNT`, via
static ui data, to prevent same issues in future.

Also changed some notes in /// parts just because why not.
2023-06-21 01:08:51 +00:00
SyncIt21 38cd79d884 Modular machinery computer UI opens again (#76187)
**Problem Reproduction**
1. Find/Make any instance of `/obj/machinery/modular_computer`
2. Try opening its UI
3. Doesn't work

**The Solution**
Assign the processor's `physical` var with the computer that it's inside
in.
2023-06-20 19:07:27 +00:00
carlarctg 3dac29f828 Fixes and adds an element for TC reimbursement. (#75816)
## About The Pull Request

Fixed being unable to reimburse syndicate spawners via uplinks. This
includes nukie reinforcements, cyborgs, and holoparasite injectors.

Turned TC reimbursement into a bespoke element.

Tuned demon's blood message when there's no ghosts to pick to be a
little more understandable and sensible.

## Why It's Good For The Game

> Fixed being unable to reimburse syndicate spawners via uplinks. This
includes nukie reinforcements, cyborgs, and holoparasite injectors.

This bug was, to my knowledge, introduced with bubby traitors when
uplinks were turned into components, as the code no longer supported it
due to what I presume to be an oversight, since there's plenty of
references to it ingame still.

> Turned TC reimbursement into a bespoke element.

Seemed like the best way of doing this. Since for some godforsaken
reason attackby() is one-way only (no attackto() ), the uplink component
sends a signal to any item hit with it instead.

## Changelog

🆑
fix: Fixed being unable to reimburse syndicate spawners via uplinks.
This includes nukie reinforcements, cyborgs, and holoparasite injectors.
refactor: Turned TC reimbursement into a bespoke element.
spellcheck: Tuned demon's blood message when there's no ghosts to pick
to be a little more understandable and sensible.
/🆑
2023-06-20 16:51:52 +01:00
Zephyr 6977a041a9 Do not add external organs if not needed and not rendered. (#75963) 2023-06-20 06:48:45 +00:00
ChungusGamer666 b9b19bd6e1 Lighting object oddities (#76009)
## About The Pull Request

Fire stacks status effect no longer uses a weakref for the mob light, I
am pretty sure there was no real reason to use a weakref there.
Deleted weird luminescent glow dummy, now it just uses the standard
moblight obj.
Put all /obj/effect/dummy/lighting_obj together in a single file and
added a comment explaining why they exist.

(I severely dislike the /obj/effect/dummy typepath, but I am very much
unsure if just replacing all of them with /obj/effect/abstract would
break shit)

## Why It's Good For The Game

Code organization good
2023-06-20 06:08:29 +00:00
Couls c0e46fabf7 Standardize Welder Fuel Usage (#76021)
Remove welder fuel usage from all actions except attacking and leaving
it on
most welder tasks require a minimum of 1u of fuel, some longer tasks
require a minimum of 2 or 3u welders now drain 1u every 5 seconds
they're active
## About The Pull Request
Prior to this PR welder fuel usage was random, a lot of tasks didn't use
any welder fuel and welders were basically near infinite so long as you
didn't use them for combat, it took 26 seconds of activity to drain 1u
of fuel, that means an emergency welder alone could run for 5 minutes
straight before needing a refuel

After this PR all welders will drain 1u every 5 seconds instead of every
26 seconds, but welding objects won't require extra fuel anymore, making
the fuel usage much more consistent.

resolves #55018
## Why It's Good For The Game
Actually makes fuel tanks useful and relevant without making it
obnoxious to do repetitive quick tasks like turn rods into plates,
there's actually a reason to upgrade off the emergency welder now since
it lasts 50 seconds rather than 5 minutes
## Changelog
🆑
qol: Welders now have a more consistent fuel usage
/🆑
2023-06-19 23:01:10 -07:00
John Willard 8229972398 Tablet apps are now deleted when necessary & removes console preset. (#75863)
## About The Pull Request

Apps now properly delete themselves when removed, so they don't exist in
nullspace anymore.
Chat client now actually updates the uid, because its New() didn't call
parent.
Deletes the 'console' subtype of modular computer
Updates how downloading and transferring files are handled
Fixes being able to infinitely upload apps to a disk

## Why It's Good For The Game

Fixes some more bugs I found with apps and prevents spamming apps in a
disk.

## Changelog

🆑
fix: Maintenance data disks now properly transfer from PC to disk
fix: Disks can no longer be flooded with the same app repeatedly.
/🆑
2023-06-19 22:59:09 -07:00
Hoolny c37740f97f Gives Holywatermelon inhand sprites (#76054)
## About The Pull Request
Gives holymelons in hand sprites
Closes https://github.com/tgstation/tgstation/issues/75981
![New Piskel
(2)](https://github.com/tgstation/tgstation/assets/84478872/0fabe183-0571-4dcb-95cb-7d8f85f09dc4)
![New Piskel
(4)](https://github.com/tgstation/tgstation/assets/84478872/9f1f91bd-12ea-4b3d-97ff-dc702e242a1b)

![image](https://github.com/tgstation/tgstation/assets/84478872/4603c51e-56a9-4dfd-81da-3c953fe9eab5)

![image](https://github.com/tgstation/tgstation/assets/84478872/b7bfb71b-3246-4fd3-a5ce-aa822ae1ca90)

![image](https://github.com/tgstation/tgstation/assets/84478872/9f916012-ecb8-4445-9779-1063ca73f970)

![image](https://github.com/tgstation/tgstation/assets/84478872/e265a513-1cdd-47fc-969d-b008813c5c2b)

## Why It's Good For The Game
Both was in a issue report and it kind of sucks for cultists to not be
able to tell who has this item that counters every single one of their
spells
## Changelog
🆑
fix: fixes holymelons not having inhand sprites
/🆑
2023-06-19 16:17:43 -07:00
MrMelbert e4e325cce1 Categorizes chef equipment vendor (#76122)
## About The Pull Request

Slots the chef equipment vendor into categories, since it was pretty
cluttered with a variety of things.


![image](https://github.com/tgstation/tgstation/assets/51863163/722dd68e-a608-4761-ada8-ee1fc4cdf04d)

## Why It's Good For The Game

Main page had a combination of clothing, tools, utensils, condiments,
skill chips, and books. What a mess

## Changelog

🆑 Melbert
qol: Categorizes chef vendor
/🆑
2023-06-19 16:17:02 -07:00
LemonInTheDark 830d2e50b4 Fixes some stupid airlock sleeps (#75961)
## About The Pull Request

[A common problem with explosions is an overabundance of
sleeping](https://github.com/tgstation/tgstation/commit/6499077a09469ff401c224c0510bc184c663b118)

In an attempt to solve this issue, let's not continue to sleep and do
work in door closing if the door is already deleted

(This is caused by firelocks activating due to other adjacent objects
deleting, triggering an atmos update, and closing the firelocks before
they get bombed. I don't have a elegant way of resolving that core
problem, so let's just minimize the impact)

[Nukes a stupid sleep loop in airlock
code](https://github.com/tgstation/tgstation/commit/5b16360520526d6f5aa3b511049456b74f33f430)

When an airlock was depowered, it would enter a sleep loop, decrementing
its delay by 1 second every well, one second, so long as it had the
right wires flipped
This is very stupid

Instead, let's use signals off wire changes and a combo of timer and
remaining time var to do this with JUST a timer

Most of the changes here are just swapping over wires to a setter to
make signal registration work\

## Why It's Good For The Game

Less sleeping around explosions means less dropped ticks after a bomb
goes off. Good just in general
Also this excises dumb boomer code and adds some hooks for other devs to
use (we should use wires more man)
2023-06-19 02:18:48 +00:00
distributivgesetz 997210290e Robust Photocopiers + Adds the Access Request blank (#76048)
## About The Pull Request
Currently, photocopiers parse the `blanks.json` file in `ui_data` and
send the entire thing to the client. Then, the client sends the entire
blank back to the server to commit it into the paper, in raw form. This
is a detriment to server performance. This PR puts paper blanks into a
global associative list that uses the `code` field as an index.

Printer toner color for some reason would check if the charges were
below 10, even though default cartridges only go up to 5. The value has
been changed to 2, which is still a high number. Toner cartridges are
scams.

Also photocopiers now have to hold actual paper and no longer
materialize it out of thin air. It's done similarly to paper bins, where
there is a starting integer value dictating how much paper is inside so
paper is lazily loaded into existence, as well as a paper stack list
that holds newly inserted paper. Photocopier paper starts out at 30 and
can go up to 60.

Additionally, the photocopier copying loop has been refactored to be a
lot more sane. The previous version ~~ab~~used timers for copying,
making a timer for each i interval to num_copies. I changed it to be a
proc that loops from i to num_copies, sleeping for a short amount of
time whilst playing a sound. This is a lot tidier and nicer since we
don't deal with timers, plus we get to play a printing sound too.
`make_thing_copy` now works by returning the copied object, or null if
something went wrong, so we know when to continue or exit.

This PR refactors UI code so entire blanks aren't sent to the client,
instead relying on the IDs for the blanks. Also, photocopiers now store
actual paper and also run out of it instead of materializing some out of
thin air.

Also, while I am already editing `blanks.json`, I added the Access
Request blank because people asked me to.

I can revert the config changes if it's too much of a hassle.

<details>
<summary>Screenshots/Me testing a printer for 5 minutes</summary>


![dreamseeker_gZ4Kl3QZbF](https://github.com/tgstation/tgstation/assets/47710522/b601b79a-1b2f-4d7f-b72a-f62dad217698)


https://github.com/tgstation/tgstation/assets/47710522/11c4b63b-7cfc-4425-96c6-970d4a5f51ca


https://github.com/tgstation/tgstation/assets/47710522/2f7a4a15-3400-49f3-9aca-c4d04c886bec


https://github.com/tgstation/tgstation/assets/47710522/14afe7d9-53ea-4d17-870f-1e90319284eb

</details>

<details>
<summary>Access Request form</summary>


![image](https://github.com/tgstation/tgstation/assets/47710522/0cf99542-24d1-41ca-8aa9-26bb201a79c0)


![image](https://github.com/tgstation/tgstation/assets/47710522/36418c42-eb82-4c13-ab65-08f6486cf613)


![image](https://github.com/tgstation/tgstation/assets/47710522/7acde2ff-040a-40bf-8898-398c2150655e)


</details>

## Why It's Good For The Game
Speeb. Also having photocopiers relying on an ingame stock of paper is
also very cool.

## Changelog
🆑 distributivgesetz
add: Photocopiers now use actual paper instead of materializing it out
of thin air.
add: Adds the "Access Request" form.
refactor: Greatly improve the reliability and performance of
photocopiers.
qol: Changed the blanks so they look nicer, whilst also fixing the
lawsuit request form.
qol: Nanotrasen's bureaucracy division has ""improved"" the quality of
their printer toner after many complaints from furious customers.
/🆑
2023-06-18 18:45:09 -06:00
OrionTheFox ccd26c2f1c Puts Balaclavas on a layer below glasses and radios (#76126)
## About The Pull Request
This has been annoying me for a while. Balaclavas being above glasses
made them cut them off in a really weird way.
So this moves them to a LOWER_FACEMASK_LAYER that's below glasses and
ears (since headsets are worn over balaclavas typically)

This layer has to be below the hair layer, but any masks that use it
should have HIDEHAIR anyways
## Why It's Good For The Game
It just looks cooler:
Befores

![dreamseeker_VHue08sjRq](https://github.com/tgstation/tgstation/assets/76465278/6a5e915f-d1bf-459c-a7a1-04e7294f8e1f)

![dreamseeker_x2sSpZ0ZNs](https://github.com/tgstation/tgstation/assets/76465278/eecc9416-a813-4265-a541-d2b62fb7bd71)

![dreamseeker_vPTk7n4bRW](https://github.com/tgstation/tgstation/assets/76465278/78cc8281-a158-4d6e-a80a-90c5978db44e)

Afters

![dreamseeker_2YY2BH3C6P](https://github.com/tgstation/tgstation/assets/76465278/f67a2428-4082-405e-9682-1cd715b9d403)

![dreamseeker_3TuQ4Jh6gV](https://github.com/tgstation/tgstation/assets/76465278/9f71505d-f984-4c0a-9f90-fc2d7e3a8dfb)

![dreamseeker_0QDakTo6kj](https://github.com/tgstation/tgstation/assets/76465278/114adeec-4331-4097-97bd-3b8a44e6193b)
## Changelog
🆑
qol: made Balaclavas layer below glasses and radios
/🆑
2023-06-18 18:39:27 -06:00
DaydreamIQ 43405ce46f Makes abductor organ surgery consistent with other surgeries (#76124)
## About The Pull Request
Just swaps the Hemo and Retractor steps to make it more in line with
other surgeries
## Why It's Good For The Game
This might just be me but I always forget that the order is different
and it throws off my muscle memory
## Changelog
🆑
qol: Abductor organ surgery steps shifted around to match other
surgeries
/🆑
2023-06-18 18:38:17 -06:00
GoldenAlpharex b500778c6c Fixes wheelchair making sounds only on conveyor belts (#76121)
## About The Pull Request
That's all it is, really. They went quiet because the logic check was
done backwards.

## Why It's Good For The Game
Wheelchairs making sounds when they're meant to is good.

## Changelog

🆑 GoldenAlpharex
fix: Wheelchairs now make noises when they're meant to again, and don't
make noises on the tram nor on conveyor belts
/🆑
2023-06-18 18:29:54 -06:00
OrionTheFox 9db5166da8 Fixes several issues and a runtime with paper cutters (#76131)
<!-- 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
Was meant to just fix a runtime in the context screentips for
papercutters but now I've got several things fixed:
- Fixes context tips runtiming 
- Fixes some context tips that just didnt ever appear
- Fixes the icons not updating when removing papers/blades
- Moves the blade to an overlay
- Adds a list of blocked paper types that don't fit: paperslips, NSpect
inspections, calling cards, pamphlets, and sparring contracts
- Fixes papers and blades not actually removing when removed
- Fixes being able to add papers when one is already inside
<!-- 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
Fixes



https://github.com/tgstation/tgstation/assets/76465278/c30127d3-24b0-4a1d-8272-76af68b24469


<!-- 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. -->

🆑
fix: fixed the context tips on papercutters
fix: fixes papercutters not properly updating their icons, removing
their stored papers/blades, and eating papers when one is already stored
/🆑

<!-- 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. -->
2023-06-18 16:52:35 -04:00
Time-Green 8788e48378 Shuttle events (#76008)
## About The Pull Request


https://github.com/tgstation/tgstation/assets/7501474/a2d83ce8-eba1-42d9-a1f8-9d73f7c40b21

Adds shuttle events! Stuff can now start to happen outside the shuttle,
either benign or spicy (but usually just fun to watch)!
## Why It's Good For The Game

The shuttle escape sequence is an important part of the game, uniting
about every player surviving player. Recently, #71906 has made the
escape sequence more forgiving as well as more interesting by
conditionally doubling the playing field. The area outside the shuttle
is still mostly empty though, except for the few people being spaced,
daredevils and the occasional epic space fight.

This PR adds adds some space events to spice up the outside of the
shuttle! This both gives people something too look at, making the escape
sequence feel less static and more lively, as well as give people a
reason to go outside and get the full experience of ~being decapitated
by a meteor~ swimming with the fishes!

<details>
  <summary>Shuttle Events</summary>

**Friendly carp swarm**
Spawns a group of carp that flies past the shuttle, completely friendly
unless provoked.

**Friendly meteors**
Spawns a lot of strong meteors, but they all miss the shuttle.
Completely safe as long as you don't go EVA

**Maintenance debris**
Picks random stuff from the maintenance spawn pool and throws it at the
shuttle. Completely benign, unless you get hit in the head by a toolbox.
Could get you some cool stuff though!

**Dust storm**
Spawns a bunch of dust meteors. Has a rare chance to hit the shuttle,
doing minimal damage but can damage windows and might need inflight
maintenance

**Alien queen**
One in every 250 escapes. Spawns a player controlled alien queen and a
ripley mech. RIP AND TEAR!! Really not that dangerous when you realize
the entire crew is on the shuttle and the queen is fat as fuck, but can
still be fun to throw people around a bit before being torn to shreds.

**ANGRY CARP**
Once in every 500 escapes. Spawns 12 normal carp and 3 big carps, who
may just decide to go through the shuttle or try and bust through the
window if you look at them wrong. Somewhat dangerous, you could stay
away from the windows and try to hide, or more likely shoot at them and
weld the windows

**Fake TTV**
Lol

**Italian Storm**
Once in every 2000 rounds. Throws pasta, pizza and meatballs at the
shuttle. Definitely not me going off the rails with a testing event

**Player controlled carp trio**
Once in every 100 escapes. Spawns three player controlled carp to harass
the shuttle. May rarely be a magicarp, megacarp or chaos carp. I can't
honestly see them do anything other than be annoying for 3 seconds and
die

There are some other admin only ones: a group of passive carps going
directly through the shuttle and just being little shits, and a magic
carp swarm
</details>

Events are selected seperately, there isn't a crazy weighting system,
each just has a chance to run, and multiple could run at once. They also
don't immediately trigger, so people can get settled a bit, and to make
sure just waiting out the more dangerous ones is still a valid strategy.

## Changelog
🆑
add: Adds shuttle events! If shuttle escapes weren't exciting before
(doubtful), they definitely are now! I'm joking it's mostly an
atmosphere thing.
admin: Adds an admin panel to interact with shuttle events, under the
Events tab: Change Shuttle Events
fix: Objects spawned in hyperspace will properly catch hyperspace drift
/🆑

There's a few things I'd like to do later (another PR) (honestly anyone
can do them because I suck at follow-ups), because this is too big as
is:
- Hijack triggered shuttle events
- More events (got a lot of cool suggestions, but I'm putting most of
them on hold)
- Maybe stration announcements if some more dangerous ones get added
- Structures appearing next to the escape shuttle???

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-06-18 08:14:05 -04:00
Pepsilawn dcbe081f64 Cannot use departmental budget cards as source of credit withdraw (#76113)
Currently you can put cargo's budget card into your PDA, go into NT Pay
and send over the budget to any pay token you want including yours. This
just adds a check to ensure you aren't using that kind of card as
withdrawal source.
2023-06-18 08:18:20 +00:00
MrMelbert d48f8c53f7 Fix crusher harddel (#76096)
## About The Pull Request

Fixes #60047

## Why It's Good For The Game

Hard del and bricking things are bad. 

Guess it's still an issue that burning tropheys are a thing but Shrug

## Changelog

🆑 Melbert
fix: Fixed hard delete with Kinetic Crusher causing the projectile
function to brick
/🆑
2023-06-18 16:14:32 +08:00