Commit Graph

42589 Commits

Author SHA1 Message Date
Lucy a8d1551466 Shuttle gibbing code improvements (#81726)
## About The Pull Request

Adds a resistance flag, `SHUTTLE_CRUSH_PROOF`, adds it to the existing
things that have it, and adds it to the immortality spectres.

## Why It's Good For The Game

Gets rid of some hardcoded checks, making it easier for future code (or
admins) to make things immune to shuttle crushing.

Also makes it so immortality spectres are immune to being shuttle
crushed, as that kinda ruins the whole "immortality" thing...

## Changelog
🆑
refactor: Improved shuttle gibbing code, adding a new resistance flag,
`SHUTTLE_CRUSH_PROOF`.
fix: Immortality revival spectres can no longer be crushed by shuttles.
add: The ghost of Poly can no longer be shuttle-crushed, nor can
anything incorporeal.
/🆑

Co-authored-by: san7890 <the@san7890.com>
2024-03-09 05:00:18 +01:00
Nick 6f5ca45e3a Makes wheat and meatwheat wearable (#81874)
## About The Pull Request
Makes it so you can wear wheat and meatwheat in your mask slot, so you
can truly live out your dreams of being a farmer on a space station.
Draft while I sort out some issues

Wheat on the left, meatwheat on the right

![wheat_preview](https://github.com/tgstation/tgstation/assets/42454181/2e81b29e-b0f4-4fc0-8035-0acbde199e3a)
## Why It's Good For The Game
The fact this wasn't already possible is, frankly, a crime.
## Changelog
🆑
add: Wheat and meatwheat can now be worn in the mask slot. Farmers
rejoice!
/🆑
2024-03-09 04:55:54 +01:00
SyncIt21 62d74bc4d5 Minor cleanup for machine frames & boulder machines (#81706)
## About The Pull Request
- Moves call to `update_appearance(UPDATE_ICON_STATE)` to
`/obj/structure/frame/Initialize()` for both computer & machine frames
cause both do that anyway
- Fixes wrench screentip for machine frames
- Screw driving an incomplete machine frame won't display the "you need
to unsecure it first" along with "missing components" balloon alerts
- Moved boulder refinery code to `item_interaction()`
- Autodoc some golem procs for refineries
- Gives the secured machine frame an icon state of `box_1` so it looks
wired in the rcd menu as well
- Fixes screentips(like wrench act) for boulder machines

## Changelog
🆑
fix: fixes toolact screentips & balloon alerts for boulder machines &
machine frame
/🆑
2024-03-09 04:30:29 +01:00
Nick cc63ecd65b Chem stun reductions now all use AdjustAllImmobility, and the AllImmobility procs now adjust unconscious (#81873)
## About The Pull Request
Meth, maints tar, synaptizine, and nicotine now all use the
`AdjustAllImmobility` to handle their stun reductions, instead of
individually adjusting all 5-6 immobility effects. `AllImmobility`,
`SetAllImmobility`, and `AdjustAllImmobility` now also affect the
unconscious status effect as well. I'm calling this a bug/consistency
issue, since every chem that didn't already use `AdjustAllImmobility`
was adjusting the unconscious status effect anyway, and they are all
clearly trying to do the same thing.

If I missed anything that could also be replaced with
`AdjustAllImmobility`, let me know and I'll fix it.
## Why It's Good For The Game
Makes things more consistent, and consistency is good.
## Changelog
🆑
code: Chem stun reductions are now applied more consistently.
fix: Chem stun reductions should now more consistently apply to
unconsciousness.
/🆑
2024-03-09 04:29:01 +01:00
Pickle-Coding 8983b6be41 Extends the metric prefixes. (#81739)
## About The Pull Request
Extends the metric prefixes some things will display. Adds the quecto,
ronto, yocto, zepto. atto, exa, zetta, yotta, ronna and quetta prefixes.
## Why It's Good For The Game
Makes it easier to read the numbers when someone manages to break atmos
or whatever.
## Changelog
🆑
qol: Extended the metric prefixes.
/🆑
2024-03-08 20:18:51 +01:00
_0Steven 53517057a6 Fix access management program not updating on ID authentication (#81845)
## About The Pull Request

While doing my other ID/manifest-related prs, I noticed that the access
management program doesn't update properly when you authenticate,
causing it to not show which templates you can apply until you manually
refresh the UI (close&open, yadayada).

This seemed to be because it calls `update_static_data(user)` on the
program itself, which attempts to find a UI attached to the program for
that user which it then can't find. Calling such on the *computer* lets
it actually find and update the UI.
We then decide to replace it with `update_static_data_for_all_viewers()`
as multiple people could be looking at the consoles in which this
happens most commonly.
## Why It's Good For The Game

It was getting *really* annoying, this fixes that.
## Changelog
🆑
fix: Plexagon Access Management actually updates the shown template list
on authentication, avoiding needing to refresh/reopen/somesuch the
program manually.
/🆑
2024-03-08 20:07:22 +01:00
Bloop 908a68f3cb Fixes forensics hard del (#81880)
## About The Pull Request

Should fix this CI error.


![firefox_JiarBI7EY5](https://github.com/tgstation/tgstation/assets/13398309/b456900c-e97c-4184-8615-98752ee6349a)

`parent` used to be a weakref but since it's not any longer (as of
#81751) we need to manage the ref more carefully.

The forensic datum should be getting `QDEL_NULL`'d in `atom/Destroy()`
but I think what was likely happening was somehow, something was adding
a forensics datum again after the atom was qdeleted. This should
hopefully prevent that from happening.

## Why It's Good For The Game

Less CI errors

## Changelog

Nothing player facing
2024-03-08 20:06:30 +01:00
necromanceranne 86a89c8f02 Fixes spies having multi-use autosurgeons (#81876)
## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/81827

## Why It's Good For The Game

Autosurgeons are deliberately not resuable for almost all instances they
show up in the game.

This is fine for a single use insertion of a highly illegal organ, the
autosurgeon then allowing you to entirely ignore surgery and player
interaction to get various power boosts via cybernetics from that point
onwards seems unintended.

## Changelog
🆑
fix: Spies no longer have access to infinite use autosurgeons.
/🆑
2024-03-08 20:00:32 +01:00
Thedragmeme e4082228ff Blesses the codebase with Blahaj (#81862)
## About The Pull Request

Adds the Shark and Shork Costume to the game, craftable via carp scales.
In addition, adds the ability to use a shark costume to craft a shark
plushy.


![ge1uucdAYn8xAAAAABJRU5ErkJggg](https://github.com/tgstation/tgstation/assets/81540056/52d66419-4946-4c0e-8061-8b03e6858a53)

![J2YyKAAI2pNXkXCAyMAAI0sAajuhAYE4FeBciufHkQc53Vij1rxorYmNyadxkKAQRo3lII0FBclnqOiQAChACNyZ95l4ER6FWAbFjkcSrxraha5Q7MF6guBHongADNkZcQvt5bkwIhMDACCBACNDCXpbpjItCrAI0JHO8CAQikE0CA0hliAQIQ6EgAAeoIjmwQgEA6gf8Bgzt4GlTrNLUAAAAASUVORK5CYII](https://github.com/tgstation/tgstation/assets/81540056/a2691688-b6e9-493d-99ec-ef729cf6cb06)


It is five carp scales and five leather to craft the shark costume, take
the costume and craft it with wirecutters to make a shork costume. Take
a shark costume, 10 cotton, and five cloth to craft a shark plush.

## Why It's Good For The Game

Good and funny costumes that give an additional use to pre-existing
crafting materials = good
Giving players another way to craft the shark plushie = good

Todo:
- [x] Make sure shit wont break
- [x] Add the crafting recipe for the costume
- [x] Add the crafting recipe for the shark plushie
- [x] Profit??

## Changelog

🆑 Drag
add: Adds the Shark and Shork costume. Blahaj lovers rejoice!
/🆑

---------

Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
2024-03-08 19:37:25 +01:00
Ghom 0ebeaf1907 Fixes tgui text input trimming the last char if the input hits the max length (#81869)
## About The Pull Request
There's a one character discrepancy between the maximum length in the
tgui input panel and that of the copied text, that's because
`copytext("123456", 6)` will actually return `"12345"`, cutting off the
last digit, so we need to increment the `max_length` by one if we want
the right amount of characters to be return. This is also somewhat
detailed in the DM lang "bluebook", and is in line with how
`list.Copy()` also works.


## Why It's Good For The Game
This fixes the museum password pad, which trimmed the last character of
the input because of this oversight.

## Changelog

🆑
fix: Fixed the tgui text input trimming the last character of the input
if it hits the maximum length.
fix: This also fixes the PIN pad leading to the right wing of the museum
away mission.
/🆑
2024-03-07 21:20:58 -07:00
MrMelbert 5f2f9e67ad Add compile option for compiling in MAP_TEST mode, which disables common annoyances when testing new maps (#81697)
## About The Pull Request

Adds `MAP_TEST` compile flag. 

This compile flag blocks common things which make it difficult to test a
map.

Things this applies to: 

- Rats no longer spawn. 
- Rat spawning will (obviously) break up the powernet, which is
INCREDIBLY annoying when trying to test if all the rooms of the station
are wired correctly (or testing which rooms lose power first, etc)

- Light tubes no longer break on initialize. 
- Random light breakages can easily cause mappers to accidentally over
light a room.

- Roundstart command report is not printed. 
- Might be a personal preference, but it's kinda annoying to hear the
alert over and over again.

- Random events do not trigger. 
- Some events such as gravity generator outage can trigger with 0
population.
   - Random camera breakage event can cause over-placement of cameras. 
   - Other stuff tends to just get in the way. 

- Station traits do not trigger. 
- Probably the biggest annoyance. Many traits modify the map in some way
which disrupts testing.

- Roundstart landmarks don't self deletes. 
   - Allows mappers to use sdql to find them. 

- Mapping verbs start enabled. 

Obviously more things can be added if they come up.
2024-03-07 16:57:47 -05:00
Ben10Omintrix 6b6bd5ce95 fix ore vents spawning the wrong wolves and remove simple wolves (#81864)
## About The Pull Request
wolves got refactored but the ore vents were still spawning the old
versions, this fixes it and removes the old wolves from the code

## Why It's Good For The Game
fixes ore vents spawning old wolves

## Changelog
🆑
fix: fixes ore vent spawned wolves being untammable
/🆑
2024-03-07 11:10:07 -07:00
MrMelbert 47dc38fee2 Let's you talk through action figures, plushies, and toy mechs with .l and .r. Also a big clean up of say because its support for non-mobs was lackluster. (#81848) 2024-03-07 09:21:12 -07:00
Interception&? 09cbac3c46 Add ability to swap IDs inside computers (#81844) 2024-03-07 09:19:00 -07:00
ValuedEmployee 140463deac New Moffers Footstep Sound (#81831)
## About The Pull Request
Replaces the current Moffers footstep sound with a shorter, quieter, and
pitched up version of the moth scream.


https://github.com/tgstation/tgstation/assets/105574010/ada4ab48-948c-49ac-bb19-a319dfb9a9d6

(Video audio is a little crunchy due to compression, ignore that)

## Why It's Good For The Game

Makes the footstep noise more consistent with other shoes of its kind.
The new decibal and length of the sound effect is comparable to the
meown shoes, thus, making it less annoying and jarring when heard.

## Changelog
🆑
sound: Added the new moffers sound effect and made moffers use it
instead
/🆑
2024-03-07 04:39:15 +01:00
2whatever2 d29c354016 Webedit, fixes sanity checks for tackle and wellcheers. (WEBEDIT PR, TESTED IN VSC.) (#81855)
## About The Pull Request
Fixes both tackle Insanity checks and wellcheers sanity check. 

I couldn't get make VSC clone my fork so I just did a webedit, and
tested changes with VSC.


https://github.com/tgstation/tgstation/assets/24631139/73730216-0c0a-45ee-8ee3-94c7695f4337


https://github.com/tgstation/tgstation/assets/24631139/90d96a5f-98cd-4bf5-b1d3-d0e0d14a917a
## Why It's Good For The Game
Bugfixes are good.
Fixes https://github.com/tgstation/tgstation/issues/81852
## Changelog
🆑
fix: Tackle and wellcheers code for sanity values now function.
/🆑
2024-03-07 04:37:26 +01:00
ArcaneMusic d7cf8309c5 Arcargo: Vendor Cargo and Vending Machine Update (#81582)
Another one.

## About The Pull Request
This pull request originally had a design doc that @Fikou and I worked
on, but that was never really polished up for publishing quality so I'll
forgo it for now and be as descript as possible here.

### Core changes
- This pull request adds a new NTOS app to the game, the restock
tracker. The restock tracker shows a comprehensive list of vending
machines across the station, as long as there is a need for that vending
machine to get restocked.
- This has also been pre-installed into the cargo data disks.
(`/obj/item/computer_disk/quartermaster`)
- Vending machines now store a total of 20% of the cost of any purchase
made within themselves into a small pool of cash. This only applies to
premium and normal purchases, not to contraband, as they're technically
not sanctioned by the company.
- The restock tracker app will also track which vending machines have
the most credits stored internally inside them.
- By refilling a vending machine, the stored credits within are paid out
to any crewmember who goes and restocks the station, while also paying
out *half that amount to the cargo budget*, serving as a basic but
otherwise easy tertiary money making method on the same level of
complexity as doing bounties, with the added benefit of actually helping
to assist the station for jobs like... assistant.


![image](https://github.com/tgstation/tgstation/assets/41715314/59cee2d9-7e60-4733-8a76-d88fe5b8c3f2)

### Break Stuff
- Anyway, when you try and smash a vending machine open with a melee
weapon of choice, it can now pay out 50 credits at a time as a way to
make money at zero risk to yourself.
- ~~Except for the horrible risk to yourself.~~

![image](https://github.com/tgstation/tgstation/assets/41715314/23208bf0-8484-40b9-b753-0ffdb57d770f)

### Cargo Specific Changes
- Restock units may now be sold for a small profit as well, to
incentivize cargo to keep the station stocked further.
- The `STATION_TRAIT_VENDING_SHORTAGE` trait will now add a small amount
of existing credits into the vending machines on station, to incentivize
cargo to fix the issue during the round and not just push for an early
shuttle call. Or, more accurately, provide the crew with a money making
scheme to engage better with the station trait as it stands.

### This also refactors behavior on vending machines
- This pull request also finally changes it so that vending machines now
use the payment component, which as a consequence allows for the
following improvements:
* Vending machines may now pull from physical credits on your person,
not just requiring you to have money on your ID card.
* Vending machines may also use credits being pulled by the player
interacting with the vending machine, allowing for handless mobs to be
able to purchase items from a vending machine.
* Finally makes the "use-for-everything buying things component" used by
the most utilized component of the in-game economy, to reduce the
quantity of unique implementations of purchasing things in the code.
- Existing vending specific checks are retained on before handing off
behavior to the payment component, for behavior such as purchasing
cigarettes/alcohol under the age of 18/21.

Notes:
- Vending machines will lose their internal credits stored when
deconstructed, as a security measure.
- Vending machines will now show the total amount of credits that a mob
has on their person, combining physical credits as well as credits held
in their ID card to accurately portray their total wealth across the mob
in question.

## Why It's Good For The Game

First off, this is largely an excuse to move vending machine behavior
over to the payment component for the purposes to less code copy-paste,
and to try and make the implementation more wide-spread.

Second, this implements a new tertiary economy method to the game, in
the same design space as bounties, which serve as common methods of
making money without necessarily being specific to their job in
question, with the primary goal of providing small amounts of work to
the crew and a basic interaction with the economy system.

Additionally, it gives cargo more things they can do to assist the
station, and a way to know which parts of the station need support as a
result.
It improves the interaction between the vending shortage station trait
as well, making it a challenge with depth as opposed to a more
oppressive round change that players would rather reroll the game over.

Additionally, this makes a few price tweaks to vending restock modules
as well to help incentivize buying some of the more minor restock kits,
and a few select bumps on restocks that cover wide enough territory to
necessitate fewer restocks.
2024-03-06 18:15:49 -06:00
ArcaneMusic 3a76cb27fe Arcargo: Balance Pass v2 on the Stock Market (#81580)
## About The Pull Request

Picking up where I left off on #81216. 

* Stock market stocks have had their market quantity drastically
reduced, as on both the more common and more rare material sides of
things these materials traditionally have been traded in quantities that
it would prevent bicycle like quantities of materials entering the game
while still allowing for access to rare materials at rare material rates
of credits.

* The stock market subsystem now fires once every 60 seconds, as opposed
to once every 20 seconds. To compensate for this, the subsystem now
makes much wider price changes every update, to disincentivize players
from just camping out at the stock market console all game, as this is
behavior we typically discourage (genetics/virology/etc). Material
tending times are similarly decreased to make up for that, while noting
that stock market events will still enable for a material to change
directions at any point as well.

* Material prices can drop below their minimum trading threshold,
resulting in them gaining protected purchasing status, and resulting in
them being unavailable for purchase. This means if you're watching a
price drop, and it's still trending lower, there's a distinct chance you
might want to buy before it drops below the threshold, or risk it, buy
later, and avoid the material getting locked out for another minute or
more.

* Adds 2 new stock market events to help add additional variety to the
stock market's variability, while adjusting the probability of a market
event occurring per stock market event. This should average to ~4 events
every minute, keeping things somewhat interesting if you're watching the
prices of items, but without requiring second to second updates to keep
things engaging.
* These two events include one that blocks off all material quantity
from a material for the duration of the event and resets prices when
complete, and another one that maximizes the profitability of a
material, but leaves it's market quantity up in the air.

* Stock blocks have had their freeze timer decreased from 5 minutes,
down to 3, with the warning now at 1.5 minutes. This is to encourage
players not to sit on their resources for longer periods of time if
their goal is just to sell at a specific price point and to keep items
going through the shuttle, which _also_ encourages players to receive
mail/receive regular orders from the rest of the crew.

* The UI has a number of improvements, those being:
* The time until the next stock market update is listed on the UI as an
active timer.
* The materials listed in the UI are now sorted by the value of that
resource per unit.
* The instructions are now kept within a collapsible component to cut
down on wasted space within the UI.
* A few elements are moved over to % width as opposed to a hardset x
pixels width for screen size compatibility purposes.


![image](https://github.com/tgstation/tgstation/assets/41715314/b8c7b00a-947e-421b-aa18-2b77f0b9bb50)

## Why It's Good For The Game

Stock market has been known to create bike levels of wealth with near
negligible amounts of effort and was going to need a balance pass
eventually. This is being accomplished by slowing down the system, but
also making it more unpredictable by expanding on the stock market event
system a bit further. Naturally, it could use a few more wacky events to
keep the system fresh and active, but for now this helps to keep the
system from being a screen simulator while also making game-health
changes like lowering material quantities that were capable of allowing
the player to double, quadruple, octuple, etc. their wealth every few
minutes by just buying low and selling high.

Makes a few QOL changes to the UI to compensate for a few of these
changes, like the new update timer on the UI in the case we change the
time per update any further, as well as to give incentive to players to
not just camp the console for new updates, just to glance at how their
investments are doing.

These tweaks also keep cargo moving as opposed to just trying to power
game iron and glass for maximum returns, while giving them extra
opportunities to send the shuttle to keep packages flowing for other
purchases/getting mail.

This has a chance to stop #79978, but I'll edit this appropriately after
a TM has confirmed if it was effective or not.

## Changelog

🆑
balance: The stock market now fires slower, has stock market events
occur more often, and the stock market has fewer minerals that are
available to buy in a single purchase before restocking.
balance: Materials sold on the stock market may be protected from being
bought if their prices drop too low, so make sure you watch your prices
before they run the risk of getting shut out!
balance: Stock blocks now freeze the price of materials for 3 minutes,
down from 5.
qol: Tweaks to the Galactic Material Market UI, with materials sorted
based on their rarity and a timer to show how long until it updates.
add: New Stock market events, one locks a material from being purchased,
the other maximizes the value and quantity of a material for sale.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-03-06 23:54:37 +00:00
san7890 9a3e74f30c Feeds OOC messages back to client if blocked in validate_client() (#81769)
## About The Pull Request

Basically, if your long and well-thought-out OOC message gets eaten due
to your client not being fully initialized, the server will feed back
the message to you so you can copy-paste and try again.

In order to facilitate this, I turned `validate_client` into a proc.
This didn't have the ubiquitous usage that we were hoping for (where it
could be dropped and placed anywhere) and I don't think I liked the
"always exit out of proc" stuff anyhow. Also adds some code niceties.

There's probably a way cooler way to do this with tgui_say and whatever
but I don't use tgui_say (byond command bar my beloved) so we'll cope
with this.
## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/34697715/a96f7168-aad3-4772-9abe-7a6aa2b8779a)

Let me know if I should revert the `span_big()` stuff, I just added it
because I wanted it to be obvious to the player instead of look like a
generic error message.
## Changelog
🆑
qol: If your OOC message gets eaten due to some weird circumstance in
how your message is handled, it will feed the applicable message back to
you so you can copy-paste and try to send it again.
/🆑
2024-03-06 23:13:04 +00:00
Jacquerel 94482850a2 Adding a blood brother via the team panel sets it up correctly (#81799)
## About The Pull Request

In a recent round, it was noticed that it's kind of annoying and fiddly
for an admin to add someone to a blood brother team (for instance, if
they had to recreate someone's mob to fix a different issue).
Now if you add someone to a blood brother team via the teams panel, it
will set them up as a blood brother properly.

It's probably in the future worth examining this behaviour for other
team antags as well.

I also added a link to the Team Panel to the Antag Panel because I had a
skill issue and kept forgetting how to access it.

Finally, the conversion logging looked all kinds of fucked, so I fixed
it. I will be honest: I don't know what that list does but the arguments
it was recording were both wrong and didn't make any sense.

## Why It's Good For The Game

Makes admin lives easier.
Using this panel you can now add sapient Ian to a blood brother team.

## Changelog

🆑
admin: Made it easier for admins to adjust blood brother teams using
admin tools.
fix: Correct blood brother conversion logging.
/🆑
2024-03-06 16:09:56 -07:00
MrMelbert 8d599455d7 Boulder refineries can process golems (#81849)
## About The Pull Request

Golems (if lying down) can enter (and be processed by) boulder
refineries.

## Why It's Good For The Game

Rocks are rocks

## Changelog

🆑 Melbert
add: Boulder refineries and smelters can refine Golems. 
/🆑

---------

Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com>
2024-03-06 16:08:58 -07:00
aaaa1023 20cda4e18a Makes revenants able to emag medibots (and other basic bots) (#81857)
## About The Pull Request
Makes Revenants able to emag basic bots. Revenant's Malfunction Ability
only checked for simple_animal/bot so when Medibots, Cleanbots, and
Hygeinebots were turned into basic mobs Revenants lost the ability to
emag them.

## Why It's Good For The Game
Being able to hack bots is pretty much the main function of malfunction,
especially Medibots. Revenants not being able to hack them really
reduces their ability to cause chaos.

## Changelog
🆑

fix: Revenants can now again emag Medibots, Cleanbots, and Hygienebots.

/🆑
2024-03-06 16:07:55 -07:00
Jacquerel 9d9da3a790 Spider web graphics (#81839)
## About The Pull Request

Here is what webs look like.
It looks like pure ass and I hate seeing it.

![image](https://github.com/tgstation/tgstation/assets/7483112/fe3279e6-4d69-48d3-abb7-fb4b1c61396e)

Here's my attempt at making them look nicer.

![image](https://github.com/tgstation/tgstation/assets/7483112/0a5b1034-f021-4a5b-bc93-c590334c7d42)

Notes: Genetics Power webs now have a slight purple tint to
differentiate them from regular spider webs, so spiders aren't confused
about why they can't cross these ones.

On the backend I condensed a lot of these typepaths to inherit from each
other instead of not doing that. In the future I am going to use this to
cut down on the excessive amount of action buttons we have for these
too.

Here's (most of) what the action buttons look like. this screenshot also
demonstrating that we have a serious problem with how many buttons we
give to spiders.

![image](https://github.com/tgstation/tgstation/assets/7483112/c78ce4f3-dbfd-4434-b318-dfe2a88ce838)

After this is merged I will embark on two further projects:
- Wallening version
- Reworking spider web placement to not be a function of having 15
action buttons, it's _so bad_.

While I was working on this I noticed that AI spiders would not
automatically place webs on certain crossable tiles, because we forgot
to pass an argument to a proc. I fixed that too.


Oh also final change I almost forgot to document:

![dreamseeker_MiooTij0sG](https://github.com/tgstation/tgstation/assets/7483112/7ae262d9-7b89-45b9-beb3-f6921963e04e)

I made you jiggle if you get stuck in a web.

## Why It's Good For The Game

The previous sprites looked bad and these look less bad.

## Changelog

🆑
fix: AI-controlled spiders can correctly recognise where they can place
webs.
image: New sprites for most kinds of spider web
/🆑
2024-03-06 16:05:49 -07:00
MrMelbert b8b420cfcb Food Bar Updates, moves it out of the alert "stack" and to the left of mood, makes it more snappy (#81834) 2024-03-06 14:46:01 -07:00
ViktorKoL 63966fd7dd Unique icons for lock path spells (#81832)
## About The Pull Request

Adds unique icons for several lock path spells: caretaker's refuge,
apetra vulnera and ascended shapeshift.


https://github.com/tgstation/tgstation/assets/44502667/8fe907bc-4da9-4007-97f2-445b26be3068

Never added sprites before, so I hope nothing breaks. Also for some
reason visual studio code really wanted to change some indentation on
some empty lines in apetravulnera.dm, so there's some random changes,
had no idea how to prevent it, and it doesn't seem to actually matter.
## Why It's Good For The Game

These spells used to (except for ascended shapeshift) use icons that
other heretic spells also used, potentially leading to confusion. Also
it's nice to have unique icons for each spell.
## Changelog
🆑
image: added unique icons for spells: caretaker's refuge, apetra vulnera
and ascended shapechange
/🆑
2024-03-06 13:45:24 -05:00
Waterpig b067f3857a Prevents polymorph using specific mobs for deleting items/people (#81528) 2024-03-06 05:26:48 -07:00
Higgin c071a61781 Changes flash Paralyze to Knockdown (#81676)
## About The Pull Request
picking up the dropped rifles of #78515 and #81618 and making only one
small, measurable change that should test the general principles while
making life better if they're proven true:

does what it says on the tin: makes flashes Knockdown rather than
Paralyze

this will be successful if people report more close fights where flashes
were involved and feel better about playing on both sides of
flashing/getting flashed

## Why It's Good For The Game

hardstun rocket-tag combat bad. opportunities for counterplay and combos
good.

Paralyzes
- basically prevent you from doing anything. anything.

Knockdowns
- let you try to deploy your flash protection before the follow-up if
the opponent's just trying to use the flash
- let you try to crawl, juke, and make your opponent's life a little
less simple
- give you an actual choice: do I try to scream HELP immediately after
the flash before I get taken out, or try to use an item, swing back, or
wriggle out?
- still disarm you if you're standing which is pretty cool I think
- still let you stamcrit some goofball crawling at you even if they keep
crawling


doesn't change how mounted flashes or portable flashers work. still 10
and 8s Paralyzes respectively.

not a moth buff because they still can't wear sunglasses to no-sell the
flash entirely ha ha goofy bug

## Changelog

🆑
balance: personal flashes now Knockdown rather than Paralyze direct
targets.
/🆑
2024-03-06 02:58:48 -06:00
13spacemen 357799c8a5 Removes Orbit Polling Component, SSpolling improvement (#81748)
When I made SSpolling, jlsnow gave me his blessing to delete the orbit
polling component [where you orbit something for 20 seconds before it
chooses a ghost from the orbiters]
It's only used in a few places like soulstones replacing
jobbanned/inactive players, etc.

Also upgraded SSpolling; you can now place a little icon on the sides in
the chat message, chat message looks a lot nicer, the alert pic and the
jump target don't have to be the same anymore, and I made it be able to
pre-pick candidates since 90% of the use cases would just want 1
candidate

Also prints to chat who the chosen one was

Also made slime intelligence potions ask the user for a reason, which
will be displayed in the alert poll
2024-03-06 08:24:36 +00:00
_0Steven 16f6200b65 Alternate job titles such as chef and department security get injected to the manifest normally, and show up as the right department. (#81634)
## About The Pull Request

Previously injecting to the manifest would use solely the mind's
assigned role, thus injecting player with alternate job titles such as
chef and department security as the job they're based off rather than
their actual ID trim.
Then if the manifest were to be updated later on, they would show up as
being departmentless because getting the manifest checks for an assigned
job, which these don't have as they're just alternate titles for an
existing job.

This resolves the first part by checking if it's possible to get a trim
from a held ID and using that before attempting to default to the mind's
assigned role. As building/updating the manifest is done after
equipping, this lets alternate job titles be assigned as their actual
job.
Then the second part is resolved by adding a list of alternate titles
for the job subsystem to register as being that job, so that a job can
have multiple titles which refer to it.
## Why It's Good For The Game

It's annoying to not be able to find these in the right spot on the
manifest, if at all in the first place.
2024-03-05 22:37:00 -06:00
Ghom 88bdabe53b Adds a small cafeteria behind the right wing shutters of the museum. (#81465)
## About The Pull Request
I was thinking to contribute something to the new away mission map to
make it better. Mapping and all takes too much time for me, so I could
do little. Though it comes with its own unique gimmicks.

To reach the cafeteria, one has to complete a couple puzzles.
The first set is opened by inputing the correct PIN on the password
panel beside it. There're several clues to help you guess this fairly
easy puzzle, in the form of several number graffitis, a scrapped piece
of paper full of numbers, and a board filled with colored dots also
found just beside the panel.
The second one is opened by a keycard, and is generally lazier. To find
it, you'll need to do a bit of (toilet) searching.

As for the unique things this PR adds:
- A fire extinguisher... that actually contains welding fuel
- A (dirt-cheap) hotdog vending machine*
- A completely ornamental maneki-neko (that's the name of the
luck-bringing, paw-waving cat figurine)
- A piggy bank that carries money between rounds. It has a cap of 10k
credits worth of holochips, cash and coins, which is pretty high, but
I'm confident people will just destroy it for its contents the moment
they find it. His name is Pigston Swinelord VI.
- More, totally legit and not actually fake bombable walls :^)

*By the by, you can also find it during the national hotdog day.

Screenshots of the new location:
![museum
cafe](https://github.com/tgstation/tgstation/assets/42542238/1c0d93b7-90d5-4459-a48d-81430f0d3613)
![museum
restrooms](https://github.com/tgstation/tgstation/assets/42542238/5a9e049d-6acc-464b-998d-901e43154bae)


## Why It's Good For The Game
You know how most away missions are not that special at all? Yeah,
@mc-oofert set an example of a pretty decent one actually, if not a tad
small. I thought it could use a touch of another mind actually
contributing to it too, because it deserves it.

Also, this sets the basis for other persistent piggy banks. I don't
think they should all have that 10k cap like this one, perhaps 1k is
enough. Beside, the code that mothblocks did for json database datum is
pretty good, so there is not a whole lot of shitcode here.

## Changelog

🆑
add: Added a cafeteria to the museum away mission, with a few special
things to it. To reach it, you'll have to complete a couple puzzles
however.
map: The museum away mission now has a couple restrooms.
add: Hotdog vending machines may spawn during the National Hot Dog Day.
/🆑
2024-03-05 18:19:39 -07:00
Interception&? 1cde8ab0f8 Add smooth transition between hidden and visible pipes (#81800)
## About The Pull Request

- Adds smooth transition between hidden and visible pipes, AKA “caps”
and updates automated pipe icon generator to account mentioned changes.
- Adds centering to missed atmos machinery, for example, unary vent is
almost identical to passive, but the second one wasn't centered while
hidden.
- Fixes visual bug with extra and unremovable by normal means pixel
offset on pipes constructed from `/obj/item/pipe`.
- Fixes visual bug with visible cap on a hidden connector. 

I'm really sorry for this mess, but one-line fixes are okay, or are
they?

## Why It's Good For The Game

We're playing atmospherics simulator and pipes play an essential role in
our rounds, people see them all the time and that's why pipes deserve to
look a bit better. This project aims to resolve said issue by adding
transition states, in current implementation they're just cut off when
connected to a hidden segment.

<details>
<summary>Screenshots</summary>

Before:

![dreamseeker_N9kXd8k5a9](https://github.com/tgstation/tgstation/assets/137328283/1e9915fc-53e6-4411-baa8-22ed67c0708e)

After:

![dreamseeker_qxQepWXHwh](https://github.com/tgstation/tgstation/assets/137328283/72778646-46f5-4ebf-9988-10a87ead9768)

Extra:

![dreamseeker_Lz0a55VoCE](https://github.com/tgstation/tgstation/assets/137328283/2b198ba9-74b1-4e54-901e-a72ab3af0a6a)


</details>

## Changelog

🆑
fix: Pipe connector no longer appears on a hidden connector.
fix: Re-wrenched atmospherics pipes no longer get extra offset.
fix: All unary devices like injectors, passive vents etc. are centered
while hidden.
image: Added smooth transition between hidden and visible pipes.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-05 16:39:09 -07:00
ike709 170c69c0db OpenDream TypeMaker Prep (#81830)
## About The Pull Request

OpenDream is adding support for proc and var typechecking using `as` in
https://github.com/OpenDreamProject/OpenDream/pull/1705

BYOND silently ignores most uses of `as`, but OpenDream can leverage it
for static typing.

E.g. the following code will error in OpenDream while doing nothing in
BYOND:
```
/datum/proc/meep() as text
    return "meep"

/datum/foobar/meep()
    return 5
```
`Warning OD2701 at code.dm:29:8: /datum/foobar/meep(): Invalid return
type "num", expected "text"`

Pragmas allow these type emissions to be warnings, errors, or suppressed
entirely.

This PR modifies some existing uses of `as` in TG to prevent
`ImplicitNullType` warnings (which is when a var with a null value
doesn't explicitly have the `|null` type specified). This specific
pragma is a bit opinionated so it could simply be disabled, but since
this has no impact on BYOND behavior I don't see a reason not to fix
these examples anyways.

## Why It's Good For The Game

Typechecking.

## Changelog

no cl no fun
2024-03-05 16:38:23 -07:00
MrMelbert 9c70e8700d Small bible / bullet catcher component code cleanup (#81835)
## About The Pull Request

Saw this weird use of storing a component in a var when it didn't really
need to be so I just refactored it a little bit.
2024-03-05 16:37:48 -07:00
MrMelbert 18e25329a8 Fixes jank with moving down Zs as a ghost (#81837)
## About The Pull Request

Caused by goof's PR. Because for some reason observers overridde `up` to
skip checks but not `down`.

## Changelog

🆑 Melbert
fix: Moving "down" as an observer is no longer janky. 
/🆑
2024-03-05 16:36:59 -07:00
MrMelbert 170541bd2d Fix all bibles being carved (#81836)
## About The Pull Request

`/obj/item/book/bible` had `carve_out` in `Initialize` instead of
`/obj/item/book/bible/booze`

## Changelog

🆑 Melbert
fix: All bibles are no longer suspiciously hollow 
/🆑
2024-03-05 16:36:51 -07:00
KingkumaArt 7e5f13f558 Resprites Mi-Go to not be plagiarized from a CDDA tileset + adds special shiny variant of the Mi-Go (#81851)
A lot of the xenobiology mobs are really, _really_ crusty. The mi-go is,
in my opinion one of the worst offenders (DMI file shown below), and
even if it wasn't as old as it is - and it is very old, I think it
predates this github - it's also just straight up stolen from a CDDA
tileset. This pr fixes that.
Old mi-go:

![image](https://github.com/tgstation/tgstation/assets/69398298/61ccbde7-d36e-40d3-8bef-24f52f11bbb0)

New mi-go:
![Go migo
Go](https://github.com/tgstation/tgstation/assets/69398298/6427f767-33a2-434f-8469-68f458466a7f)

"But what about the shiny variant you added?" Well, let me introduce you
to...


![MigoH1](https://github.com/tgstation/tgstation/assets/69398298/b80ec0a6-9ab6-488e-867b-4cececcee0aa)
_**Hatsune Mi-go.**_

...I'll see myself out. 

In honesty, this PR started as solely a shitpost made in an hour of
photoshopping a miku wig onto a mi-go, but ended up willing itself into
quality.
## Why It's Good For The Game

Besides the spritework obviously having aged, having stolen/traced art
ingame is not a good look. Below is the DMI of the mi-go, put along with
a screenshot of the CDDA tileset. It is, admittedly, _slightly_ altered,
but thats because the CDDA version wouldn't fit in a dmi's 16x16
tilesize, and so parts are just chopped off to make it work, and some
coloring was changed.


![a-migo](https://github.com/tgstation/tgstation/assets/69398298/9bd28073-2519-4049-a62c-6cfa46409484)

As for the mi-go/miku pun - if we have the 1 in 100 among us firelock, a
1 in 25 chance for a migo (a rare mob) to have an easter egg/pun seems
fine. I like the tiny chance things like that in this game.

## Changelog
🆑
add: Shiny joke mi-go variant (not xenobio spawnable)
del: Removed unused mi-go static sprites
image: Resprited mi-gos to not use plagarized art from CDDA
image: Also allowed mi-gos to have directional facing instead of always
facing east
/🆑
2024-03-06 11:30:07 +13:00
SpaceLoveSs13 249cf2e9a2 Adds missing items to Robotics crate (#81825)
## About The Pull Request

Adds missing items to robotcs crate.

## Why It's Good For The Game

Issue Fix PR

## Changelog

🆑 SpaceLove
fix: Central Command Logistics department noticed the missing items on
their listings for robotics assembly crate. They have updated it!
/🆑

Testing Proof: 

![image](https://github.com/tgstation/tgstation/assets/68121607/87e4e607-2dfc-4267-bdbb-f1f49ea2e448)
2024-03-05 09:40:07 -05:00
Wallem 8afd89610b Makes the Omen coupon only trigger bad luck once, like it used to (#81814)
## About The Pull Request
Tin
## Why It's Good For The Game
Idk when it happened, but someone managed to not input an
`incidents_left` for the coupon's component addition, which made it
default to `INFINITE`. As such, this would actually leave you with a
**_worse_** curse than the quirk itself, since EVERYTHING would be more
likely to hit you.
## Changelog
🆑 Wallem
fix: The cursed coupon now only triggers a cursed event once, rather
than infinite times.
/🆑
2024-03-04 19:12:56 -07:00
Bloop b3443099b0 Fixes missing args in a few procs registered to COMSIG_LIVING_ELECTROCUTE_ACT (#81807)
## About The Pull Request

That's it really. 


![image](https://github.com/tgstation/tgstation/assets/13398309/08bd4dd7-b5e7-4c22-91b7-1dadf5776508)

It's supposed to have a `shock_source` arg, but 2/3 of the procs that
are registered to this signal don't include that in their args list.

## Why It's Good For The Game

Out of order positional args = bad.

## Changelog

Nothing player facing (probably)
2024-03-04 19:11:15 -07:00
Kyle Spier-Swenson ae109891c1 Fix job time stuff not detecting the database was down. (#81821)
This comment hasn't been true for 7 years.
2024-03-04 19:00:53 -07:00
Kyle Spier-Swenson 0269c4be44 Protected admins can skip 2fa if the db is down. (#81823)
This is basically only admins inside of the .txt and for /tg/station,
only includes heads like the headmins and headcoders

---------

Co-authored-by: san7890 <the@san7890.com>
2024-03-04 19:00:14 -07:00
Zergspower d68ef829ad Universalizing ruin names (#81737)
## About The Pull Request

This is not player-facing, however it's a good QOL that i made for
downstream modular ruins. The pick-list of maps makes it a bit..
annoying to really grab a ruin quickly - so all this does is add an ID
to the front of them for Space, Lava and Ice respectively.

## Why It's Good For The Game
## Changelog
:cl:Zergspower
admin: renames ruin names to have an identifier in front of it
refactor: converts map plate and jump to ruin to tguilist
/🆑
2024-03-04 16:17:15 -06:00
ViktorKoL 6d5a86be34 moon smile effect durations fix (#81794)
## About The Pull Request

Moon smile's durations had some syntax issues, causing their durations
to be much lower than intended, and sanity having very low impact on it.
Also adds a use of SANITY_MAXIMUM define, so that the calculation will
still work if this value is ever changed.
## Why It's Good For The Game

The moon did not smile. It was frowning. Frowning because it was bugged
:( But with this fix it can smile again :)
## Changelog
🆑
fix: fixed some issues when calculating the duration of moon smile's
effects
/🆑
2024-03-04 13:41:49 +01:00
Rerik007 25ad1e4d3f fixes extra prob() in living flesh Life proc (#81784)
## About The Pull Request
SRT_PROB is prob() already, removed extra in
`/mob/living/basic/living_limb_flesh/Life`
## Why It's Good For The Game
in this commit
https://github.com/tgstation/tgstation/pull/79149/commits/913802c076daefa533f3a2a3f2011ebb54d71659
in this pr https://github.com/tgstation/tgstation/pull/79149 the author
did it by accident, I think. Because It is very low chance
## Changelog
🆑
fix: fixed the chances of living flesh actions
/🆑
2024-03-04 13:41:21 +01:00
jimmyl 900cf05da5 [no gbp] Lazy Templates can be configured to Place on Top, deathmatch does this now (#81783)
## About The Pull Request

this is very much a code thing im not sure what i would say this just
adds an extra variable
also should be no sideeffects this is handled by turf reservations

also virtual domains (fixes  #81779)

## Why It's Good For The Game
![2024-03-02
11_28_18-Window](https://github.com/tgstation/tgstation/assets/70376633/85d094d3-c877-418f-bec9-af2f16736352)
this would formerly breach to space
## Changelog
🆑
fix: fixes deathmatch baseturfs (you cant crowbar the floor to breach to
space)
/🆑
2024-03-04 13:40:31 +01:00
ValuedEmployee 00305c6d6d New clown shoes: Moffers (#81796)
## About The Pull Request

Adds a new set of clown shoes to the autodrobe under the contraband list
that are moth themed. The shoes look like little moth heads on the ends
and make moth screaming noises when you take a step. It came to me in a
dream and I made this PR in an hour so please be nice to me.


## Why It's Good For The Game

Buying meown shoes has been a staple for certain fun loving players and
clowns alike on TG. Adding an extra pair of basically the moth version
of them can add extra gimmick shenanigans for clowns to baffle onlookers
and elicit a giggle from local assistants. Since autodrobes must be
hacked to gain these moffer slippers, with an inventory amount of 1
maximum per autodrobe, they should be somewhat of a rarity that adds a
little spice to a round.



https://github.com/tgstation/tgstation/assets/105574010/5099d088-d760-4b2a-823a-03bf9b342da9

![Screenshot 2024-03-02
160533](https://github.com/tgstation/tgstation/assets/105574010/5bff7747-72d3-45dc-8994-64a001320d8b)
![Screenshot 2024-03-02
170927](https://github.com/tgstation/tgstation/assets/105574010/d691af0c-9d19-4a78-993a-213ee6bb37dd)

Most importantly: Moth

## Changelog

🆑
add: Added new clown shoes "moffers"
add: Added moffers to the contraband list of the autodrobe
/🆑
2024-03-04 13:35:13 +01:00
lessthanthree 760c85ad90 Tram tile/bench fixes (#81798)
## About The Pull Request

- Tram benches can be rebuilt after deconstruction
- Tram tiles build the correct amount inhand
- Tram tiles available in the engineering protolathe with other items
- Tram tiles create the right stack type when pulled up
- Tram tiles have inhand/obj icons for both types

## Changelog

🆑 LT3
fix: Tram floor tiles constructed inhand provides 4 instead of 1
fix: Tram floor tiles provide correct stack item when pulled up
image: Tram floor tiles have their own inhand icons
qol: Tram floor tiles available in the engineering protolathe
fix: You can reconstruct deconstructed tram benches
/🆑
2024-03-04 02:19:49 +01:00
MrMelbert d35a73bf4e Minor Spy fixes, plus some bonus logging and feedback (#81781)
## About The Pull Request

Fixes #81776 

- Ensures machinery not sent to the black market dump what must be
dumped first
- Adds feedback messages to sentient bots being stolen
- Adds a few combat log messages to spies stealing things

## Changelog

🆑 Melbert
fix: Fixed spy stolen machines not dumping everything that needed to be
dumped
/🆑
2024-03-04 01:07:14 +01:00
lessthanthree 9ec0cfc36a Tram icon cleanup (#81797)
## About The Pull Request

- Deletes an unused tram_wall.dmi
- Renames tram frame to tram girder
- Tram girder looks like girder, not lattice


![image](https://github.com/tgstation/tgstation/assets/83487515/328c2455-def0-41a1-be9a-87a3ec0dcee7)

## Why It's Good For The Game

More straightforward for players. Since it acts like a girder, it should
look like a girder not a lattice.

## Changelog

🆑 LT3
image: Tram frame is now tram girder, because it acts like one
/🆑
2024-03-03 19:04:50 -05:00
LemonInTheDark 1f249fbf0f Autotucking On Map Load (#81782)
## About The Pull Request

Doesn't really do much currently but without it wallening beds look
fuckin DUMB
Plus I think this better matches what is intended

## Why It's Good For The Game


![image](https://github.com/tgstation/tgstation/assets/58055496/d5e4c372-3e84-435a-88b9-b5be442049b2)

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
2024-03-03 19:55:23 +00:00