Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MDB Ignore] [IDB Ignore] Maint Tv #528

Merged
merged 43 commits into from
Feb 19, 2024
Merged

[MDB Ignore] [IDB Ignore] Maint Tv #528

merged 43 commits into from
Feb 19, 2024

Conversation

RogueStationAI
Copy link

No description provided.

SkyratBot and others added 30 commits February 17, 2024 13:25
* Cardboard cutouts are now tactical. (#81245)

## About The Pull Request
Basically, this means players holding cardboard cutouts will now assume
their appearance, just like for potted plants. Good for pranking.

I've had to tweak the tactical component and the waddling element a bit
to get them to work as intended while dealing with the multiple sources
of the waddling element.

## Why It's Good For The Game
![](https://media1.tenor.com/m/X1GimXmuByYAAAAd/tom-cruise-doorbell.gif)

## Changelog

:cl:
add: Players holding cardboard cutouts will now assume their appearance,
just like for potted plants.
/:cl:

* Cardboard cutouts are now tactical.

---------

Co-authored-by: Ghom <[email protected]>
* Fix lifeline not respecting suit sensors (#81517)

## About The Pull Request

- Lifeline app now respect suits sensors again.
- The proc always `return .`'d if the target mob was not on suit
sensors, so if `.` was `RADAR_TRACKABLE`, well, it would rack sensorless
mobs.

- Cleaned up a bit of trackable.
   - Use the `is_valid_z_level` helper.
   - Respect all possible returns for a signal.

## Changelog

:cl: Melbert
fix: Lifeline can no longer track mobs with suit sensors off
/:cl:

* Fix lifeline not respecting suit sensors

---------

Co-authored-by: MrMelbert <[email protected]>
…S13#26548)

* [NO GBP]removes double parent call from my last pr (#81515)

## About The Pull Request

i accidently put two parent calls in #81472

🆑
code: changed some code
/🆑

* [NO GBP]removes double parent call from my last pr

---------

Co-authored-by: kawaiinick <[email protected]>
* Adds a proper skeletal rack subtype (#81484)

## About The Pull Request

This is mapped in a few places and I thought it would be better to have
a subtype of rack to use rather than varediting the icon and state.

## Why It's Good For The Game

The less varedited icons the better imo, it's way easier to ensure icons
aren't fucked up this way and easier to fix too.

## Changelog

No player-facing changes.

* Adds a proper skeletal rack subtype

---------

Co-authored-by: John Willard <[email protected]>
…ton (Skyrat-SS13#26549)

* Changes the crystallizer wrench screentip to the correct button (#81516)

## About The Pull Request
it says left click, that does nothing, you need to right click it to
rotate
## Why It's Good For The Game
correct ingame information
## Changelog
:cl:
fix: The crystallizer screentip for rotating it has been updated with
the correct button
/:cl:

* Changes the crystallizer wrench screentip to the correct button

---------

Co-authored-by: 1393F <[email protected]>
…Skyrat-SS13#26552)

Fixes a spurious runtime off loading the museum away mission

Co-authored-by: LemonInTheDark <[email protected]>
…t-SS13#26553)

* Fixes smoothing breaking if a map is loaded post init (#81526)

## About The Pull Request

We'd finish a set of atom creation, then try and smooth those atoms The
problem is they might try and smooth with an uninitialized neighbor,
which wouldn't have its smoothing vars parsed.

This fixes that by pooling "to be smoothed" things into a list based off
the source of the init stoppage, which we then release when we're done.

Also fixes things staying in mapload, even during a sleep. This can
cause massive headaches so it's good to avoid.

This has a cost but it's minuscule (on the order of like 0.006s (6ms
over all of init), so I'm happy with it.

## Why It's Good For The Game

Closes #77040

## Changelog
:cl:
fix: Maps loaded in after roundstart will no longer have broken
smoothing
/:cl:

* Fixes smoothing breaking if a map is loaded post init

---------

Co-authored-by: LemonInTheDark <[email protected]>
* deathmatch (#81444)

## About The Pull Request

![image](https://github.com/tgstation/tgstation/assets/70376633/44f1d1af-2cd6-4e69-a13e-6d2a663d668d)

adds a deathmatch minigame, a port and slightly redone version of the
aetherstation deathmatch (by TheChosenEvilOne)
the goal is to kill everyone else with loadouts

## Why It's Good For The Game

CTF sucks and this is probably better to filter out the bloodthirsty
terry players anyway

## Changelog
:cl:
add: deathmatch minigame
/:cl:

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* deathmatch

---------

Co-authored-by: jimmyl <[email protected]>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Fix Ai tracking runtime (#81518)

## About The Pull Request

First arg is tracker, second arg is name.

## Changelog

:cl: Melbert
fix: Fixes AI double-click tracking
/:cl:

* Fix Ai tracking runtime

---------

Co-authored-by: MrMelbert <[email protected]>
…and bins deconstructs them (Skyrat-SS13#26570)

* forcefully pushing and crushing disposal outlets and chutes and bins deconstructs them (#81535)

## About The Pull Request

if a goliath and such forcefully move chutes,bins,disposal outlets and
maybe one other they are reverted into disposal constructs instead of
being a poor mans eigenstatium locker

## Why It's Good For The Game

CC moment

## Changelog
:cl:
fix: forcefully pushing disposal outlets and chutes deconstructs them
instead of making them behave like budget eigenstatium lockers
/:cl:

* forcefully pushing and crushing disposal outlets and chutes and bins deconstructs them

---------

Co-authored-by: jimmyl <[email protected]>
* Reverts map vote to single method (#81539)

## About The Pull Request

Reverts map vote to single selection rather than multi selection

## Why It's Good For The Game

Now that map vote is weighted, multi selection serves no purpose anymore
other than allowing people to gain "additional weight" in the vote,
which is unfair. It's weighted, everyone should have 1 vote.

![image](https://github.com/tgstation/tgstation/assets/51863163/c1831505-f638-4036-8d53-d3524f4a5d4a)

## Changelog

:cl: Melbert
del: You can only vote for 1 map at a time again
/:cl:

* Reverts map vote to single method

---------

Co-authored-by: MrMelbert <[email protected]>
… a mob (Skyrat-SS13#26568)

* Circuit multitools can now mark (visible) items worn/held by a mob (#81215)

## About The Pull Request
Title. This includes a small change to the get_visible_items proc, only
used by phobias until now, to include worn accessories. Not really worth
of a changelog entry itself.

## Why It's Good For The Game
This makes the process of scanning oft worn equipment a bit easier,
perhaps weavering the need of consent for some pranks and shenanigans.

![immagine](https://github.com/tgstation/tgstation/assets/42542238/a0d62488-2ee1-4051-9737-62c9247a6137)

I've added a bit of contrast to the icon for the "mob" option since
then.

## Changelog

:cl:
qol: Circuit multitools can now mark (visible) items worn/held by a mob.
/:cl:

* Circuit multitools can now mark (visible) items worn/held by a mob

---------

Co-authored-by: Ghom <[email protected]>
…26567)

* Valentines Day Rework (Better Late Than Never) (#81499)

## About The Pull Request

Big changes:

- Participation is Valentines day requires consent, as consent is
important.
- When the event triggers, all valid players are automatically signed up
to get a random date. However if you're uninterested, you can opt out of
getting a date.
- This uses the same system as ghost role polling, so it's a
non-obstrusive screen alert + chat box entry.

- AIs are now given a zeroth law to protect their date.
   - This does not override existing zeroth laws (for malf ais).
- This zeroth is law is worded in a way such that they are not
effectively malf AIs. Their other laws still apply, but not for
situations pertaining to their date.

- Cyborgs are desynced from AIs and are given similar zeroth laws to
protect their date.

![image](https://github.com/tgstation/tgstation/assets/51863163/0d1cca3e-f483-484c-90a8-9bb5492e2c69)

Small changes:

- Valentines cards are now paper. Meaning you can write on them, stamp
them, or yes, burn them.

- Third wheeling is more codified than before. Third wheels get their
own antag datum type.

- The antag panel listing in roundend takes up significantly less room
for each date. Additionally, dates are now paired up with each other.

- Adds implementations for getting pronouns from mind datums.

![image](https://github.com/tgstation/tgstation/assets/51863163/2107e7d2-6197-4f64-9245-54037ca6c0ec)

## Why It's Good For The Game

It's 2024 and our Valentines day is sooo 2012.

I'm a big fan of Valentines Day, personally - it gives me the
opportunity to mess around with another player that I probably would not
otherwise mess around with, getting into shenanigans I would not
otherwise.

But as the years have gone by it's gotten pretty lackluster. Some people
like it as much as I do, but others ditch it entirely and ignore the
objectives.

And if you get paired with someone ignoring it, well, now you're out of
luck!

This is something I'm aiming to rectify by making it opt-in when it
triggers rather than forced. All the people participating will be
guaranteed to get someone who cares about the event as much, which makes
it more fun.

As for the silicon changes, there's been lots of confusion around
silicons and their dates, so I thought I'd fix it here as well.

Also, better late than never?

## Changelog

:cl: Melbert
add: Valentines Day now polls all players for candidates when it
triggers rather than forcing all players to be a Valentine. Consent is
important.
add: Valentine silicons now gain special laws pertaining to their date.
qol: Valentines Cards are now paper, so you can write on them, stamp
them, or burn them.
qol: Valentine's roundend report no longer takes up a massive amount of
space and also no longer sound so, so weird.
/:cl:

* Valentines Day Rework (Better Late Than Never)

---------

Co-authored-by: MrMelbert <[email protected]>
…13#26566)

* Makes the restricted number input user friendlier (#81495)

## About The Pull Request
The modal number input is extremely user unfriendly in it's current
state whenever used for negative and decimal numbers See #81457 for
details. The code might not be the best and if someone has suggestions
to optimize it, I'm all open for it, but it takes into aspect a lot of
edge cases to make the input as user friendly as possible. I've also
heard form some other code bases that they have issues with the
tgui_input_number proc.

The RestrictedNumber will get a new event to listen to though:

` onBlur={(_, value) => onBlur(value)}`

This will run the number through the previous, hard sanitation and
ensures that we always submit an allowed number and not a string value
as we are using it shortly during input for the pure `-` input.
(Especially important for the "Submit" button. Enter always handles it
that way). During testing, all the tested numbers were handled properly,
I could not see any issues on the inputs. We still keep some in Field
replacement, but it's for a limited range where we can have the field
handle numbers smart:

`min <= 1 && max >= 0`: Within that range, the field updates the value
to the restrains on input. In all other cases only onBlur.

Testcase table:

<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40">

<head>

<meta name=ProgId content=Excel.Sheet>
<!--table
	{mso-displayed-decimal-separator:"\,";
	mso-displayed-thousand-separator:"\.";}
@ page
	{margin:.79in .7in .79in .7in;
	mso-header-margin:.3in;
	mso-footer-margin:.3in;}
tr
	{mso-height-source:auto;}
col
	{mso-width-source:auto;}
br
	{mso-data-placement:same-cell;}
td
	{padding-top:1px;
	padding-right:1px;
	padding-left:1px;
	mso-ignore:padding;
	color:black;
	font-size:11.0pt;
	font-weight:400;
	font-style:normal;
	text-decoration:none;
	font-family:Calibri, sans-serif;
	mso-font-charset:0;
	mso-number-format:General;
	text-align:general;
	vertical-align:bottom;
	border:none;
	mso-background-source:auto;
	mso-pattern:auto;
	mso-protection:locked visible;
	white-space:nowrap;
	mso-rotate:0;}
.xl63
	{text-align:left;}
.xl64
	{mso-number-format:"dd\/\\ mmm";
	text-align:left;}
.xl65
	{text-align:left;
	vertical-align:top;}
.xl66
	{mso-number-format:"\#\,\#\#0";
	text-align:left;}
.xl67
	{mso-number-format:"\@ ";
	text-align:left;}
.xl68
	{mso-number-format:"mmm\\ yy";
	text-align:left;}
-->
</head>

<body link="#0563C1" vlink="#954F72">

Test case | Field Limit | Input | InField | OnEnter | OnSubmit | OnBlur
-- | -- | -- | -- | -- | -- | --
Float (smart) | 1-20 | 0 | 1 | 1 | 1 | 1
  |   | 1.1 | 1.1 | 1.1 | 1.1 | 1.1
  |   | 20.1 | 20 | 20 | 20 | 20
  |   | - |   | 1 | 1 | 1
  |   | . | 1. | 1. | 1. | 1.
  |   | 5 | 5 | 5 | 5 | 5
Float | 2-20 | 0 | 0 | 2 | 2 | 2
  |   | 2.1 | 2.1 | 2.1 | 2.1 | 2.1
  |   | 5 | 5 | 5 | 5 | 5
  |   | 20.1 | 20.1 | 20 | 20 | 20
  |   | - |   | 2 | 2 | 2
  |   | . | 2. | 2. | 2. | 2.
Float with decimal limit | 20.2-200.2 | 0 | 0 | 20.2 | 20.2 | 20.2
  |   | 20. | 20. | 20.2 | 20.2 | 20.2
  |   | 50 | 50 | 50 | 50 | 50
  |   | 200.3 | 200.3 | 200.2 | 200.2 | 200.2
  |   | - |   | 20.2 | 20.2 | 20.2
  |   | . | 20. | 20.2 | 20.2 | 20.2
Float with decimal limit   (smart) | 0-20.2 | 0 | 0 | 0 | 0 | 0
  |   | 20. | 20. | 20. | 20. | 20.
  |   | 5 | 5 | 5 | 5 | 5
  |   | 20.3 | 20.2 | 20.2 | 20.2 | 20.2
  |   | - |   | 0 | 0 | 0
  |   | . | 0. | 0. | 0. | 0.
Negative Float (smart) | -10-20 | -10.2 | -10 | -10 | -10 | -10
  |   | 20. | 20. | 20. | 20. | 20.
  |   | 20.1 | 20 | 20 | 20 | 20
  |   | 0 | 0 | 0 | 0 | 0
  |   | - | - | -10 | -10 | -10
  |   | . | -10 | -10 | -10 | -10
  |   | -. | -10. | -10. | -10. | -10.
  |   | -10- | 10 | 10 | 10 | 10
  |   | 10- | -10 | -10 | -10 | -10
Negative Float with decimal limit | -10.2--20.2 | -10.1 | -10.1 | -10.2
| -10.2 | -10.2
  |   | -20. | -20. | -20. | -20. | -20.
  |   | -20.3 | -20.3 | -20.2 | -20.2 | -20.2
  |   | 0 | 0 | -10.2 | -10.2 | -10.2
  |   | - | - | -20.2 | -20.2 | -20.2
  |   | . | -20. | -20. | -20. | -20.
  |   | -. | -20. | -20. | -20. | -20.
  |   | -10.2- | 10.2 | -10.2 | -10.2 | -10.2
  |   | 10.2- | -10.2 | -10.2 | -10.2 | -10.2
Int (smart) | 1-20 | 0 | 1 | 1 | 1 | 1
  |   | 1. | 1 | 1 | 1 | 1
  |   | 21 | 20 | 20 | 20 | 20
  |   | 5 | 5 | 5 | 5 | 5
  |   | - |   | 1 | 1 | 1
  |   | . |   | 1 | 1 | 1
Int | 20-200 | 19 | 19 | 20 | 20 | 20
  |   | 201 | 201 | 200 | 200 | 200
  |   | 50 | 50 | 50 | 50 | 50
  |   | - |   | 20 | 20 | 20
  |   | . |   | 20 | 20 | 20
Negative Int (smart) | -10-20 | -11 | -10 | -10 | -10 | -10
  |   | 0 | 0 | 0 | 0 | 0
  |   | 21 | 20 | 20 | 20 | 20
  |   | - | - | -10 | -10 | -10
  |   | . |   | -10 | -10 | -10
  |   | -. | - | -10 | -10 | -10
  |   | -10- | 10 | 10 | 10 | 10
  |   | 10- | -10 | -10 | -10 | -10
Negative Int | -200---20 | -201 | -201 | -200 | -200 | -200
  |   | -19 | -19 | -20 | -20 | -20
  |   | -50 | -50 | -50 | -50 | -50
  |   | - | - | -200 | -200 | -200
  |   | . |   | -200 | -200 | -200
  |   | -. | - | -200 | -200 | -200
  |   | -20- | 20 | -20 | -20 | -20
  |   | 20- | -20 | -20 | -20 | -20

</body>

</html>

## Why It's Good For The Game
Even though not used often on TG code, the modal inputs are used on
other code bases and inputting numbers has been a hell if it was
anything other than a positive integer. This PR aims to make the
handling as user friendly as possible, even if it's a lot more edge case
checking than the very simple code beforehand.
## Changelog
fixes #81457
🆑
qol: makes the tgui_input_number user friendly for negative and decimal
inputs
code: the onBlur={(_, value) => onBlur(value)} event should now be used
on all uses of RestrictedInput to ensure that the number is fully
sanitized whenever the user leaves the field or submits it through a
button
/🆑

* Makes the restricted number input user friendlier

---------

Co-authored-by: Kashargul <[email protected]>
…S13#26565)

* blacklists disposal outlets from the cargo shuttle (#81532)

## About The Pull Request

livrah moment
they were seperate typepaths

## Why It's Good For The Game

allows for a CC exploit but still a bug

## Changelog
:cl:
fix: you may not put disposal outlets on cargo shuttle
/:cl:

Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>

* blacklists disposal outlets from the cargo shuttle

---------

Co-authored-by: jimmyl <[email protected]>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
…6564)

* Adds action & adjacent checks for mecha drill (#81530)

## About The Pull Request
- Fixes #81527. Adds loc checks for every iteration of
`do_after_mecha()` so if we move at any point (like in strife mode which
slips by this proc) drilling stops. This calls `action_checks()` which
uses power & does other integrity checks for every drill iteration like
it should
- Stops the mecha drill from using power & doing other checks if the
target cannot be drilled

## Changelog
:cl:
fix: mecha drill won't use power & do other checks if the target cannot
be drilled.
fix: mecha drill will stop drilling if the mech moves even without
changing direction. Also will use power & check other conditions every
drill cycle.
/:cl:

* Adds action & adjacent checks for mecha drill

---------

Co-authored-by: SyncIt21 <[email protected]>
)

* Gibbing a Security Officer produces Pig Meat (#81300)

## About The Pull Request

Ports the applicable half of
Bubberstation/Bubberstation#526 here and makes
it apply to every member of security, sans Detective.

## Why It's Good For The Game

Lore accuracy is a very good thing.

## Changelog
:cl: Cursor
add: Security Officers are now Haram.
/:cl:

* Gibbing a Security Officer produces Pig Meat

---------

Co-authored-by: Cursor <[email protected]>
…t-SS13#26562)

* BBQ ribs can be grilled & adds qdel checks for grills (#81536)

## About The Pull Request
- Fixes #81511. BBQ ribs can be grilled again and takes anywhere between
30 to 40 seconds to get proper grilled ribs or turn into a mouldy mess.
20 seconds would only yield lightly grilled ribs and that's not good.
- Grill checks if the item got deleted to avoid runtimes. Also cook time
is set based on the individual items type & not a constant of 20 seconds

## Changelog
:cl:
fix: Grill checks if the item got deleted to avoid runtimes. Also cook
time is set based on the individual items type & not a constant of 20
seconds
fix: BBQ ribs can be grilled on a grill but now takes anywhere between
30 to 40 seconds to get proper smoked ribs and not lightly smoked ribs
or turn into a mouldy mess on a girddle. Delicious.
/:cl:

---------

Co-authored-by: jimmyl <70376633+mc-oofert@ users.noreply.github.com>

* BBQ ribs can be grilled & adds qdel checks for grills

---------

Co-authored-by: SyncIt21 <[email protected]>
Co-authored-by: jimmyl <70376633+mc-oofert@ users.noreply.github.com>
* Traitor Traitor Panel Fixes (#81521)

## About The Pull Request

- Fixes #81514
- Setting TC checked for `value && isnum(value)` which was dumb when
`value` could be `0`.

- Removing Traitor auto-takes uplink from the mob

- Removing Uplink now removes just the uplink code from memory, rather
than all memories

## Changelog

:cl: Melbert
admin: You can now set someone's TC to 0
admin: Removing Traitor from automatically removes the uplink from them
admin: Removing Uplink from someone no longer wipes ALL of their
memories
/:cl:

* Traitor Traitor Panel Fixes

---------

Co-authored-by: MrMelbert <[email protected]>
* airlock code cleanup

* airlock overlays

* support for epsilon

* Update status_display.dmi

* fire

* firedoor mutable/emissive

* Update airlock.dm

* fix shuttle/titanium

* Update airlock.dm

* Update airlock.dm

* other missing airlock types

* Update metal_overlays.dmi

* Update metal_overlays.dmi
* probability bsminer change

* change doc
@ORCACommander ORCACommander merged commit 90b1647 into master Feb 19, 2024
17 of 25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants