Commit Graph

17692 Commits

Author SHA1 Message Date
Ghom
9032f8ccff [NO GBP] the random spawner loot weight config is not an integer (#84814)
## About The Pull Request
Sets `integer` to false.
Also a tidbit about the `skew_loot_weight` proc, though loot lists with
uneven weights all tend to add a value to all entries so it isn't an
issue.

## Why It's Good For The Game
The config isn't an integer.

## Changelog
N/A
2024-07-10 22:59:05 -06:00
carlarctg
63b94cd307 Adds six new strange object powers! (#84775)
## About The Pull Request

DESIGN CONCEPT: Strange Devices are at their best when they're odd tools
which can help a department out, with some strange drawbacks that make
them interesting and unique. Foam for the Janitor, Flashbang for
Security, Teleporter for tiders, Corgimaker for the chef. They're also
ambiguous enough that they can really be used by anyone for silly
hijinks.

Drink Dispenser: Creates a glass, then fills it up with a random drink.

Bioscrambler: After a noticeable warning, bioscrambles people nearby.
33% chance to be used up on use.

Recharger: Shocks you, but recharges one random item to max battery.

Hugger: Hugs everyone in range as if you had the friendly trait.

DImensional: Converts the surroundings to a random material-theme. Each
use increases cooldown by two seconds.

Disguiser: Drops your clothing to the ground and replaces it with a
delete-on-drop costume and a randomly assigned cardboard ID.

Removed an unused and unusable shock flag.

Removed an unused dumb ghost item.

Added a proc that returns a hex color with the # attached.

## Why It's Good For The Game

> DESIGN CONCEPT: Strange Devices are at their best when they're odd
tools which can help a department out, with some strange drawbacks that
make them interesting and unique. Foam for the Janitor, Flashbang for
Security, Teleporter for tiders, Corgimaker for the chef. They're also
ambiguous enough that they can really be used by anyone for silly
hijinks.

Request by ArcaneMusic! He wanted new abilities to go along with the new
sprites, and approved these.

> Removed an unused dumb ghost item.

please stop using costume subtypes for OP items. whats the damn point of
the subtype if youre just going to screw with it

> Added a proc that returns a hex color with the # attached.

idk why it didnt have this tbh

## Changelog

🆑
add: Adds six new strange object powers! Drink dispenser, bioscrambler,
recharger, hugger, dimensional, disguiser.
code: Removed some unused code and items, and added a proc that returns
a random #colorstring.
/🆑
2024-07-10 22:05:00 -04:00
ArcaneMusic
43e62163fe Adds a Contraband trait, and implements contraband as a mechanic to security bounties. (#84003)
## About The Pull Request

This PR does a few things but centrally it's all centered around
mechanically enforcing what items are and are-not considered contraband
in-game.

### What does something being contraband MEAN?

Contraband items are visually indistinguishable from non-contraband. If
an item is Contraband, it can only be detected in two ways:
* After being scanned by an N-Spect scanner, which is a standard item
security item, assuming it still has a charge to do so.
* Via a scanner gate, which can now be upgraded with an N-spect scanner
to allow for it to scan a person and all their contents for contraband.

### What items ARE contraband?

Contraband items are intended to be determined both logically and
through other relevant examine text. However, here's the short list of
items that are considered contraband, reserving the right to expand the
list.

<details>
  <summary>In hindsight it's kind of a long list.</summary>
  
* Items that have "contraband" or "illegal" in the name or description.
* Items that allow for the player to obtain other illegal items, that
are NOT particularly stealthy.
* This means that a syndicate uplink is NOT considered contraband, as
they're typically hidden on your person as something else.
* Stealth items under the syndicate uplink, the revolutionary flash, and
some mapped in dangerous items that can come from both syndicate and
company-aligned resources are not considered dangerous.
* Items that are purchased from cargo after emagging or switching to
extended cargo range.
* Items purchased FROM syndicate uplinks, the wizard knowledge scroll,
or other antagonist shops.
* Cursed artifacts/tools magically produced by cultists or heretics.
* Items purchased from the blackmarket.
* Items purchased from the contraband section of vending machines.
* Some drugs and overtly dangerous or criminal byproducts.
  
</details>

### How does this interact with the round?
Well, primarily, this is an aid for in-game enforcement of space law.
Based on the length of the above list, we have a LONG, LONG list of
items in-game that are technically considered, in one way or another,
illegal to have on the station, and yet without either metaknowledge of
what those items are, or how they're used, security officers lack some
of the certainty of how to deal with these kinds of encounters.

Additionally to the knowledge aspect of this trait, security officers
may now receive a new civilian bounty to collect items that are
considered contraband, also giving them an incentive to look for and
confiscate contraband that's been found across the station while
upholding space law.

### Other minor changes that I rolled into this

Security has a bounty for 3 different rechargers, and considering access
limitations, most security players aren't going to make this exchange,
so I've lowered the required amount down to 1.

Adjusted the N-spect scanner's description to match it's new
functionality.

The Civilian bounty TGUI now has an additional 1 point of padding to
make it feel less cramped.



https://github.com/tgstation/tgstation/assets/41715314/c3cd4752-b03a-4e0b-959e-1252fcc2369d

**Updated as of 6/19/2024:**
Additionally, some storage items will block the presence of contraband
when going through a contraband aligned scanning gate. These items
include the infiltrator modsuit core, storage implant, void cloak, the
aptly named smuggler's satchel, and the chameleon kit's backpack.

**Updated as of 6/23/2024:**
N-spect scanner now has contextual screentips.

**Updated as of 6/29/2024:**
Scanner gates are now available in all lathes that have a feature
specific to how scanner gates function. So, includes cargo (contraband),
security (weapons), and medbay (diseases).

## Why It's Good For The Game

Originally, this started out as a way to be able to provide more
in-character and in-flavor bounties for security officers, because they
suck! Most security bounties as they exist right now do the worst
possible things from all respective bounties:
* They detract away from a job's actual responsibilities as opposed to
working with them.
* They're best completed while sitting next to your lathe and running
items back to the bounty pad.
* They exist with such esoteric rarity of high quantity of items that
it's miserable to fulfil.

As a result, I started work on this as a framework to allow security
officers to be further incentivized to collect contraband across the
station, either as a result of the gamemode or just through routine
patrols across the station.

Implementing it as a learning tool for security as well just happened to
work out as an additional bonus, and having a function in-game allowing
newer or less experienced players to know if an item is considered
dangerous or conspicuous also works as a particularly good way to
provide information where a player may not know what they're up against.

If nothing else, this might be interesting to try, and if not, I'll just
snip out the QOL changes from it and we'll see how it goes.

Going forward, I am a bit hesitant about the contraband scanner gate
mode, and as such, will try working with the admin team to determine if
that's a good feature to keep around for game health, while hoping to
give it a chance in the fullness of time.

## Changelog

🆑
add: Items spawned via traitor uplinks or are known illegal contraband
on the station can now be scanned and identified as such by the N-spect
scanners in security. These only applies to overt traitor or antagonist
items, and "stealth" items will not be seen as such.
add: Scanner gates can now be upgraded by using an N-spect scanner on it
to unlock "contraband scanning" mode.
add: Security officers can now be offered a bounty to turn in pieces of
contraband.
add: Some stealthy storage items like storage implants, smuggler's
satchels, void cloaks, the infiltrator modsuit, and the chameleon
backpack will block the presence of contraband on your person when
placed inside.
qol: N-spect scanner contextual screentips.
balance: Recharger security bounties ask for a quantity of 1, down from
3.
qol: security, cargo, and medbay have access to scanner gate boards.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-07-11 03:08:25 +02:00
carlarctg
c4c41797b6 TV helmet no longer has fov or makes you flash sensitive (#84815)
## About The Pull Request

TV helmet no longer has gas mask FOV, nor does it give you flash
sensitivity.

Since those are gone, removed pepper proof from it as well.

## Why It's Good For The Game

I don't really know why the tv helmet specifically was cucked like this.
Out of all the costume helmets, none do this. I don't think it adds
much? It just makes it a pain in the ass to use? I want to be a tv
helmet guy and see 360 degrees and weld in peace, I don't think that's
too much to ask.

For fairness sake it also doesn't have pepperproof anymore. You can
replicate all its effects by just wearing a gas mask underneath.

## Changelog

🆑
qol: TV helmet no longer has gas mask FOV, nor does it give you flash
sensitivity.
qol: Since those are gone, removed pepper proof from it as well.
/🆑
2024-07-11 02:33:26 +02:00
OrionTheFox
ddef344307 Resprites Catwalk Tiles to match TG's floortiles (#84819)
## About The Pull Request
Forgive me Maintainers, for I have sinned.
Months ago, a year ago, maybe longer, I PR'd some new and improved
sprites for the Catwalk Tiles here to TG. And when I did, I did not use
the right tile palettes for reference.

I have come to atone.


![image](https://github.com/tgstation/tgstation/assets/76465278/16605b30-455c-4c17-863b-00451a76fe27)

![image](https://github.com/tgstation/tgstation/assets/76465278/2d91e1b0-37c9-4916-b02a-9b23db0e3028)

![image](https://github.com/tgstation/tgstation/assets/76465278/c4233dec-1871-42ac-848b-2e8e94454dbc)

![image](https://github.com/tgstation/tgstation/assets/76465278/d8f09852-a8aa-4093-a4fd-68ddcbbc51af)

![image](https://github.com/tgstation/tgstation/assets/76465278/ff219529-d91c-459c-b8dc-b95e44890fa6)

Additionally, I removed a duplicate white catwalk tile (flat_white - the
one left is iron_white) and changed the `none`/error icon in the file to
double as both an error marker, and a template of the catwalk mesh for
future catwalk tile sprites.
## Why It's Good For The Game
Consistent matching tile sprites are much, much nicer to look at.
## Changelog
🆑
image: re-sprited Catwalk Floor Tiles to fit with TG floor tiles
/🆑
2024-07-11 02:27:39 +02:00
SmArtKar
a3e65cdfdf Fixes meat producing copious amounts of blood (#84820)
## About The Pull Request
Closes #83665
blood_walk component's amount of blood is actually the amount of tiles
on which the component will leave blood. This makes steaks roughly
consistent with the meat material, as previously they had copious 400
tiles of blood. Since by default blood decals hold 50 blood, this
translates to... 20 thousand units of blood.
Does same for the meatpack which copypasted code from the steak from the
looks of it.

## Why It's Good For The Game

400 tiles is a nonsensical amount of blood for a single steak, and this
is clearly an oversight. Maintainers are welcome to relabel this as
balance if required.

## Changelog
🆑
fix: Steaks and meatpacks no longer have an absurd amount of blood
stored inside of them.
/🆑
2024-07-11 02:22:50 +02:00
SmArtKar
56aaef7888 Vapes use correct fill level overlays (#84821)
## About The Pull Request

Closes #83573 by removing an underscore

## Changelog
🆑
fix: Vapes use correct fill level overlays
/🆑
2024-07-10 15:45:34 -06:00
MrMelbert
4166e25c9c Blackbox tally for successful emags (#84837)
## About The Pull Request

We don't actually record emags outside of the log which makes it hard to
parse, this should give us a better image of what people are using emags
for.
2024-07-10 15:30:55 -06:00
Ghom
b6e64012ce [NO GBP] Fixes the loot weight config + maintenance spawner nitpick (#84777)
## About The Pull Request
I've forgotten to fill the `loot_list` arg of the `skew_loot_weight`
call, and I'm preventing the maintenance spawners from running the proc
more times that necessary, also stopping the `no_decal` subtype from
removing decals typepaths from the global `maintenance_loot` list.

## Why It's Good For The Game
Pseudo-bugfixing.

## Changelog
N/A
2024-07-09 03:06:21 +01:00
grungussuss
513f675a46 Lighter/zippo/cigarette sounds (#84736)
<!-- 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
Partial port of https://github.com/BeeStation/BeeStation-Hornet/pull/29


https://github.com/tgstation/tgstation/assets/96586172/75b91976-252e-43eb-bd18-787de2513383
<!-- 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
More immersion with sounds for something that is done so often should
further the experience.
<!-- 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. -->

🆑 grungussuss
sound: Zippos, Lighters and cigarettes now have sound
/🆑

<!-- 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-07-09 04:03:45 +02:00
LemonInTheDark
9bc534f3d6 Variable Door Delay + Timer Based Animations (#84631)
## About The Pull Request

### Variable Door Delay

Door opening/closing delay times are currently static, but many doors do
not have animations that FIT the actual timings.

It would be better if subtypes cound declare how long each animation
takes, and how long it takes for opening to say, become passable and
such.

Let's do that.

### Timer Based Animations

Currently all doors use flick() to do their animations. This is fine
right NOW, but fucks with walleniong because we have to split most
things into segments to make layering work.

So rather then flick let's use client timers and update_icon_state to
achive our effects, alongside a proc that lets us do other effects (like
sound) on playing an animation

## Why It's Good For The Game

Door behavior and visuals better match up, wallening compatability
upstreaming.

## Changelog
🆑
add: Most door animations now better line up with when they are/are not
passable.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-07-08 22:24:36 +02:00
carlarctg
fec5d96d09 Using a multitool inhand tells you where the area APC is (#84738)
## About The Pull Request

Using a multitool inhand tells you where the area APC is

## Why It's Good For The Game

Sometimes it's a bit of a pain to find it. No need to keep it sikret
when map knowledge is a thing.

## Changelog

🆑
qol: Using a multitool inhand tells you where the area APC is
/🆑
2024-07-08 20:14:31 +00:00
rageguy505
cd27dc8d58 exodrone sign part 2 (#84606)
## About The Pull Request
Adds a sign for the exodrone rooms
## Why It's Good For The Game
Sub-departments usually have signs to find them easier. Exodrone rooms
are usually out of the way.
i think 2 or 3 maps have them tucked away in maint.
## Changelog
🆑
add:Exodrone signage

/🆑
2024-07-08 22:13:52 +02:00
ArcaneMusic
26f6235a53 Fixes ore vents floating after a tendril collapses nearby. (#84730)
## About The Pull Request

Ore vents now provide a trait to the turf they spawn on,
TRAIT_NO_TERRAFORM, which does exactly what it says on the tin,
preventing the turf from being able to change into something else, like
a chasm. Ore vents already have `move_resist =
MOVE_FORCE_EXTREMELY_STRONG`, so they shouldn't be movable by any other
means anyway, resulting in them being stuck in the turf that they
spawned without admin tomfoolery.

![image](https://github.com/tgstation/tgstation/assets/41715314/84b1706c-a739-4e6a-9d7c-92940113d656)

## Why It's Good For The Game

Fixes #84463. Reasonably, too, we'll one day have other uses for
something that needs to avoid the turf changing on it as well such as
this.

I also sorted the turf traits because they were starting to get
non-alphabetical and I know that'll drive someone crazy if I don't fix
that while it's still early.

## Changelog

🆑
fix: Ore vents that are caught in the cross-fire of a lavaland tendril
collapsing will now spare the ore vent and it's associated turf.
/🆑
2024-07-08 22:12:34 +02:00
EnterTheJake
0cb765a5e0 Creates an EMP act for Jetpacks + minor buffs to sec modsuits (#84582)
## About The Pull Request

Jetpacks are now vulnerable to EMP, they get disabled for a few seconds
after getting hit by an EMP blast.

Sec modsuits now start with the jetpack module preinstalled instead of
the mirage module, and their starting powercell has been upgraded.

## Why It's Good For The Game

It's no secret that regular jetpacks and your run of the mill eva suit
see far more use than actual security issued equipment.

Having your best option available from the start of the shift is just
boring, and doesn't encourage the crew to even engage with Modsuits in
any way.

With this PR i'm introducing a weakness to jetties by having em turn of
for 4 seconds if you get hit by a pulse.

In exchange sec mods are now a bit more suited for their job, Mirage
module has been swapped with Jetpack module and they now spawn with a
better cell.

## Changelog

🆑

balance: Jetpacks are now briefly disabled by EMP.
balance: Mirage module has been removed from Sec modsuits.
balance: Security modsuits now spawn with a better cell and the jetpack
module preinstalled.
/🆑
2024-07-08 22:06:23 +02:00
SmArtKar
788638a2e0 [NO GBP] Embedding hotfix (#84770)
## About The Pull Request

I may have forgotten a return which was overlooked in reviews, and
get_embed could fail if an object without an embed_type (shrapnel) got
assigned embed. Also optimized generate_with_values to not recreate the
datum if its not the "default" one.

## Changelog
🆑
fix: Embedding now properly changes its values.
/🆑
2024-07-08 21:58:01 +02:00
carlarctg
663f17c44f Added the subtype vendor and it and omnitools to runtime station (#84540)
## About The Pull Request

Added the subtype vendor which lets admins and coders vend subtypes of a
path

Added the vendor and both varieties of omnitool to runtime station

## Why It's Good For The Game

Better and faster testing environment. Runtimestation is horribly
inefficient rn but this will help a bit

## Changelog

🆑
code: Added the subtype vendor which lets admins and coders vend
subtypes of a path
code: Added the vendor and both varieties of omnitool to runtime station
/🆑
2024-07-08 03:40:04 +00:00
SmArtKar
b6c84135c3 Refactors embedding to use datums instead of storing data in bespoke elements (#84599)
## About The Pull Request

This refactors embedding elements to make them use singleton datums
(similarly to armor) instead being bespoke and creating a new element
every time armor values are supposed to be adjusted.
Default values have been removed from defines due to now being declared
in base class itself.
Additionally fixes vending machines and tackling gloves setting
generated shards (which they instantly embed into their victim) embed
properties to null after running the embedding code, despite said shards
having non-null embedding values by default, making them not be able to
embed into anyone else, also potentially breaking the pain/jostling code
if they somehow get updated.

## Why It's Good For The Game

Current embedding system is an unnecessarily complicated mess as bespoke
elements are hard to work with, and creating a new element every time
you change values is hacky at best. This change should make it easier to
read and work with.

## Changelog
🆑
fix: Fixed glass shards generated from falling vending machines or
tackling windows not being able to embed into anyone.
refactor: Refactored embedding code to use datums instead of bespoke
elements and ugly associated lists.
/🆑
2024-07-07 23:20:07 +02:00
Ghom
a1366fc905 Night Vision Goggles update (#84594)
## About The Pull Request
This is a reboot of #84550 but with way less unbearable: mesons are off
the table and I've made the night vision tonalities lighter now, while
also improving the darkness cutoffs of some of them. Btw, you can also
turn night vision googles on/off now. Each pair of departmental night
vision goggles now comes with their own tint to boot.

As always, this doesn't affect nukies and ninjas. They're almost
garaunteed to keep their googles equipped and on at all time, so it
would honestly adulterate the overall experience a little.

Now, for some pictures...

In the dark, **top** row is **old**, **bottom** row is **new**. from
left to right: security, science, standard/meson, diagnostic, health:

![dank](https://github.com/tgstation/tgstation/assets/42542238/4eb0dc3d-5b3a-47b1-ad65-d3da138a9213)

In the light: security, science, no goggles, standard/meson, diagnostic,
health:

![lite](https://github.com/tgstation/tgstation/assets/42542238/6e56262f-8ed6-4ea9-bab7-2110bc589d65)

The screenshots were taken from varedited goggles on the servers because
it's bit faster than booting up a local server, plus I had to finetune a
few things.

## Why It's Good For The Game
So, I kinda wanted to give a bit of screen colors to goggles that was
not some sort of "optional, by default turned off" kind of crap nobody
cares about, however my previous PR was met with a lot of criticism,
which made me rethink how to do it. I honestly don't want it to be a
burden, but I do want to make them a bit fancier tho.

Also the the medical NVs (and perhaps sec NVs) were a bit crappier than
the rest.

## Changelog

🆑
add: Night vision goggles now subtly tint your screen.
add: You can turn your night vision goggles off. Doing so removes the
tint and the eye protection malus.
/🆑
2024-07-07 15:17:37 -04:00
Ghom
7be649a7f6 Adds a config that skews random spawners weights. (#84616)
## About The Pull Request
Title. It's an exponent that multiplies weights of random spawners.
For example, if the exponent were 0.8, and the spawner has a natural
99.9% chance to spawn a donk-pocket and a 0.01% of a vial of
adminodrazine, after calculations it'd be roughly 99.6% vs 0.4%.

## Why It's Good For The Game
This can give admins/keyholders more control over random spawners.
~~However, most of the random spawners are maploaded things so an admin
would've to get to edit the config quite fast before SSatoms initializes
to witness the most out of it, but I'm just ranting.~~

## Changelog

🆑
admin: Added a config that regulares random spawners weights.
/🆑
2024-07-07 15:16:59 -04:00
jimmyl
27b6279ce1 All jetpacks are no longer full-speed (#84712)
## About The Pull Request

Full-speed has been removed from jetpacks
All jetpacks are now modsuit jetpack speed
Due to having no purpose now, Adv. Ion Jetpack has been replaced with
its lesser form, Ion Jetpack

## Why It's Good For The Game
The meta to just blow up gravity and use your jetpack that makes you
faster than 99% of the projectiles ingame and faster than a healthy full
mood human to dunk on literally anyone you see because they cant click
you because youre going mach 3000 is absolutely not fair
With jetpacks being reasonable speeds this is no longer a problem

## Changelog
🆑
balance: All jetpacks are now modsuit jetpack speed
del: Adv. Ion Jetpack module has been removed
/🆑
2024-07-07 15:06:09 -04:00
Ghom
84e8c2a109 12% chance of a ouija board spawning in the chaplain office. (#84615)
## About The Pull Request
The ouija board is quite fun, but it's found nowhere, with the exception
of Wawastation and the tranquility shuttle (by the time you get there
the round's already about to end), so I may as well make it possible for
other stations to have it sometimes.

## Why It's Good For The Game
The ouija board is fun, and ghosts are mischievous and misleading,
uncoordinated creatures most of the times.

## Changelog

🆑
add: 12% chance of a ouija board spawning in the chaplain office.
Wawastation always has one.
/🆑
2024-07-07 11:37:03 -07:00
necromanceranne
e4adc1a939 Bow Update: Fletching instruction manual, bows using projectile damage multipliers, unhardcoded bow sprites, hot pink death (#84435)
## About The Pull Request

Adds a new crate to the Service section of cargo. The Fletching and
Bow-Making Starter Kit. Comes with some materials and a fletching
instruction manual.

The manual teaches you how to make shortbows (18 force from normal
arrows utilizing projectile multipliers), arrows, holy arrows (but you
need a divine bow to make them), quivers (but they only hold 10 arrows),
plastic arrows and violins. For reasons.


![image](https://github.com/tgstation/tgstation/assets/40847847/576732f2-03b4-47b7-9bad-d85ff06480f0)


### Fixes

Bows now no longer utilize hardcoded sprites for their loaded sprite.
Now they use overlays.

Bows properly become undrawn once fired. No longer can your bow
magically launch arrows by sheer force of will.

## Why It's Good For The Game

Initially I just wanted to provide a way for bow wielding chaplains to
produce additional arrows for their bow. Running out of those always
felt pretty lame. But then I got to thinking; actually, I kind of want
to LARP sometimes as an archer. I think that'd be kind of goofy and fun.
So I bundled that together into a solution for both.

The shortbow is really, really not meant to be a meaningful weapon. It's
just kind of silly, and meant to let people pretend to be Robin Hood and
occasionally hurt someone in a workplace accident. I'm particularly
thinking of clowns being the perfect users for this with their clumsy
trait. I will make this weaker if I have too.

(I am not, at this moment, redoing flaming arrows okay? I saw the code
comment. I know. Not right now. @tralezab, if you have any flaming arrow
sprites lying around, please let me know.)

## Changelog
🆑
add: Fletching starter kit! Make your own bow, shoot your friends in an
unfortunate workplace accident. Replace all those holy arrows you lost.
fix: Bows now properly undraw once they have fired an arrow.
code: Bows now utilize overlays in order to display loaded arrows.
Unique overlays per arrow.
/🆑
2024-07-07 17:57:32 +02:00
jimmyl
55652cd2c5 defibrillator gets a real power cell and also replaces attackby with item_interaction (#84683)
## About The Pull Request

defibrillator gets a real power cell and also replaces attackby with
item_interaction

## Why It's Good For The Game
bug bad
attackby bad
fixes #84541
## Changelog
🆑
fix: defibrillator no longer has an abstract cell
code: defibrillator attackby replaced with item_interaction
/🆑
2024-07-07 03:28:47 +02:00
Loafin34
b80a03cf73 Adds the Holy Skateboard, a holy version of the hoverboard. (#84514)
## About The Pull Request
This is my first PR ever, and I have tested it. It just adds an
additional nullrod variant that could be helpful for people that wish to
explore space as a chaplain, or chaplains that wish to look sick and
tubular.
## Why It's Good For The Game
More nullrods are better. Also, it's a fun vehicle that i feel allows
for more gimmicks as the 540 cr cost for a regular hoverboard is a bit
steep. It's not super good, and it's not bad, so I feel it doesn't
affect balance too much.
## Changelog
🆑
add: There's a previously undiscovered variant of a nullrod, recently
revealed from the depths of the skating rink..
/🆑
<!-- You can use multiple of the same prefix (they're only u


https://github.com/tgstation/tgstation/assets/126758839/5c94391d-8a01-40fd-93ec-ea3617ba6a59

sed 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-07-07 03:24:00 +02:00
necromanceranne
f50e7221d1 Limits the methods through which you can be stunned by a shove. Shoves disarm people who are knocked down. (#84640)
## About The Pull Request

For the sake of this PR's language, we'll be defining two different
stuns;

First: **wall stuns** are any stuns related to the shoving mechanic
where you are pushing people into objects and other people to cause a
knockdown. And, while they are in that specific knockdown, you shove
them again to stun them.

Second, a **shove stun** is any instance where you would be currently
able to apply this stun from a shove even if the conditions above have
not been met.

This PR limits down the potential stuns from a shove to; **wall stuns**,
and **shove stuns** following a telescoping baton knockdown or being
touched by the Mansus Grasp.

To know when you can stun someone with a shove, they will have this
animated visual cue.


![image](https://github.com/tgstation/tgstation/assets/40847847/123a47f2-93eb-4c25-a8e7-a7ae62e33c7f)

Successfully stunning, paralyzing or immobilizing the victim will remove
the opportunity for a stun. You cannot apply another stun from a shove
on someone for at least 3.5 seconds after the last stun was applied. The
stun lasts for 3 seconds, so there is a 0.5 gap after the stun expires
before another stun from a shove can be applied. This does not prevent
further knockdowns or staggers. This part was added mostly to help
clarify better when someone is or is not vulnerable, as well as cut down
on chain stuns without some additional attacks.

To make up for the loss of this advantage, shoving someone while they
are in any kind of knockdown forces them to drop their held items.

## Why It's Good For The Game

You may have remembered the removal of shove stuns testmerge a bit ago.
[You can read a bit about it here, but I'll link specifically to my
conclusions about that
testmerge.](https://tgstation13.org/phpBB/viewtopic.php?p=726119#p726119)

At the moment, shove stuns are very oppressive. Generally, it makes a
few engagements against a variety of tools too dangerous to be worth
attempting, and can often mean that a fight has already been won not
from the intelligent employment of a tool, but the mere existence of one
taking advantage of a very specific combination of actions. The most
egregious part is that it enables an individual who knows the patterns
to chain these stuns together to deny someone a chance at fighting back.

Wall stunning, however, is a good equalizer that punishes people for not
considering their environment, and rewards players who are. It allows
the clever player to maneuver themselves just right to score a powerful
reversal against even better equipped opponents, or a strong opener to
allow them a chance at a successful attack. And it is a strong example
of our environmental combat mechanics. Something that shove stuns in
isolation is not necessarily (though it can be in some cases).

Shove stuns are not exclusive to these scenarios, however. They exist as
a ubiquitous means of turning any given knockdown effect into a chain of
stun effects. Better equipped opponents, particularly ones with gear
able to apply knockdowns, often find themselves able to readily match
any opponent without having to worry about the aforementioned
environmental aspect of shoving. It is all the advantages with none of
the effort put in, and does play into any kind of struggle once the
chain effects start to take place.

We want to enable players to be able to have their big win moments
against the odds. But we also don't want to be rewarding players for
already being in an advantage position beyond what their gear affords
them.

Edit: With the new visual cue, I've allowed in a few shove stuns for
equipment that somewhat needs it in order to function well. Heads of
staff utilizing their telebatons are meant to be reasonably intimidating
opponents, contractors absolutely need the advantage in order to
successfully kidnap, and Heretics were one of the biggest sufferers
during the testmerge and clearly also hinge quite a bit on the effect.

## Changelog
🆑
balance: You can only stun someone with a shove if they have been shoved
into objects or people, or have been hit by telescopic batons,
contractor batons or the Mansus Grasp.
balance: If someone is knocked to the floor, however, you can still
disarm them of any object with a shove.
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2024-07-06 21:17:18 -04:00
GoblinBackwards
12b9259bd7 Firefighting nozzle attack chain fixes (#84652)
## About The Pull Request
Fixes #84589
Makes it so the nozzle will hit adjacent objects when in resin foam
mode, same for launcher mode as long as you're also in combat mode.

The launcher adj check in the old version isn't actually needed to
protect you when refilling your tank, the attack chain already gets
cancelled when trying to refill the tank at the start of this proc.
## Why It's Good For The Game
Being unable to destroy the foam using the nozzle makes it way more
annoying to use.
## Changelog
🆑
fix: Firefighting backpack tank nozzle can be used to hit objects and
destroy atmos resin again.
/🆑
2024-07-06 01:07:42 +02:00
carlarctg
bd14e92d04 Converts slapcrafting into a bespoke element (#84226)
## About The Pull Request

Converts slapcrafting into a bespoke element, used to be ac omponent

## Why It's Good For The Game

Noticed this was a big C and realized there was no real reason for that.
It's the same recipe shared across different items.

## Changelog
N/A

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-07-05 22:20:30 +00:00
ArcaneMusic
9c6dd433b3 Adds examine steps and code comments to window doors. (#84498)
## About The Pull Request

Window doors, unlike many machines and structures with multi-step
construction, was lacking a set of examine instructions to let you know
how to build it properly.

This PR adds those instructions, and basic instructions for
deconstruction as well to windoors and windoor assemblies to make using
them more seemless.

Also, updates some code comments in the file while I'm here because
they're just straight up incorrect, as it turns out!

## Why It's Good For The Game

In playing a round, I had absolutely no clue on how to construct a
windoor. I quickly checked the code, only to learn that the steps were
completely wrong in the documentation too, so this should help prevent
this from being an issue going forward.

## Changelog

🆑
qol: Examining a windoor will now provide the construction steps, like
other standard buildable objects.
/🆑
2024-07-05 20:35:22 +02:00
Lufferly
42d638117b Makes bloody footprints messier (#84665)
## About The Pull Request

Makes bloody shoes loose less blood per step, meaning that they trail
more blood. Updates the equation for determining footprint alpha to
account for this change.
(Bloodiness of 50, 100, 150 from left to right)
Before:

![image](https://github.com/tgstation/tgstation/assets/40921881/302a9041-b127-4ede-b9cf-edfb8aa042fc)
After:

![image](https://github.com/tgstation/tgstation/assets/40921881/55ffd4b9-b9eb-4448-9998-9f4a3a04b629)


## Why It's Good For The Game

Right now footprint go like 2-3 steps before stopping, feels kinda lame.
🕵️ 

## Changelog

🆑 Seven
balance: Bloody footprint trails go a longer distance now.
/🆑
2024-07-05 20:14:40 +02:00
Bloop
5f76e8b5f8 Attempts to put out the CI fires (#84277)
## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/13398309/d58de3f2-5adc-48f0-b207-608499f04250)

A lot of this all of a sudden, I am going to assume it's related to the
recent spark changes, which are most likely causing (literal) fires in
the testing area.

Fixes https://github.com/tgstation/tgstation/issues/84161
Fixes https://github.com/NovaSector/NovaSector/issues/3123

I'm still testing this one with a few CI runs but the timelines match up
with roughly around the time of the spark PR; it's most likely the
culprit.

EDIT: 8 CI runs so far and the issue has not come up, I am fairly
confident it was the sparks + fuel puddle combination that was the
problem.
EDIT EDIT: Found one more issue with /datum/material/plasma that needs
to be dealt with.
EDIT EDIT EDIT: Issue resolved

## Why It's Good For The Game

Save the burninating for in-game please!

## Changelog

Not player facing
2024-07-05 01:13:57 +02:00
LemonInTheDark
e90a9b4b68 Flattens The Floor Plane (Camera Update Too) (#84350)
## About The Pull Request

Ok so like, side map right? It makes things higher up in the world
render above things lower down in the world.

Most of the time this is what we want, but it is NOT what we want for
floors.
Floors are allowed to be larger then 32x32, and if they are we want them
to render based off JUST their layer.
If we don't allow this grass turfs and others get cut off on their
bottom edge, which looks WEIRD.

In order to make this happen, we can add TOPDOWN_LAYER to every layer on
the floor plane and disable sidemap.

I've added documentation for this to VISUALS.md, and have also
implemented unit test errors to prevent mixing TOPDOWN layers with non
topdown planes (or vis versa).
This new test adds ~1 second to tests, which is I think a perfectly
scrumpulent number.

EDIT:

I nerd sniped myself and implemented sidemap layering and lighting for
cameras (also larger then 32x32 icon support for getflat)
The lighting isn't perfect, we don't handle things displaying in the
void all that well (I am convinced getflat blending is broken but I have
no debugger so I can't fix it properly), but it'll do.

This came up cause I had to fix another layering issue in cameras and
thought I might as well go all in.

![image](https://github.com/tgstation/tgstation/assets/58055496/601b422c-f6aa-42ba-bcd9-b1faebe236e3)


## Why It's Good For The Game

Old:

![image](https://github.com/tgstation/tgstation/assets/58055496/d4102386-420d-4346-b05c-b819e62d98d0)

New:

![image](https://github.com/tgstation/tgstation/assets/58055496/1f5e303e-adee-427d-8fe3-76c8f2dbe098)


## Changelog
🆑
fix: Grass turfs will render properly now. Reworked how floors render,
please report any bugs!
fix: Cameras now properly capture lighting
fix: The layering seen in photos should better match the actual game
/🆑
2024-07-04 12:10:41 -07:00
Andrew
0cb6e7f354 More techweb tweaks [NO GBP] (#84574)
## About The Pull Request

More QoL tweaks and rebalance towards easier unlocking of high tier
nodes by doing discount experiments.

## Why It's Good For The Game

More ways to unlock desired nodes.

## Changelog

🆑
balance: Techweb: High yield explosive is now a discount experiment for
Exotic Ammo node, giving more free points
balance: Techweb: Replaced the botany/xenobio discount experiments with
a new mutant scan experiment for the Gene Engineering node
balance: Techweb: Damaged mech scan is a discount experiment for tier 4
Mech Energy Guns node, giving twice more free points
balance: Techweb: Added a new anomaly scan experiment that gives full
discount for the Advanced Anomaly Shells, also moving the node to tier 5
balance: Techweb: Moved mech RCD to the Experimental Tools node
balance: Techweb: Moved handcuffs to T2 security node, leaving only
zipties in T1
balance: Techweb: Non-human Autopsy is a discount experiment instead of
a required one now
balance: Techweb: Parts scan experiments require 6 machines instead of 4
del: Techweb: Removed the New Toys node moving contents to sec and
medbay trees
qol: Made air horn craftable from a spraycan and a bikehorn
qol: Techweb: Better wording on the slime scan experiment
/🆑
2024-07-04 12:06:07 -07:00
Andrew
d4765c0657 Cytology without plumbing (#84235)
## About The Pull Request

Makes Growing Vat work as a normal machine akin hydrotray. 
Doesn't need plunger to clear reagents, doesn't need plumbing to input
reagents.
Still has the plumbing port, but can be used without it.
Also made the examine text a bit more compact.

Removed science plumbing RCD from the game.
Removed plumbing tools from cytology equipment, and added a protein
powder jug instead.


![image](https://github.com/tgstation/tgstation/assets/3625094/40d2d33e-f78d-4dc9-96e6-4b0fd231035f)

Automatically fixes #84573

## Why It's Good For The Game

Plumbing was an unnecessary complication for Cytology.

Growing vat is a relatively simple machine that shouldn't require
plumbing knowledge.
Now it works more like hydrotray, and you can pour reagents directly,
and clear them out with a right click.

## Changelog

🆑
refactor: Vat grower is a normal machine now that doesn't need plumbing
qol: Cytology petri dish smartfridge starts with 3 random samples
add: Added protein powder condiment bottle, available in the cytology
supplies locker and the cargo pack
del: Removed science variant of plumbing RCD
fix: Fixed a bug when machines without stock parts didn't spawn frames
on deconstruction
fix: Fixed vat grower not growing
/🆑
2024-07-04 12:04:31 -07:00
Andrew
464c6e905d Portable atmos machines` circuitboards (#84201)
## About The Pull Request

Made portable atmospheric machines buildable as any other machines.


![image](https://github.com/tgstation/tgstation/assets/3625094/57c09495-85f7-4417-a109-aedebc723048)

## Why It's Good For The Game

These are simple machines that are limited by the map spawn amounts and
cargo orders for no good reason. While much more complex machinery can
be built.

Also allows for the construction of pipe scrubber introduced in #84187

## Changelog

🆑
qol: portable scubber, pump and pipe scrubber are buildable as any other
machines
/🆑
2024-07-04 12:02:53 -07:00
Xackii
82f92cb983 New Traitor mech: Justice. (#84097)
## About The Pull Request

Adds new mech that can be created from emaged fabricator. To craft this
mech you need:
1. Emag Fabricator to recive Justice disgine(done this, fabricator will
emit a text and sound signal that can reveal you).
2. You need to craft it like any other mech but you also need 8
telecrystals to finish constraction.
3. To board a mech you need syndicate access (traitor can get it by
purchasing an agent card).
About Mech:
Video:
https://youtu.be/QwJfO_lbLK0
Text:
Health 200
Damage 60
Only melee attacks(can't attach range weapons(can't attach anything in
his arms at all))
Block chanse 60
Speed - in safty mode 2.5 in combat mode 4.5
Attack effects:
In addition to damage, it has a 50 percent chance of cutting off an arm
or leg (does not put you to sleep or give a knockdown
effect when hit like regular combat mechs do).
If a target in crit or stun makes a finishing attack instead of a
regular attack, the mech says an epic phrase and after a second cuts off
the target's head by dashing through the target.

Special actions(can't be used if mech in safty mode):

Invisability - Makes the mech invisible for 20 seconds. If the mech is
pushed or collides with someone or if the pilot presses the invisibility
button again, the mech will no longer be invisible and will go into a 5
second cooldown (the same will happen after 20 seconds). If you attack
in invisibility, then instead of a normal attack the mech will make an
AoE 3x3 attack 1 second after pressing (the attack will be accompanied
by a sound and visual effect and for a second the mech will not be able
to move, which gives enemies time to run away from the attack). Upon
completion AoE attack, everyone( except peoples in crit and in stunned
condition) in a 3x3 radius will receive 35 damage and a 25 chance of
having one of their limbs cut off.

Charge Attack - Mech makes a dash towards the cursor at a distance of up
to 7 cells, breaking all obstacles in its path. If the obstacle is a
living person (and he is not in crit and is not stunned) then he will
receive 35 damage and a 25 chance of cutting off a limb. Cooldown 5
Seconds.
P.S.
Also added emag_act on fabricator so you can put any new secret traitor
mechs on it.
Also made the sounds of mech melee attacks to vars so that it would be
more convenient to change them.

Also fix a runtime error where if you set something in the mech's
max_equip_by_category to 0, the mech UI panel doesn't load.

## Why It's Good For The Game

Adds a traitor mech with fun and interesting mechanics. This is a new
mech with new unique abilities that turns the battle with you into a
boss fight.

## Changelog

🆑
add: New traitor mech: Justice. Emag fabricator to get it.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2024-07-04 12:01:42 -07:00
SyncIt21
e4c5c2fc2a Allows for proxy atoms in object melee attack chain (#83860)
## About The Pull Request
1. Objects now have an `get_proxy_for()` proc. This returns an atom that
will participate in the object melee attack chain on behalf of your
atom. Allows for general purpose polymorphism per object interaction
2. Cleaned up some multitool acts to accommodate proxy behaviour
3. You can pry tiles as an Engiborg with crowbar in hand & do other
similar behaviour with crowbar
5. Improves & Depends on #83880. We don't need a hidden omni toolbox &
can create the tools directly in the omnitool and pass them in the
attack chain as a proxy rather than calling the attack chain manually.
All tools are on the borg directly
   - Fixes #84355
   - Fixes #84359
   - Fixes #84393

## Changelog 
SyncIt21,zxaber
🆑
fix: omni crowbar tool interaction for replacing tiles has been fixed 
fix: techfab screentip does not runtime when you hover over it with an
omnitool multitool
fix: medi borgs can do brain surgery again
code: improved multitool & general tool code for some machines
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-07-03 15:47:18 -07:00
_0Steven
6d54498059 Improve bedsheet interactions (#84505)
## About The Pull Request

This pr simply adds drop/pickup sounds to bedsheets, replaces its
`attackby(...)` and `attack_secondary(...)` with `item_interaction(...)`
and `interact_with_atom_secondary(...)`, and makes tucking in match the
bedsheet `pixel_z` with that of the living we're tucking in. It also
removes a check that's no longer needed to allow for telekinetically
tucking someone in.

First bit of note, we use `item_interaction(...)` instead of
`wirecutters_act(...)`/`tool_act(...)` as I think tearing up the
bedsheets should be the interaction in combat mode too, and everything
under `tool_act(...)` only gets called with combat mode being off.

Second bit of note, we remove the `!user.CanReach(target)` check from
tucking people in, as I believe that's no longer necessary here. This
allows us to tuck people in telekinetically, given the bedsheets are
adjacent to the one we're tucking in.

Finally, we match the bedsheets' `pixel_z` with that of the living we're
tucking in by setting it directly, and also reset it directly when we
smooth the sheets.
I know the elevation element exists, but I believe that only cares about
living instances, and besides that really we only want this to be set
when tucking someone in rather than always. Most importantly, it works.
## Why It's Good For The Game

Using the new item interaction code is better than `attackby(...)` and
such.
Cloth sounds are nicer than no sounds, and make sense given they're,
well, cloth.
Tucking someone in with telekinesis is funny.

Previously, bedsheets would not offset their `pixel_z` to match that of
the living they're tucking in, meaning if you were to say rest upon a
table the bedsheets would always be awkwardly offset.
This fixes that.
## Changelog
🆑
code: Moved bedsheet interactions to the item interaction code. Please
report any issues.
fix: Bedsheets adjust their offset to match that of the living they're
tucking in.
sound: Bedsheets use the cloth drop/pickup sounds instead of being
silent.
qol: You can tuck someone in telekinetically.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-07-03 22:09:18 +00:00
jimmyl
bac55e33fd exorcises hardstun weapons + death/poly wands from lootboxes (#84414)
## About The Pull Request

exorcises hardstun weapons + death/poly wands from lootboxes
pulse weapons are of the taserless variant
also all nukeop guns are unrestricted let people have fun bro

also removes the enchanted modsuit from said loot

## Why It's Good For The Game

getting instantly paralyzed with a ranged gun is not fun, never will be
so we just remove those
also being able to use the guns you get from an admin
shitspawn/deathmatch prop is pretty much a fix???
polymorph wands and death wands are stupid and are just taser++ except
they kill you outright (polymorph could make you a rat that would count
as dead personally)
enchanted modsuit entirely shuts down basically 90% of other players
spells which basically invalidates the entire ragin mages map (which
sucks anyway)

## Changelog
🆑
balance: removed tasers, the unfirable turret gun, death wand, polymorph
wands and the enchanted modsuit from lootbox loot tables
fix: lootbox guns should now mostly not have syndicate firing pins so
you can actually use them
/🆑
2024-07-03 23:23:07 +02:00
ArcaneMusic
7f0f3be215 Adds a check to prevent race condition runtimes by cigarettes. (#84494)
## About The Pull Request

Yesterday I was observing a few rounds and skimmed through the list for
any easy runtime fixes. Here was one I found.

In the `make_cig_smoke()` by cigarettes, if particles weren't setup by
the time it got to the next line, it would cause this runtime. This adds
a ?. (called an elvis operator, fun fact) so that if
`cig_smoke.particles` isn't there, it won't runtime.

## Why It's Good For The Game

Less runtimes, cleaner code results on live.

## Changelog

No player facing changes.
2024-07-03 11:31:03 -04:00
SmArtKar
b359988016 Gun Refactor Part 1: Bayonet Componentization (#84246)
## About The Pull Request
The gun code is an absolute mess that seems to have been untouched for
the better part of the decade and finally gave way due to the attack
chain refactor. This PR is the first in my attempts to refactor this
mess by making bayonet attachment a component instead of /obj/item/gun
variables. Followup PRs may or may not be atomic changes or a monolith
due to how horribly the original code is structured.

## Why It's Good For The Game
Gun code is ancient, unmaintained, barely readable and started actively
breaking in the past weeks.

## Changelog
🆑
refactor: Bayonet attachment is now a component.
/🆑
2024-07-03 12:54:26 +00:00
OrbisAnima
cdc7bb6b82 Fixes the Basic Sandwich (#84552)
## About The Pull Request
Fixes the basic sandwich recipe from having the incorrect ingredients
and incorrect food types. Now its consistent with its description, taste
and ingredients.

## Why It's Good For The Game
Makes things consistent, gives a vegetable recipe the vegetable
ingredient, and meat and dairy ingredients the meat and dairy tags.

Fixes downstream: https://github.com/NovaSector/NovaSector/issues/1318

## Changelog
🆑
fix: Fixed the basic Sandwich recipe and tags, now it matches the
description and original intent.
/🆑
2024-07-02 19:24:19 +02:00
Andrew
8fc1ab604c Linen bin/basket sprites (#84548)
## About The Pull Request

Updated the linen bin sprites and added a basket version available for
the mappers.

Also made it movable on top of the tables and added the tabletop offset
when anchoring.


![image](https://github.com/tgstation/tgstation/assets/3625094/a8a72036-0696-42b3-a4d5-8d8133fb1d03)

Also updated the cart flatpack sprite shading a bit while I was updating
the dmi.


![image](https://github.com/tgstation/tgstation/assets/3625094/9e408d20-e97e-4d46-bcfa-6f4bd0afe28c)

## Why It's Good For The Game

The sprite was old.

## Changelog

🆑
image: New linen bin / basket sprites
/🆑
2024-07-02 16:28:35 +02:00
Andrew
d1f3fc3fdf Oldstation (Charlie) experiments tweaks [NO GBP] (#84379)
## About The Pull Request

There was a feedback that the new techweb made it harder to do science
on ghost roles, namely Charlie station crew.

This PR makes a few tweaks to oldstation to lower the bar on the
experiments:

- Added a pure N2O tank for easier BZ creation
- Added one diamond to the ai sat to create artificial BS crystal
- Added research console to ai sat with frontier app pre-installed
- Added a gas compressor to Beta station atmos area

Also moved the NTNet relay back to tcomms node as it requires tcomms
parts. And moved chem pack/blood pack from tier 1 to tier 0 per players`
request.

Also fixed the dissection experiments giving the old amount of bonus
points, before the recent point denomination.

Made a few other minor changes to the map.

## Why It's Good For The Game

Charlie is supposed to be friendly for the beginner players, yet the new
experiments are hard to do with the limited resources on Charlie.

## Changelog

🆑
qol: It is easier to do some required techweb experiments on Charlie
station now
fix: Fixed experimental dissection surgeries giving too many points
balance: Techweb: Moved NTNet relay back to tcomms node
balance: Techweb: Moved blood pack and chem pack to the starting node
/🆑
2024-07-01 17:48:19 -07:00
MrDas
0ea12047ea Various bola fixes (#84418)
## About The Pull Request
Fixes and rewrites bola ensnaring so it works properly. 
Fixed cult bolas leaving in-hand sprite when they ensnare non-cult user.
Fixes #83577 
## Why It's Good For The Game
Bolas were one of the main ways of stopping hulked criminals when
security officer was not equipped with lethal weaponry. This PR makes
bola slowdown apply as it should be. Also while looking at bolas I've
noticed cult bolas leave in-hand sprite when ensnaring non-cult user, so
I've fixed that as well. Big thanks to @GoblinBackwards for figuring out
what was wrong with bolas.
## Changelog
🆑 MrDas
fix: Bolas now slowdown properly.
fix: Cult bolas no longer leave in-hand sprite when they ensnare to
non-cult user.
/🆑
2024-07-02 02:21:45 +02:00
_0Steven
0a77815fe9 Bedsheet bin interaction improvements (#84510)
## About The Pull Request

This pr just replaces the bedsheet bin `attackby(...)` with
`item_interaction(...)`, adds usage screentips to bedsheet bins, adds
more balloon alert feedback to failing to hide items in bedsheet bins,
and added `silent = FALSE` to the `user.transferItemToLoc(tool, src)`
calls' parameters such that putting items in isn't silent.

Main thing to note is that we skip hiding items when in combat mode,
such that you do not try to hide the item you are currently trying to
beat up the bin with.

Tiny second thing to note is that we explicitly `return .` in
`add_context(...)` due to adjusting the value of `.`.
## Why It's Good For The Game

Better to update `attackby(...)` to `item_interaction(...)`.
I think item interactions being internally consistent is more intuitive;
left click always being hiding feels nicer than left click being hiding
_except_ for tools where it's right click.
Then, I think hiding should be left click as "putting something in" is
the primary item interaction we're expecting, parallel to tables or
storage or racks or somesuch.

Nice to have screentips.
Nice to have more failure feedback.
Nice when things aren't silent.
## Changelog
🆑
code: Moved bedsheet bin interactions to the item interaction code.
Please report any issues.
qol: Made bedsheet bin tool interactions right click, such that left
click is consistently for putting in items.
qol: Added usage screentips to bedsheet bins.
qol: Added more feedback to failing to hide items in bedsheet bins.
sound: Made putting items in bedsheet bins not silent (If the items have
associated pickup/drop sounds).
/🆑
2024-07-02 02:17:58 +02:00
SmArtKar
ab7dc16f27 Storing supermatter sliver in a specialized container no longer dusts you (#84492)
## About The Pull Request

Melee attack chain rework strikes again. Closes #84398
Moved interaction logic into tongues and allowed them to actually handle
attack code beyond dusting people.

## Changelog
🆑
fix: You no longer get dusted upon trying to store your supermatter
sliver.
/🆑
2024-06-30 22:22:08 -06:00
Lorwp
87059170a0 Makes extinguisher has_reagent check subtypes (#84403)
## About The Pull Request
Fixes #84140
## Why It's Good For The Game
I like spraying cultists with the power of jesus christ
## Changelog
🆑 lorwp
fix: extinguishers now can be filled with subtypes of water again
(Namely, holy water)
/🆑
2024-06-30 22:09:00 -06:00
LemonInTheDark
7d1e9e1c0a Implements Cardinal Smoothing Support, Misc Smoothing Cleanup (#84402)
## About The Pull Request

[Implements a new cardinal only bitmask smoothing
mode](d565564918)

The icon cutter supports generating cardinal only dmis, we should
support using them.

This is fairly trivial, just involves skipping a step to handle
diagonals.

While I'm here, makes adding new smoothing modes easier by creating a
"using smoothing" group define

[Removes undef for smoothing
junctions](4c0a4d6e34)

It is useful to be able to reference these in the general codebase, they
should not be considered scoped to just icon smoothing

[Fixes a copypasta issue breaking burn states for asteroid
snow](a41b31dbe2)

[Removes SMOOTH_BROKEN_TURF and
SMOOTH_BURNT_TURF](8a9a340728)

Bitflags should not be this specific, this should be a var on
/turf/open, so that's what I'm making it.

## Why It's Good For The Game

Upstreams a bit of wallening work, cleans up the codebase some

## Changelog
🆑
fix: Some varieties of snow now visually melt properly again when burned
/🆑
2024-06-30 22:08:39 -06:00
Andrew
e421f8e7c4 Moved loose tiles and wallframes to crafting (#84210)
## About The Pull Request

There were some tiles and wallframes in lathe designs, while most of
these are already in the crafting menu. Moved all of them into the
crafting menu to avoid confusion, when you can't find some wallframe in
the menu because it must be built in lathe.

Made the light tile craftable in menu, instead of slap-crafting, and
made the circuit tiles use similar recipe (since they both are emissive
tiles). And the circuit tiles can now be cycled in-hand:


![image](https://github.com/tgstation/tgstation/assets/3625094/c7caa5fb-54dd-44d7-8f71-cd02ad740eee)

## Why It's Good For The Game

Centralized place for tiles and wallframes.

## Changelog

🆑
qol: Made light tiles available in the crafting menu
qol: Circuit tile variants can be cycled in-hand
add: Moved loose tiles and wall frames from lathe designs to other tiles
and frames in the crafting menu
/🆑

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2024-06-30 17:39:38 +00:00