Commit Graph

16439 Commits

Author SHA1 Message Date
tralezab
fefd9aa4ea Craftable material sniffers (#74798)
## About The Pull Request

Are YOU annoyed about never finding the fucking mats you need? Slap some
cable coil on an analyzer and find that untouched sheet of iron and or
glass. It's a pinpointer for basic sheets.

## Why It's Good For The Game

Originally I meant to give this as something borgs might want, but I
realized they really won't have a great time using it and the situation
is more about botanists not being asked, and not knowing how to grow
lots of iron, repeat for all other departments. Awareness problems!!!

But I still like the item as a miscellaneous craftable.

## Changelog
🆑
add: Craftable Material sniffers
/🆑

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-04-28 18:15:16 -07:00
John Willard
1c4166c81c Tablet UI update (mostly fixes) (#74844)
## About The Pull Request

Tablet UIs are now changed when opening/closing an app, instead of
constantly checking for a UI change every ui update.

Program UI acts no longer call parent, as it was unnecessary, Computers
are the ones that should be calling it.

Fixes a ton of problems with static data not updating, such as in
Messenger, ID management, Siliconnect, and Chat client

Chat Client's Admin mode also works again, which was broken when
accesses to check was turned into a list.

Turns a few lists in Robocontrol into static ones when we aren't
changing anything, and makes it actually scan your ID's access.

Fixes budget ordering being unable to show the cart/call the cargo
shuttle.

## Why It's Good For The Game

While I can't seem to find a single issue report on any of the above,
these are still problems that should be fixed.

## Changelog

🆑
fix: SiliConnect can download borg logs again.
fix: The RD can once again enable Admin mode on Wirecarp
fix: NT IRN can once again see the shopping cart and call the cargo
shuttle.
fix: Chat Client, ID Management and Messenger should now update their
UIs properly.
code: PDAs will hopefully not lag as much when clicking on buttons (such
as in ID management).
/🆑
2023-04-26 23:29:20 -06:00
Bloop
89b3b9ed2a Candles and flares can now set mobs on fire (#74982)
## About The Pull Request

Exactly what it says. You want to set people on fire using a candle or a
flare now? No problem.

## Why It's Good For The Game

Not sure why you could never do this.

## Changelog

🆑
fix: mobs can now be set on fire using flares and candles if they are
covered in something flammable
/🆑
2023-04-26 18:52:31 -06:00
Dawnseer
71ef04efa0 Fire Proof Goliath Cloak (#74954)
## About The Pull Request
Right so, I was trying to imagine why goliath cloak isn't fire proof
when goliaths can quite literally bathe in lava. So I decided it must be
an oversight.
So now they're fireproof.

![image](https://user-images.githubusercontent.com/126404225/234091167-8018bf17-3f04-45e2-9b16-a15f765e1288.png)
## Why It's Good For The Game
Fireproof mob leather is actually fireproof
## Changelog
🆑

fix: fixed an oversight - Made Goliath Cloak and Goliath Cloak Hood
fireproof. And Goliath hide.
/🆑
2023-04-26 08:06:05 -04:00
moocowswag
3c0ed2536d Fixes an exploit that allows portable chem mixer to dispense chems to a beaker from anywhere. Adds a locked check to storage hotkeys. (#74861)
## About The Pull Request
Ya so I just recently learned about the portable chem mixer and after 10
minutes of playing with it I found a game breaking exploit on accident
and ended up thinking part of it was intentional.

Basically this is how the portable chem mixer currently works, you put
beakers with chems into it and then you change it to dispense mode which
disallows opening the inventory (but doesnt close it) once you change it
to dispense mode the next beaker you put in it becomes linked to it and
it can dispense chems from other beakers into this linked beaker.

The problem was it doesnt close your inventory, which lead me to believe
the beaker is supposed to be in your hand when you dispense chems into
it.

Then someone who I was having ic conflict with stole my beaker and I
noticed that the beaker still shows up in my dispense ui.....

And how excited I was to learn that I indeed could turn them into a
fireball from over a screen away..


https://www.youtube.com/watch?v=ebNJVYgVsKA

(For clarification the reaction I did was failed helgrasp which makes a
(non damaging) fireblast that sets people on fire and knocks them back)


The fix is to make it so the inventory of the portable chem mixer is
automatically closed when its locked so you cant take the beaker out (I
dont think instant summons will work either since that teleports the
container too so no need to check where the linked beaker is constantly)
## Why It's Good For The Game

This is an exploit that I firmly believe has BS murderbone
potential...imagine being able to remotely dump chems into a bluespace
beaker...imagine giving someone a beaker that you have linked.
## Changelog
🆑

fix: You can no longer bypass the laws of bluespace with a portable chem
mixer.
fix: You can no longer bypass container locks with storage hotkeys.

/🆑
2023-04-26 07:50:27 -04:00
John Willard
f0c854981a Health analyzers now warn you if someone can't survive their temperature. (#74936)
## About The Pull Request

Health analyzers are now red/blue if the temperature of the person is
too hot/cold

![image](https://user-images.githubusercontent.com/53777086/233828353-5c40ecbc-032b-4de6-8ea7-70607375f16f.png)

![image](https://user-images.githubusercontent.com/53777086/233828355-5e831236-6961-41d7-909a-67ae2f8036ff.png)

![image](https://user-images.githubusercontent.com/53777086/233828366-f31e82c5-075d-441d-b747-47990cbf3c3f.png)

Also because I just noticed it, I moved the signal for health scan down,
meaning that things that are registered to it now work with inverse
technetium setting it to advanced mode.
I also removed the ishuman check for bleeding because it's a carbon
proc. This has no game-effects as xenos don't have DNA.

## Why It's Good For The Game

We currently expect doctors to see all the important information with
red text to know what needs to be fixed, however this is not the case
for temperature, we are currently expecting them to pay attention to a
body's temperature, and what their species can handle. I think this is
quite lame, and I think it would be better if it worked like everything
else in the analyzer.

## Changelog

🆑
qol: Health analyzers now show body temperature in red/blue if the
temperature of the body can't sustain it's own life.
fix: Inverse technetium now properly gives advanced details in
genetics/radiation analyzing.
/🆑
2023-04-25 18:40:52 -07:00
13spacemen
e3bd30e982 RPD Speeds Tweak (#74619)
Lowercased RPD name and lowered the speeds for building atmos pipes/devices, reprogramming stuff and destroying stuff
atmos 0.5s -> 0.3s
reprogram/destroy 0.5s->0.3s
Why It's Good For The Game

QOL for atmos, makes big atmos/engi projects more viable
Loose pipes/devices don't even have gas in them no point in taking a lot of time to destroy them, they don't cost any materials to make either so nothing is wasted

This especially helps with fixing huge explosions since that leads to 50 pipe fittings being spammed everywhere and takes ages to clean up
Changelog

cl
qol: Lowered the atmos build, reprogram, and destroy delays on the RPD
/cl
2023-04-26 11:23:36 +12:00
SyncIt21
572827a118 Fixes redundant code & runtime in RPD (#74949)
## About The Pull Request
1. `pre_attack()` was defined twice, removed one
2. `attackby()` does the exact same thing as `pre_attack()` for
installing upgrades so removed that
3. Fixes runtime
![Screenshot
(180)](https://user-images.githubusercontent.com/110812394/233941512-c2e23e40-cd53-4ed4-87be-59bcaea373d3.png)
When you attempt to unwrench a pipe via the RPD but you interrupt the
`do_after()` proc by moving. it doesn't need to crash but simply return
if unwrenching was unsuccessful see
`/obj/machinery/atmospherics/wrench_act()`

## Changelog
🆑
refactor: removed duplicate `pre_attack()` & redundant `attackby()`
procs which did the same thing
fix: unnecessary crash when unwrenching pipes/devices with the RPD
/🆑
2023-04-24 21:26:08 -06:00
rageguy505
77f4655efb Adds a phonebooth ruin to icebox, space, and lavaland (#74174) 2023-04-24 16:55:35 -07:00
ArcaneMusic
a49af57567 March into Mapness - Moon Base 19 (#74067) 2023-04-24 16:31:53 -07:00
ChungusGamer666
b093b12e03 Burning and acid components fixes and improvements (#74803)
## About The Pull Request

Generally cleans up code on both components.
Moves burn proc back to /obj level, I'm not sure why I moved it to /atom
level, it was unnecessary.
Acid component generalized so it can be used on any atom that uses
atom_integrity.
Fixes a bug where objects that stopped burning didn't update their burn
overlay properly due to bad removal logic and leftover code.
Standardizes examine messages on burning items by just slapping an
examine signal registration on the component.
Adds fire particles to items thanks to Lemon's PR:
https://github.com/tgstation/tgstation/pull/74524

## Why It's Good For The Game

Particles look cool

![image](https://user-images.githubusercontent.com/82850673/232605615-6e3bc804-bc68-4f09-8615-5e5946acbc10.png)

![image](https://user-images.githubusercontent.com/82850673/232664951-e0474331-495f-4717-8b0f-a647aedc4d9f.png)

Bugfixes are good
Code improvements are good

## Changelog

🆑
add: Burning items now get (small) smoke particles. Sick.
fix: Burning objects now clear their burning overlay properly.
qol: Examining burning objects will always tell you that they are
burning.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-04-23 17:50:58 -06:00
zxaber
16263d6ed2 Restores ability for borgs to adjust reflector angles (#74913)
## About The Pull Request
Adds an override for `attack_robot()` on reflectors, which is called
when a borg clicks on an object with no tool selected. Only allows
rotating if the borg is adjacent to the reflector.
## Why It's Good For The Game
This was an undocumented change of #74800, and I assume unintended. In
any case, the inability to adjust reflectors somewhat restricts engineer
borgs' ability to engineer.
## Changelog
🆑
fix: Restores ability for borgs to adjust reflector angles. This is now
a left-click with nothing selected, similar to humans' left-click with
an empty hand.
/🆑
2023-04-23 17:17:05 -06:00
ChungusGamer666
2536fd85ee Cleans up thermite component code (#74825)
## About The Pull Request

Nothing too interesting to be quite honest, just cleans up the thermite
component code a bit because it was a bit weird.

## Why It's Good For The Game

This probably fixes a few rare bugs where the thermite overlay
disappears due to an update_icon call. Slightly neater code.
Also, adds an examine message to thermite walls because small QoL stuff
is neat.

## Changelog

🆑
qol: Thermited walls now get an examine message telling you they are, in
fact, thermited.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-04-21 13:11:52 -06:00
ChungusGamer666
c09eb15abf Makes burning items actually hot (#74874)
## About The Pull Request

Simply put, unless overriden, items with the ON_FIRE flag will always be
at least 150º C (491,15 kelvin).
I didn't want to pack this change with
https://github.com/tgstation/tgstation/pull/74803 because I feel this
might have some weird unintended consequences, maybe.

## Why It's Good For The Game

Emergent gameplay like lighting a cigarette with a burning piece of
paper, I guess.

## Changelog

🆑
add: Burning items are now actually considered to be at a minimum, 150
degrees celsius by the game.
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-04-21 13:07:22 -06:00
Bloop
b8f03c5e9a Stops the base random poster spawner from spawning traitor posters (#74868)
## About The Pull Request

When the syndicate posters were added, they were intended to be a
traitor objective. To quote from the original PR:

>"If you start seeing red posters then you know there are traitors
somewhere."

As an unintended consequence of how poster randomization works however
they are able to spawn from the base random poster mapping object,
defeating the purpose. They should only be able to be placed by actual
player traitors (or a deliberate mapping decision).

This PR just removes them from the pool of posters to select from when
using `/obj/structure/sign/poster/random`. You can still use
`/obj/structure/sign/poster/traitor/random` to spawn random traitor
posters both when mapping or ingame via commands.

This will close https://github.com/Skyrat-SS13/Skyrat-tg/issues/17956.

## Why It's Good For The Game

More control over mapping poster placement.

## Changelog

🆑
fix: traitor objective posters will no longer be able to spawn from
general random poster spawners.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-04-20 20:02:19 -06:00
tattle
77aebb4c29 Audio File Cleanup (#74863)
## About The Pull Request
Removes a bunch of sound files that we don't use and moves some sound
files into better locations. I'm hoping to get an archive repo for
sounds going, much like the
[map_depot](https://github.com/tgstation/map_depot) and
[SS13-sprites](https://github.com/tgstation/SS13-sprites).

EDIT: The old sound files are being moved here:
https://github.com/tgstation/SS13-sounds

Also increased the volume of the clownana rustle sound and clipped off
some dead air from shockwave_explosion

## Why It's Good For The Game
Removes a total of 1.95MB worth of unused sound files from the codebase.

## Changelog
🆑 Tattle
soundadd: increased the volume of the clownana rustle
/🆑

---------

Co-authored-by: tattle <article.disaster@gmail.com>
2023-04-20 17:22:08 -06:00
ChungusGamer666
821123b598 Makes a whole bunch of wooden objects flammable (#74827)
## About The Pull Request

This whole PR started because I realized that baseball bats are not
actually flammable which I found weird, then I looked at a whole bunch
of other stuff that really should be flammable but also isn't.

## Why It's Good For The Game

Makes wooden objects behave slightly more consistently? Honestly, most
of these seem like oversights to me.

## Changelog

🆑
balance: The following structures are now flammable: Picture frame,
fermenting barrel, drying rack, sandals, painting frames, paintings,
spirit board, notice board, dresser, displaycase chassis, wooden
barricade
balance: The following items are now flammable: Baseball bat, rolling
pin, mortar, coffee condiments display, sandals, wooden hatchet, gohei,
popsicle stick, rifle stock
/🆑
2023-04-20 17:13:40 -06:00
tralezab
42b16f61b4 fixes all the issues with gondola mutants + small rat spell check (#74837)
## About The Pull Request

list of fixes:
- dna infusers got a random check for the dna infuser to be open when
adding what you're infusing from. i made it intentional that they don't
require this for the infusion items, and it just seems to confuse people
so i'm reverting
- gondola martial art works again, the martial arts help proc literally
never worked GUHHHH
- gondola now correctly can't pick up items they're not able to hold
- adds a missing period to a rat organ examine
- small code cleanup in the species grab proc

## Why It's Good For The Game

feeexes

## Changelog
🆑
qol: made dna infusers less confusing to use by removing the "must be
opened" check
fix: fixed up gondola mutants and how to obtain them
/🆑
2023-04-19 16:18:39 -06:00
Iain Price
1da65abf44 Fix med analyzer sometimes cutting off the top of the health report (#74833)
This text should be concatenated to the health report, not replace it
## About The Pull Request
Fixes a simple bug/oversight in the health analyzer code

## Why It's Good For The Game
It makes a thing work properly.

## Changelog
:cl:iain0
fix: Fixes an error in health analyzers which would cut off the top of
the health scan if the player was deaf.
/🆑
2023-04-19 16:14:19 -06:00
Singul0
499c5533e6 New Space Ruin: The All-American Diner! (#74460) 2023-04-18 18:20:06 -07:00
LemonInTheDark
2b2cb3dff6 Hologram Touchup (Init savings edition) (#74793)
## About The Pull Request

### Polishes and Reworks Holograms

Hologram generation currently involves a bunch of icon operations, which
are slow.
Not to mention a series of get flats for the human models, which is even
worse.

We lose 0.05 seconds of init to em off just the 2 RCD holograms. it
hurts man.

So instead, let's use filters and render steps to achive the same
effect.

While I'm here I'll dim the holo light and make it blue, make the
hologram and its beam emissive (so they glow), and do some fenangling
with move_hologram() (it doesn't clear the hologram off failure anymore,
instead relying on callers to do that) to ensure holocalls can't be
accidentially ended by moving out of the area.

Ah and I added RESET_ALPHA to the emissive appearance flags, cause the
alpha does override and fuck with color rendering, which ends up looking
dumb. If we're gonna support this stuff it should be first class not
accidential.

### Makes Static Not Shit

While I'm here (since holograms see static) lets ensure the static plane
is always visible if you're seeing through an ai eye.

The old solution was limited to applying it to JUST ais, which isn't
satisfactory for this sort of thing and missed a LOT of cases (I didn't
really get how ai eyes worked before I'ma be honest)

I'm adding a signal off the hud for it detecting a change in its eye
here.
This is semi redundant, but avoids unneeded dupe work, so I'm ok with
it.

The pipeline here is less sane then I'd like, but it works and that's
enough

## Why It's Good For The Game


![dreamseeker_zMiLXzlZ2X](https://user-images.githubusercontent.com/58055496/232470136-add945da-5f76-469e-ba1a-6ed3159b6f5b.png)
More pretty, better ux, **static works**

## Changelog
🆑
add: Holograms glow now, pokes at the lighting for holocalls in general
a bit to make em nicer.
qol: You can no longer accidentally end a holocall (as a non ai) by
leaving the area. Felt like garbage
fix: Fixes static rendering improperly if viewed by a non ai
/🆑
2023-04-18 18:25:52 -06:00
Supermichael777
1eccff1eb7 Fixes Plastitanium glass duplication (#74804)
## About The Pull Request
Plastitanium glass no longer always creates stacks of 50, this was
caused by an accidental overload with the presized stacks used for
mapping.
Fixes #74802

## Changelog
🆑
fix:  Plastitanium glass no longer always creates stacks of 50
/🆑
2023-04-18 16:26:12 -06:00
Dawnseer
9fd3c9436b Rolling table gets rolling sound (#74805)
## About The Pull Request
I realized while working on another project, that the rolling table does
not play the rolling sound when it's moved. Absolutely criminal. I took
it upon myself to right this wrong. And not just because it will go
great with said project I'm working on. I swear.
## Why It's Good For The Game
Makes the visuals of the table moving work with the audio of the table
moving, instead of wondering due to the rarity of the rolling table
'Huh, is the table bugged?' if they haven't noticed the table name.
## Changelog
🆑
fix: The rolling table actually plays the rolling sound, as the lord
intended.
/🆑
2023-04-18 16:22:29 -06:00
Helg2
588a8d08fc Ports cool tgui menu for reflectors from Aether. (#74800) 2023-04-18 17:18:15 -04:00
John Willard
9ced062af8 Removes network ID and some minor other things (#74789)
## About The Pull Request

Removes network_id as it was completely unused now.

Also reworks the maints access secret buttons to work with how accesses
work now, taking into account req_one_access. This is theoretically a
problem when we moved to req_one_access more often in maints so
departments can access their own maint areas.

## Why It's Good For The Game

This is just minor changes I found while trying to edit other things,
and thought I should PR it.

## Changelog

🆑
admin: Secret buttons for Engineering/Brig maint accesses should now
work more consistently.
/🆑
2023-04-17 20:51:55 -06:00
Bloop
1125b5a55b Let there be (held) light! Adds directional flashlight sprites, and many new inhand icons for various light objects (#74482)
## About The Pull Request

<details>
<summary>Directional flashlights are here!</summary>


![image](https://user-images.githubusercontent.com/13398309/229491332-5902aa4d-ff6b-4c16-80e2-9ae66183604d.png)

</details>

<details>
<summary>Has this ever bothered you? The light cone overlay is
directional, but not the flashlight itself</summary>


![dreamseeker_zcnBNnAXKy](https://user-images.githubusercontent.com/13398309/229491045-de68f57e-9b24-43e9-99fa-508ac5140e84.gif)

</details>

Me too, so I went and made directional sprites for all of the
flashlights that have directional lights. These flashlights change their
direction when dropped or thrown to match the user doing the dropping.


<details>
<summary>Shown here</summary>


![dreamseeker_XqMbjg0xMI](https://user-images.githubusercontent.com/13398309/229490937-e923970a-e94d-4502-b76c-8d597dc00730.gif)

</details>

### But wait, there's more!

---

I also added a number of on/off inhand sprites for _most_ of the
holdable existing light sources in the game (sorry, making a tiny banana
lamp will have to wait for another time).

<details>
<summary>Noteworthy ones: animated candles! and flares too</summary>


![dreamseeker_VEmAOfAXOm](https://user-images.githubusercontent.com/13398309/229493049-284925a0-b330-40ea-956e-090dad9ef251.gif)


![dreamseeker_LYWbSYv8la](https://user-images.githubusercontent.com/13398309/229942307-6dfbf28a-00a2-4abf-8ebd-dc1531f5e98e.gif)

</details>

---

### Other things

You can now light candles with another candle. Why was this not
possible?


![dreamseeker_OJKsrqoVHT](https://user-images.githubusercontent.com/13398309/229491696-52bfbd9c-0807-42e8-9f54-25f79c17fc7c.gif)

<details>
<summary>More sprite makeovers/additions here</summary>

Desk lamp:


![dreamseeker_xnEp3V6D3C](https://user-images.githubusercontent.com/13398309/229492350-178d2765-ee61-4605-bf58-7e7a28a4b125.gif)

The iconic green lamp gets a makeover:


![dreamseeker_FYPhsdQ1TZ](https://user-images.githubusercontent.com/13398309/229492428-bbe7831e-8655-482d-a56a-a97f150d382d.gif)

_The_ flashlight:


![dreamseeker_bk9YRsxrl8](https://user-images.githubusercontent.com/13398309/229493976-d007edcc-002c-4803-a581-be864e80939b.gif)

Syndicate lantern:


![dreamseeker_Ypj1i7qwLs](https://user-images.githubusercontent.com/13398309/229492237-69c8d13a-a267-4532-81be-73cdd5dab7e4.gif)

Flashdark:


![dreamseeker_XoC0BnevAF](https://user-images.githubusercontent.com/13398309/229494042-97f9598c-80a0-4beb-b73b-163518d27a71.gif)

Lantern:


![dreamseeker_LSSuy7qYNJ](https://user-images.githubusercontent.com/13398309/229492283-aabd5bd4-1083-4196-a821-e9ffeac0f7bc.gif)

Wisp lantern (both a new inhand and icon sprite):


![dreamseeker_VhUyyjQMHv](https://user-images.githubusercontent.com/13398309/229493378-577f3878-2bb1-4ad5-91e4-05cd6ca69f52.gif)

Seclight:


![dreamseeker_4emki7TfOf](https://user-images.githubusercontent.com/13398309/229496047-662dcc57-7d81-4263-90e3-38f99e0a2eae.gif)

</details>

## Why It's Good For The Game

Better visuals for the game. Handheld lighting objects are probably some
of the more commonly used items, and so having sprites that accurately
represent them in game is a nice touch.

Also did some code refactoring, cleanup/slight optimization tweaks while
I was in the flashlight file. Notably candles were needlessly calling
update_appearance every process tick. Now they will only do that if they
actually need an update (if their wax level changes).

## Changelog
🆑
fix: candles can now be used to light other candles, cigarettes, and
anything else that needs lighting in a pinch.
fix: flashlights that have directional lights now have directional
sprites to match
fix: candles can now be snuffed again
imageadd: adds new inhand sprites for most flashlights in the game,
including animated flares and candles
refactor: cleaned up flashlight.dm's unnecessary bits and made some
slight improvements
/🆑
2023-04-17 19:13:17 -07:00
ATH1909
04ae3281c5 a borg who's somehow immune to flashes will no longer still be disabled by laser pointers (#74596)
## About The Pull Request

Resolves an extreme edge case where if (via adminbus or a downstream's
changes) a borg is somehow immune to being flashed, a laser pointer
would still be able to blind them.

## Why It's Good For The Game

Aerial rodent made its ninja cyborgs flashproof, but they're not laser
pointer-proof due to this bug. I figured that fixing this bug upstream
would be best, in case some insane /tg/ admin (or coder 😳) attempts to
flashproof a borg at some point in the distant future.

## Changelog

🆑 ATHATH
fix: Laser pointers will no longer disable borgs that have somehow been
made immune to flashes.
/🆑

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-04-17 18:51:33 -07:00
ChungusGamer666
b54b2f62b3 Turns loomable component into a bespoke element (#74685)
## About The Pull Request

Thought https://github.com/tgstation/tgstation/pull/74552 was good?

YOU WON'T BE READY FOR THIS ONE...

## Why It's Good For The Game

free miniscule amount of performance by getting rid of some silly
component datums

## Changelog

player dont care

---------

Co-authored-by: san7890 <the@san7890.com>
2023-04-17 16:11:36 -06:00
tralezab
5c1c0ca682 Fixes body purist headrevs from getting mad at their implant by making them unaware of it (#74346)
## About The Pull Request

Body purists no longer mind implants with a special trait for "hidden
implants". This special trait is replacing the "syndicate implant"
variable and was just used to hide certain implants from medical
scanners.

## Why It's Good For The Game

fixes #74180

## Changelog
🆑
fix: Body purist headrevs having a bad time with their implant
/🆑
2023-04-17 23:38:49 +02:00
SyncIt21
bddfeacc64 [No GBP]Fixes runtimes when deconstructing floor tiles with RTD (#74767)
## About The Pull Request
Fixes this
![Screenshot
(161)](https://user-images.githubusercontent.com/110812394/232286754-cde879e1-4593-4104-9392-2cc80b845334.png)
Caused by this
![Screenshot
(162)](https://user-images.githubusercontent.com/110812394/232286901-d16b055e-32e0-4ed9-9caf-35bb229ae62e.png)

Since the RTD deconstructs i.e. QDEL the floor tile, the animation
effect tried to add a timer to QDEL itself on the deleted floor tile
causing the runtime.

## Changelog
🆑
fix: RTD animation effect adding a timer on deleted floor tiles.
/🆑

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-04-17 06:12:53 +00:00
Zonespace
fa644f7aee Fixes eigen lockers bypassing TP protection (#74722)
## About The Pull Request
Fixes eigenlockers bypassing teleport protections.


![image](https://user-images.githubusercontent.com/41448081/231939450-42287185-48f4-4a3b-ac7a-38adc0600633.png)

Tested w/ one and multiple lockers, prevents entering or exiting from a
tp-prot eigenlocker

## Why It's Good For The Game
This came up in an away mission designed to be a "one-way-trip", the
only exit being at the very end of the away mission. However, people are
able to bypass this with eigenlockers, thanks to them performing no
teleportation checks, which I believe is an oversight.

## Changelog
🆑
fix: Eigenstasium lockers no longer bypass teleport protection
/🆑

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2023-04-16 16:03:19 -06:00
Cheshify
e3bf2de0de North Star Merge Plaque and Requests Console for QM [NO GBP] (#74712) 2023-04-16 14:31:40 -07:00
LemonInTheDark
9219ca33f9 Optimizes particle holders (#74524)
## About The Pull Request

It isn't really an issue now, but these will be used more in future, so
let's start off strong.

There's a lot of work going on here that doesn't really need to be
happening, mostly off not knowing a trickTM.

Biggest one is vis_locs and vis_contents are linked lists, being in one
requires being in another. Atoms clear out their vis_locs on Destroy, so
we do not need to "own" references to things that have us in their
vis_contents.

This combined with knowing our old loc's loc off Moved made the use of
weakrefs here unneeded. Similarly, atoms inside atom movables qdel on
when the upper layer is deleted, so most cases of the qdeleting signal
were unneeded.

Also, we only cared about movement if we were an item (speaking of
which, I swapped out the isitem stuff with a flag that gets passed into
the new() call)

## Why It's Good For The Game

Speed
2023-04-16 10:12:14 +02:00
Bloop
ac5236a251 Refactors sheet crafting to better support directional construction (#74572)
## About The Pull Request


0426f7ddba/code/game/objects/items/stacks/stack.dm (L449)

Ok, but can we not?

This PR refactors sheet crafting to generalize all the cases that were
previously locked behind grille/window type checks and such. In their
stead there are bitflags that can be set to achieve certain behaviors.

All the behavior from before should be preserved, but now it can be
extended to other items. E.g. if you want a railing that can be crafted
underneath directional windows, or an item that behaves like a grille
does--it's just a matter of setting the right obj_flags for it now.

This makes it very simple and painless to add new recipes that use
directional crafting! It's all modular now.

<details><summary>Details</summary>

---

### What I've done:

-Eliminated all the type checks, instead it will now be handled by
object flags and recipe vars, making for a much more configurable
system.

-Added two new obj_flags: `BLOCKS_CONSTRUCTION_DIR` and
`IGNORE_DENSITY`.
-Additionally, I renamed the existing flag `NO_BUILD` to
`BLOCKS_CONSTRUCTION`.

-Changes the proc `valid_window_location` to `valid_build_direction`,
and makes it work for things other than windows.

-Removed a deprecated `window_checks` var from the stack_recipe datum.
-Added three more vars to the stack_recipe datum: `check_direction` and
`check_density`, `is_fulltile`

-Decoupled `on_solid_ground` from the object density check. Now you can
set those separately, allowing you to make recipes that forbid/allow
building things over other things while in space.

---

### What the new flags do:

`BLOCKS_CONSTRUCTION` works as before---prevents objects from being
built on the object. I felt that the previous name was not descriptive
enough, you should know exactly what it does just from looking at the
name.
_example: dna scanner_

`BLOCKS_CONSTRUCTION_DIR` -- setting this on an object will prevent
objects from being built on it when their directions are the same.
_example: directional windows, windoors, railings_

`IGNORE_DENSITY` -- setting this on an object will cause its density to
be ignored when performing the construction density check. This could
have other potential uses as well in the future.
_example: grilles, directional windows, tables_

These three flags cover all the bases for the types of items that are
currently craftable, so there is no more need for any type checking or
weird snowflake window checks. Simply set the appropriate flag and it'll
work as you would expect.

---


### What the recipe vars do:
`check_direction` tells the recipe to check if there's something in that
direction with the `BLOCKS_CONSTRUCTION_DIR` flag set.

`check_density` tells the recipe to run the density check when set. This
is true by default. There are very few items in the game that currently
have this set to false--namely grilles. Setting this to false will make
it so that the object can be constructed regardless of what is in that
tile (unless `one_per_turf` is also set, which will make it so that you
can't craft the same thing twice in the same turf).

`is_fulltile` is used for fulltile windows, but it doesn't necessarily
have to be--you can give this to any recipe and it will adopt the same
properties as that of the fulltile window. Basically they have a special
case where they shouldn't be able to be built over directional
constructions, where normally things would be able to be. Setting this
makes check_direction true as well.

---

### In summary: 

Sheet crafting still works just as it did before. But the backend of it
has gotten a glow up and will be able to more easily support new
behaviors.

</details>

## Why It's Good For The Game

This makes the crafting system much more flexible to add recipes to, and
will prevent bad code practices of stacking more conditionals down the
line whenever someone wants to add an item that behaves like grilles or
directional windows in how they are constructed.

It had to be done. Those window checks were a mess.

## Changelog

🆑
qol: added fifty stack versions of remaining glass sheet stacks for ease
of debugging
refactor: refactored sheet crafting to better support directional
constructions that aren't windows
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-04-15 21:48:34 -06:00
ArcaneMusic
d0441464fb Basic pollen-particles for plants pollenating. (#74675)
Legally endorsed nightcode 👍 

## About The Pull Request

When 2 plants are adjacent to each other, they will begin to
cross-pollenate, sharing their potency, instability, and yield values
between the two. This has been in the game since #50001 , however we
never added a more clear visual tell that cross-pollenation exists.
Thanks to the magic of *barticles*, now you can!

![image](https://user-images.githubusercontent.com/41715314/231359363-07c7f354-d2f6-4d5e-8b59-5f968781135f.png)
_pictured: wheat and tomatoes pollenating_

Adds a simple particle effect, largely lifted from bonfires, that
indicates that two plants are sharing stats at minimum.

## Why It's Good For The Game

Following discussion from #74621, it was decided we needed and preferred
a more visual cue to the mechanic. As a general point I think that's a
longer term fix to the issue, and this adds more visual clarity to an
otherwise arcane mechanic (heh).

Looking for feedback on how to improve the look of the particles but for
fast nightcode I think I did okay for a first try

## Changelog

🆑
imageadd: Hydroponics trays now have pollen particles that they generate
when they share stats and chems. Non-allergenic!
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-04-15 21:42:27 -06:00
Helg2
ae01eb94e4 Fixes slapper not having an icon. (#74716)
## About The Pull Request
I think @vinylspiders forgot to change it in his latex balloons pr so
now it's broken.
## Why It's Good For The Game
Slap
## Changelog
🆑
fix: slapper is visible in-hand again.
/🆑
2023-04-15 21:36:17 -06:00
zxaber
697c8fdc40 Adds a Material Stack manipulation apparatus for Engineer Cyborgs, replaces the R-Glass tool (#74297)
## About The Pull Request
- Adds a new apparatus for Engineer Cyborgs that can pick up and
manipulate material sheet stacks. Once holding a stack, interactions are
passed to the stack.
- Sheets in the new apparatus will always show as single sheets while
held, regardless of the actual count.
- Removes the R-Glass tool from Engineer Cyborgs.
- Sabotage borgs have the same changes
## Why It's Good For The Game
Allows Engiborgs to repair or build with various materials, without
(further) destroying the concept of material economy.

The R-Glass tool, in my experience, is generally unused, as the RCD can
create R-Windows and that's the main use for the sheets. So the tool has
been removed to keep the Engineer Borg Toolkit from exploding. The new
tool can also pick up R-Glass, if a need for it arises.
## Changelog
🆑
balance: Engineer Borgs now have a tool to manipulate material stacks
(and also tile stacks). This replaces the R-Glass tool.
/🆑
Pictured: Apparatus carrying titanium.

![image](https://user-images.githubusercontent.com/37497534/228021045-0f5a6c76-9caa-47de-ad0a-d20e7e1f4eb2.png)
2023-04-15 18:23:02 -07:00
Bloop
205ea3dad7 Fixes spoon overlay not updating every time (#74687)
## About The Pull Request

After bludgeoning myself one too many times with a spoon, here we are.

The spoon overlay wasn't updating to reflect that soup had been
consumed, which led to trying to eat it again and then pain.

Why do spoons hurt so much?

## Why It's Good For The Game

Less spoon related injuries.

## Changelog

🆑
fix: spoon overlays will now update when you eat from them to reflect
that food = gone. it really is gone, you can stop beating yourself with
the spoon. oh god please stop--
/🆑
2023-04-15 07:01:05 +02:00
SyncIt21
2cced93441 [NO GBP]Type cast, Var names, UI refactors for RCD stuff (#74660)
## About The Pull Request
Was requested in #74592

- Properly type casts the target into `turf/open/space` for mecha rcd
plating action,
- Removes single variable names throughout
- uses datum/ui component to get user for to_chat() instead of usr

## Changelog
🆑
refactor: correctly type casts the turf into open type for the rcd mecha
plating action
refactor: removes single letter variable names
refactor: uses datum/ui component to get user for to_chat() instead of
usr
/🆑
2023-04-14 19:51:41 -07:00
Tim
9a4d3545e0 Add contextual screentips, balloon alerts, and examine hints to lockers (#74681)
## About The Pull Request
Gives lockers screentips, more balloon alerts, and examine hints to make
interactions more obvious.

## Why It's Good For The Game
Quality of life is good.

## Changelog
🆑
qol: Add contextual screentips, balloon alerts, and examine hints to
lockers
/🆑
2023-04-14 22:58:39 +02:00
LostObject
900461bbee Adds a pie-flavored pie (#74683)
## About The Pull Request

adds pie-flavored pie
made from two pies

## Why It's Good For The Game

pie

![yup](https://user-images.githubusercontent.com/60118990/231530225-cd8eefa7-962a-421f-be16-a67bdb2aa23c.png)
p.s. please open the bunker and free me from tom fulp's dungeon please
god

## Changelog

🆑
add: adds pie-flavored pie
/🆑
2023-04-14 22:55:14 +02:00
carlarctg
fab71a0273 Gives nuke ops health analyzers back! (#74695)
## About The Pull Request

Gives nuke ops three free health analyzers in their shuttle, advanced
health analyzers in both medic kits, and a bonus health analyzer MODule
in the premium medical kit.
## Why It's Good For The Game

Nuke ops had these until, most likely, base medkits lost their scanners,
and nobody has really noticed or cared about it until now. While they
aren't obligatory, they are nice to have and especially useful if the
patient is suffering non-standard symptoms. Given that there is
absolutely no way to actually scan someone's health in the Infiltrator
shuttle, having some for free is a _must_ else you are just left
confused as you slowly die. You *can* buy the radioactive microlaser,
but that's a crapshoot, it costs 4 TC, nobody does it and it shouldn't
even be purchasable tbh, and there's the risk of irradiating your
teammate.

Combat medic kits get advanced health analyzers because, well, they're
medics and they NEED a way to diagnose patients, and the premium kit
gets both an advanced analyzer and a module so the medic can choose
whichever is most comfortable for them.
## Changelog
🆑
qol: Gives nuke ops three free health analyzers in their shuttle,
advanced health analyzers in both medic kits, and a bonus health
analyzer MODule in the premium medical kit.
/🆑
2023-04-14 21:03:38 +02:00
Sneeker134
b1780d212e Adds Clever DNA Injector for Admin Use (#74691)
Makes DNA injector for clever for admin use.

## About The Pull Request

When the Clever mutation was made, an injector for it was never added to
the dna_injector file. This means that admins didn't have a way to spawn
this item in. Well, now they do. Added an anticlever one to remove it as
well for good measure.

## Why It's Good For The Game

Not that big of a deal, you could use the mutation as a gene man without
this, but adding more items to spawn in as an admin can't be a bad
thing. Additionally, as Clever is a mutation that does some pretty
unique things, so it actually seems like one that might theoretically be
a bit more useful to have in the toolbelt then some of its counterparts.

## Changelog

🆑
admin: Added clever DNA injector to admin spawn options.
fix: Added clever DNA injector.
/🆑
2023-04-14 20:52:17 +02:00
ChungusGamer666
8d82924187 Implanted foreign bodyparts will resist being removed on species change (#74701)
## About The Pull Request

Title.
Also, to make bodypart code slightly nicer, I retooled some variables to
be part of a new bitfield called bodypart_flags.

## Why It's Good For The Game

We've been trying to move away from the species datum for limb stuff
precisely because of funny shenanigans like this, no?

## Changelog

🆑
refactor: Implanted foreign limbs will no longer be wiped by species
change.
/🆑
2023-04-14 20:50:22 +02:00
ChungusGamer666
a0e368930f Reworks burning objects to be a component (#74688)
## About The Pull Request

Title.

## Why It's Good For The Game

Simply put, allows for atoms which are not /obj but use atom_integrity
to burn up too, which is nice and good.
But also, it allows for neat behavior like burning particle effects
(only structures use that right now to spawn smoke)

![image](https://user-images.githubusercontent.com/82850673/231595051-2a8d0574-33cc-4cd9-9d61-65566decf4ef.png)

## Changelog

🆑
add: Burning structures spawn smoke particles. Sick.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-04-13 22:19:25 -06:00
Sneeker134
7a404e8de9 Monkeys no longer drop items taken from storage onto the ground. (#74689)
Fixes #74313.

## About The Pull Request

During a refactor to storage in #73761 , they forgot to add a check to
loc.atom_storage in attack_paw to mirror the check made in attack_hand.
This meant that monkeys and other mobs that used attack_paw always
dropped items taken from storage onto the ground. Now, the code to check
if they should go into your hand instead is properly checked.

## Why It's Good For The Game

Bugs are bad mkay

## Changelog

🆑
fix: Monkeys and some other mobs no longer drop items they've grabbed
from storage onto the ground.
/🆑
2023-04-13 21:56:09 -06:00
Cheshify
b1716732b0 The North Star Expeditionary Vessel - A Second Wind (#74371)
## About The Pull Request
A new map for TGstation, in the works! It has 4 fucking Z levels, a
massive expansive maintenance with unique designs, and some unique code
features in the works.

To Do:
- [x] Update the Map to Modern TG
- [x] Local Tests
- [x] Work on Map Optimizations
- [x] Run Live Tests

Fikou has greatly helped with creating an important flavour aspect of
this map, Trek Uniforms on anyone who joins! See the forum thread for
more. This includes the framework for innate station traits, station
traits loaded as long as it's in a map's json

Here's the forum dev thread there are screenshots there.
https://tgstation13.org/phpBB/viewtopic.php?p=657252#p657252

### Mapping March
Ckey to receive rewards: Cheshify

## Why It's Good For The Game
So, this is the North Star. An effort taking multiple mappers and of 9~
months of hard work. This map was not initially designed for TGstation,
but always designed for TGstation code. The process of retooling the map
for TGstation was an absolute joy and I feel like the map definitely has
it's niche as a massive and unique experience for it's players.

I adore this map, it's gorgeous, has a unique aesthetic, and a number of
very funny interactions with multi-Z. The PR comes packed with unique
mechanics for future mappers (innate station traits!), a number of
map-fitting shuttles, and a fun spacefaring uniform gimmick for the
crew.

**This is my second attempt at bringing this map into rotation. It was
initially closed due to concerns about maptick and performance, as I
wasn't willing to push for a map to be added to the repository if it
didn't function to my own standards. I've been informed by a number of
coders far better than I that optimizations are arriving and enroute, so
I think it's time to dust her off and set sail for another journey.**

**Quick Disclaimer: Due to some design decisions disagreed upon by the
headcoder team and myself, the map will not be featuring unique
roundstart uniforms, and despite my design intentions, the innate
station trait features will be shelved for now.**

## Changelog
🆑 Cheshify, Fikou, Blue-Berry, Zytolg, InfiniteGalaxies, Striders,
Sylphet, Riggle, Soal, Andry, Crit, Deranging, and Pumpkin0.
add: Nanotrasen's Newest Exploratory Vessel is now available! Meet the
North Star!
add: More landmines, and a landmine random spawner.
add: energy barriers now have a regenerative subtype, fit for permanent
installations.
code: Raised the number of possible level render to 4, check your
preferences if needed to be reduced.
/🆑

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-04-14 06:59:00 +12:00
Mey-Ha-Zah
0800509b2b New Crate Visuals (#74636)
## About The Pull Request

Adds several new crate visuals. Adds a new lid overlay for several
crates. Re-names and re-designs bubblegum chest.

![image](https://user-images.githubusercontent.com/28636915/231009153-3abdc29b-1f47-4b7a-8725-97082b92b510.png)

![image](https://user-images.githubusercontent.com/28636915/231009170-40240220-45ed-4f9d-92b7-7925231a298b.png)

## Why It's Good For The Game

New crate visuals and lids not magically disappearing is cool.

## Changelog
🆑
add: New Lids for several crates.
imageadd: Several new Crate Visuals.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-04-13 00:06:47 +01:00
oranges
4c48966ff8 Renames delta time to be a more obvious name (#74654)
This tracks the seconds per tick of a subsystem, however note that it is
not completely accurate, as subsystems can be delayed, however it's
useful to have this number as a multiplier or ratio, so that if in
future someone changes the subsystem wait time code correctly adjusts
how fast it applies effects

regexes used

git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i
's/DT_PROB/SPT_PROB/g'
git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i
's/delta_time/seconds_per_tick/g'
2023-04-11 21:31:07 -07:00
DrTuxedo
507a21a7d7 New judge robe and powdered wig (#74458)
Also now judge robe doesn't hide jumpsuit.
## About The Pull Request
_Yes I know that I opened 3 sprite PRs in a row, what are you gonna do?
Kill me?_

Changes the old judge robe sprite to a new one based on the chaplain's
follower robe.
![judge robe
up](https://user-images.githubusercontent.com/42353186/229351492-4c740c22-3332-4dd2-b082-1081476ce967.png)
![judge robe
down](https://user-images.githubusercontent.com/42353186/229351493-c823d167-2d27-4a07-9653-06ddf8ea0bb4.png)
![judge robe
left](https://user-images.githubusercontent.com/42353186/229351495-10db840f-b4a0-4c95-a0ed-fc5840576686.png)
![judge robe
right](https://user-images.githubusercontent.com/42353186/229351496-fedf8c36-0433-4a64-8426-cc4e684908f8.png)

Changes the old powdered rig sprite to a better thicker one:
![wig
up](https://user-images.githubusercontent.com/42353186/229351519-d4a72bff-db9a-4dfd-aab1-4dc31599bf81.png)
![wig
down](https://user-images.githubusercontent.com/42353186/229351520-78c55ee9-cba7-4c7a-99c2-f3215a1950f0.png)
![wig
left](https://user-images.githubusercontent.com/42353186/229351523-46b46614-8563-45e1-97c5-4a8cf2af6d83.png)
![wig
right](https://user-images.githubusercontent.com/42353186/229351524-96c68b08-f874-47e7-99da-d136d3b6c0fb.png)

Now in the courtroom locker, an executive suit and lace-up shoes
(instead of brown ones) spawn, as those fit really well with the new
judge's robe, as now the judge's robe doesn't delete jumpsuits sprite
when worn.
## Why It's Good For The Game

Replacing ancient sprites is always good, especially if they looked
"Meh".
There is some examples of how new judge robes look on the most prevalent
types of judges:

Captain judge.
![judge
captain](https://user-images.githubusercontent.com/42353186/229351760-a8f448d4-e2df-4bab-b1eb-c78a29189cab.png)

HOP judge.
![judge
hop](https://user-images.githubusercontent.com/42353186/229351761-1fc253b2-5202-4c12-94ef-3dcd68173d4f.png)

Assistant judge.
![judge
assistant](https://user-images.githubusercontent.com/42353186/229351763-6c10fc14-3c4f-45f8-9b3a-e4720ac78119.png)

Judge in the executive suit with red tie (just to show how they look)
![judge
judge](https://user-images.githubusercontent.com/42353186/229351765-f7277e0d-e4a9-410d-a4a9-a39621be788d.png)

So now you can yell "ORDER, ORDER!" while not wearing piece of clothing
straight from 2012.
## Changelog
🆑 DrDiasyl aka DrTuxedo#0931
imageadd: Judge robe and powdered wig got new sprites!
/🆑
2023-04-11 16:13:44 -07:00