Commit Graph

18122 Commits

Author SHA1 Message Date
SyncIt21
57eeb5290c Minor maintenance for borg Inducer (#88250)
## About The Pull Request
- Moves borg inducer to the same file as other inducers for easy
maintainence
- Compressed code for its `get_cell()` proc
- Fixes examines & screentips for borg inducer

## Changelog
🆑
code: slightly improved code for borg inducer
spellcheck: fixes examines & screentips for borg inducer
/🆑

---------

Co-authored-by: AMyriad <143908044+AMyriad@users.noreply.github.com>
2024-12-05 22:34:26 -08:00
SmArtKar
0314511328 AI laws and tape recorders no longer cause radio blips (#88285)
## About The Pull Request

Closes #87423

## Why It's Good For The Game
The sound this produces when AI states laws on a non-common frequency is
highly jarring and shouldn't be spammed every time someone from command
asks AI to state laws (or security uses a tape recorder in the
interrogation room).

## Changelog
🆑
qol: AI laws and tape recorders no longer cause radio blips
/🆑
2024-12-05 22:33:31 -08:00
MrMelbert
9007190a74 Audits a bunch of calls to receive_damage, replacing them with apply_damage (#88205)
## About The Pull Request

Looks through calls to `receive_damage` and replaces them with calls to
`apply_damage`

`receive_damage` is a gross to use internal proc that doesn't take into
account physiology (damage modifiers) or even update the mob's sprite
when taking damage

It should be avoided many uses - `apply_damage`, in fact, can take a
bodypart as a target, and is overall a lot easier and more ergonomic to
use.

"So what are valid uses of it?"
- Apply damage itself, and similar direct-damage procs 
- Ensuring you deal an exact amount of damage to a bodypart
- Damaging a limb with no owner

## Changelog

🆑 Melbert
refactor: A ton of things now use the more correct method of applying
damage to you. Which means they will correctly factor in damage
modifiers and are less likely to break your sprite. Some examples
include embedded objects jostling around, chiropractice, and tackling a
wall. Report any oddities, such as extreme damage or bodyparts being
wrongly affected.
fix: Having acid splashed on your face may now disfigure you and make
you bald, as it once did three years ago.
fix: Itchy heretic trauma now better checks if the bodypart is covered
or not before determining if you should itch.
fix: "Repair Puncture" logs no longer mistakenly report you are
"Incising burned flesh"
/🆑
2024-12-04 09:00:15 +13:00
norsvenska
7725c7d4b7 Updates the list of station commission plaques (#88233)
## About The Pull Request
Commission plaques were outdated, so they needed updating. This adds
Wawa's merge date, which was not present, moves Northstar's to the
removed station list, and adds one for Nebulastation. I also
alphabetized the current map list to be in line with the removed list.
No map edits were made.
## Why It's Good For The Game
Just keeping things up to date
## Changelog
🆑
spellcheck: Station commission plaques (the gold ones that have the date
they were added) have been updated, adding Nebula's, fixing Wawa's, and
decommissioning Northstar's.
/🆑
2024-12-02 22:19:51 +01:00
Lucy
3c3c49f7ae Minor broadcast camera code cleanup (#88248)
## About The Pull Request

Moved all the icon_state setting logic of the broadcast camera to
`update_icon_state`, rather than setting it manually on (de)activation,
and resetting it to inactive in `update_icon_state`

## Why It's Good For The Game

Makes things more consistent.

## Changelog
🆑
fix: Made the broadcast camera's sprite more consistent, it hopefully
shouldn't reset to the inactive sprite while recording in some weird
scenarios now.
/🆑
2024-12-02 22:17:24 +01:00
SmArtKar
44154ba4f7 You can no longer stick a butter on a stick on a stick (#88301)
## About The Pull Request

Recursion!

## Why It's Good For The Game

The code was weird, allowed you to teleport butter and void rods.

## Changelog
🆑
fix: You can no longer stick a butter on a stick on a stick
/🆑
2024-12-01 13:48:50 +01:00
jimmyl
25c616e353 fixes the museum cafeteria puzzle and some other things related to the museum (#88287)
## About The Pull Request

the dotted color board was missing a color for the 10th digit, and
orange and brown were not valid byond colors (damn you ghommie)
fake scrubbers and vents use the correct layer and plane
you may no longer deconstruct indestructible windows
you can no longer push indestructible grilles and robust windows if you
have a strong move force

step teleporters may not teleport abstract objects or mirage holders
(due to init shenanigans this sometimes teleported a mirage holder
messing the visuals up)

## Why It's Good For The Game

bug bad also i didnt make these bugs ok

## Changelog
🆑
fix: fixed the museum password puzzle (to the cafeteria), and the
scrubbers and vents there now look correctly (also fixed a rare visual
bug)
fix: it is now harder to bypass indestructible windows and grilles
(those are placed there for a reason, you know!)
/🆑
2024-12-01 13:39:29 +01:00
Tim
69c01b27ee Improved shower/blood effects (#87747)
## About The Pull Request
Last night I was experimenting with hooking up different chemicals to a
shower and discovered that blood didn't really do anything other than
have red mist and particles. Your characters clothes were still cleaned.
The mood boost was still happy. So I reworked it a bit.

Blood now:
- Gives a negative mood, disgust, and status effect when showering with
it (unless you are morbid, evil, or undead, then it's considered
positive)
- Has an icon alert for bloody showers
- Covers a mob's clothing with blood when showering (or any objects on
the tile)
- Tossing or spraying a container full of blood now covers objects/mobs
in blood
- The revenant defile spell now affects showers by removing all water
recyclers and reagents that gets replaced with blood

Showers now:
- Require 70% of water to clean and get mood/status effects
- Require 70% of blood to get mood/status effects
- Require 20% of radioactive reagents to stop radiation removal effects

So it's possible to have a clean water shower that is secretly
radioactive. Since radioactive reagents do nothing on `TOUCH`, all this
achieves is preventing the water from washing off the radiation.

I did have to refactor some of the reagent code to support method types
for objects since I was experiencing hazmat issues when I was testing.
Whenever I would inject blood from a syringe into a beaker, it would
cover the beaker in blood on the outside. This would have been extremely
hazardous for viruses. So I needed to make sure we are only applying it
to the methods for `VAPOR|TOUCH`

Also improved the mood typecasting for owner to allow checking of mob
biotypes. (so we can check `UNDEAD` for mood)

## Why It's Good For The Game
Blood effects and interactions are now more consistent. The code for
objects is refactored to support method interactions with reagents.
Evil/Morbid people now get some unique interactions that fit their
theme. Last we get a cool new ability to let revenant's make their
defiled areas something out of a horror movie.

## Changelog
🆑
add: The revenant defile spell now affects showers by removing all water
recyclers and reagents that gets replaced with blood.
add: Showering in clean water (+70%) results in positive
mood/regen/stamina effects. It will wash off the mob.
add: Showering in dirty water results in negative mood effects and
disgust. It will NOT wash off the mob.
add: Showering with radioactive reagents (+20%) results in the
preventing the shower from washing off the radiation.
add: Showering in blood (+70%) results in severe negative mood effects
and disgust. (unless you are morbid, evil, or undead then it's
considered positive) It will cover the mob in blood.
add: Water effects that interact with a mob from touch or vapor
(showering/spray bottles/etc.) will now heal sleep, unconsciousness,
confusion, drowsiness, jitters, dizziness, and drunkenness.
fix: Fix bloody showers not covering objects in blood.
fix: Tossing or spraying a container full of blood now covers
objects/mobs in blood
fix: Fix wrong status effect for watery tile
image: Add new alert icons for bloody/dirty showers
code: Refactored some expose_obj reagent code to support method types.
code: Improved mood typecasting for owner to allow checking of mob
biotypes.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-30 03:16:04 +01:00
Ghom
1dff5f6de3 Aquariums are now potential fishing spots. (#88243)
## About The Pull Request
You can now fish from aquariums if you wish to. This includes some
backend changes to make it possible for the fish table from
get_fish_table() to contain instances, and all that it entails up to
spawn_reward(), which is a requirement for the gimmick to respect the
various traits and other variables of the already instantiated fish
rather than read from cached properties.

## Why It's Good For The Game
The fish progress score/index had only little nasty flaw that has been
nagging me since day one: Not all fish species can be caught. Skipping
McGill, which is a peculiar case that for cheevo purposes should be
considered a standard goldfish, there is the one, unsignificant yet rare
purple sludgefish which can only be gotten as a rare evolution of the
generic sludgefish. Talk about petty, but this may be a long-term nit I
prefer to handle right now.

Also why not? The 'unmarine mastodon' is near impossible to get unless
you somehow find a oil well which is locked behind a specific ruin.

## Changelog

🆑
fix: Aquariums are now potential fishing spots.
/🆑
2024-11-29 03:33:18 +00:00
carlarctg
f198a55364 Added 'loose hat' functionality to the hat stabilizing component, used in modsuist (#88030)
## About The Pull Request

You can now wear a hat on any modsuit, even w/o the stabilizing module.

However:
- It will always sit slightly askew, at an angle.
- Involuntarily falling to the ground for any reason will cause the hat
to fall to the ground.
- Being thrown, slapped, or slipped will send it flying off.

Added the Atrocinator, Hat Stabilizer, and Tanning modules to the black
market.

Added the loose hat component to bio/bomb/rad hoods and space helmets.

## Why It's Good For The Game

> You can now wear a hat on any modsuit, even w/o the stabilizing
module.

I think the notion of, say, the Head of Security putting his cap on his
modsuit and then being slipped by the clown, who then steals the cap, is
really funny.


https://github.com/user-attachments/assets/3ad8a74d-0cb8-4118-8beb-d2ce9c76b358

The module is fairly rare and sometimes I just want to wear a silly hat
alongside the modsuit without badgering the captain for his hat module.
The downsides are rather plentiful so it's not like the hat module is
made irrelevant - if anything it makes it more notable.

This will add a bunch of enjoyable silliness to rounds, so I think it's
worth it.

> Added the Atrocinator, Hat Stabilizer, and Tanning modules to the
black market.

> Added the loose hat component to bio/bomb/rad hoods and space helmets.

It sucks losing your iconic drip when you need to venture out to space
for whichever reason - this lets you keep it without taking up space in
your bag, while having the throw downside.

They just feel perfect for the vibes of the black market. More
miscellaneous completely useless fancy stuff that has exorbitant prices
please!

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

🆑
add: You can now wear a hat on any modsuit, even w/o the stabilizing
module. But it may easily fall off...
add: Added the Atrocinator, Hat Stabilizer, and Tanning modules to the
black market.
add: Added the loose hat component to bio/bomb/rad hoods and space
helmets.
/🆑

~~I'm having a bit of an issue. Somewhere I fugged up and now the worn
overlay on the mod helmet sprite doesn't work properly...~~ Turns out
that code was never used and nonfunctional to begin with so I removed it
entirely yay
2024-11-29 01:28:09 +01:00
paganiy
115609c113 Adds a new item to the chef traitor's uplink: Molt'Obeso sauce. (#87103)
## About The Pull Request
A new item for 2 TC has been added to the chef's traitor uplink –
Molt'Obeso sauce!
Buying it, you get a bottle for 50 units, filled with this sauce. After
eating Molt'Obese, you'll think you're still hungry. It also removes the
limit on how much food you can eat, so you can just keep going and
going, but you never get full. Plus, Molt'Obeso helps your body absorb
more nutrients from food, so the food is even more nourishing with it.
## Why It's Good For The Game
The Syndicate sabotages the NT station by making everyone fat?
## Changelog
🆑
add: Add a new item to the chef traitor's uplink: Molt'Obeso sauce. A
sauce that makes people want to eat too much.
/🆑
2024-11-28 16:23:18 +01:00
Runi-c
8b9da265ba Digitigrade code refactor and shoes + explorer suit (Using GAGS and zero sprite bloat) (#88096)
## About The Pull Request
Refactors and extends the existing [digitigrade clothing
system](https://github.com/tgstation/tgstation/pull/85406) to also
support oversuits and shoes (only enabled for sneakers, specific boots,
and shaft miner's explorer suit). All digitigrade-specific clothes are
generated by GAGS by color sampling the base sprite and applying it to a
greyscale template.


![image](https://github.com/user-attachments/assets/c4ce5996-9373-4d76-a0e5-a6b094dd10b4)

More up to date boots:

![image](https://github.com/user-attachments/assets/8ead8056-25a3-42dd-9fde-e838e2a810b9)


![image](https://github.com/user-attachments/assets/783a1201-8a77-45a0-af85-8a63b41b63a8)


Credit to MrMelbert for prototype code and Junkgle for new sprites

## Why It's Good For The Game
Looks good, doesn't introduce maintainability issues or sprite bloat

## Changelog
🆑
add: digitigrade lizards can wear certain shoes and suits
image: added digitigrade shoes & oversuit templates
refactor: improved digi clothing generator code
/🆑

---------

Co-authored-by: MrMelbert <kmelbert4@gmail.com>
Co-authored-by: Roryl-c <5150427+Roryl-c@users.noreply.github.com>
2024-11-28 16:17:18 +01:00
MrMelbert
75696ab873 Fixes random stuff spilling into ooc tab (#88221)
## About The Pull Request

`boldannounce` is NOT for use ICly it's only for OOC stuff. `bolddanger`
is identical it just doesn't carry the same baggage

## Changelog

🆑 Melbert
fix: Stuff like the SM exploding will no longer output to your OOC tab
/🆑
2024-11-27 17:41:52 +01:00
SyncIt21
221fde6f74 Fixes some chainsaw issues (#88225)
## About The Pull Request
- Fixes #88105. No default sound & balloon alert when the chainsaw is
turned on & it's not invisible in hand when it's turned off
- Fixes
https://github.com/tgstation/tgstation/issues/88105#issuecomment-2493592188.
The mounted chainsaw has a new animated sprite when turned on instead of
going invisible

## Changelog
🆑
fix: chainsaw is not invisible when turned off in hand
fix: chainsaw won't play ping sound when turned on
fix: mounted chainsaw has a new animated sprite when turned on & won't
go invisible in hand
/🆑
2024-11-27 17:37:42 +01:00
SyncIt21
163d6c76cd RCD deconstruction is not cancelled by UI changes (#88117)
## About The Pull Request
- Fixes #88108

## Changelog
🆑
fix: rcd deconstruction is not cancelled by UI changes
/🆑
2024-11-25 19:20:01 +01:00
OrionTheFox
60cbc47ef0 Adds a fuel examine to lighters (#88170)
## About The Pull Request
Didn't even know they had this until it stopped lighting.
While it has fuel, it says it has x fuel out of its maximum.
When empty, it says what to refuel it with (welder fuel)


![image](https://github.com/user-attachments/assets/4096e68f-c2e5-4b50-abd4-f904059a23ee)

<details><summary>(For reference, Welders have something similar)
</summary>


![image](https://github.com/user-attachments/assets/afbf675c-85ee-49c8-8956-0e77352544d6)
</details>

I do not know how to set up math to make this number more useful; it
tends to burn .25 units ever few seconds but beyond that it's just
numbers and I'm not the best with numbers.
At the least you can see if it's full or empty.
## Why It's Good For The Game
This mechanic is not shown to players in any way besides the lighter not
lighting.
## Changelog
🆑
qol: added an examine note to lighters showing their fuel
/🆑

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2024-11-25 15:15:30 +01:00
Hardly3D
f720e551d9 Fixes ghosts being able to make analyzing sounds (#88177)
## About The Pull Request
Prevents ghost from emitting analyzing sounds when using the gas scan
verb
## Why It's Good For The Game
Fixes a little bug

## Changelog
🆑 Hardly
fix: Ghosts can no longer emit spooky analyzing sounds when scanning
/🆑
2024-11-25 15:14:52 +01:00
Tim
7b76476ae8 Change some status effects adjustments to use SECONDS (#88098)
## About The Pull Request
Some of the status effect adjustments were missing `SECONDS` to their
proc calls.

## Why It's Good For The Game
N/A
2024-11-24 17:08:56 -06:00
carlarctg
6d384051ed carpenter hammer fits on belt slot (#88109)
## About The Pull Request

bro its a hammer

(speaking of, i feel like it should fit on the toolbelt & be a crowbar.
but that's basically 1:1 the preexisting claw hammer, idk)

## Why It's Good For The Game

bro it's a hammer.

## Changelog

🆑
qol: carpenter hammer fits on belt slot
code: renames belt_icon_state to inside_belt_icon_state for
intelligibiility
/🆑
2024-11-25 00:03:06 +01:00
SmArtKar
f65ce91405 Fixes duplicate signal registation from defib paddles (#88163)
## About The Pull Request

You do realize in most cases the player must be ***wearing*** the damn
thing to use it, right? Also I am truely clueless as to why we were
registering to defib.loc since check_range checks for turfs anyways.

## Changelog
🆑
fix: Fixed some issues with defib paddle retraction.
/🆑
2024-11-24 21:55:54 +01:00
Auris456852
97ffc45cd3 Make Baklava Pie retain its quality after slicing (#88118)
## About The Pull Request

Adds the crafting complexity to the slices of baklava, so it doesn't go
from very good to nice after you slice it.
Was asked to put the fix to upstream.

## Why It's Good For The Game

If I have one more food suddenly degrade in quality after slicing it
into multiple portions I am going to explode the fucking kitchen,
especially after having to bother Hydroponics to mutate a plant
specifically for it

## Proof Of Testing


![image](https://github.com/user-attachments/assets/b4cd692e-10f8-4701-a772-45aad97e8c43)

</details>

## Changelog

🆑
fix: Makes a sliced baklava pie keep its complexity after slicing
/🆑
2024-11-24 20:55:46 +01:00
jimmyl
788b262cee damage done by thrown objects to /obj is multiplied by the demolition modifier (#88141)
## About The Pull Request

damage done by thrown objects to /obj is multiplied by the demolition
modifier

## Why It's Good For The Game

i think its supposed to respect the demolition mod i mean uhh that seems
like an oversight??

## Changelog
🆑
fix: damage done by thrown objects to objects respects their demolition
modifier
/🆑
2024-11-24 20:52:40 +01:00
GoblinBackwards
6585612413 Fixes invisible atmos fires (#88155) 2024-11-24 20:44:31 +01:00
SmArtKar
2cef60c063 Changing clipboard skins now changes the inhands sprite as well (#88123)
## About The Pull Request

Closes #88122

## Changelog
🆑
image: Changing clipboard skins now changes the inhands sprite as well
/🆑
2024-11-24 04:36:12 -08:00
SmArtKar
f34bd3f5c0 Guncode Agony 4.2: Firing Effect Intervallo (#88072)
## About The Pull Request

Firing effects now attach themselves to the firer, meaning you don't run
over or back from your own muzzle flash if you fire while running.

## Why It's Good For The Game

Look better, both when moving into and away from the effect.

## Changelog
🆑
image: Muzzle flash now is attached to your sprite, meaning you won't
run over it if you fire while moving
/🆑
2024-11-24 04:35:31 -08:00
Ghom
8804f5595c turfs now handle fishing more internally to save time on world initialization (#88092) 2024-11-23 14:53:30 +01:00
Ben10Omintrix
4fde078f23 Refactors projectile dampeners and adds some new visuals (#87913)
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-23 14:50:58 +01:00
Tim
f781e0dce6 Fix fireplace particles runtimes (#88114)
## About The Pull Request
Caused by:

- https://github.com/tgstation/tgstation/pull/88048

Trying to use the fireplace would result in runtimes and the smoke
particles not triggering.

Even though the runtime is fixed, the new particle changes in #88048
broke the pixel offsets. While I was testing, anytime I tried switching
a pixel offset it would update all fireplaces. I tried to limit it to
add the shared particle id to `"fireplace_[dir]"` so that it would only
apply to the objects in that direction but I couldn't get it to work. I
would guess this also affects a lot of other objects that have particle
pixel offsets.

Runtime is fixed. Particle offsets are still broken.

## Why It's Good For The Game
Fireplaces no more runtime.

## Changelog
🆑
fix: Fix fireplace particles runtimes.
/🆑
2024-11-23 13:34:55 +01:00
SmArtKar
bbb7a41743 Guncode Agony 4: The Great Projectile Purge (#87740)
## About The Pull Request
~~Kept you waitin huh!~~
The projectile refactor is finally here, 4 years later. This PR (almost)
completely rewrites projectile logic to be more maintainable and
performant.

### Key changes:
* Instead of moving by a fixed amount of pixels, potentially skipping
tile corners and being performance-heavy, projectiles now use
raymarching in order to teleport through tiles and only visually animate
themselves. This allows us to do custom per-projectile animations and
makes the code much more reliable, sane and maintainable. You (did not)
serve us well, pixel_move.
* Speed variable now measures how many tiles (if SSprojectiles has
default values) a projectile passes in a tick instead of being a magical
Kevinz Unit™️ coefficient. pixel_speed_multiplier has been retired
because it never had a right to exist in the first place. __This means
that downstreams will need to set all of their custom projectiles' speed
values to ``pixel_speed_multiplier / speed``__ in order to prevent
projectiles from inverting their speed.
* Hitscans no longer operate with spartial vectors and instead only
store key points in which the projectile impacted something or changed
its angle. This should similarly make the code much easier to work with,
as well as fixing some visual jank due to incorrect calculations.
* Projectiles only delete themselves the ***next*** tick after impacting
something or reaching their maximum range. Doing so allows them to
finish their impact animation and hide themselves between ticks via
animation chains. This means that projectiles no longer disappear ~a
tile before hitting their target, and that we can finally make impact
markers be consistent with where the projectile actually landed instead
of being entirely random.

<details>

<summary>Here is an example of how this affects our slowest-moving
projectile: Magic Missiles.</summary>


Before:


https://github.com/user-attachments/assets/06b3a980-4701-4aeb-aa3e-e21cd056020e

After:


https://github.com/user-attachments/assets/abe8ed5c-4b81-4120-8d2f-cf16ff5be915

</details>


<details>

<summary>And here is a much faster, and currently jankier, disabler
SMG.</summary>


Before:


https://github.com/user-attachments/assets/2d84aef1-0c83-44ef-a698-8ec716587348

After:


https://github.com/user-attachments/assets/2e7c1336-f611-404f-b3ff-87433398d238

</details>

### But how will this affect the ~~trout population~~ gameplay?

Beyond improved visuals, smoother movement and a few minor bugfixes,
this should not have a major gameplay impact. If something changed its
behavior in an unexpected way or started looking odd, please make an
issue report.
Projectile impacts should now be consistent with their visual position,
so hitting and dodging shots should be slightly easier and more
intuitive.

This PR should be testmerged extensively due to the amount of changes it
brings and considerable difficulty in reviewing them. Please contact me
to ensure its good to merge.

Closes #71822
Closes #78547
Closes #78871
Closes #83901
Closes #87802
Closes #88073

## Why It's Good For The Game

Our core projectile code is an ungodly abomination that nobody except
me, Kapu and Potato dared to poke in the past months (potentially
longer). It is laggy, overcomplicated and absolutely unmaintaineable -
while a lot of decisions made sense 4 years ago when we were attempting
to introduce pixel movement, nowadays they are only acting as major
roadblocks for any contributor who is attempting to make projectile
behavior that differs from normal in any way.

Huge thanks to Kapu and Potato (Lemon) on the discord for providing
insights, ideas and advice throughout the past months regarding
potential improvements to projectile code, almost all of which made it
in.

## Changelog
🆑
qol: Projectiles now visually impact their targets instead of
disappearing about a tile short of it.
fix: Fixed multiple minor issues with projectile behavior
refactor: Completely rewrote almost all of our projectile code - if
anything broke or started looking/behaving oddly, make an issue report!
/🆑
2024-11-23 04:02:35 -08:00
Tim
f2c35f1b38 Fix chewable bubblegum not metabolizing due to microdose (#88102)
## About The Pull Request
- Fixes #87873

Bubblegum with the chewable element was not triggering due to a
microdose that would get deleted as soon as it was inserted into the
mob.

Also added a crash message so if anyone in the future tries to microdose
the chewable element it gets caught by our CI/CD checks.


![chrome_MUuaIxcpTI](https://github.com/user-attachments/assets/5d473499-0c42-4677-9a13-598078e512f1)

Special thanks to @SmArtKar for digging around in the code and finding
the problem.

## Why It's Good For The Game
Bubblegum now makes you happy.

## Changelog
🆑 timothymtorres, SmArtKar
fix: Fix chewable bubblegum not metabolizing due to microdose
/🆑
2024-11-23 11:33:33 +01:00
SmArtKar
53cfcc8f3e Fixes parsnip sabre not receiving a jousting component (#88104)
## About The Pull Request

Copypaste oopsie

## Changelog
🆑
fix: Fixed parsnip sabre not receiving a jousting component
/🆑
2024-11-23 11:21:39 +01:00
EOBGames
1fe4f77dc5 Shipping and Receiving: More Containers, Revamped Containers (#87995) 2024-11-22 20:48:29 +01:00
SyncIt21
56a9de5a69 [NO GBP] Inducers can be inserted into storage objects again (#88071)
## About The Pull Request
- Fixes #88063

## Changelog
🆑
fix: inducers can be inserted into storage objects again
/🆑
2024-11-22 12:34:04 +01:00
necromanceranne
41d10d2e15 Puts EMP protection and resistance flags into their correct spots for the broadcasting camera (#88044) 2024-11-21 21:32:35 +01:00
necromanceranne
aa0cc4cb5f Adds a sprite for kitchen tools worn in suit storage. (#88045)
## About The Pull Request

What is says on the tin. A really simple, though pretty generic looking
kitchen utensil sprite for suit storage.


![image](https://github.com/user-attachments/assets/0eb6324b-41a1-4a6d-92ef-cb67e1240167)

## Why It's Good For The Game

Pink sprites suck. It's so immersion breaking. This resolves that. (why
exactly isn't this being caught by unit tests anyway?)

## Changelog
🆑
image: Kitchen and eating utensils now have suit storage sprites.
/🆑
2024-11-21 18:16:58 +01:00
SmArtKar
742729fa0a Converts most common particle sources to use our new pooling system (#88048)
## About The Pull Request

Closes #83370
Converted most cases where we could benefit from using shared particles
(aka when there's probably more than 3 uses of that particle in a round)
to use the new shared particle system. Should provide significant
clientside performance in particle-heavy areas like botany (or sometimes
kitchen)

## Changelog
🆑
refactor: Converted most common particle sources to use our new pooling
system.
/🆑
2024-11-21 18:16:12 +01:00
tonty
d8450b4933 Camera eyes have been lightly refactored (among other things...) (#87805)
## About The Pull Request

* A generic /mob/eye/camera type has been made, containing everything
needed to interface with a cameranet
* /mob/eye/ai_eye has been refactored into a generic /mob/eye/camera
instance
* Advanced cameras no longer inherit from AI eyes, splitting off
behaviour
* Camera code has been somewhat cleaned up
* Probably some more stuff I'm forgetting right now

## Big man Southport:

![image](https://github.com/user-attachments/assets/de6e6ff0-ca99-4636-bdec-5e0b2d6b8037)

## Changelog

🆑
code: made /proc/getviewsize() pure

refactor: mob/eye/ai_eye has been restructured, now inheriting from a
generic mob/eye/camera type
refactor: advanced cameras and their subtypes are now
mob/eye/camera/remote subtypes
code: the cameranet no longer expects the user to be an AI eye
code: remote camera eyes have had their initialization streamlined
code: remote cameras handle assigning and unassigning users by
themselves now
code: remote cameras now use weakrefs instead of hard referencing owners
and origins
code: also the sentient disease is_define was removed (we don't have
those anymore)
fix: AI eyes no longer assign real names to themselves, fixing their
orbit name
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-21 12:55:38 +01:00
Ghom
6272b3680c You can use a fishing rod to snatch organs during organ manipulation surgery (feat organs sanity fix) (#87774)
## About The Pull Request
This allows you to use a fishing rod during the "manipulate organs" step
of the aforementioned surgery to snatch organs from a target.

Unlike other fish sources, this one has a negative fishing difficulty of
-20, which when summed with the default minigame difficulty should still
result in a negative difficulty. In layman terms, this means the
minigame is skipped here (unless you're wearing some clunky stuff like
insulated or boxing gloves). It also has a wait time of 8 to 13 seconds
versus the more random standard 3 to 25 seconds.

A small side-effect of this is that explosions during the "manipulate
organs" step will basically disembowel you, but it kinda fits anyway.

By the by, because of this, there is a tiny chance bluespace fishing
rods can yield you random organs. Worry not, they're newly generated, so
you won't be snatching it from another player by accident (at least for
now).

## Why It's Good For The Game
It adds more possible weird and rare shenanigans involving surgery.

## Changelog

🆑
Add: You can use a fishing rod to snatch organs during organ
manipulation surgery
/🆑
2024-11-20 22:13:18 +00:00
Ghom
7663b39cc8 Refactoring aquariums into components (feat: portable fish tanks) (#87866)
## About The Pull Request
I've been meaning to do this for some time. I need this for
portable/handheld aquariums/fishtanks to be possible. I'll sprite and
code them before I call this PR ready, however suggestions and code
reviews are welcome in the meantime.

Being a pretty heavy refactor, some things might break (we have more
than a few unit tests so perhaps not) while others, coincidentally,
might be fixed without me knowing. Anyway I'm sure this PR fixes
aquarium beauty, which wasn't really working to begin with because the
code was so fucking bad. Nothing really worth of a CL entry tho.


TODO:
- [x] handheld aquariums, craftable with a kit and little plastic or
buyable from the fun vendor ig.
- [x] an aquarium upgrade for handheld aquariums to bypass possible
restrictions.
- [x] update the beauty element to consider items, which shouldn't
contribute to the area beauty when held or otherwise not on a turf.

## Why It's Good For The Game
This should make handheld aquariums possible.

## Changelog

🆑
refactor: refactored aquariums heavily. Please report any fishy bug.
add: Added portable/handheld fish tanks to the game. They can be crafted
with an aquarium kit and 5 sheets of plastic. While portable, they
cannot store fish that are too big or if there're too many already. This
restriction can be removed by using the new "bluespace fish tank kit"
techweb item.
map: Replaced the lawyer's stationary pet aquarium with a fish tank, so
you can carry McGill around.
balance: Reduced the iron cost of stationary aquariums a little.
/🆑
2024-11-21 09:45:49 +13:00
SmArtKar
bcb5c47571 Implements shared particle holders, re-adds slimed status particles using the new system (#87892)
## About The Pull Request

Partial revert of #86701
Implements a shared holder particle system, somewhat inspired by
https://github.com/Baystation12/Baystation12/pull/34014 (thanks Kapu).
Atoms can be assigned "shared" particles via add_shared_particles, with
an optional "alternate" key passed as a second arg if you're planning to
edit the returned particle holder (for example, color it like slimed
status does). Removing is done via remove_shared_particles with an
option to delete the shared holder if nothing is using it anymore (on by
default). This system should be prioritized over normal particle holders
when a lot of entities would be using a certain particle effect (like
fires) as it conserves a lot of clientside performance.

Burning, acid, decaying, firestacks and slimed status now use this
system which should help with clientside performance and amount of atoms
created/destroyed.

## Why It's Good For The Game

Less clientside lag.

## Changelog
🆑
refactor: Firestacks, burning/acid/decaying effects and (brought back
after being temporarily removed) slimed status effects now use a new
"shared" particles system, which should considerably improve client
performance when encountering a lot of burning/slimed entities.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-20 13:46:00 +01:00
Penelope Haze
b67a0901f2 Fix issues discovered via TypeMaker (#87596)
## About The Pull Request
Fixes issues with var typing and proc arguments, discovered using
OpenDream's WIP TypeMaker feature (using improvements I haven't PR'd
upstream yet).

## Why It's Good For The Game
Codebase maintenance.
2024-11-19 15:24:52 -05:00
Ben10Omintrix
d2c8e10e26 Repairbots (#86084)
## About The Pull Request
adds repairbots to the game!

![repairbot](https://github.com/user-attachments/assets/8c492c7c-6c12-4095-89f6-cc97ae1edbc0)

this pr serves as a massive rework and buff to floorbots. i was a bit
sad that they dont get built much anymore so ive given them tons of more
utilities and uses.
Repairbots still inherit to place tiles and repair breaches. but they
can now rebuild walls, rebuild windows and repair structure and
machinery. Also Ive given them voicelines to add more character to them.
In short, they are very depressed with their job (however they express
their happy go lucky attitude when u emag them where they will start
deconstructing the station)

to demonstrate capabilities, here's a slightly sped up clip of some
repairbots patching up an area that was maxcapped 4 times:

https://github.com/user-attachments/assets/bddac3b0-1984-4571-85d3-c5283dd7c0de

When repairbots feel threatened, they will retract into their little
toolbox which u can pick up and hold in ur hand, either to conveniently
carry and plop them down at breached sites, or to bash skull with it

U can build them using a toolbox, proximity sensor, cyborg arm and a
conveyor belt

## Why It's Good For The Game
refactors floorbots and makes them alot more useful tools for engineers
to use


## Changelog
🆑
refactor: floorbots have been refactored, please report any bugs
add: adds repairbots to the game!
/🆑
2024-11-19 15:19:44 -05:00
MrMelbert
d3bc3e8cb4 Being drunk or having a broken arm hurts accuracy with ranged weapons. Also cleans up a fair bit of hand handling to be more readable (#87904)
## About The Pull Request

1. Having a broken arm will affect your accuracy when firing a weapon
with that arm, even potentially causing damage to you if it's a weapon
with recoil. This effect is not applied under the effects of a
painkiller.

2. The sister effect of this (punching someone with a broken arm) now
also has an interact with painkillers (it can no longer block your
attack).

3. Being drunk heavily affects ranged weapon accuracy, unless you're the
bartender

4. A lot of hand handling cleanup, using new macros to make it a lot
more readable at a glance

## Why It's Good For The Game

We have this system for modifying firearm accuracy but we don't really
use it commonly, and I feel like it slots in well with a lot of places

For broken arms, it adds some more depth to the wound system, in the
same way that trying to punch someone with a broken arm causes pain. (I
actually want to expand this to melee weapon accuracy and attacking with
melee weapons in general, but that's for a later time)

For drunkenness, it just adds to the drunk shenanigans. It also slightly
reduces the effectiveness of drinks as combat healing chemicals, such as
quadsec - makes it a bit more of a trade off.

## Changelog

🆑 Melbert
balance: Having a broken arm affects your accuracy with ranged weapons
fired with that arm. Utilizing a painkiller will nullify this effect,
however.
balance: Painkillers will prevent your punches from being cancelled due
to having a broken arm. You'll still take damage, though.
balance: Being drunk now affects your accuracy with ranged weapon. The
bartender is immune to this effect via their skillchip.
code: A lot of code involving left and right hand handling has been
cleaned up, easier to read. Report any oddities, like left and rights
being flipped
/🆑
2024-11-19 19:31:06 +01:00
fevryk
1e0372bc6c New Black Market Uplink Weapon - Carpenter Hammer (#87070)
## About The Pull Request

There are maints hidden under every station in the world.
Everyone knew about them, but lied to you about them your entire life.

This PR adds carpenter hammer as a new black market uplink weapon with a
sliiiight psychopomp reference (!)

      




![dreamseeker_9eImatpaTd](https://github.com/user-attachments/assets/796463a0-9c88-4f77-aa1a-98d079a3050f)
(code is mostly done with the help of my awesome friend Sensum)

## Why It's Good For The Game

More use for black market uplink, and new weapon with cool killsound
feature.
I want black market to be more content filled with various stuff.



https://github.com/user-attachments/assets/f726d292-dc14-43b2-a536-21901bb7f9b9




![dreammaker_odBCfLOltA](https://github.com/user-attachments/assets/7cb212de-cc3b-4298-9121-d82569f455ba)


![Aseprite_eEG9E3PLlY](https://github.com/user-attachments/assets/3264733e-e58a-4c3b-b1b2-27693b73924a)


![Aseprite_kCZV4Akb3x](https://github.com/user-attachments/assets/27ae4b49-fed5-414f-9dba-90a2441835f8)


## Changelog

🆑
add: Added new weapon carpenter hammer to black market uplink
add: Added killsound feature
/🆑

---------

Co-authored-by: S <121913313+SSensum@users.noreply.github.com>
Co-authored-by: someone <someone@anydomain.not>
Co-authored-by: Niron3206 <68388770+Niron3206@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2024-11-18 23:58:39 +01:00
Jackal-boop
9d2f1eabf6 buffs the Hot Potato a lil (#87857) 2024-11-18 21:40:12 +02:00
Ghom
375b57338d THERE IS OGG! I DIDN'T LIE (#87975)
## About The Pull Request
Converted `duct_tape_snap` and `duct_tape_rip` from mp3 to ogg, 441,00
Hz, mono.

## Why It's Good For The Game
Sound standards.

## Changelog
N/A
2024-11-18 14:08:49 +02:00
tonty
6e29e20bde Fixes haunted 8-balls (#87969)
## About The Pull Request

Haunted 8-balls had the condition for their UI flipped, so it would hide
it when it was supposed to show it and vice-versa. This fixes #83120

Also fixed some bad UI work so it's a bit nicer

## Scariest Story (Try Not To Get Scared)


https://github.com/user-attachments/assets/ba5341f1-8025-4931-b3d5-73e0ecf82788

## Changelog

🆑
fix: Haunted 8-balls are now usable again (FINALLY)
fix: Haunted 8-ball UI now correctly displays your selected answer
qol: Made the haunted 8-ball UI look a pinch better. Just a smidge. 
code: Haunted 8-balls no longer use a duplicate answer list
/🆑

<!-- 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-11-18 12:41:20 +01:00
EOBGames
5a5f5a28ef READY DONK UPDONKATED (#87967)
## About The Pull Request
**READY-DONK'S BACK!!**

![image](https://github.com/user-attachments/assets/13af242a-874e-43e6-87b0-fa33224f0d64)
Gives a (sorely needed) new lick of paint to Ready-Donk. The sprites are
based off of the import vendor trays from Skyrat
(https://github.com/Skyrat-SS13/Skyrat-tg/pull/16215), originally by
Paxilmaniac, and I think they really help nail the microplastic-laden
ready meal aesthetic that Ready-Donk was always meant to embody.

As a fun extra, I also threw together some sprites for some TV dinner
classics, Salisbury Steak and Country-Fried Chicken, and figured I might
as well go the extra mile and actually add them in.
## Why It's Good For The Game
More Ready-Donks means more sodium for the crew, and more sodium equals
more gooder.

Also, if I'm being honest with myself and with everyone else, the
current crop of sprites for Ready-Donk never really captured the feel I
was aiming for with them; this new set is both generally better (I
think, anyway) and actually looks like what it's meant to be.
## Changelog
🆑
add: DONK CO. HAS UNVEILED A NEW RANGE OF READY-DONK PRODUCTS! GET THEM
AT CARGO TODAY!
image: READY-DONK: NEW LOOK, SAME GREAT TASTE
/🆑
2024-11-17 14:48:01 -05:00
jimmyl
c56046eb90 [no gbp] improves climbing hooks a little (#87957)
## About The Pull Request

climbing hook now aims for the turf of whatever you click on
you may now climb onto things that wouldnt make you fall down: lattices,
catwalks and the like


https://github.com/user-attachments/assets/291b1e85-4c85-4ed0-af1c-fe990de83041



## Why It's Good For The Game

fixes #87947

## Changelog
🆑
fix: You may no longer use a climbing hook to phase through catwalks and
such. On the other hand, improved climbing hook aim and you may climb
onto lattices or catwalks
/🆑
2024-11-17 18:33:56 +01:00
EnterTheJake
15247f28f1 Arcmines The Clarke Exosuit + Tech node changes. (#87936)
## About The Pull Request

The Clarke Exosuit has received several adjustments to make it worth
using in the Arcmining era.

- Clarke no longer requires gold bars to be built.

- HP bumped from 200 to 250, melee armor bumped from 20 to 40.

- Clarke Ore storage module can now collect boulders and smelt them
internally.

- Exo mining scanners can now be used in proximity to a vent to start
the wave defense event.

- Mech Pkas now do more damage  and have the AOE upgrade preinstalled.

- Mech drills are now a utility module rather than a weapon.

- New Internal module unique to the Clarke, It's a rusty sleeper that
can be used to recover dead miners, but lacks the ability to inject
chems

- Fixed Mech sleepers not granting life support.

- Plasma cutters and Bluespace satchels tech nodes are no longer locked
behind experiments, but they are now discounted by them.

## Why It's Good For The Game

Ever since the inception of Arcmining, the Clarke Exosuit has fallen
from being niche to straight up irrelevant.

The Clarke sits in this weird spot, where, while not being roundstart
available, it is an effectively worse fit than your regular Shaft Miner
in all aspects of the job.

This PR aims to address this by making The Clarke able to be built even
if the miners are absent or haven't secured a haul, while making it
actually capable of interacting with the new elements introduced by
Arcmining.

**Arcmining Clarke and Improved Combat functionality**

The Mech mining scanner can now be used to trigger the vent wave
defense, The internal storage module can now collect boulders and
internally smelt them within the Clarke.

Video Demonstration: https://www.youtube.com/watch?v=gtsNK5JbI3o

The Clarke is now a more capable fighter on Lavaland, being a bit
beefier overall.

The mech Pka was also in dire need of some love. It being unable to be
upgraded made it frankly underwhelming at dealing with Vent defences.

I was considering just having PkA upgrades applicable to the mech itself
but ultimately decided against it in fear of having it become a problem
on the station.

Instead, I just went for a flat damage increase and have the AOE upgrade
come preinstalled to better deal with legion swarms.

Lastly The drill modules have been reworked to be utility modules
instead of weapons.

Frankly these shouldn't be weapons, they are nowhere near as valuable as
the cutter or the PKA and can't be used at all on moving targets due to
the long cost time.

**New Clarke Exclusive Internal Module: Mining Sleeper**


![image](https://github.com/user-attachments/assets/bf807ec7-57e0-4caf-a2ac-bbd70ccc44c0)


Just a bit of extra functionality to aid miners that have tragically
fallen, this sleeper is effectively a worse version of the Odysseus, it
can stabilize patients but cannot inject chems, I also fixed an issue
where Mech sleepers were not putting patients on life support like
regular sleepers do.

**Tech Node Changes**

This is not something super related to the Clarke in and on itself, but
I figured I might push my luck and try these anyway.

There is just no good reason as to why satchels and cutters should be
hard locked behind gas shells.

These experiments are fairly trivial, but have a huge impact on lowpop
as they usually force people to break into ordinance or the teleporter
room just so miners could get their basic tools.

The shells still exist but now grant a discount instead of hardlocking
tech, so there's still an incentive to do them.

ROCK AND STONE!

## Changelog

🆑
add: New internal sleeper module for the Clarke.
balance: Clarke Integrity has been bumped from 200 to 250 HP, melee
armor bumped from 20 to 40.
balance: Exo mining module can now be used to scan vents and begin the
wave defense event.
balance: The Clarke Ore Storage Module can now collect boulders and
internally smelt them.
balance: Mech Pka is now bundled within the Clarke tech node, it now
does more damage and comes with the AOE upgrade preinstalled.
balance: Exo mining drills are now a utility module rather than a
weapon.
balance: Applied Bluespace Research and Controlled Plasma tech nodes are
no longer hardlocked behind surveys, they instead favor from a discount
if they are completed.
fix: Fixes Exo Mech modules not granting life support to housed
patients.
/🆑

---------

Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-11-17 13:51:18 +00:00