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 mountain do not lick #538

Merged
merged 306 commits into from
Mar 18, 2024
Merged

Conversation

RogueStationAI
Copy link

No description provided.

SkyratBot and others added 30 commits March 7, 2024 08:57
* Removes weakref in forensics datum (#81751)

## About The Pull Request

This doesn't need to use weakrefs, it's a fairly easy to manage
relationship, when the atom goes the forensics goes

* Removes weakref in forensics datum

---------

Co-authored-by: MrMelbert <[email protected]>
Co-authored-by: Pinta <[email protected]>
* Machine fixes

* wrong name on this

* Revert "Machine fixes"

This reverts commit e3fca7d.

* I need to rerun this

* there we go

* Extra updates, split up into two just in case
…lves (Skyrat-SS13#26791)

* 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
:cl:
fix: fixes ore vent spawned wolves being untammable
/:cl:

* fix ore vents spawning the wrong wolves and remove simple wolves

---------

Co-authored-by: Ben10Omintrix <[email protected]>
…ts the max length (Skyrat-SS13#26795)

* 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

:cl:
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.
/:cl:

* Fixes tgui text input trimming the last char if the input hits the max length

---------

Co-authored-by: Ghom <[email protected]>
… tower (Skyrat-SS13#26799)

* [no GBP] (webedit) removes a nanomachine pizza box from meat tower (#81870)

## About The Pull Request
This is a webedit and on my phone
Removes a nanomachine pizza from the chef deathmatch map

## Why It's Good For The Game
Fixes #81860
## Changelog
:cl:
del: Removed a nanomachine pizza from the deathmatch meat tower map that
allowed you to become a borg
/:cl:

* [no GBP] (webedit) removes a nanomachine pizza box from meat tower

---------

Co-authored-by: jimmyl <[email protected]>
* 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

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

---------

Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>

* Blesses the codebase with Blahaj

---------

Co-authored-by: Thedragmeme <[email protected]>
Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@ users.noreply.github.com>
* 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

* Fixes forensics hard del

---------

Co-authored-by: Bloop <[email protected]>
…ion (Skyrat-SS13#26803)

* 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
:cl:
fix: Plexagon Access Management actually updates the shown template list
on authentication, avoiding needing to refresh/reopen/somesuch the
program manually.
/:cl:

* Fix access management program not updating on ID authentication

---------

Co-authored-by: _0Steven <[email protected]>
* 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
:cl:
qol: Extended the metric prefixes.
/:cl:

* Extends the metric prefixes.

---------

Co-authored-by: Pickle-Coding <[email protected]>
* adds EVA to common access (#81791)

## About The Pull Request

HoP (or anyone with id console access) can give EVA access to
non-command crewmembers

## Why It's Good For The Game
Its a bit weird that the HoP can't give EVA access to non-command
crewmembers since people always tide in or ask the AI or a head of staff
to open the shutters for them when they plan on exploring space, Also
this gives the HoP more stuff to do

## Changelog
:cl:
qol: EVA can be given now in common access slots for non-command
crewmembers.
/:cl:

* adds EVA to common access

---------

Co-authored-by: starrm4nn <[email protected]>
* Fixes that one id card context runtime (#81882)

## About The Pull Request

tgstation/tgstation#80906 (comment)

* Fixes that one id card context runtime

---------

Co-authored-by: MrMelbert <[email protected]>
…e AllImmobility procs now adjust unconscious (Skyrat-SS13#26809)

* 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
:cl:
code: Chem stun reductions are now applied more consistently.
fix: Chem stun reductions should now more consistently apply to
unconsciousness.
/:cl:

* Chem stun reductions now all use AdjustAllImmobility, and the AllImmobility procs now adjust unconscious

---------

Co-authored-by: Nick <[email protected]>
…kyrat-SS13#26811)

* Curtains behave like curtains should, by not being a wall (#81843)

## About The Pull Request
This has bothered more for far too long that curtains suddenly become
solid objects instead of, well, behaving like curtains in any form do
and just bend out of your way. They function the same from an opacity
POV but i just removed the density toggle so they'll always allow
passthrough.

![image](https://github.com/tgstation/tgstation/assets/22140677/9311242f-fb5d-4640-b7f3-82ad243133f2)

![image](https://github.com/tgstation/tgstation/assets/22140677/fd3d5a5d-8458-4595-9e2e-2b83426d8e61)

## Why It's Good For The Game

You can have your privacy and have realistic curtains

## Changelog
:cl:Zergspower
qol: Curtains and shower curtains are no longer solid objects that defy
common sense
/:cl:

* Curtains behave like curtains should, by not being a wall

---------

Co-authored-by: Zergspower <[email protected]>
* 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
:cl:
add: Wheat and meatwheat can now be worn in the mask slot. Farmers
rejoice!
/:cl:

* Makes wheat and meatwheat wearable

---------

Co-authored-by: Nick <[email protected]>
Skyrat-SS13#26813)

* Adjusts some of the contraband weights for Contraband Crates. (#81771)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

This makes getting Contraband Plus (the better stuff with more
interesting effects), slightly higher in probability out of contraband
crates.

It also removes the completely redundant narcotics roll, and the truly
awful permabrig contraband roll, from Contraband Plus.

Some of the more interesting narcotics are now directly in Contraband
Plus.

## Why It's Good For The Game

The weights were a little uninteresting. You rarely if ever saw the
effects of the contraband crate change with the current values. It was
kind of lame to see a shiv in a contraband crate knowing that it was a
wasted Contraband Plus roll. This hopefully stops that from happening
too often.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

:cl:
balance: Adjusts the values and contents of the Contraband Crate's item
loot table.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! You can put
your name to the right of the first :cl: if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: san7890 <the@ san7890.com>

* Adjusts some of the contraband weights for Contraband Crates.

---------

Co-authored-by: necromanceranne <[email protected]>
Co-authored-by: san7890 <the@ san7890.com>
SkyratBot and others added 26 commits March 16, 2024 22:19
Skyrat-SS13#26893)

* You can now buy double barrel shotgun from the goodie section (#81897)

For the absurd price of 1,800 credits, and a weapon permit, the double
barrel shotgun can be yours!

* You can now buy double barrel shotgun from the goodie section

---------

Co-authored-by: projectkepler-RU <[email protected]>
…haste buff) (Skyrat-SS13#26914)

* Ice cream now gives a chilling food effect (plus small food haste buff) (#81719)

## About The Pull Request
We have a `crafted_food_buff` in the code meant for specific food buffs
(and perhaps one day, debuffs) that has gone unused ever since it was
created during the 'Foodening' PR.

Anyway, yeah, this PR takes the fire step to implement it with ice cream
and other frozen treats.

Frozen treats (all food found in the `food/frozen.dm` file) have it by
default. Other ice cream holders such as waffles cones (and now regular
waffles too!) can aquire it when filled with ice cream. Using the ice
cream vat also adds the 'Chef Made' trait now, which is required for
food effects to happen.

Also very slight food effect refactor. There's no need to have five
different alert screen objects when only have to switch icon states.

This PR also adds an action speed modifier to the generic 'haste' food
effect. I'm confident the original creator would have done that too, but
action speed modifiers aren't as well-known.

## Why It's Good For The Game
People tend to make one feature, call it a day and then move on to the
next. Food effects are nice, however they're barely implemented, and I
don't like food being all the same-ish in the end.

## Changelog

:cl:
add: Ice cream and frozen treats now have a chilling effect.
add: You can add a scoop of ice cream on waffles.
balance: added an action speed modifier to the generic food haste effect
(you do things, and not just run, an itsy bitsy faster)
/:cl:

* Ice cream now gives a chilling food effect (plus small food haste buff)

---------

Co-authored-by: Ghom <[email protected]>
…13#26923)

* Adds checks and set to modsuit access and locking (#82011)

Lets you un/lock your modsuit. Also alerts you when you cant unlock it
because you don't have the access.

* Adds checks and set to modsuit access and locking

---------

Co-authored-by: Bilbo367 <[email protected]>
* Removing a job now removes its positions

* Update departments.dm

---------

Co-authored-by: John Willard <[email protected]>
Co-authored-by: jjpark-kb <[email protected]>
* Fix tgui dev server on Windows (#82032)

## About The Pull Request
Fixes starting the tgui dev server on Windows machines.

Currently on Windows when starting the tgui dev server, it will be
unable to find the Byond cache at any of the predefined paths it
searches, and resort to using the registry even if one of the predefined
paths should successfully locate it. Then, it will fail to find the tmp#
folder inside that cache folder even if it exists.

The reason is that on Windows, the glob package requires forward slashes
when you call its methods such as sync(), as documented in the glob
module's documentation:
>Note Glob patterns should always use / as a path separator, even on
Windows systems, as \ is used to escape glob characters. If you wish to
use \ as a path separator instead of using it as an escape character on
Windows platforms, you may set windowsPathsNoEscape:true in the options.
In this mode, special glob characters cannot be escaped, making it
impossible to match a literal * ? and so on in filenames.

The function being used to assemble the path, node's path.resolve(),
uses backslashes if you call it on a Windows platform. It does not
accept any arguments to alter this, nor are there any
delimter-conversion functions in the path package. There is an
alternative to change the delimiter, forcing POSIX-style path.resolve()
by calling path.posix.resolve(), however this removes the drive letter
and does not work as a valid path on Windows.

For example:
What we need to pass to globPkg.sync():
`C:/Users/SomeName/Documents/Byond/cache`
What path.resolve() returns: `C:\Users\SomeName\Documents\Byond\cache`
What path.posix.resolve() returns:
`/Users/SomeName/Documents/Byond/cache`

Unfortunately there is not a method in the node path module to return
what we need. Instead, we use the workaround provided in glob's
documentation and add the windowsPathsNoEscape option. This COULD have a
negative effect when searching for * and ? literals, however a search of
resolveGlob() callers shows that none of them do this. * and ? in all
callers is intended to be a wildcard, not a literal, so this won't have
any impact on anything.
## Why It's Good For The Game
Helps development efforts for developers using Windows.

* Fix tgui dev server on Windows

---------

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

* Fixes sec computers having infinite distance

* Update camera.dm

---------

Co-authored-by: John Willard <[email protected]>
Co-authored-by: jjpark-kb <[email protected]>
* Deathmatch modifiers

* Update supplypod.dm

---------

Co-authored-by: Ghom <[email protected]>
Co-authored-by: jjpark-kb <[email protected]>
…-SS13#26926)

* Abilities with no owner control isnt given to ghosts (#82037)

## About The Pull Request

Actions that don't give the user control (so don't give them an action
button) will now no longer give them to ghosts either. Ghosts should see
the same information as the player when observing them. They don't need
to see guardian's protection mode and bileworm's spitting, for example.

## Why It's Good For The Game

Explained in the about the pull request already, ghosts should have the
same information as the player they are orbiting, not see the hidden
actions. It makes it annoying for contributors to have to manually set
every ability meant to not be seen by players to also not be seen by
ghosts.

## Changelog

:cl:
fix: Action abilities hidden from players are now not shown to observers
either.
/:cl:

* Abilities with no owner control isnt given to ghosts

---------

Co-authored-by: John Willard <[email protected]>
* Plasmamen become humans in the deathmatch (#82003)

## About The Pull Request

Does what #81629 intended by fixing a broken conditional.

## Why It's Good For The Game

People should be able to play the minigames.

## Changelog

:cl:
fix: Plasmamen will become human in the deathmatch so they don't
instantly die
/:cl:

* Plasmamen become humans in the deathmatch

---------

Co-authored-by: StaringGasMask <[email protected]>
Skyrat-SS13#26931)

* Fixes TextInputModal not updating state on consecutive inputs (#82018)

## About The Pull Request

Fixes an issue encountered on another codebase (VOREStation,
VOREStation/VOREStation#15831 ) where multiple
consecutive calls of tgui_text_input() within the same procedure inherit
the input value of the previous procedure call (such as in the following
example procedure:

```
  /client/verb/testing_tgui_text_input()
	  set name = "TESTING TEXT INPUT"
	  set category = "Debug"
	  set desc = "meh"

	  var/a = tgui_input_text(usr, "test 1 input", "testing", null)
	  to_chat(usr, "a is [a]")
	  var/b = tgui_input_text(usr, "test 2 input", "testing", "test 2")
	  to_chat(usr, "b is [b]")
	  var/c = tgui_input_text(usr, "test 3 input", "testing", "blabla")
	  to_chat(usr, "c is [c]")
```

Previous functionality will mean that the default text for input 2 and
input 3 will be null if submitting without changing the text. Changing
null for var/a 's default to any proper, non-empty string will cause b
and c to be a.

In event of actual user input, the same behaviour persists (test input
1's user input will become the default of test input 2's user input and
so forth

New functionality ensures that the default argument/placeholder prop is
used to populate the text input area even in consecutive calls)

This is achieved through a single-line edit of the TextInputModal.tsx in
the InputArea component call's props, creating a key={title} prop that
ensures consecutive text inputs will use different states.
## Why It's Good For The Game

There are times where multiple consecutive tgui_text_input() may be
justified. Although I see that in case of the issue example of
/client/proc/cmd_admin_create_centcom_report(), it was given a custom
input menu rather than consecutive input calls, certain
downstreams/adjacent codebases may have requiremens of backwards
compatibility that needs code that can default to default byond style
input windows.

I will admit, I do not know how useful this fix will be for TGStation
itself, but its implementation causes no negative repercussions and
fixes a bug experienced elsewhere. This will help ensure code parity.

This is an early upport of the fix we've applied on virgo
(VOREStation/VOREStation#15832)
## Changelog
:cl:
fix: fixed consecutive tgui text input inheriting user input from
previous input form within the same proc
/:cl:

* Fixes TextInputModal not updating state on consecutive inputs

---------

Co-authored-by: Runa Dacino <[email protected]>
…he wrong outfits (Skyrat-SS13#26932)

* [NO GBP] Fixes plasmaman nukeop reinforcements being given the wrong outfits (#82004)

## About The Pull Request

This updates the plasmaman species outfit registry to consider all
reinforcement outfits the game can pick for you. I mistakenly only
overwrote the base type of reinforcement costumes, meaning plasmamen
wouldn't actually be given a plasmaman outfit and would burst into
flames and die upon spawning.

Now, every reinforcement outfit redirects to the base plasmaman
reinforcement outfit, because making 5 new plasmaman variants of
existing outfits felt like an unwieldy solution.
## Why It's Good For The Game

I was told that plasmamen die when spawned in as nukie reinforcements.
They probably shouldn't be doing that.
## Changelog
:cl: Rhials
fix: Plasmamen nukie reinforcements are now properly given a
plasmaman-safe outfit.
/:cl:

* [NO GBP] Fixes plasmaman nukeop reinforcements being given the wrong outfits

---------

Co-authored-by: Rhials <[email protected]>
@ORCACommander ORCACommander merged commit a12ed28 into master Mar 18, 2024
26 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.