Commit Graph

42647 Commits

Author SHA1 Message Date
Ghom
7e907771fb Deathmatch modifiers (#81673)
## About The Pull Request
This PR adds the base to simple modifiers that the host can select to
make the minigame ~~worse~~ more entertaining for everyone.

Here's the screenshot of the UI (without a few modifiers I added later):

![immagine](https://github.com/tgstation/tgstation/assets/42542238/95bb9414-d93b-4c45-ab8a-ed8f28856018)

## Why It's Good For The Game
I've seen this minigame is frankly popular lately, so I thought I could
contribute to it.

## Changelog

🆑
add: Added 20+ modifiers to the deathmatch minigame, which can be
enabled by the host.
/🆑
2024-03-16 12:06:02 +00:00
Ghom
ca537ce829 Ice cream now gives a chilling food effect (plus small food haste buff) (#81719)
## About The Pull Request
We have a `crafted_food_buff` in the code meant for specific food buffs
(and perhaps one day, debuffs) that has gone unused ever since it was
created during the 'Foodening' PR.

Anyway, yeah, this PR takes the fire step to implement it with ice cream
and other frozen treats.

Frozen treats (all food found in the `food/frozen.dm` file) have it by
default. Other ice cream holders such as waffles cones (and now regular
waffles too!) can aquire it when filled with ice cream. Using the ice
cream vat also adds the 'Chef Made' trait now, which is required for
food effects to happen.

Also very slight food effect refactor. There's no need to have five
different alert screen objects when only have to switch icon states.

This PR also adds an action speed modifier to the generic 'haste' food
effect. I'm confident the original creator would have done that too, but
action speed modifiers aren't as well-known.

## Why It's Good For The Game
People tend to make one feature, call it a day and then move on to the
next. Food effects are nice, however they're barely implemented, and I
don't like food being all the same-ish in the end.

## Changelog

🆑
add: Ice cream and frozen treats now have a chilling effect.
add: You can add a scoop of ice cream on waffles.
balance: added an action speed modifier to the generic food haste effect
(you do things, and not just run, an itsy bitsy faster)
/🆑
2024-03-16 12:02:06 +00:00
John Willard
ef1316d3ca Removing a job now removes its positions (#82015)
## About The Pull Request

I made the error of using the ``JOB_NEW_PLAYER_JOINABLE`` flag to
prevent people from joining as AI, unaware that it only prevents
latejoining as said job (despite ``total_positions`` also a var and
``JOB_HIDE_WHEN_EMPTY`` being a flag that you can change, making this
whole flag pointless).

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/82014

## Changelog

🆑
fix: Human AI now closes regular AI job positions.
/🆑
2024-03-16 10:17:21 +01:00
Rhials
5cc3ea1bf6 Posters return to your hand when cut down/not hung up, abductor posters more resilient to wirecutters (#81924)
## About The Pull Request

Posters now drop into your hand when you cancel the hanging process, or
snip them down with wirecutters. If they can't drop into your hands,
they go to the floor.

Oh, also, this makes it so that abductor wirecutters (or any wirecutters
with a toolspeed better than 0.2 in case of varedits/future additions)
are too weak to cut down abductor posters.
## Why It's Good For The Game

Posters getting dropped to the ground when cancelling the hanging
process has always really annoyed me and I want it to not happen
anymore.

If you want to get those unsightly abductor posters out of your
department you'll have to loot the abductor scientist first (or just
take the wall down but that's admitting defeat).
## Changelog
🆑 Rhials
qol: Posters now return to your hand when the hanging process is
cancelled, or they are snipped down.
qol: Abductor posters can now only be cut down with abductor-tier
wirecutters.
/🆑
2024-03-16 02:09:48 +00:00
Ghom
bff8de4fe1 Skateboard tweaks and buffs. (#81928)
## About The Pull Request
I have been dissatified with the situation of skateboards for a long
while now, especially with the 'pro' and 'hoverboard' versions that
provide negligeable bonuses for the high price they warrant.

On top of all things, this PR makes the aforementioned two subtypes
faster than the standard and improvised skateboards.
Second, the hoverboard now hovers and can be used in zero g (more info
in the CL). The thing costs about 2000, so this is pretty much deserved.
Third, skateboards respect move intents. While in walk intent, you will
ride it slowly, but you also won't crash against other things.
Fourth, improvised skateboards are a nick more unstable and not
mechanically on par with standard skateboards.

## Why It's Good For The Game
Skateboard were cooler back when you would go fast and die young by
crashing into an airlock/spessman/wall at stim speed imho, also see the
first paragrath of the above section.

## Changelog

🆑
balance: The pro skateboard and hoverboard are now faster.
balance: The improvised skateboard is a nick more unstable than the
standard, so the two aren't exactly the same.
add: Riding a skateboard on walk intent will prevent you from crashing
into things, at the cost of speed.
add: hoverboards now actually hovers and can be used even in zero g.
There are a caveat to it: It cannot be ridden on open space gaps deeper
than one level or actual space, unless there're objects that prevent
falls, like lattice or catwalks.
/🆑
2024-03-16 01:37:57 +00:00
Ghom
8c6f4180ae Adds a collar bomb to the black market. (#81898)
## About The Pull Request
Originally part of the other blackmarket PR, but it seemed a tad awkward
to have it mandatorily installed on mobs rescued from the holding
facility.

But yeah, this PR adds a neck item that causes the wearer's death with a
5 seconds countdown when triggered, which can be bought from the market
uplinks. The box comes with a yellow button to trigger it, but it can
also hold a signaler (which the wearer cannot tamper) if you wish to use
assemblies. Take note that, upon being worn, the item cannot be removed
by any mean beside beheading iirc (so HARS should counter it), and
fire/acid if you have a ton of patience because of its high armor
values.

## Why It's Good For The Game
More mean and evilish stuff to populate the black market with.

## Changelog

🆑
add: Added a collar bomb to the black market.
add: Added a possible kit to the special syndie bundle B, which also has
uses these collars.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-16 01:37:10 +00:00
ArcaneMusic
1d2c8a83f6 Adds new vending machine tooltips. (#81918)
## About The Pull Request

This PR adds tooltips to vending machines.
Specifically, the tooltips cover tool interactions (unwrench, toggle
panel open/closed, deconstruct), as well as righting a knocked over
vending machine with an open hand, and returning items to a vending
machine as applicable.

![image](https://github.com/tgstation/tgstation/assets/41715314/2af1eb6a-b357-423b-acd4-f9b6dd913b64)

![image](https://github.com/tgstation/tgstation/assets/41715314/816eb602-4831-41ea-a4b6-ece54cea4665)

![image](https://github.com/tgstation/tgstation/assets/41715314/f4ec55eb-b403-4444-9ae5-ea1978f7f578)

![image](https://github.com/tgstation/tgstation/assets/41715314/371c21b3-a884-4ec0-afa7-531f109c93b1)

![image](https://github.com/tgstation/tgstation/assets/41715314/fac5881e-89f0-482e-b19b-db0440684147)
This also provides a context for restock modules, which shows specific
text when the vending machine has credit to be claimed when restocked.

Tweaks a little bit of speech handling to prevent issues with
custom_vendor for determining if an item can be returned to re-use for
the tooltip proc.

## Why It's Good For The Game

Improves clarity on a high impact economy related piece of content, plus
we kinda *like* vending machines, based on how much code we have
dedicated to them. 🐛 💥

## Changelog

🆑
qol: Vending machines now have contextual tooltips for interactions with
tools/objects/restocking/returns.
qol: Vending machines can now be examined to see what type of restock
module they need to be refilled.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2024-03-15 16:32:15 -06:00
xXPawnStarrXx
409527e3e3 New GaGs clothing: Part 1 - 'Dress'ing up! (#81785)
## About The Pull Request
I'm going to keep this simple, I have added four GaGs configs and the
sprites for some outfits, I intend to expand on the recolouring
abilities, so you will be able to use more than just spraycans.
The outfits are as follows; The Cardigan skirt (formerly named black
skirt), the Evening gown (It's no longer the 'RED' gown, since it can be
any colour), the striped dress and the sailor dress.


![image](https://github.com/tgstation/tgstation/assets/53197594/04c2e2ee-1d26-484e-9dde-b90cb7c33175)

![image](https://github.com/tgstation/tgstation/assets/53197594/e2ca4171-7b28-4fb2-9cc0-e6916367995e)

![image](https://github.com/tgstation/tgstation/assets/53197594/2c5a0985-b4fc-4fc3-8da1-13923f2742fb)

![image](https://github.com/tgstation/tgstation/assets/53197594/537006c0-1e67-4278-89d6-b4e294c335e8)
## Why It's Good For The Game
Customisation is always good, allowing players to express their
character how they want isn't a bad thing!
## Changelog
🆑
image: added gags sprites for; Sailor dress, Evening gown, Cardigan
skirts and striped dresses.
/🆑
2024-03-15 17:23:47 -04:00
Bilbo367
fce89acba8 Removes a extra assignment (#82007)
## About The Pull Request

Removes extra assignment, should have no functionality change.

## Why It's Good For The Game

Closes https://github.com/tgstation/tgstation/issues/79739
2024-03-15 13:48:52 -06:00
Da Cool Boss
338eb64d4b Adds evidence bag boxes to the Lawyer's wardrobe (#81965)
## About The Pull Request
Adds 2 boxes of evidence baggies to list of available items from the
LawDrobe.
## Why It's Good For The Game
Lawyers have a few uses for these bags. They help when handling evidence
because they prevent contamination of forensics, and they aid in
courtroom roleplay - the lawyer presenting a plastic baggie labelled
EXHIBIT A containing a bloodstained knife is a staple of courtroom
dramas. However, on most maps they have no legitimate access to evidence
bags (sec vendor, sec lathe, sec office and holding cells are
inaccessible to lawyers).
## Changelog
🆑
qol: The LawDrobe now stocks two (2) boxes of evidence bags.
/🆑
2024-03-15 13:48:43 -06:00
Interception&?
f44c625187 [NO GBP] Several pipe cap visibility fixes (#81999)
## About The Pull Request

- Fixes cap overlays being added to turf even when pipe is not hidden.
- Fixes cap overlays being visible on turfs that are masked with
darkness plane, but still visible via mesons, cameras etc.

## Why It's Good For The Game

Seeing caps over “invisible” turfs via cameras, mesons, and other means
is actually a bug 'cause other pipes are hidden.


![amongus](https://github.com/tgstation/tgstation/assets/137328283/14ea7e70-1291-4487-b899-f4c4117c66c9)

## Changelog

🆑
fix: Fixed cap overlay being added even when pipe is not hidden.
fix: Fixed cap overlay being visible on turfs that are masked with
darkness plane, but still visible via mesons, cameras etc.
/🆑
2024-03-15 13:46:20 -06:00
FlufflesTheDog
950675f4e7 Cleanbots can't acid people unless emagged. (#82008)
## About The Pull Request
Returns a long lost restriction to cleanbots of not being able to spray
acid on people unless emagged. Labeling as a fix since it's potentially
quite destructive, annoying, and presumably not intended. (likely
introduced by #80128)
## Why It's Good For The Game
Letting people go from ghosts to melting clothes and PDAs in 3 clicks is
maybe not great
## Changelog
🆑
fix: Cleanbots once again require an emag to spray acid on people. They
can still acid trash objects normally.
/🆑
2024-03-15 13:37:27 -06:00
KingkumaArt
1892c362fa Fixes the RTD, RLD, and the engi rebar crossbow not fitting on a engi winter coat's storage slot (#81969)
<!-- 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

The engi rebar crossbow is now storable on an engi winter coat, like I
originally intended.
Also, the RTD and RLD are as well, because the other rapid whatever
devices are.

## Why It's Good For The Game

I originally wanted the crossbow to have this - its why it has wearable
sprites - but for some reason I forgot to add it, probably due to
getting lost in guncode soup. Also, The fact the RCD and RPD are
storable but the RTD and RLD aren't, along with the fact the RTD and RLD
are newer is probably an oversight, so it changes that.

## Changelog

🆑 Webcomicartist
fix: Fixed RLD,RTD and Rebar crossbow not being storable on the
engineering winter coat slot.

/🆑

<!-- 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. -->
2024-03-15 14:28:23 -04:00
_0Steven
0005e914f3 Placing things in a paperbin actually plays sounds. (#81974)
## About The Pull Request

In contrast to my previous pr:
Really just changes the `user.transferItemToLoc(...)` used for
transferring paper to the bin to have a `silent = FALSE` parameter.
Also did it for pens for good measure, though I believe most pens don't
have such sounds yet.
## Why It's Good For The Game

Placing paper on a table makes sounds, placing paper in a bin makes no
sound. This feels awkward.
This changes that to actually make a sound.
Also adds `silent = FALSE` to placing pens on it for good measure,
though most pens don't have such sounds yet.
## Changelog
🆑
sound: Placing paper in a paperbin is no longer silent.
/🆑
2024-03-15 12:06:20 -06:00
projectkepler-RU
76a3b8116e You can now buy double barrel shotgun from the goodie section (#81897)
For the absurd price of 1,800 credits, and a weapon permit, the double
barrel shotgun can be yours!
2024-03-15 05:35:13 +00:00
ArcaneMusic
9802508ab9 Adds logging to SSore_generation on subsystem initialize (#81488)
This PR adds a new logging category and a logging message specific to
SSore_generation's initialize, logging the number of vents of each size,
as well as the number of random and proximity based ore spawns due to
cave generation and map generation.

Currently drafted as I could use some feedback as to why I'm not seeing
the logger.log() messages not appearing on any of the current in-game
log files 👍

Useful for data logging to determine how many of each type of ore is
spawned on the map, for the purposes of determining how much ore is
being spawned manually over the automatic amounts based on the vents,
with the quantity of ores spawning being a product of the ore vent sizes
being logged as well.
2024-03-14 21:25:50 +00:00
Ghom
610cf3681a Adds a persistent piggy bank to the vault. (#81900)
## About The Pull Request
This PR adds a **persistent** piggy bank to the station vault that,
while it can hold up to 3300 credits carried between shifts. However,
you can only insert up to 1600 (on top of the 50 creds it
auto-generates) each shift, so it does take a small, itsy bitsy of
patience to fill it to the brim.

## Why It's Good For The Game
I put some effort coding persistent piggy banks when making the
cafeteria PR for the museum away mission a while ago (which apparently
isn't enabled yet because the key holders forgot to ig). It'd be a shame
of all the existing code were only used for a single persistent piggy
bank.
2024-03-14 12:47:30 -05:00
John Willard
bd8c1aebff Instrument editor now uses TGUI (#81923)
## About The Pull Request

Instruments now use TGUI as their editor which is pretty cool.
It's mostly a 1:1 remake of the HTML UI except I did make a change to
make the playback options a little more compact, leaving some more space
for the editor before you have to scroll, and some other minor things
that were made to make the UI hopefully nicer to look at and mess with.

When there's a song to play - While playing, Repeat section can't be
edited

![image](https://github.com/tgstation/tgstation/assets/53777086/33f21ca3-98d8-4147-83e7-74e7611463e6)

Help section and UI when there's no song put in

![image](https://github.com/tgstation/tgstation/assets/53777086/babd30ab-9551-448b-9fe6-24e0b0535caf)

## Why It's Good For The Game

It is yet another step in finishing up
https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA?view
Instruments especially were in a poor spot because they didn't respect
things like ``IN_USE`` to not refresh if it's not the "UI" you are on,
and such.

## Changelog

🆑
refactor: Instruments now use TGUI.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-14 18:43:05 +01:00
13spacemen
31996c114b [no gbp] fix span type errors with poll alerts (#81979)
type mismatch due to feeding non text into span defines
2024-03-14 17:36:08 +00:00
Jacquerel
86c8df6a55 [no GBP] Reference handling for Summon Simians (#81988)
## About The Pull Request

I merged #81875 when there was still an open review.
As penance I have completed the requested review because the PR should
not actually have been merged yet.

Additionally while I was there I generated different icons for both
"Summon Simians" and its granted gorilla transformation spell.

![image](https://github.com/tgstation/tgstation/assets/7483112/a541bf96-f277-445a-8019-f1bb88fcf1c6)

They aren't really original art, they're composites of existing sprites,
but I think they look better than what they were before.

## Why It's Good For The Game

This might have caused some small reference management issues if left
unaddressed.

## Changelog

🆑
image: Updated button icon for Summon Simians and Gorilla
Transformation.
/🆑

Other change isn't user-facing.
2024-03-14 14:17:46 +01:00
Ghom
18d734ef7e Closet Anomaly station trait. (#81393)
## About The Pull Request
Well, it's a station trait that makes a small number of (non-secure)
closets function as if splashed with eigenstatium (which turns them into
teleportation cabins of some sort). However, they're subtler, they lack
the transparency and blueish tint, and don't make sparks.

This PR also demotes the Eigenstate subsystem to a singleton global
datum. It doesn't fire, it doesn't init, it plain doesn't belong amongst
the big boys.

## Why It's Good For The Game
This should be a mildly interesting station trait.

## Changelog

🆑
add: Added a 'Closet Anomaly' station trait, which links and turns a
portion of the roundstart closets into impromptu teleporters.
/🆑
2024-03-14 00:45:42 +00:00
John Willard
405d369694 Crushers and PKAs: Coop Upgrades (#81940)
## About The Pull Request

This PR makes 2 changes, one to the crusher and one to the PKA

Crushers: Their projectile no longer overrides eachother, so a mob can
have the blue bubble from several crushers. Triggering it will only
trigger the one that you own, so each player has to go hit the mob to
strike.

PKA: Fixed the minebot passthrough upgrade, and also adds a human
passthrough upgrade. They are incompatible with eachother, so you choose
between solo+minebot or coop, which is a compromise I thought as a
better alternative to taking mod space (the minebot passthrough
currently takes none). This upgrade is available solely at the mining
vendor, for 750 points.

## Why It's Good For The Game

The new mining has been great, and one thing I love is that it
encourages more coop play. Excavating boulders with other miners is much
more engaging and has good teamwork in it, and also is a good way to
encourage miners to stick together more and even fight megafauna in
pairs.
This hopes to make that easier to do, because currently having anyone
with a crusher is sort of a detriment to the whole team. Either the PKA
dude will accidentally shoot the crusher user while they're going in for
a melee kill, or 2 crusher users will be constantly erasing the mark of
the other. This will hopefully make that aspect better, and make mining
with friends a little better.

## Changelog

🆑
balance: Crusher marks no longer overwrite eachother, fauna can have one
from each crusher.
balance: Ash drake's crusher trophy no longer affects people the same
faction as you (like hiero trophy), so you won't friendly fire people
with it.
add: Added a new upgrade: Human Passthrough. You can shoot your PKA
without having to worry about friendly fire with this, for 750 mining
points at your mining vendor.
fix: Minebot passthrough upgrade now properly makes PKAs pass through
minebots.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-03-14 00:41:56 +00:00
Rhials
b312c6ed38 Revamps irradiated meteor effects (#81941)
## About The Pull Request

Irradiated meteors have been given a little tune-up, because they are
kind of underwhelming right now.

Presently, they do less damage than a standard meteor. At some point its
impact effect was reduced to a single radiation pulse (which does
absolutely nothing).

Now, they hit harder, deeper, and leave behind a pile of radioactive
sludge. Let's see how it looks:


![image](https://github.com/tgstation/tgstation/assets/28870487/d4670bc7-fe42-4f6b-ab1b-b56f55b1b12e)

Oof, wouldn't want that hitting MY department!

You'll have to clean up the radioactive sludge, and should probably wear
protective equipment while doing so. Also, they will show up slightly
less often now, as they are more threatening now.
## Why It's Good For The Game

Re-implements Flavor for an effect that lost its taste since being added
10 years ago. An irradiated meteor doesn't do anything besides look
pretty and green right now.

Currently irradiated meteors are really boring and not threatening --
antithetical to the idea of a "radioactive meteor". Now, there's a much
more interactive and measurable impact when one hits.
## Changelog
🆑 Rhials
balance: Irradiated meteors now hit harder and leave behind radioactive
goop.
/🆑
2024-03-13 23:31:18 +00:00
Ghom
5d77f75ca4 [NO GBP] Fixes the larva "hide" ability not properly hiding larvas under tables. (#81921)
## About The Pull Request
This PR fixes yet another small issue with elevation.

## Why It's Good For The Game
This PR fixes yet another small issue with elevation.

## Changelog

🆑
fix: Fixed the larva "hide" ability not properly hiding larvas under
tables.
/🆑
2024-03-13 23:18:30 +00:00
Pickle-Coding
4e96a0a406 Prevent bioware list deletion runtime for human destroy (what the fuck is a bioware?). (#81907)
## About The Pull Request
Prevent bioware list deletion runtime (biowares remove themselves from
the biowares list when deleted) by making it a lazy list delete.
## Why It's Good For The Game
Removes a runtime.
## Changelog
🆑
fix: Prevent runtime from humans with biowares gettingn deleted.
/🆑
2024-03-13 23:10:24 +00:00
IndieanaJones
d890c9b747 Summon Simians Max Level Reward Change (#81875)
## About The Pull Request

Summon Simian now, as opposed to summoning actual gorillas at max level,
the caster is instead granted a free gorilla transformation spell
instead.

## Why It's Good For The Game

I wasn't exactly aware that Summon Simians could summon actual gorillas
when I buffed gorillas mainly for traitors, so wizards could use the max
level spell to spam powerful gorillas who could easily wipe the station
in a very short amount of time. Ideally, this change should reign in max
level Summon Simians while still giving users a reason to max it out.

## Changelog
🆑
balance: Max level Summon Simians now grants the wizard a free gorilla
transformation spell as opposed to allowing the wizard to summon
fully-grown gorillas.
/🆑
2024-03-13 22:37:47 +00:00
necromanceranne
4bc21eeb96 Thermal Pistol Rework Attempt Two: You Spin to Win (it uses the crank energy weapon mechanics) (#81819)
## About The Pull Request

Thermal pistols now can be 'cranked' in order to reload them, similar to
a smoothbore disabler. Each 'crank' recharges one shot out of 8 shots.

And by crank, I mean you SPIN THE GUN. In order to spin guns, you need a
holster. So, without a holster, you can't utilize this mechanic of the
pistols.

(Also they're more accurate while dual-wielded hoo haa)

Thermal pistol crates are now slightly more expensive, at 2000 credits.
(is this even a balancing point now that we have stocks?)

## Why It's Good For The Game

People really liked what was going on in this [PR with the gun flipping
resulting in a
reload](https://github.com/tgstation/tgstation/pull/76076). However, it
was...maybe a little too strong.

As a more middle ground approach, the gun crank component was a
particularly helpful addition to the game that allows for things
like...slow bullet-by-bullet reloading of even energy weapons.

## Changelog
🆑
balance: Thermal pistols can now be 'cranked' to recharge shots. You
must have a holster equipped in order to utilize this feature. Also,
they have a tighter dual-wield cone.
balance: Thermal pistol crates are now 2000 credits, up from 1400
credits.
/🆑
2024-03-13 22:36:05 +00:00
Ghom
9f4a8dfc50 Buffs the SC/FISHER Saboteur Handgun. (#81553)
## About The Pull Request
The saboteur gun will now silence pAIs, toggle off radio broadcasting
(won't auto-relay nearby speech), disable turrets, chill out secbots a
little, and turn off APCs like power outages do.
The disrupt duration has also been buffed from 10/20 to 15/25 for ranged
and point-blank respectively.
Removed a conspicious chat message from an otherwise inconspicious gun.
Brought the code up to date.

## Why It's Good For The Game
The concept is cool, alas it's also undermined by how much of a joke
it's right now, and the game has plenty already.
The amount of interactions it has with things is underwhelming, so you
could barely consider it a stealth tool. The duration is also quite
scarce, I pointed that out in the original PR too.

Basically, I want to make the item cooler.

## Changelog

🆑
balance: Buffed the duration of the SC/FISHER Saboteur Handgun's
disruption effects. It's also stealthier and it won't conspiciously
alert living mobs hit by it.
add: Added saboteur interactions with radios, pAIs, turrets, secbots and
APCs.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-03-13 22:25:29 +00:00
san7890
d3c19afd9e Fixes Spontaneous Harddel with Boned Fish Revive Ability (#81959)
## About The Pull Request

You can find an example of the failing stack trace here:
https://github.com/tgstation/tgstation/actions/runs/8242191499/job/22540786029?pr=81937#step:10:1323

Here's a screenshot:


![image](https://github.com/tgstation/tgstation/assets/34697715/2a7c1c70-c82e-4790-b8e5-e05187a77f1a)

Explanation: The boned fish's revive ability added a timer that would
randomly fire in the next one-to-two minutes. Due to this inherent
randomness, create-and-destroy would locate the fact that we were
hanging refs to this fish since the timer may not have processed by the
time the fish was deleted (probably if the timer was considerably more
than one minute), so in order to fix this let's just add the
`TIMER_DELETE_ME` flag to the revive ability so that the timer get's
`qdel`'d on the fish's `Destroy()`. simple

i probably cocked up some detail of the above explanation but the timer
flag was literally created to prevent stuff like this from happening so
let's use it

## Changelog

don't matter
2024-03-13 20:28:37 +01:00
Ghom
737822398a Blackmarket refactor and balance, fixing spy bounties, plus a new category for people captured by pirates/tots/contractors. (#81818)
## About The Pull Request
This PR aims to take care of a few potential hard dels and fix the
fenced goods category first and foremost.

The PR also adds a new one that enables you to buy mobs captured by
antags in advance, before they're sent back to the station. Unlike other
categories, it doesn't have "Launch" and "Teleport" as delivery methods,
instead it uses a special "Supply Pod" delivery method that ships the
chattel directly to your location. This method costs 400 credits,
however, if you've built the LTSRBT, shipment will be free.

Another thing, I always felt LTSRBT to be pretty fucking dumb as is. Way
too overpriced for the benefits it offers: a slighty cheaper delivery
method that, while definitely better than the other two, doesn't really
pay off or honestly even remotely compensate the 4000 credits you just
spent to get it, especially if you're only buying a couple items at
most. So I decided to remove it from cargo and add it to the blackmarket
as a 500 to 750 creds item, available every round.

Human mobs sold by the pirate bounty pad are no longer deleted, instead
they're properly ransomed and sent to the holding facility, much like
for contractors and tots. This means they're also added to the black
market.

## Why It's Good For The Game
The blackmarket system has some issues to it that need to be fixed
(otherwise the "Fenced Goods" and "Hostages" categories wouldn't work).
The Pirate Pad deleting "ransomed" mobs instead of actually ransoming
them is lame. The LTSRBT shouldn't suck as much. Also more market stuff.

This will fix #81809.

## Changelog

🆑
fix: Fixed the "Fenced Goods" black market category.
balance: Removed the LTSRBT from cargo and added it to the blackmarket,
reduced the price from 4000 to 625 on average.
balance: The time it takes for captured mobs to be automatically sent
back to the station from the holding facility has been increased from
3-4 minutes to 6.
add: You can buy mobs captured by contractors, traitors and pirates from
the black market and have them sent back to the station in advance. For
safety, they'll also be handcuffed (not always) upon delivery.
add: Human mobs sold by pirates are not deleted anymore. Instead,
they're now captured and sent to the holding facility.
/🆑
2024-03-13 15:22:01 -04:00
Jacquerel
be2f292253 Gulag boulder mining adjustments (#81971)
## About The Pull Request

This PR does two fairly simple things.
Firstly, it triples the gulag point value of every material except
glass.
Secondly, it allows mining skill increases to effect the speed of
boulder breaking and reduce the stamina "exertion" you take.

I tried this out personally on Lavaland and Icebox and while this is
very much dependent on RNG (and storm timing) this got earning 1000
points purely from mining and smashing boulders down to _about_ ten
minutes of work, which I believe is the rough estimate of how much
effort it was before that. It may skew a bit higher than that if the ash
storm happens at a bad time or the game gives you predominantly iron,
but not a _lot_ higher.

The mining skill = faster smashing thing is... barely perceptible after
ten minutes of mining to be honest but it's saving _some_ time and I
think if it gives you the exp it might as well benefit from it too.

I didn't do anything for _glass_ because you can just pick that up off
the ground in Lavaland and I didn't want to make _that_ the ideal route
to getting your sentence finished.

## Why It's Good For The Game

Since ArcMining was merged, the gulag has changed to a system primarily
about digging up boulders and smashing them with a pickaxe for random
rewards. I think the chain gang thing is pretty flavourful, but the
inability to just target high-value materials (because you could see
them on the mining scanner) and the overall decrease in output has made
it take a lot longer to get a similar amount of points.

People are sending prisoners out to mine for 1000 points of materials
assuming this is about 10 minutes work, when in reality it was more like
30-35 minutes. Longer on Lavaland, where you need to take breaks for ash
storms.

This was not an intentional "nerf" to prisoner miners and should
hopefully bring it back down to somewhere closer to the previous level.

## Changelog

🆑
balance: All materials except glass are now worth more gulag points than
before.
balance: Mining skill decreases the time it takes to break boulders, and
makes it less tiring.
/🆑
2024-03-13 13:21:46 -04:00
_0Steven
fa8bf29424 Making the fuck you coupon trigger only once, take two (#81953)
## About The Pull Request

So a previous pr attempted to fix the fuck you coupon, by adding 1 to
the arguments.
```dm
(tgstation/code/modules/cargo/coupon.dm, line 87)
cursed.AddComponent(/datum/component/omen, 1)
```
But this was setting the `vessel` rather than the `incidents_left`
argument to 1.
```dm
(tgstation/code/datums/components/omen.dm, line 20)
/datum/component/omen/Initialize(obj/vessel, incidents_left, luck_mod, damage_mod)
```
Moving this argument over one fixes the issue.
```dm
cursed.AddComponent(/datum/component/omen, null, 1)
```

However! We're now skipping over the `vessel` value, which is used to
burn up a curse's vessel once the curse is expended.
Setting this to `src` rather than `null` means the fuck you coupon
actually gets 'expended', which I think it better than just using `null`
or `incidents_left = 1`. The coupon's useless once it's done, and this
way it's cooler anyway.
For consistency, we then also add this behaviour to when the coupon
gives you a heart attack instead.

Then! I noticed there was a _second_ bug with fuck you coupons, where it
would stop prematurely if the location wasn't a mob.
```dm
(tgstation/code/modules/cargo/coupon.dm, line 80-81)
if(!ismob(loc))
	return FALSE
```
However, this also happens when you don't have a free hand for it to put
the coupon in, and thus entirely negating the curse and just giving you
a useless fuck you coupon.
We fix this by just adding a `user` argument to `generate`, which it
prefers to use when available, and is set to the user ripping off the
coupon in the first place.
## Why It's Good For The Game

Fixes #81946.
As fuck you coupons are pretty much useless after expending their curse,
and we have to add the vessel value anyway, I thought it'd be more
fitting to add the coupon as the vessel rather than just putting in
null. Then, for consistency, I felt it'd be best to make them *also*
burn when giving you a heart attack when you already have a curse.
Y'know, it's expending the coupon for it's one-time fuck you!

Also fixes fuck you coupons not actually applying their curse if you
didn't have any free hands for it to put the coupon in when ripping it
off.
## Changelog
🆑
fix: Fuck you coupons ACTUALLY trigger only once again. As a
consequence, they also burn up when expended for their one-time fuck
you.
fix: Fuck you coupons work regardless of whether you had a free hand or
not.
/🆑
2024-03-13 18:02:16 +01:00
Justice
558fae3b64 Fixes grammar and formatting on the description of friendly megafauna (#81922)
## About The Pull Request
Fixes grammar and formatting on the description of friendly megafauna
## Why It's Good For The Game
It's not
## Changelog
🆑
spellcheck: Fixed grammar and formatting on the description of friendly
elite mining mobs.
/🆑
2024-03-13 11:17:32 +01:00
Ghom
d04a384ec9 A skub-related station trait. Reduced weight of annoyingly frequent neutral traits. (#81388)
## About The Pull Request
This PR introduces a new station trait that lets people choose if they
want to be pro-skub or anti-skub (or neither, really). It works the same
lobby buttons that job-related station traits also use. Depending on
whether you chose to be pro or anti skub, you'll spawn in with a special
box that contains the (bulky) skub and a pro-skub shirt, or an anti-skub
shirt. EDIT: Both also receive a number of stickers to propagate their
causes.

Kudos to @Fikou for coding the lobby buttons to be accessible by any
station trait rather than only job-related ones when you made the
Cargorilla station trait.

Another thing this PR also halves the exaggerated weight of low-cost
traits such as scarves, wallets and glitched PDAs, which I clearly
underestimated.

## Why It's Good For The Game
We've learned that low-cost, high weight traits are a bit of a design
mistake, because they tend to tip the scales toward themselves over and
over and over, leveling the diverseness of the feature and therefore
making it shallow and boring.

Beside, I've been thinking of the popular [skub comic
strip](https://pbfcomics.com/comics/skub/) lately.


## Changelog

🆑
add: Added a Skub-related station trait. You can now choose if you want
to be pro-skub or anti-skub, complete of shirt and stickers. Please
don't shank each other over it.
balance: Halved the weight of station traits such as scarves, wallets
and glitched PDAs.
/🆑
2024-03-12 22:25:25 -04:00
starrm4nn
c2ceb705e1 Makes Ephedrine not give spasms when holding a small or tiny item in your active hand, Also makes the movement speed scale with purity (#81773)
## About The Pull Request

Makes Ephedrine not drop small and tiny items, Also makes the movement
speed scale with purity

## Why It's Good For The Game

Ephedrine right now is really hard to use as an escape tool cause you
drop things usually escaped for running away like tools, teleporters
etc, This makes it better as a tool for that without making it too
powerful for combat, Also makes movement speed scale with purity to make
it more meaningful

## Changelog
🆑
balance: Ephedrine spasms won't affect small or tiny items
balance: Ephedrine's movement speed bonus now scales with purity.
/🆑

---------

Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2024-03-13 02:01:33 +00:00
John Willard
9f2d708007 Drunk people no longer feel cold (#81939)
## About The Pull Request

Simple PR, if you're drunk then you no longer feel the effects (or get
the warnings) of cold temperatures.
This makes things like cryosting and the coldness of space give you no
warning or tell of why you're being hurt, but it also means you don't
suffer its slowdown.

## Why It's Good For The Game

It's a small bit of realism that doesn't do much to change the game, but
gives some extra bonus/drawback to alcohol that isn't really changing
the game by any means.

## Changelog

🆑 JohnFulpWillard, Atlasle
balance: You no longer feel cold if you're drunk. You still take damage,
but get no warning or slowdown.
/🆑
2024-03-12 18:00:50 -04:00
SyncIt21
e1808ee115 Dynamic material colors applied for insertion animation into lathes (#81692)
## About The Pull Request
So you've noticed that when we insert say uranium into a techfab it
shows us the proper green sheet getting consumed as the animation but
when you insert that same uranium into an autolathe is shows us a blue
sheet animation instead?

Yup not realistic, this is because the autolathe has only 2 animation
types one for inserting iron & the other for glass. Every material type
would have to share these 2 animations making it look bland.

Now the material color is blended on the icon itself allowing for the
right color to be applied on the insertion animation

Plus this also trims the sizes of our dmi files so it's a win overall


https://github.com/tgstation/tgstation/assets/110812394/bb643691-8d3b-4822-8371-346c2d5e5be3

## Changelog
🆑
fix: inserting a material sheet into an lathes should show the correct
animation color
/🆑
2024-03-12 17:39:31 -04:00
Interception&?
1719ad8deb Sticker resprite and rewrite (#81893)
Stealing from Goon is bad, but stickers are actually a good feature, and
loosing those will be a disappointment. This project aims to recreate
'em from scratch without using Jimmyl's and Goon's code. Also,
suspicious icons were resprited and renamed.
2024-03-12 21:16:28 +00:00
Iajret
c8c18d77c1 Prevent borgs resisting from grabs when they are locked down (#81904)
## About The Pull Request
Prevents borgs resisting from grabs when they are locked


![image](https://github.com/tgstation/tgstation/assets/8430839/3fc8dee4-3539-4891-9a91-bc27b3610da2)

(yes, there's small baloonies message barely visible)
## Why It's Good For The Game
Isn't it fun to try and pull some locked down borg while they press B
like hundred times per second so you can't even move them.
## Changelog
🆑
fix: As a borg you shouldn't be able to resist from grab while locked
down
/🆑
2024-03-12 08:03:00 +00:00
MrMelbert
56a26d03f8 Saymode won't process custom say emotes (#81883)
## About The Pull Request

Closes #62666 

Every saymode does some snowflake thing for sending out its messages to
the relevant mobs, and none of those snowflake things have handling for
custom say emotes.

We could manually go through and add the required handling, but for each
implementation, it would get messy fast. So it's a bit easier to just
prevent mobs using saymode from attempting to "emote" over them.
Especially since it doesn't make sense in a lot of situations that we
use saymodes.

## Changelog

🆑 Melbert
fix: Silicons can use asterisks in binary without fear of saying
something interesting.
/🆑
2024-03-11 19:35:24 -06:00
MrMelbert
79244dc11f Lint with OpenDream (#81892)
## About The Pull Request

Courtesy of https://github.com/ParadiseSS13/Paradise/pull/21099 and
https://github.com/goonstation/goonstation/pull/18127
2024-03-11 19:31:15 -06:00
Bloop
630d38fedf Stops mines from blowing up CI (#81881)
## About The Pull Request

Makes this GO AWAY.


![image](https://github.com/tgstation/tgstation/assets/13398309/71d01448-2c73-420e-af9c-191fd1e9f8d1)

Fixes https://github.com/tgstation/tgstation/issues/81249
Fixes https://github.com/NovaSector/NovaSector/issues/930
Fixes https://github.com/NovaSector/NovaSector/issues/1077

Half of https://github.com/tgstation/tgstation/issues/81448 resolved by
this.

---

So landmines are very often _deciding to blow up during the unit tests_,
causing the floor to not be a floor.
This was always a potential issue but was exacerbated by the museum PR
which made the following change:


![image](https://github.com/tgstation/tgstation/assets/13398309/51d0e3a8-acf1-4d89-9511-e5ff0ad7a533)

---

**My solution is to stop them from spawning.** create_and_destroy is
already a bug-minefield, it does not also need to be a _literal_
minefield.

I've ran 4 tests so far and where this issue was cropping up every other
PR, it has still not occurred with this fix. I'm not going to say for
certain that it's fixed just yet but I am optimistic. I'll update in a
few hours.

edit: Unfortunately my optimism was misguided and on the 8th run it
failed. This doesn't fix it.

## Why It's Good For The Game

This CI error was coming up all the time and I'm sick of it.

## Changelog

🆑
fix: fixes a spurious CI runtime caused by explosive mines quite
literally blowing up the unit test area
/🆑
2024-03-11 19:23:54 -06:00
ArcaneMusic
50c8da164a Fixes a broken path on the black market (#81942)
## About The Pull Request

We have a misspelled path here for a black market fish case, which is
creating a broken object called `fish_cas`

## Why It's Good For The Game

🐛 💥 Fixes a rather basic path bug that I came across, simple as.

## Changelog

🆑
fix: The black market illegal fish case now correctly initializes.
/🆑
2024-03-11 19:22:58 -06:00
oranges
a4e39ba9e5 Might fix reagent loop (#81952)
There's potentially an infinite loop if the amount to remove falls below
the min quantization level.

---------

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2024-03-11 14:24:42 -07:00
Kyle Spier-Swenson
f95a8cdae4 Fix server hang in budgetordering (#81950)
fixes #81949

usr is almost always null here so this will almost always runtime the
inner proc which triggers a large enough amount of error logging to soft
lock the server since this happens in a proc called by a loop in a proc
called multiple times a second by a high priority mc subsystem.

Atm opening the budgetordering computer has the risk of causing high
enough time dilation to disrupt or kill the round so this should be fast
tracked to a merge
2024-03-12 07:35:04 +13:00
SyncIt21
086a879d61 General maintenance for grilling related stuff. (#81647)
## About The Pull Request

Deals with `/obj/machinery/grill` & its related components & elements.

**1. Qol**
- Adds examines & screen tips for toolacts, adding fuel & food items on
the grill, Converts some chats into balloon alerts
  - Grills can be safely deconstructed with a crowbar when not anchored
- Food items can be grilled & re-grilled any number of times so you can
achieve that perfect crispiness. Its also realistic because there is
nothing physically stopping you from putting that item back on the grill
- Monkey fuel & any other reagent(see examines) can be added into the
grill from any open container & not just from glass bottles
- Grills can now be constructed in the crafting menu. Cargo pack cost
for purchasing grill has been halved

**2. Fixes**
- Grills now won't burn foods into a mouldy mess (if that item did that
that on the girdle). You can safely grill any item without worrying
about losing it. This also means grills no longer cook an item like a
girdle does, for e.g. the grill now won't both cook a meat slab into a
steak & grill it at the same time. You need the girdle for that.
This is only realistic because unlike a girdle which exposes the food to
direct heat the grill only exposes it to light heat & smoke so it does
not have that energy to cook/burn that item. Also this creates
immersion, you now need the girddle to cook the item & the grill to
smoke it so you know more gameplay

- The amount of time an item has been grilled for is now stored on that
food item & not as a locale variable in the grill. This means if you
remove & replace that item on the grill or move that item from 1 grill
to another it will correctly remember how long that item has been
grilled for so you don't have to re-grill that item on a different
machine for the same length of time
  
- Imposes a maximum limit on the amount of fuel you can put into an
grill (roughly 50 coal stacks). Unlimited space for fuel is not
realistic
 
**3. Code Improvements**
- Moved all non combat interactions to `item_interaction()` to end the
attack chain early before we even reach `attackby()`
- Removed trait `TRAIT_FOOD_GRILLED` no longer needed as we can re-grill
items as many times needed
 - Converts some constant values into `SECONDS` for accuracy
 - Autodoc for vars & procs

**4. Refactor**
- Grills now process manualy upon placing food or fuel into it & not
round start
   

## Changelog
🆑
qol: adds examines & screentips for grill (the machine for grilling
food), converts some chats to balloon alerts
qol: foods that can be re-grilled any number of times 
qol: grill (the machine for grilling food) can now be made in the
crafting menu. Cargo pack cost for purchasing grill has now been halved.
qol: monkey fuel & other reagents(see examines) can be added from any
container & not just from glass bottles to the grill (the machine for
grilling food)
fix: grills (the machine for grilling food) now don't burn foods into a
mouldy mess unlike the girdle
fix: correctly computes grill times of items that were previously
grilled
fix: grills now have an upper fixed fuel limit
code: autodoc procs & vars for the grill (the machine for grilling food)
refactor: grills (the machine for grilling food) has been refactored.
report bugs on github, also they only start processing after putting
food/fuel into them.
/🆑
2024-03-11 02:57:23 +00:00
necromanceranne
8d273fa133 [NO GBP] Fixes every single uplink getting free cybernetic implants (#81938)
## About The Pull Request

Fixes every single uplink giving out free cybernetic implants

fixes https://github.com/tgstation/tgstation/issues/81912

## Why It's Good For The Game

As funny as it is to produce hundreds of reviver implants out of thin
air, this is a bug.
2024-03-10 18:07:54 -05:00
Rhials
c9e285917d Fugitive hunter spawn delay works again (#81919)
## About The Pull Request

Fugitives hunters no longer spawn after 1 minute under any conditions.

The culprit was improper use of a macro, checking the shuttle status
against it instead of just using it.
## Why It's Good For The Game

Fugitives get some more breathing room and time to gear up.
## Changelog
🆑 Rhials
fix: Fugitive hunters no longer spawn after 1 minute of the fugitives'
arrival.
/🆑
2024-03-10 23:05:16 +01:00
san7890
3681a19bfe Fixes Hatsune Migo Spawning Comments and Code (#81856)
## About The Pull Request

The `prob()` was not lining up with the comment, `prob(0.04)` is NOT
1/20 odds. it's also wack to have 1/20 odds for something meant to be
super duper cool and rare (lest people get sick of the joke), so I
balanced it to be a `prob(0.1)` odds as well (1/1000 i think).

i also don't like how non-special the mi-go replacement was and detested
the fact that the `desc` would duplicate if an admin spawned in a mi-go
twice (mentioning the blue hair twice), so let's make it a tad bit more
sane by actually replacing it with the type introduced in that PR and
checking against that type.
## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/34697715/6c31296d-2bc6-4c60-a493-1f7f2ad73337)

people would likely try to fix the way this worked in the future to
match the comment and that's icky imo. let's rebalance it to be more
sane and also clean up the code
## Changelog
the odds of players having seen this sprite in game were already really
rather low so let's not bother them with the tantalizing unknown

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-03-10 20:59:44 +01:00
Pickle-Coding
0a17a2d0f1 Adds and improves logging for various shit. (#81738)
## About The Pull Request
Adds logging for RCD construction and deconstruction. Hallucinated
projectiles no longer causes logs. Flamethrowers log gas mixture
information, the flamethrower, the gas tank, tank distribution pressure
and whether it was lit. Adds a lot more logging to records consoles.
Frozen objects now log when they get shattered.
## Why It's Good For The Game
Closes #68452 
Closes #71798 
Closes #78008 
Closes #81098 
Closes #81130 
## Changelog
🆑 Pickle-Coding and Rhials
admin: RCD construction and deconstruction are logged.
admin: Hallucinated projectiles no longer log.
admin: Gives more detail to flamethrower logging.
admin: More actions are logged for records consoles usage.
admin: Frozen object shattering is logged.
/🆑

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2024-03-10 19:49:26 +00:00