Commit Graph
31077 Commits
Author SHA1 Message Date
RhialsandGitHub f808758707 Mapload anomalies are no longer orbit points-of-interest (#81431)
## About The Pull Request

Mapped-in anomalies no longer register as points-of-interest in the
orbit menu. This is primarily for the hollow anomalies from the anomaly
research ruin. Player-stabilized anomalies, and regular event anomalies,
will still show up here.
## Why It's Good For The Game

These damn things take up over half the misc tab. Less clutter in the
orbit menu.


![image](https://github.com/tgstation/tgstation/assets/28870487/099cda4d-42e2-478d-ac21-fe0ec7a21e60)
## Changelog
🆑 Rhials
qol: Map hazard anomalies are no longer treated as points-of-interest in
the orbit menu.
/🆑
2024-02-12 21:59:42 +01:00
LemonInTheDarkandGitHub 70651816c2 Fixes complex lights not handling moving well, renames lighting defines (#81423)
## About The Pull Request

[Fixes static lights not
moving](https://github.com/tgstation/tgstation/commit/ffef43c05a55dae414ef94558ecf9b9df709ded7)

Worked fine when the owner moved, but if the owner was inside something
else, it would try and trigger an update on the PARENT's lights, which
are obviously not us.

[Renames MOVABLE_LIGHT and STATIC_LIGHT to better describe what they
do](https://github.com/tgstation/tgstation/commit/de73a63bd4d97783c69c95370726d1c253ffb8fe)

People keep trying to change the lighting system of lamps and it makes
me mad.
I choose OVERLAY_LIGHT and COMPLEX_LIGHT here, I couldn't figure out a
better name for turf matrix lighting. Suggestions welcome

## Why It's Good For The Game

Closes #80005
Hopefully improves understanding of lighting at a glance
## Changelog
🆑
fix: Fixes fancy lights not updating their source location when picked
up and moved
/🆑
2024-02-12 20:50:20 +01:00
LemonInTheDarkandGitHub 2adf2d3631 Removes the adapted flashlight (#81426)
## About The Pull Request

It doesn't need to exist, I killed see_in_dark so we can always see shit
emissives.

## Why It's Good For The Game

Cleaner code
2024-02-12 14:56:18 +01:00
Singul0andGitHub d1055414ce Fixes bluespace launchpads from not working in shuttles (#81421)
## About The Pull Request
Fixes #81314 
does what it says on the tin, I made the check more discriminatory by
checking supply and ferry areas instead (the two ways the crew can get
to centcom).
## Why It's Good For The Game
it is what it is
## Changelog
🆑
fix: You can now use bluespace launchpads from shuttles (except cargo
and ferry shuttles)
/🆑
2024-02-12 01:53:15 +01:00
6eb041c6b6 New masks (#81217)
## About The Pull Request
Adds 3 new masks:
* Kitsune mask
* Facescarf
* Rebellion mask
All masks (and facescarf) are recolorable. And also thanks to Kovac for
the scarf sprites
## Why It's Good For The Game
Cool masks for make character style more unique. All are recolourable.

![2024-01-28_12-20-48](https://github.com/tgstation/tgstation/assets/106491639/49b532f7-ccfe-4556-a54f-a4884a9fda77)

## Changelog
🆑
add: 3 new masks for your characters (thanks to Kovac for the scarf
sprites)
/🆑

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2024-02-12 00:53:40 +01:00
Xander3359andGitHub 19b2ffd2d3 Contractor loadout adjustment + Price tweak (#81293)
## About The Pull Request
Removes RNG items from the possible pool of items that gets given to
contractors when they buy their kit.
Contract kit:

![image](https://github.com/tgstation/tgstation/assets/66163761/d6009273-6ede-44b4-a2a4-6db4c9030400)
## Why It's Good For The Game

![image](https://github.com/tgstation/tgstation/assets/66163761/ac08bfe9-4186-4e8e-a15b-0077d1e7433f)

![image](https://github.com/tgstation/tgstation/assets/66163761/a1d19780-9a97-407e-af75-842548cd7010)

The idea is that contractors should have the things they need in order
to begin contracting in the first place.
They are given thermals + SyndEye to find targets.
Modsuit/Contractor Suit/Chameleon mask+jumpsuit to conceal/disguise
their identity.
Their Jammer + Baton in order to pull off successful abductions without
getting dogpiled by the entire station.

In their current state, contractors are too weak, when at the end of the
day, the most harm they are doing is temporarily removing a crew member
for like 5 minutes. They should have a bit more power now in order to
have a bit more impact into the round.
## Changelog
🆑
balance: Contractor kit no longer gets RNG items, it's a specific pool
now
/🆑
2024-02-11 15:30:59 +01:00
MrMelbertandGitHub 2c8207e322 Fixes funky closet type (#81389)
## About The Pull Request

`secure/closet` -> `secure_closet`.

Changes nothing besides making the mapped in closet use the right name. 

## Changelog

🆑 Melbert
fix: Lavaland Beech Bartender's clothing storage is named the right
thing now
/🆑
2024-02-11 14:56:53 +01:00
LemonInTheDarkandGitHub a15979a3ba Yeets CONSIG_ORGAN_WAG_TAIL (#81400)
## About The Pull Request

It was dumb. LITERALLY just a proc.

So let's replace it with a proc then, as a helper at least. I'll take
this chance to disambiguate tail code to make it a bit less messy, and
hand back usable args in case we want to react to our change in tail
status

## Why It's Good For The Game

Code's less shit (slightly)
2024-02-11 14:56:13 +01:00
4495ea2e4d Refactors how machines are deconstructed (#81291)
## About The Pull Request
This refactors how machines are deconstructed in the following ways

- You can no longer override `obj/machinery/deconstruct()`. If you want
customized behaviour then override `on_deconstruction()` instead.

This comes with the added benifit of no longer needing to check for the
`NO_DECONSTRUCTION` flag because the machine base proc does that for us
& if it finds that flag it won't proceed to call `on_deconstruction()`
meaning no machine will have a chance to spawn anything which is the
current behaviour.

This is required to make #81290 work for all machines at least so that
machine can send the `COMSIG_OBJ_DECONSTRUCT` signal without subtypes
overriding & forgetting to call the parent proc

- `dump_contents()` only gets called when the machine is deconstructed
not destroyed thus not leaving behind any of its contents inside. Fixes
https://github.com/tgstation/tgstation/pull/81290#issuecomment-1925752583

## Changelog
🆑
fix: machines that should not drop contents when deleted no longer do.
refactor: refactors how machines are deconstructed. report bugs on
github.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-02-11 14:52:19 +01:00
fbe6e2ebba museum away mission (#81208)
## About The Pull Request

adds a new gateway map, the Nanotrasen Museum it is filled with
""""Mannequins"""" and Common Core lore
im not putting the preview here because you really should explore it
yourself but if youre that curious i think the Checks tab in mapdiffbot
would have it
this gateway map contains no combat unless you count falling into chasms
because you did not carry a light
or going into the boarded room with no loot or any incentive with
obvious signs that there is the sole enemy on the map in there
the loot is the lore ok thanks

also makes mines detonate if theyre detonated by a non-mob im pretty
sure this couldnt have been intentional
trams stop chasms
and also the relevant items

<details>
  <summary>on second thought if you want spoilers check this</summary>


![image](https://github.com/tgstation/tgstation/assets/70376633/41ab2db1-55ce-4371-8594-a1d8961c37c3)

</details>

## Why It's Good For The Game

more gateway maps = good

## Changelog
🆑
add: nanotrasen museum gateway map
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-11 03:17:55 +01:00
RhialsandGitHub 94f5221af4 Fixes the energy cake slice's on-eat effect triggering before it is eaten (#81382)
## About The Pull Request

This makes the energy cake deal its damage/effects AFTER being fed,
instead of before.

It also adds combat logging to force-fed energy cakes, just in case.

Also, this adds a balloon alert to the pacifist check. Cool!
## Why It's Good For The Game

Fixes a wacky combat bug, and adds some minor adjustments made along the
way.

Closes #81351.
## Changelog
🆑 Rhials
fix: The Energy Cake slice now does its on-eat effect AFTER being eaten,
instead of before.
/🆑
2024-02-11 00:03:14 +00:00
HigginandGitHub 9825f0e392 [FIX] Makes Deathtrap Recycler Movable (#81282)
## About The Pull Request

Fixes #81205 
~~Adds a new flag for letting you move otherwise un-deconstructable
objects and making deconstructable objects immovable with a wrench.~~
~~Adds that flag onto the ORM.~~
makes ~~ORM un-unwrenchable,~~ deathtrap recycler unwrenchable.

## Why It's Good For The Game

seems like an oversight on the recycler that unnecessarily limited
gimmicks, ~~and one of the long-running peeves with something like the
ORM has been how damn easy it is to walk up to it, unwrench it, and walk
into cargo through the windoor mapped for mineral storage access (which
basically everyone has.) This makes it so if you'd otherwise do that,
now you at least need to either deconstruct or destroy the ORM first (or
just take another less obvious way in.) Always seemed like an oversight
but can atomize it if wanted.~~ atomized out, will ask around before
putting back up

## Changelog

🆑
fix: deathtrap recycler can now be moved.
refactor: moved check for NO_DECONSTRUCTION flag to be inside
can_be_unfasten_wrench, allowing us to set specific machines to be
movable but not deconstructable.
/🆑
2024-02-11 00:47:26 +01:00
MrMelbertandGitHub 06a4d47945 Freedom implant and Biodegrade works on knotted shoes (#81376)
## About The Pull Request

- Freedom Implant will un-knot knotted shoes. 
- Biodegrade will melt knotted shoes. 

## Why It's Good For The Game

Just a niche interaction idea I had. Knotted shoes are, obviously,
obstructing your movement so these two tools that aim to un-obstruct
your movement should do something about it, right?

Also it would be funny to see a Ling melt their own shoes. Biodegrade
prioritizes handcuffs over anything else so it shouldn't be of great
concern.

## Changelog

🆑 Melbert
add: Freedom Implants and Biodegrade can you free you of the shackles of
knotted shoes.
/🆑
2024-02-11 00:36:53 +01:00
815c7913d7 Adds fire ants as a chem (#81214)
## About The Pull Request
Adds fire ants as a chem. They work pretty much exactly the same as
normal ants, but they deal roughly 2x damage. Also mildly cleans up
whatever ant code I touched
## Why It's Good For The Game
Doesn't really make sense that when you scoop up an anthill of fire
ants, you get a beaker full of normal ants. It's honestly an injustice.
Also, new flavours for the bartender and chef to work with are always
nice.
## Changelog
🆑
add: Fire ants can now be scooped up and used as a chem like normal
space ants
/🆑

---------

Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2024-02-11 00:34:48 +01:00
MrMelbertandGitHub afb29836a7 Fix Flaky Failure From Fire (#81399)
## About The Pull Request

Closes #81396 , Closes #81391 , Closes #81403, Closes #81402

I don't know why but I thought this proc was only called once, when the
mob entered the turf. That was silly.

And going back at it, I'm not entirely sure why I tied
`TRAIT_NO_EXTINGUISH` to the element anyways, rather than the lava like
it originally was.

While going back over this, I cleaned up the proc a bit. 

## Changelog

Not necessary
2024-02-10 13:39:01 -08:00
John WillardandGitHub fdcd4d3979 Adds a signal to buying items from the uplink (& fixes TC misinfo) (#81372)
## About The Pull Request

Adds a signal when someone buys an item from the uplink and removes
single-letter vars from the ``spawn_item`` proc, and adds/standardizes
add/removing of telecrystals from uplinks (and admin setting how much TC
they have) to ensure the UI always has the right amount of telecrystals
displayed in it.

## Why It's Good For The Game

There are reasons why someone would want to hook up to a traitor's
uplink and listen to items they purchase to do any special effect
on-purchase, so this adds support to do anything in the future with it.
Also tells players how much TC they actually have without forcing them
to close/reopen the UI every time they insert some TC in it by hand.

## Changelog

🆑
fix: Uplinks now update their UI when you add telecrystals in them, so
you don't need to close and reopen it.
/🆑
2024-02-10 18:57:19 +01:00
SyncIt21andGitHub 2f93bbdd4c Fixes high power consumption for lathes (#81375)
## About The Pull Request
This employs a formula that creates a relationship between total stacks
of material used & the machines active power consumption

- When inserting/ejecting a full stack of materials, lathes use 1% of
the machine active power usage. To put it in player terms if your apc
has a normal high capacity power cell it will use 2% of power when
inserting a full stack(50 sheets) of material or when ejecting a full
stack of materials

- Fixes #81366. When printing multiple items that would require a full
stack of materials (50 sheets or roughly 5000 matter units) It now uses
5% of the machine active power usage. To see the comparision we will see
the same examples used in the issue

    **Old Behaviour**
- Printing 10 large beakers for tier 1 lathe would consume 48% of apc
cell
- Printing 1 circular saw for tier 1 lathe would consume 32% of apc cell
    
    **New Behaviour**
- Printing 10 large beakers for tier 1 lathe now consumes just 5% of apc
cell
- Printing 1 circular saw for tier 1 lathe now consumes just 1% of apc
cell
- Higher tier parts will consume more power to compensate for the lower
material costs because the machines active power usage increases with
higher tier parts, assuming your apc has a normal high capacity power
cell
- Printing 10 large beakers for tier 4 lathe now consumes 12% of apc
cell
- Printing 1 circular saw for tier 4 lathe now consumes 5% of apc cell
      
This formula is experimental and i just made it up so let's see how this
plays out

## Changelog
🆑
fix: lathes now use moderate power for printing operations
/🆑
2024-02-10 17:15:09 +01:00
MrMelbertandGitHub d9243d1016 Refactors fire overlays once again to make it not get stuck so often (#81367)
## About The Pull Request

Maybe finally fixes #77701 

A big reason why this kept happening is because fire uses standing
overlays. But fire isn't managed by mobs anymore. Meaning in some
situations, fire can cease to exist but the overlay can still be on the
mob. So it gets stuck.

So like, why use standing overlays anymore? We can just hook
`update_overlays` signal.
Isn't that neat. 

## Changelog

🆑 Melbert
refactor: Fire effects get added to mobs in a different way now. Maybe
it will get stuck less. Report any oddities.
/🆑
2024-02-09 17:26:00 -07:00
A miscellaneous FernandGitHub 44ce6d923d Adds an IS_CHANGELING helper (#81228)
## About The Pull Request

What it says on the tin. I also replaced checks with it everywhere I
found appropriate, hopefully without accidentally breaking anything.
## Why It's Good For The Game

We have a helper for most other antags, and it makes code a lot cleaner
and easier to read. I'm surprised we didn't have this one already.
## Changelog
🆑
code: added an IS_CHANGELING() helper and used it where applicable
/🆑
2024-02-09 08:56:57 -05:00
larentounandGitHub f6f8720594 [Fix] Visually closing fakewalls when in fact they shouldn't be closed (#81353)
## About The Pull Request

Moves update_appearance() proc further after checking if it can be
closed.

It was possible to stand inside an open falsewall, try to close it only
for it to "close" visually and don't change any properties.

## Why It's Good For The Game

Less bugs is good. No more fake-closed falsewalls.

## Changelog

🆑
fix: Now falsewalls visually don't close when they shouldn't.
/🆑
2024-02-08 22:41:50 -07:00
55ba5842c2 Health analyzer displays blood alcohol content (#81306)
## About The Pull Request

Health analyzer includes a blood alcohol content if the scanned target
is inebriated.

## Why It's Good For The Game

It's useful to know, sometimes their blood is filtered, stomach pumped,
but this effect will still be in action.

## Changelog

🆑 LT3
qol: Health analyzer will now display blood alcohol content
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-02-08 22:40:43 -07:00
John WillardandGitHub 1389351ef9 You can now move and talk through statues and mannequins (#81188)
## About The Pull Request

I recently played a game where I rotated my skeleton model while
rotating my own character at the same time and it being in sync gave me
the realization on how cool it would be if the Coroner was able to
simply control the skeleton body.

I find skeleton displays very funny and I want to see more funny things
happen with them, so I thought this would be a good place to start, with
the benefits that it also works on mannequins and statues too so they
aren't left out.

Basically, while it is unanchored, if you have a statue/mannequin
grabbed, it will change its direction as you do, and speak the same
words you do. Your own messages can only be heard if the person is
directly next to you, revealing that it was you talking through it all
along.

I was originally gonna add this to the simple rotation component but
moved off when I decided to add talking through it, I left in the code
improvements I made to the component though since it is one of the
oldest components and hasn't been touched in a while.

Video demonstration (before I added the person also talking, just ignore
that missing)

https://github.com/tgstation/tgstation/assets/53777086/27242fc3-9649-418d-95cb-b31619319e97

While fixing the Toilet bong's rotation stuff I noticed a lot of it
wasn't up to proper code standards so I went over it and fixed issues I
had with it. It now doesn't give text saying you found something nasty
to species that still likes mice (like flypeople), and fixed its update
appearance to match the codebase standard set by the introduction of
``update_appearance`` many years ago.

## Why It's Good For The Game

It's a funny small idea I had and got inspired to add, it's a niche
mechanic that I think fits the aesthetic I am going for with Coroner and
also give a funny interaction with the human-like inanimate objects.

## Changelog

🆑
fix: Species that can eat mice don't get disgusted from seeing one in
the toilet bong.
add: Grabbing an unwrenched statue/mannequin/skeleton model will now
move its direction as you move yours, and you can talk through it.
/🆑
2024-02-08 14:19:31 +01:00
e4b23f2b4b General maintenance for Lathes (#81244)
## About The Pull Request
1. **Qol Stuff**
- Screentips & examines for screwdriver, crowbar acts, multiool &
wirecutter Also for Alt click
- Techfabs can now also use the Mouse drag functionality to set drop
target for items
- Lathe printing animation now plays on loop instead of just flicking
once till printing is finished for more visual feedback

2. **Code Improvements**
- Merged `start_making()` with `do_make_item()`. That proc was like only
3 lines long and used only in 1 place so let's just move that code to
`ui_act()`
- Merged `user_print_item_id()` with `ui_act()`. Again was used only in
1 place so let's just move that code in to save some proc overhead
- Sets `processing_flags` for autolathe to `NONE` cause we don't use
`process()`
    - Autodocs vars such as `hacked` , `shocked` etc & procs
- `maxmult` is now computed client side saving backend bandwidth,
`construction_time` is removed from lathes which did not use it
- Removed all usages of lathe taxes and their related vars, removed
engineering lathe no tax from ice moon, replaced with normal engineering
lathe

3. **Fixes**
- Lathe sheet insertion animations are now linked & work again for all
material types inserted via remote silo/local storage,
silver/titanium/plastic all play the same animation(that is
`protolathe_shiny` overlay). Other materials have their own respective
overlays
- Fixes #81243. Calling `update_static_data_for_all_viewers()` is too
expensive for the UI. We should instead use `SStgui.update_uis(src)`
which will report the `busy` status to the UI more immediatly
- Fixes #81236. Some problems with the params passed to the timer
callback. It should now print the correct number of requested items
- Fixes #81192. `design.materials` would runtime for custom material
items as they were list of texts not materials. We have to pass our
manually parsed list of materials for an specific item to ensure they
are set & used correctly. Same fixes apply for techfabs as well


## Changelog
🆑
qol: adds screentips & examines for screwdriver & crowbar acts & alt
click.
qol: techfabs can now use the mouse drop functionality to set drop
target.
qol: lathe printing animation plays on loop while printing rather than
flicking once for more visual feedback
fix: lathe sheet insertion animations are now linked & work again for
all material types inserted via remote silo/local storage
fix: printing custom materials items from autolathe works again.
fix: printing multiple items from lathes will actually print that
correct quantity of items requested.
fix: printing items the 2nd time around from lathes won't cause the UI
to reload each time.
code: autodoc for some vars & procs, merges procs.
refactor: Optimized code for autolathe & techfabs in general. Report
bugs on github
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-08 13:34:03 +01:00
GhomandGitHub 84865db7f4 Fixes text effects for runechat. (#81170)
## About The Pull Request
This stuff has been cramping 100% heavy roleplay style for too long.

Somehow, the way maptext is formatted* seems to break tag ends found
around a line break. This usually happens when a space with width is
found by the end of the line, and I don't recall ever encountering the
issue otherwise.
Apparently, I've also found out that concatenating two spaces,
regardless of width, seems to fix the issue just fine, and that brings
in the solution to this whole pedantic problem: a <b>zero-width
space</b> at the end of the closing tag.

*That's handled behind the curtains by the engine, so I can only throw
wild guesses to why it happens.

Oh, by the by, I've also changed the tip about text modifiers I've made
over a year ago. It was too confusing to read.
2024-02-07 18:36:17 -06:00
orangesandGitHub 46d6daf524 Fix set_light colour parameters for ethereal disco ball (#81326)
🆑 optimumtact, whomst didn't write this CL entry.
fix: Fixed the colorful lights of the ethereal disco ball.
/🆑
2024-02-08 00:51:50 +01:00
31e18bf47c BARSIGNS-BARSIGNS-BARSIGNS! (#81313)
<!-- 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

We need the last of the signs added to the game so everyone can see and
use them.
Adds the Red Mons, The Rune, The Wizard and MOTHS-MOTHS-MOTHS bar signs
that were created during the bar sign contest.

<!-- 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 options for the bar name is a good thing for player choice and
diverse player stories.
Giving our bartenders more options helps player agency.

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


![the-red-mons](https://github.com/tgstation/tgstation/assets/38709973/c614f3d1-a7e0-4de2-8e17-95481aeb1313)


![the-rune](https://github.com/tgstation/tgstation/assets/38709973/2628475f-f30c-4f4d-805c-257a8eb3d22f)


![the-wizard](https://github.com/tgstation/tgstation/assets/38709973/c000ae05-5762-4c41-b1d8-3d832bea46b0)


![moths-moths-moths](https://github.com/tgstation/tgstation/assets/38709973/6f74df0b-3344-4c30-b233-7191230145fb)


🆑
add: Adds in the Red Mons, The Wizard, The Rune and MOTHS-MOTHS-MOTHS
bar signs from the bar sign contest.
Congratulations to the winners!
image: Adds in the Red Mons, The Wizard, The Rune and MOTHS-MOTHS-MOTHS
bar signs from the bar sign contest.
/🆑

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

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-07 23:47:04 +00:00
PapaMichaelandGitHub 538e0a9fc5 Tramstation Isolation cell doors actually open on their timer (#81312)
## About The Pull Request
Setting a timer in the tramstation isolation cells now actually opens
the corresponding cell door.

In addition, the door out of the isolation wing has unrestricted access
from the west.

Added a "id" var to security airlocks to accomplish this (that the
windoors already had).
## Why It's Good For The Game
A lot of security players still don't use genpop on tramstation, and
it's incredibly lame if you're given a measly 3 minute-sentence, but
security misses the radio announcement that the timer has expired and
you've had your radio confiscated. I'm assuming this was an oversight
(why were there timers in the first place if they didn't work?), but in
any event, this brings tramstation isolation brigging to parity with
other maps.

## Changelog
🆑 PapaMichael
fix: tramstation isolation cells now properly open on their timer.
/🆑
2024-02-07 18:00:47 +01:00
RhialsandGitHub 578a8f8667 Machinery cannot be interacted with by AI when its turf is off-camera (#81250)
## About The Pull Request

When an AI interacts with a machine, it will now check if the turf it
occupies is on the cameranet. This should ensure that wallmounted
machinery shouldn't be accessible from the other side of a wall.

This image summarizes what this applies to:


![image](https://github.com/tgstation/tgstation/assets/28870487/783d241b-c37f-4319-b4b3-8dde75cec528)

Blue APC should be visible. Red should not. Normally, if red is covered
completely by static, it becomes inaccessible. The red APC remaining
visible is only the result of the perspective. We can't black out the
entire wall when it goes off-camera since it can still be seen from the
other side. The blue APC is technically stationed on a turf in a
different room and is the only one in camera view, which would also be
blocked out and would be needlessly inaccessible. Walls that remain in
view from only one "side" of the wall, have all of their wallmounts
accessible to the AI despite not (logically) having a camera pointed at
them.

Damn, when is the wallening gonna get here?

Anyways, since the AI cam is a top-down view that only technically
respects cameras, you see things you aren't supposed to see. We can't
solve it by covering the entire tile, or leaving it uncovered, so this
is the best we got.

I got mixed up looking for where exactly to put this check. There might
be a better solution for this but I do not see it at the moment.
## Why It's Good For The Game

Wallmounts being accessible due to loopholes in perspective makes things
confusing for players who don't see the world the same way.

It would also be dishonest of me not to mention why I started on this
PR, and why this is marked as a balance PR - This was done to un-jank
the pain of doing console hack objectives. It's a bit nonsensical to
have to take out cameras on the other side of a wall just to make sure
your APC doesn't get powered down.
## Changelog
🆑 Rhials
balance: Wallmounts now respect cameranets, and cannot be accessed from
a view of the adjacent wall.
/🆑
2024-02-07 14:20:08 +01:00
jimmylandGitHub 03b98393fe autolathe altclick sanity (#81267)
## About The Pull Request

you may no longer reset drop direction at range and stuff

## Why It's Good For The Game

bug bad

## Changelog
🆑
fix: you may no longer reset autolathe drop direction at times when you
shouldnt be able to
/🆑
2024-02-07 14:17:54 +01:00
John WillardandGitHub 37f441c2a2 Service now has their own color in crew monitor (#81316)
## About The Pull Request

Service before was colored the 'other' color, which doesn't make sense
seeing as it's its own department. It also looked very similar to cargo,
so this also makes it easier to distinguish the 2 departments.

I also moved 'Unknown' to be directly above Assistant, so CentCom
officials will now display above unknown people.

## Why It's Good For The Game

It makes it much easier to distinguish the departments this way.

![image](https://github.com/tgstation/tgstation/assets/53777086/c328eb56-0711-4f02-995e-6146461e9160)

## Changelog

🆑
qol: Service personnel now show up in green in the crew monitor console.
/🆑
2024-02-07 14:17:05 +01:00
jimmylandGitHub 528eaf3c84 toilet bong altclick sanity (#81263)
## About The Pull Request
i still dont know what they meant by sanity checks but this should be it

## Why It's Good For The Game

bug or something bad

## Changelog
🆑
fix: you may no longer altclick unanchored toiletbongs from any range in
any condition to rotate them
/🆑
2024-02-07 05:25:48 +01:00
ArcaneMusicandGitHub ed31397cc4 Fixes ore vents spawning without ores on icebox, sets up map specific ore configurations (#81103)
## About The Pull Request

In short, we used a static list previously within the ore_generation
subsystem that held the amount of each ore that we expected a single map
to uniformly need. We held this number constant, since we were spawning
15 vents per map.

**Pros:** This worked flawlessly for Lavaland since 15 vents on a single
Z level makes it pretty densely packed map with a good amount of
map-based ore spawns, and it worked consistently.

**Cons:** 15 vents did not work well on Icebox however, even when split
so that the majority of the ores were spawning on the lower levels,
players did not feel like icebox spawned nearly enough ores and reported
the map spawning empty.

**Result:** As a result, we adjusted the ratio, so that we spawned
vastly more ores on the lower levels, now up to 4 vents on the upper
level, and 21 vents on the lower level. However, as we were still using
the ore distribution list based on lavaland, icebox vents were quickly
running out of ores to distribute between them, resulting in empty vents
-> which produced empty boulders -> which not only don't really let you
process them properly, but also just result in a metric ton of runtimes.

Icebox now has it's own list of ore distributions. These distributions
are now moved to a set of global lists as opposed to being saved on the
subsystem as a static list, which will make going and setting up new ore
distribution lists very very easy. Additionally, we've moved the setting
and getting of those ore_distributions over to the seedRuins proc, so
that we're actually setting the list of ores right before we actually
place them to make sure that the order that it's set is roughly as it's
needed, while still setting the list at the same time the
map-appropriate ruin placements are dropped in.

**Plus some misc cleanup fixes:**
`var/list/ore_vent_sizes` in SSore_generation wasn't being treated as a
similar budget list as `ore_vent_minerals`, since it `pick()`s off it's
own static size list. Which is honestly fine for this five seconds, I
can handle that later while we make sure the rest of the code code is
stable. In the meantime, I've just tweak it so that it's easy to see at
a glance how many of each random vent has spawned into the map.

Tweaked the description to not include anything about chemical
processing, as I'm planning on hitting on that in a part 2 PR that I'll
be picking back up after the freeze.

## Why It's Good For The Game

Cleans up the code a bit, but primarily fixes ores not spawning on
icebox as they should.
Should fix #81058.
Improves description to not mention mechanics that aren't in game.
Also, cleans up a piece of code that currently isn't serving much of a
purpose.

## Changelog

🆑
fix: Icebox should have it's ore distribution and it's ore vents fixed,
so that vents should now produce ore.
spellcheck: Boulder processing machines now don't mention things they
don't do.
/🆑
2024-02-07 05:20:25 +01:00
JusticeandGitHub f1cab538b1 The CC Commander Headset now can be set to high-volume (#81295)
## About The Pull Request
You got no idea how many times I've had to go to VV and set command=1
because the fucking Interns don't read chat.
With this PR, we no longer have to manually set that crap and can scream
into the Intern's ears in big letters with less steps.
The only outfits that use this type of headset are the CC Commander,
Special Ops Officer, Soviet Admiral, Debug Outfit, and Admin Outfit, so
I think it's cool
## Changelog
🆑
qol: You no longer need to manually set the CC Commander's Headset to
high-volume.
/🆑
2024-02-07 05:11:01 +01:00
JacquerelandGitHub d019239e51 Mothic Fleet Rations now leave trash (#81280)
## About The Pull Request

During the feature freeze someone pointed out that it was weird that
mothic rations can get dirty if dropped on the floor, as they're
supposed to be inside wrappers.
I added a trash type to them, which has the added side-effect of the
game assuming that if it leaves trash it probably doesn't get dirty when
dropped on the ground.

I also changed the colour of the text on the wrapper from black to very
very dark brown because I didn't like drawing it in black on the
wrapper.

## Why It's Good For The Game

More immersive. More Janitor content.

## Changelog

🆑
add: Mothic Fleet Rations now no longer get dirty or decompose if left
on the floor, due to their wrappers.
/🆑
2024-02-05 15:44:23 -08:00
MrMelbertandGitHub 12afcb911e Comprehensive cleanup of storage datum, replaces the weakrefs with just refs (because they were managed already) (#81120)
## About The Pull Request

- Large amount of storage datum cleanup.
   - Documentation.
   - Maybe more consistent use of parent vs real_location. 
   - Removes the weakrefs, replaces it with just references.
      - These were already managed references anyways so why bother?
- Removes a bunch of arguments no one used and would ever used so only
the most useful args are left.
 
- Some bugfixes. 

## Why It's Good For The Game

Aiming to make storage easier to work with. The whole intent of this was
to bugfix the whole "weight class" thing that keeps popping up but I had
to do this first.

## Changelog

🆑 Melbert
fix: When placing an item into storage (such as backpacks), all nearby
mobs now get a message, rather than just the first mob.
fix: TGC decks of cards should act a bit less odd when looking inside.  
refactor: Refactored a bit of storage, cleaned up a fair bit of its
code. Let me know if you notice anything funky about storage (like
backpacks).
/🆑
2024-02-05 11:42:03 -08:00
jimmylandGitHub 55fca245c9 pillow altclick sanity (#81265)
## About The Pull Request

you may no longer rip out the tag with the power of your mind at range

## Why It's Good For The Game

bug bad

## Changelog
🆑
fix: you may no longer rip pillow tags at range without telekinesis or
crit or any other time you shouldnt be capable of it
/🆑
2024-02-05 12:13:32 -05:00
jimmylandGitHub 549b83b78d ethereal disco ball altclick sanity (#81268)
## About The Pull Request

im getting tired of writing this but you may no longer altclick to
unanchor or anchor when crit or at range or otherwise

## Why It's Good For The Game

bug bad

## Changelog
🆑
fix: you may no longer altclick ethereal disco balls while unconscious
to anchor/unanchor
/🆑
2024-02-05 12:12:51 -05:00
jimmylandGitHub 38af859f13 tape recorder altclick sanity (#81270)
## About The Pull Request

you can no longer altclick them at range to play them

## Why It's Good For The Game

bug bad

## Changelog
🆑
fix: you may no longer altclick tape recorders at range to play them
/🆑
2024-02-05 12:11:37 -05:00
JacquerelandGitHub 3a94f0e39e Reading a newspaper conceals your identity (#81276)
## About The Pull Request


![dreamseeker_T49SJcwCEf](https://github.com/tgstation/tgstation/assets/7483112/53fd391a-bf01-4dd3-9f58-6977b9b1d3f5)
While you are reading a newspaper with a free hand you will hold it up
in front of your face and ID, rendering you as "Unknown" to anyone who
examines you (although it does not conceal your voice).

If you don't have a free hand you can still read the paper but it won't
do these things.
I don't want to have to care about the balance of people hiding a gun
behind their newspaper, even if that is also pretty funny.

Inspired by a forum post:
https://tgstation13.org/phpBB/viewtopic.php?f=9&t=35650

## Why It's Good For The Game

I think that it's pretty funny.

## Changelog

🆑
add: Reading a newspaper will conceal your identity.
/🆑
2024-02-05 12:11:13 -05:00
HigginandGitHub dbc4c8286e Adds Climbing to a Bunch of Old Stuff (#81283)
## About The Pull Request

What it says. a lot of old atmospherics stuff and a few other
unintuitive things lacked climbability sometimes leading to stupid
situations where you could get stuck or their use as inappropriate
obstacles.

Canisters, pumps/scrubbers, welding/water/foam tanks, heaters, and racks
can now be climbed.


![image](https://github.com/tgstation/tgstation/assets/3894717/1e5582c5-8b41-42c6-99e8-810970adc1e9)

![image](https://github.com/tgstation/tgstation/assets/3894717/78c31589-1088-4e25-8194-d27316e526e2)

![image](https://github.com/tgstation/tgstation/assets/3894717/bc7625a5-6d0f-4b4a-adb3-a52e9eb8d04b)


## Why It's Good For The Game

i remember when tables were a kit you could carry, immediately assemble,
and then use to two-click table somebody to kill them. somehow this
seems overdue.

## Changelog

🆑
qol: portable air pumps, scrubbers, heaters, canisters, liquid tanks,
and racks are now climbable.
/🆑
2024-02-05 12:06:27 -05:00
SapphicOverloadandGitHub 47edd4c3dd Kills off /obj/item/onetankbomb, assembly bombs now handled by the tank itself (#81218) 2024-02-03 03:24:39 -05:00
A miscellaneous FernandGitHub f8ec3591bc The "Guide to Advanced Mimery" series now make but the faintest noise when turning their pages (#81068)
## About The Pull Request

What it says on the tin. To fit with the description of volume 1 ("The
pages don't make any sound when turned."), they now use the sound of
faint rustling instead of the default page-turning sound effect.

Pictured below (you may wish to turn up your volume):


https://github.com/tgstation/tgstation/assets/80640114/e9867815-8e33-47a5-83e2-19fc979e15d6
## Why It's Good For The Game

Makes the book's behaviour consistent with their description, plus it's
just fitting, isn't it?.
## Changelog
🆑
sound: The Guide to Advanced Mimery book series now only make a very
faint noise when turning their pages, in order to match their
description
/🆑
2024-02-03 01:14:18 +01:00
e21dc5fec7 Kicks Martial Arts out of the attack chain (yippee), makes it use signals, plus a large clean up of existing martial arts (#81097)
## About The Pull Request

- Kicks Martial Arts out of the attack chain. 
- All Martial Arts attacks are now handled via unarmed attack or grab
signals
- This means all martial arts are now technically on the living level,
allowing any mob that can unarmed attack to martial arts. Sort of. YMMV.

- All martial arts block checking is now handled by the arts themselves,
meaning you can selectively decide for a martial arts strike to not be
blocked. Maybe good for the future.

- A comprehensive cleanup of all existing martial arts. Improving var
names, code, adding some missing animation calls, etc.

Fixes #74829

## Why It's Good For The Game

Untangles the mess that is martial arts, making it a lot easier to work
with the attack chain and making it overall a ton more consistent.

## Changelog

🆑 Melbert
refactor: Big martial arts refactor, they should now overall act a ton
more consistent. Also technically any mob can do martial arts. Let me
know if something is funky.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-02-01 14:18:46 +00:00
SapphicOverloadandGitHub 8bf3c1a953 Exosuit-mounted RCD now works like the handheld version (#81162)
## About The Pull Request

This gives the mounted RCD the same functionality as the handheld
version, from upgrades to destruction scanning. Upgrades can be
installed by using them on either the mech or the equipment item, and
both the scanner and RCD menu can be accessed in the equipment's menu.
Because mechs don't have different left/right click actions,
deconstructing is toggled in the menu as well.


![image](https://github.com/tgstation/tgstation/assets/93578146/8cdc4ddb-4741-4128-8f95-167c165fd670)

## Why It's Good For The Game

Gives exosuits more things to do that aren't combat-related, which I
feel is lacking currently.

## Changelog
🆑
add: Exosuit-mounted RCDs now have the same functionality as the
handheld version.
/🆑
2024-02-01 15:02:55 +01:00
SkeletalEliteandGitHub cc571582ff Gloves changes featuring nerfed shove cuffing (#81187)
<!-- 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
This PR increases cuff time to 4 seconds, but adds a trait for gloves
that makes you cuff 1 second faster. Currently this is placed on black
gloves, the captain's gloves and any other gloves which are used for
combat (like krav maga, any tacklers, and combat gloves). Chameleon
gloves also have this trait so that traitors have a glove choice other
than the somewhat conspicuous combat gloves to help them with
kidnapping, something they may do for objectives or contracting.
It also makes nitrile and latex gloves hide your fingerprints once
again.
<!-- 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
Latex gloves not hiding fingerprints was basically done purely for
balance reasons to make them not a direct upgrade over black gloves,
however it bothered me that this made little sense logically and is very
unintuitive and not something that's easy to tell in game. I've
personally arrested multiple people while playing sec using finger print
evidence they didn't even realize I could possibly have because they
thought their gloves would protect them.

Also I don't like playing against shove cuffing, dying because you dared
to stand within 1 tile of a wall or table and got shoved once is unfun
and takes basically zero effort or preparation and is one of the most
effective things you can do to fight someone, it discourages RP because
literally anyone can just turn on combat mode, walk you into the wall
while you're typing and kill you with nothing but a pair a cable cuffs.
This will make it take a little more prep and make you a little more
conspicuous when you intend to do it.

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

🆑
add: Wearing certain gloves (such as black gloves and combat oriented
gloves) allow you to cuff people faster
balance: base handcuffing time is now 4 seconds
balance: latex gloves now hide your fingerprints
/🆑

<!-- 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-02-01 14:16:31 +01:00
LemonInTheDarkandGitHub 18075704e9 Implements rgb2num, uses it to replace all our manual rgb reading. Redoes HSV management (#81182)
## About The Pull Request

[Converts all manual extraction of rbg with rgb2num. It's just
better](https://github.com/tgstation/tgstation/commit/ae798eabd5aa94dd577169553905d3efd7a7136d)

[Yanks out old HSV management, replaces it with list
stuff](https://github.com/tgstation/tgstation/commit/4997e86051d6388e495524dccba1f3258a47bb48)

There's this old lummy era clunky code that passed HSV as text

We can now cleanly replace it with passing hsv as lists from a rgb2hsv
proc

So let's just do that.

Also, cleans up spraytan code (and ethereal lighting)

## Why It's Good For The Game

Code better
2024-02-01 13:43:50 +01:00
ZephyrandGitHub 73b891388b Lathes no use power to print piecemeal AND respect area.requires_power (#81198)
check for area.requires_power
## About The Pull Request

If the area is supposed to not require power, we should respect that
Also it doesnt make sense to use all the power at once even though we
print items in series not parallel

fixes #81155

## Changelog
🆑
fix: lathes now respect always-powered areas
balance: lathes now use power as they print instead of all at once
/🆑
2024-02-01 13:31:57 +01:00
c76df7f37a Station Goals are now handled by SSstation instead of a global list (#81177)
## About The Pull Request

You can now get station goals in a slightly better way over using a
`locate() in` call on a global list.
The Meteor Satellite goal no longer stores a giant list of ALL OBJECTS
in view. And now correctly only counts turfs.
## Changelog
🆑
fix: Meteor Satellites no longer erroneously count every piece of paper
as a protected turf.
fix: As a result the station goal is slightly more difficult
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2024-01-31 20:47:09 +01:00
Interception&?andGitHub 907e0d8f21 Fix Ore Vent's well being on improper plane (#81181)
## About The Pull Request

Removed explicit plane set to `GAME_PLANE` and `ABOVE_MOB_LAYER` thus
fixing issue when well was drawn on improper plane, possibly the ghost
one.

## Why It's Good For The Game

This PR fixes a visual bug.


![Pic](https://github.com/tgstation/tgstation/assets/137328283/6d867b25-8aec-4f36-ae69-b2b1a918d908)

## Changelog

🆑
fix: fixed ore vent's well being drawn over ash storm. 
/🆑
2024-01-31 20:02:24 +01:00
MrMelbertandGitHub 7ffc073b33 Refactor jukebox, jukebox datum, now jukebox audio is positional. And it fully respects deaf people. (#81135)
## About The Pull Request

- Jukebox is refactored into a datum that the rave visor and the jukebox
uses.

- Jukebox UI is now typescript. 

- How the Jukebox delivers sound to players has been rewritten. 
- Now it adjusts the sound's position in accordance to where the
listener is.
- This implementation was loosely inspired by that done by Baystation
half a decade ago, so kudos to them.
   - Additionally, being deafened will temporarily mute the jukebox. 

- And sorry, in refactoring this I snuck in one tiny feature. 
- You can now toggle looping on Jukeboxes to play the song
foreeeverrrrr.

## Why It's Good For The Game

It sounds wayyyyyy better. Overhead isn't even that bad, though it could
be tested on a live server to make sure.


https://github.com/tgstation/tgstation/assets/51863163/ec1321b6-bf1c-4c33-9663-83f2c23a4277

## Changelog

🆑 Melbert
refactor: Jukebox has been refactored. Jukebox music now updates as the
player moves, mutes when the player is deafened, and overall sounds
wayyy better. You can also now toggle song repeat on jukeboxes.
/🆑
2024-01-30 17:54:56 -07:00