* Alien closets deconstruct into alien alloy (#72452)
## About The Pull Request
The other day I found a rare alien locker in maint, hooray!
Deconstructed it to get the alloy, and was instead met with iron. Booo.
## Why It's Good For The Game
Alien lockers should deconstruct into the mineral used to craft them.
## Changelog
🆑 Tattle
fix: alien closets now deconstruct into alien alloy
/🆑
Co-authored-by: tattle <article.disaster@ gmail.com>
* Alien closets deconstruct into alien alloy
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: tattle <article.disaster@ gmail.com>
Fixes a bunch of sidemap/plane cube issues (#72178)
## About The Pull Request
[fixes solor trackers offsetting wrong, and panels not using plane
offsets](8f461ab8ec)
[fixes cyborg hats offsetting phyiscally over their
head](5fd5b4240e)
[fixes reflector parts z fighting with their neighbors. if we physically
offset them, they'll have nothing to fight
with](088dcfe91f)
[fixes burgers layering wrong. uses a combo of pixel z to do the visual
offsets, and pixel_y to modify
layering](ec39e2bcd3)
[fixes signs, needed to use pixel_w instead of x, I think we may be
living under iso rules? I'm not totally sure I need to investigate
more](560d152fd7)
[fixes paperbin
rendering](e6c57ec00e)
## Why It's Good For The Game
Closes#72094Closes#72035
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Gatfruit will no longer drop from ice portals. (#72048)
## About The Pull Request
For some god-forsaken reason, somebody decided that ice portals should
be able to drop one of the most disruptive items in the game. This PR
amends this by removing it from the drop pool.
## Why It's Good For The Game
In 2013 gatfruit was introduced in the following PR #2000 . This was
almost a decade ago at this point, repeatedly through the PR the creator
states his belief that this item should only ever be obtainable through
admin intervention due to its ridiculous capabilities. At the time
everyone in the PR agreed it was a reasonable item to add **as it was
unobtainable without admin intervention**. Over the years, it has crept
its way to become more prevalent and openly obtainable, the most
offensive of these options is the ice moon portal. As is, there is a 1
in 28 chance of obtaining the seeds, this sounds pretty inoffensive
right? That's just 3.44% probability. Now, let us search the instances
of the portal that spawns this.

That is a big number, a lot of chances to get that seed packet and other
gamer looters. Now, let's take a look at the probability of being able
to get these seeds, assuming you wipe out all of the portals.

92.8% chance to be able to get these seeds each shift if you focus
entirely on gaming the portals. That's a pretty insane probability of
being able to obtain the gatfruit seeds.
While I dislike people who sprint to the seed vault, there is at least
the possibility of a pod person telling them to fuck off when they
demand their _free_ gamer seed. There is also the fact that the ruin
isn't a guaranteed spawn every shift.
## Changelog
🆑
balance: Gatfruit seeds will no longer drop from ice portals.
/🆑
* Gatfruit will no longer drop from ice portals.
Co-authored-by: carshalash <carshalash@gmail.com>
* Changes the missing food icon test to cover ALL /obj's
* Update implant.dm
* Hopefully fixes all the failing integration tests!
* Fixes more missing icons
* Even more icon fixes
* Hopefully that was all of them
* Okay now SURELY that's all of them
* I'm tired of this shit man
* Hopefully that's all, for real this time!
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Fixes racks not crafting properly and deleting themselves (#72164)
## About The Pull Request
Rack parts now use get_turf instead of loc when being constructed from
your hands. Loc would be the user rather than a valid location, and the
rack parts would be consumed, meaning you lose your rack parts and get
no rack. Loc is used in a few other places in the racks/tables file, but
they all appear to be working fine other than this one instance.
## Why It's Good For The Game
We've gotta keep our stuff organized somehow, right?
Closes#72155
## Changelog
🆑 Rhials
fix: Racks now properly construct again
/🆑
* Fixes racks not crafting properly and deleting themselves
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Locker shoving logging / grammar fixes (#72061)
Fixes#72060🆑 ShizCalev
spellcheck: Corrected some grammar issues with messages displayed when
shoving people into lockers.
admin: Fixed shoving people into a locker not being combat logged
properly.
/🆑
* Locker shoving logging / grammar fixes
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes runtime when plastiflaps move z/get deleted (#72059)
What it says on the tin.
* Fixes runtime when plastiflaps move z/get deleted
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Shuffles bedsheet attack actions a wee bit (#71865)
## About The Pull Request
my friends been doing makeshift surgery and gets mad about having to do
harm intent to start surgery and then having to turn it off to do every
single other surgery step and i agree, thats silly
~~instead, now, the bedsheet attack does not check for harm and ALWAYS
COVERS with left mouse button and ALWAYS PREPARES SURGERY with right
mouse button~~
to be more consistent all surgery initiators now work on left mouse
click and covering with your bedsheet is the right mouse button

## Why It's Good For The Game
while obviously a lot of the time makeshift surgery IS about harming
someone else its inconsistent with how all other surgery tools function
and also isn't very clear at all. the screentip in addition to having
them be separate buttons means that bedsheets two functions are overall
much clearer and its surgery drape function will no longer lead to an
assistant accidentally knifing someone when theyre trying to save
someones life
## Changelog
🆑
qol: added makeshift surgery screentip
qol: you no longer have to go in and out of harm intent to do surgery
with a bedsheet
/🆑
* Shuffles bedsheet attack actions a wee bit
Co-authored-by: Sol N <116288367+flowercuco@users.noreply.github.com>
* Takes the Tram off of the game plane, to make everything on it look a lot less flat (#71858)
## About The Pull Request
That's about it. It being on the game plane sadly had the inherent issue
of "no more ambient occlusion for anything that goes in it", which made
it look jarring.
Sadly, because of this, I had to put regular iron floor tiles over the
pipes/wires/disposals pipes on those crossings, but that's just further
motivation for LT3 and I to work on some new glass plating and actual
glass tiles so we can make this work properly again.
## Why It's Good For The Game
Muh ambient occlusion.
Seriously, it just looks *SO* much better.
## Changelog
🆑 GoldenAlpharex
fix: Everything that goes on the tram should look a lot less flat now!
/🆑
* Takes the Tram off of the game plane, to make everything on it look a lot less flat
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes Unwrenched Signs Having An Error Sign (#72027)
## About The Pull Request
I think this code was first made with the assumption that every sign
would be in the same DMI? Anyways, let's just ensure that it now works
in modern code by also passing in a valid icon file as well to the
non-descript "item sign".
## Why It's Good For The Game
Fixes#71920.
## Changelog
🆑
fix: When you unwrench a flag, you should now no longer see the big
flashy red ERROR sign.
/🆑
* Fixes Unwrenched Signs Having An Error Sign
Co-authored-by: san7890 <the@san7890.com>
* Adds logging for stuffing people in crates/lockers/bodybags (#72015)
## About The Pull Request
Stuffing people inside of thigs was unlogged, now it is.
## Why It's Good For The Game
Useful for admins so they actually know who hid a corpse in a locker for
example.
## Changelog
🆑
admin: Stuffing people inside lockers is now logged.
/🆑
* Adds logging for stuffing people in crates/lockers/bodybags
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
* 3/4ths-ify some wall mount sprites (by Kryson and Viro) (#71788)
posters are now 24px tall, new sprites for nanomeds, emergency safes, and ticket machines
(by Kryson)
* 3/4ths-ify some wall mount sprites (by Kryson and Viro)
* DON'T INCLUDE FUCKING OVERRIDES IF THEY DON'T DO ANYTHING HHHNGH MY CI IS FAILING CODERS
* FUCK
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* More sign subtypes (#71794)
## About The Pull Request
Adds new sign subtypes for use with in-game sign customization and the
object tree while mapping. This expansion does not add new icons, it
only adds subtypes for existing icons that are neglected.
An alternative telecomms sign subtype was given a `sign_change_name`
variable so that it could be customized in-game.
Erased the "alt" from a "yes smoking" sign variable since there is only
one type.
Variable sanitization in places where it would already inherit from the
parent object.
The following sign subtypes have been added:
- Chemistry (alt)
- Xenobio (alt)
- Botany (alt1 and alt2)
- Warning: Blast Doors
## Why It's Good For The Game
The icons are already present, but now the signs are available to
mappers without having to manually edit the `icon_state`.
Players have more options when editing signs in-game.
## Changelog
🆑
add: More options are now available when creating and editing signs.
/🆑
* More sign subtypes
Co-authored-by: SpaceSmithers <105393050+SpaceSmithers@users.noreply.github.com>
* New Interdyne Shipping Container - with fixes to old sprites (#71844)
Adds 1 (2) new sprite to the Containers list to include also a default
icon so it's no longer a checkerbox for the default. Mostly doing this
for a mapping project and needed Interdyne added in, but hey why not
bring it here and fix some of the blemishes as well.
I also alphabetized them in the dmi and code block because OCD.
* New Interdyne Shipping Container - with fixes to old sprites
Co-authored-by: Zergspower <Griffinj88@yahoo.com>
* Fixes teleporting rack with telekinesis (#71851)
Building racks with telekinesis will now build them where the racks are, rather than teleporting to where the user is.
* Fixes teleporting rack with telekinesis
Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
* Petrified human statues now drop a (stone) brain on destruction (#71816)
## About The Pull Request
Destroying a petrified human statue will now drop their brain, albeit a
little more statue-like.

Changed from original PR after talking w/ Fikou about it
## Why It's Good For The Game
While the combo *does* step on the toes of Smite, the statue+rod combo
is capable of fully removing you from the round without a way back very
quickly. This keeps the strength of the combo while not making it
entirely impossible to get back into the round.
## Changelog
🆑
balance: Destroying a petrified human statue will now drop their brain.
/🆑
* Petrified human statues now drop a (stone) brain on destruction
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Grey Tide event light behavior changes and code tidiness (#71230)
## About The Pull Request
Makes a number of changes to the Grey Tide event, some of which are and
some of which aren't player facing.
Player facing bits:
- The lights will once again turn off when the event ends and the doors
begin opening. Originally, the lights would all shatter when the event
hit, providing a cover of darkness for opportunists to sneak around
under. Unfortunately this would prevent the AI from fixing the doors
until the lights were replaced, leading to headaches and the removal of
this functionality in #43159. Now, the lights are simply turned off at
the APC instead of shattered.
- The lights now flicker at certain intervals as the event is running,
rather than just right at the start.
- Announcement has been slightly modified to indicate that the event
hits more than just airlocks.
- Event runs way faster. Doors open all at once, rather than
one-at-a-time.
And now for the non player-facing bits:
- The filename is now grey_tide.dm instead of prison_break.dm. The event
was effectively re-branded to the Grey Tide event six years ago, but the
filename was unchaged.
- potential_areas is now a part of setup instead of a var on the
round_event.
- Cleans up instances of single-character varnames and stuff not in
snake case.
- The event now checks if it has any valid areas (will it work or not)
at the start, rather than at the end.
- The event now sends a global signal when run, rather than checking
everything in the entire world. It should run faster now.
- Everything that can be affected by the grey tide event now stores its
functionality on a signal handler, including the light flickers
## Why It's Good For The Game
Makes the grey tide event a bit more interesting and easier to take
advantage of. Cleans up the backend code a bit.
## Changelog
🆑 Rhials
balance: The lights will now flicker more frequently before a Grey Tide
event
balance: The lights will now be shut off via the APC when the Grey Tide
event opens up a department.
code: Makes some miscellaneous code improvements to the Grey Tide event
code: Grey tide event runs much faster
code: Renames prison_break.dm to grey_tide.dm
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Grey Tide event light behavior changes and code tidiness
Co-authored-by: Rhials <Datguy33456@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Adds nest sustenance status effect, halves xenomorph nest escape time (#71691)
## About The Pull Request
Hosts who are buckled to a xenomorph nests will gestate their xenomorph
egg 20% faster (4 minutes in a nest, 5 without) as long as they are
trapped. To keep them alive in the nest, they will recieve temperature
stabilization and be healed until they are pulled (or break) free.
To ensure the gift of life is not wasted by captured humans, they can
now break free from resin nests after one minute of struggling, down
from two.
## Why It's Good For The Game
There's currently no incentive to not kill facehugger infectees
immediately after they're impregnated. Dead bodies can't run away,
gestate at the same speed, and hives are often breached from space
making them deadly to live captures regardless. This serves the dual
purpose of incentivizing live captures, while also making them a
feasible option, without removing the ability to infect dead bodies and
seriously impacting the xenomorph playstyle.
Cutting the escape timer in half (while also ensuring that captured
humans are alive enough to break out) means there will be many more
opportunities for live captures to escape. Additionally, the xeno
players will have to spare manpower to actively defend hosts and if they
wish to ensure they do not escape. Hopefully it should give more reason
to play defensively and set up a proper hive, instead of the
hypermobile-hyperviolent playstyle you sometimes encounter.
## Changelog
🆑 Rhials
balance: Xenomorph nests will now sustain humans that are buckled to
them, and gestate xenomorph eggs slightly faster.
balance: Xenomorph nests evolved healing capabilities in exchange for
some of their grip. They now take only one minute to escape from.
/🆑
* Adds nest sustenance status effect, halves xenomorph nest escape time
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes being able to get to centcomm and move through floors when in mechs/boxes (#71486)
## About The Pull Request
Fixes#71484 - Adds a check to the down verb to make sure a z level
exists below before trying to move.
Changes some step() in relay_move procs to use zMove instead if they
have a direction of up/down, as this was causing you to be able to phase
through floors if you were in a cardboard box/mech/etc
## Why It's Good For The Game

## Changelog
🆑
fix: Fixed being able to move through floors and get to centcomm when
moving up/down while inside mechs and similar movable objects.
/🆑
* Fixes being able to get to centcomm and move through floors when in mechs/boxes
* update modular
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Rename organ decay proc for clarity and add medical roundstart tip (#71661)
- Add roundstart tip to let new doctors now that morgue trays and
freezers prevent organ decay
- Renamed organ decay proc to be `toggle_organ_decay` instead of
`recursive_organ_check`
* Rename organ decay proc for clarity and add medical roundstart tip
Co-authored-by: Tim <timothymtorres@gmail.com>
* Psykers (#71566)
## About The Pull Request
Finishes #66471
At burden level nine (or through a deadly genetic breakdown), you now
turn into a psyker.
This splits your skull in half and transforms it into a weird fleshy
mass. You become blind, but your skull is perfectly suited for sending
out psychic waves. You get potent psy abilities.
First one is brainwave echolocation, inspired by Gehennites (but not as
laggy).
Secondly, you get the ability of Psychic Walls, which act similarly to
wizard ones, but last shorter, and cause projectiles to ricochet off
them.
Thirdly, you get a projectile boost ability, this temporarily lets you
fire guns twice as fast and gives them homing to the target you clicked.
Lastly, you get the ability of psychic projection. This terrifies the
victim, fucking their screen up and causing them to rapidfire any gun
they have in their general direction (they'll probably miss you)
With most of the abilities being based around guns, a burden level nine
chaplain now gets a new rite, Transmogrify. This lets them turn their
null rod into a 5-shot 18 damage .77 revolver. The revolver possesses a
weaker version of antimagic (protects against mind and unholy spells,
but not wizard/cult ones). It is reloaded by a prayer action (can also
only be performed by a max burdened person).
General Video: https://streamable.com/w3kkrk
Psychic Projection Video: https://streamable.com/4ibu7o

## Why It's Good For The Game
Rewards the burdened chaplain with some pretty cool stuff for going
through hell like losing half his limbs, cause the current psychics dont
cut it as much as probably necessary, adds echolocation which can be
used for neat stuff in the future (bat organs for DNA infuser for
example).
## Changelog
🆑 Fikou, sprites from Halcyon, some old code from Basilman and
Armhulen.
refactor: Honorbound and Burdened mutations are brain traumas now.
add: Psykers. Become a psyker through the path of the burdened, or a
genetic breakdown.
add: Echolocation Component.
/🆑
Co-authored-by: tralezab <spamqetuo2@ gmail.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Psykers
* commented out stuff is now in
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tralezab <spamqetuo2@ gmail.com>
Co-authored-by: tralezab <40974010+tralezab@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* pAIs and lightgeists can now correctly climb ladders. (#70869)
## About The Pull Request
See the title and the relative issue reports.
The logic here is that, if they can move, chances are they can also use
ladders (with a few exceptions such as camera mobs). This ought to
include both pAIs and lightgeists, even if they cannot directly interact
with about every other object in the game.
I have also moved lightgeists onto a new file, from colossus.dm.
## Why It's Good For The Game
This will fix#57061 and fix#69228.
## Changelog
🆑
fix: pAIs and lightgeists can now correctly climb ladders.
fix: fixed a small issue with the radial menu for ladders that caused
the user to travel down when abruptly closed.
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* pAIs and lightgeists can now correctly climb ladders.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Save 0.6-0.7s of init time by splitting registering lists of signals into its own proc, and optimizing QDELETED
* modular RegisterSignals
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Fixes grilles dropping a stack of 0 iron rods (#71501)
## About The Pull Request
Fixes a bug where grilles drop a stack of 0 iron rods on partial
destruction. They now drop one iron rod. Also removes a variable called
rods_broken which is useless.
## Why It's Good For The Game
The stack of 0 rods acts the same as a normal iron rod except its icon
is invisible, meaning it can be snuck past security, this is bad and
could be used for cheese. It also meant grilles dropped less iron rods
than it takes to build a grille, which makes no sense.
Fixes#71203
## Changelog
🆑
fix: fixes grilles dropping stack of 0 iron rods
/🆑
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* Fixes grilles dropping a stack of 0 iron rods
Co-authored-by: supergrog2 <118997813+supergrog2@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
* JPS Optimization (Light Botcode) (#70623)
## About The Pull Request
Alright. So.
Right now, JPS works like this:
```
code requests path
we enter the actual pathfinding
pathfinding sleeps when it overruns a tick
if it sleeps, it'll then wake up before the mc starts
continue
```
This has annoying side effects. Primarily that we have no real control
over JPS, we just sorta have to eat its cost.
So if there's like 10 different things pathfinding at once, the mc will
have no time to do anything. Hell we might even end up eating into
maptick's time if the jps work is expensive enough (note the cost of
sleeping is not accounted for, and that has overhead)
This has happen before, usually when someone makes a lot of bots, and
it's really annoying.
So then, lets put JPS on a subsystem. That way the MC has control over
it.
But wait, existing code expects to yield and get back a path list, and
that's a sane request.
This is solvable, but requires abusing pass by reference lists, and the
ability to make callbacks into partials (preinsert arguments into them
before they're called, and accept other args later)
Because of this, we can now pass callbacks into pathfinders, allowing
for async use, rather then JUST yielding.
Of note: I've removed the 10 pathfinding datums limit, since
ratelimiting like that is handled nicely by the MC.
I've also removed the 15 second timeout, since mc yielding would trigger
it too often. I'm unsure if this means we don't have exit conditions for
pathfinding, need to talk to ryll. (@ Ryll-Ryll what happens if jps just
like, fails to find a path?)
Also of note: I think bots will fire off more then one pathfinding
attempt at a time if their first takes too long to complete. This is
dumb, why do we do this?
Optimizes JPS by more then 40% by removing redundant for(thing in turf)
loops, and avoiding making proc calls if objects are non dense.
This makes things slightly more fragile, but saves a LOT of time. I
think it's worth it, tho talking to mso it might be possible to do
better. Maybe I should do a LINDA system style thing. (I did a linda
system style thing I fixed it)
Optimizes botscanning, fixes bots not seeing things adjacent to them
The list of types could be a cached typecache
We could inline both checkscan and check_bot
check_bot SHOULD NOT BE CALLED ON EVERY OBJECT IN VIEW HOLY SHIT WHY
We don't need to process adjacent and the shuffled view separately, it's
in fact easier to process them in one block
Renames a var
Moves bot's pathing images to above most floor objects, so they're
visible in maint
## Why It's Good For The Game
Speed. Also manuel will stop killing their server by placing 20000
medibots (fucking icebox man every time)
## Changelog
🆑
fix: Bots will now "notice" you if you're standing right next to them
fix: Bot paths will now draw above things like pipes, rather then below
them
refactor: Changed how pathfinding paths get generated
refactor: Made pathfinding and bot searching significantly faster
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* JPS Optimization (Light Botcode)
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Coffee Shop DLC - done right this time edition (#70991)
## About The Pull Request
this is a re-attempt at PR #70725 that was practically ready but was
ruined in the course of my hardships with git. Mistakes were made.
In this re-edition I also addressed a few suggestions from the comments
of the original pr. There is a shaker added in the meta station cafe and
the pill bottle is moved out of sight to the fridge (I still left it
cause it contained antidepressants for the especially overworked NT
employees). Additionally, the naming of `/cup/glass/coffee` has been
handled differently this time to minimize the need of changing the code
in multiple places.
Please refer to the original PR for all details concerning the content,
below I add just a rough line-out for the sake of coherency.

The content of the pr extends to:
- a new coffee bean driven coffeemaker
- syrup bottles
- a coffee condiment display box
- almost complete make-over of the meta station cafe
- adding the new coffeemaker in a few break rooms on delta and tram (2
machines per station)
## Why It's Good For The Game
Please refer to #70725
## Changelog
🆑
add: After a massive success of the Modello 3 series, Piccionaia Home
Appliances rolls out a completely new coffeemaker model and renovates
the meta station cafe for free in a promotional campaign!
add: Syrup bottles, condiment displays, and more, to make the spess
coffee experience even better
/🆑
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@ gmail.com>
* Coffee Shop DLC - done right this time edition
Co-authored-by: disappointedButNotSuprised <57324037+disappointedButNotSuprised@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@ gmail.com>
* Particle editor (#71110)
## About The Pull Request
Demo: https://streamable.com/wnj3mf
Features:
- Full support for most gradients/vectors/numbers/generators/transforms
( I might have forgotten some of the more esoteric ones)
- A "tutorial" section that explains the different rand/generation types
and how physics works with pictures
- Button for viewing what each var does
- Selecting a particle type to set immediately
- The generator types use defines now
Not included:
Color matrix support for color generators (I'm sorry but hell no)
Special thanks to @ jlsnow301 for explaining js things to me
## Why It's Good For The Game
Making cool stuf
## Changelog
🆑
refactor: Added a particle editor to VV dropdown which can be used by
coders and admins to edit particle values on the fly easily.
/🆑
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Particle editor
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: TiviPlus <572233640+TiviPlus@ users.noreply.com>
* Moves flick_overlay to atom instead of being global (#71045)
## About The Pull Request
Moves flick_overlay and flick_overlay_view to atom instead of being a
global proc
## Why It's Good For The Game
General performance and syntaxical improvements, makes it easier to
retrieve iconstates
## Changelog
🆑
fix: flick_overlay is an atom proc
/🆑
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Moves flick_overlay to atom instead of being global
* modular flick
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: etherware-novice <candy@ notarealaddr.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
* Makes some use of `CONDUCT_1` in grille and door attackby. (#71286)
## About The Pull Request
- Airlock attackby now uses `CONDUCT_1` to check if the mob should be
shocked on attack
- Grille attackby now uses `CONDUCT_1` to check if the mob should be
shocked on attack
- You don't leave a fingerprint on grilles you attack (?)
- Fire axe is now conductive (it's made of steel?)
## Why It's Good For The Game
- Consistency is nice.
- If you have an item you don't expect to shock you, it shouldn't
randomly zap you anyways.
- Grilles are especially bad for this: It hard checked _glass shards_
when attacking, and _glass shards_ only. That's lame and nonsensical.
All non-conductive weapons should resist a spark.
## Changelog
🆑 Melbert
balance: Attacking a shocked door with an item that isn't conductive
will not shock you.
balance: Attacking a shocked grille with any item that isn't conductive
(not just glass shards) will not shock you.
balance: Attacking grilles with items no longer leaves behind a
fingerprint on the grille (?).
balance: Fire axe is now conductive.
/🆑
* Makes some use of `CONDUCT_1` in grille and door attackby.
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Tram QoL Improvements (#70774)
<!-- 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
- Tram destination sign is expanded, so it can say 'Central' and 'Not In
Service', fits in better sprite wise anyways
- Engineers now have access to control the tram doors
- The tram now has its own set of door icons, matching the rest of the
tram. It makes it a titanium windoor instead of the standard windoor
icon
- Tram doors are now their own subtype, because it was backwards for
some reason
- Tram doors are now faster opening, because nobody wants to wait 3
seconds for the doors to open. Nice on arrivals, or make your daring
escape mid travel!
- Tram doors are responsive and let you jump out mid travel, for those
daring escapes
- The tram now has a coherent visual look of silver and grey
- The tram now has a touchscreen display instead of an atmos computer,
reflecting the TGUI panel
- Adds a new tram floor sprite reflecting the propulsion of the tram
- Tram has its own holobarriers instead of using firelocks

<!-- 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
Improving the tram based on feedback from players, and making it look
better too.
<!-- 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. -->
🆑 LT3
qol: Tram destination sign is expanded and now properly says Central and
Not In Service.
qol: Tram doors now open faster on arrival and mid travel, so you don't
have to wait, and can also make a daring high speed escape from a tram
in motion.
fix: Improved tram door logic so they don't end up open/closed at the
wrong place.
fix: Tram doors are now their own subtype, it was backwards for some
reason.
fix: Tram doors while idle at a station can only be interacted with by
Engineering staff.
add: Tram controls are now a responsive touchscreen.
add: Tram crossings have their own holobarrier instead of using the
generic atmos fire barrier.
add: Tram now has a new set of doors in shiny titanium glass.
add: Tram is now powered by linear induction motors.
fix: Deltastation's EVA windoor for magboots are no longer tram doors.
/🆑
<!-- 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: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Tram QoL Improvements
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fix holodeck material exploits (#71140)
## About The Pull Request
Makes hologram trees unable to be harvested or uprooted (no free wood)
Makes hologram chess pieces unable to be deconstructed with a wrench (no
free metal)
## Why It's Good For The Game
Fixes#71019Fixes#70942
## Changelog
🆑
fix: You can no longer deconstruct the chess pieces or cut the trees in
the holodeck for free mats
/🆑
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Fix holodeck material exploits
Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>