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

A10 #35

Merged
merged 119 commits into from
Jan 13, 2024
Merged

A10 #35

merged 119 commits into from
Jan 13, 2024

Conversation

depoz0
Copy link
Owner

@depoz0 depoz0 commented Jan 13, 2024

A10

depoz0 and others added 30 commits January 7, 2024 19:04
…0 times a life tick or something (tgstation#80842)

Heretic's weeping painting causes everyone who sees it to hallucinate
everyone else as heretics. So it caused this hallucination every 5 life
ticks.

Which means every 5 life ticks it would call GFI for every mob in view. 
And like everyone on the station would get this effect. 

So everyone on the station is now hallucinating every mob in view is a
heretic and it's calling GFI every time.

So yeah we should probably cache this.
## About The Pull Request

Fixes tgstation#79954

Turns out the cause of cameras breaking was something weird with how
Byond determined the CENTER location for screen_locs on secondary popup
maps like cameras and the spyglass. This can be remedied by manually
using the LEFT,TOP position for the plane relays. However LEFT,TOP
breaks the views for clients 1614 and below so I included a jank
solution that should allow any client up to this point have the screen
displayed correctly

### 515.1609 views working

![dreamseeker_nolb8BLgRb](https://github.com/tgstation/tgstation/assets/46236974/e155c9c3-12c0-4eb5-a4a6-4e3f09dc456d)

### 515.1623 views working

![dreamseeker_I37Z4X04Hf](https://github.com/tgstation/tgstation/assets/46236974/e91b3bd8-ea05-40e7-ab20-6c48810f9879)
## Why It's Good For The Game

Cameras working passed 1614 means you can update the server. At some
point I suspect Lummox will fix the CENTER position on secondary maps
and when that happens it will likely break the current fix.


## Changelog
:cl:
fix: popup screen locs will work on clients >1614. Security cameras and
Spyglass will work
/:cl:

---------

Co-authored-by: SyncIt21 <[email protected]>
Co-authored-by: LemonInTheDark <[email protected]>
## About The Pull Request

Namely this. 


![image](https://github.com/tgstation/tgstation/assets/51863163/c6171a4e-afd3-4c07-8a96-1952ef76a3df)

## Changelog

:cl: Melbert
fix: Carps now migrate slightly better, probably. 
fix: And Poly now talks better, probably. 
/:cl:
## About The Pull Request
Caused by tgstation#80784. Component is using localstate as a global. This should
eventually be refactored
## Why It's Good For The Game
Fixes tgstation#80854 
## Changelog
:cl:
fix: Medical records console should be useable again
/:cl:
)

juke refuses to compile dm if it thinks nothing changed.

juke doesn't have a way to bypass this and force a given target to
compile (this is a complaint for another repo)

There are dm files inside of this folder that are compiled in.
## About The Pull Request

THEY PRODUCE IMAGES ANYWAY WE CAN JUST COPY THE MA

AHHHHHHHHHHH
… the pilot (tgstation#80844)

## About The Pull Request
Moves parent call for mech bullet_act() to after the enclosed and
occupant check, so that the rest of the proc has a chance to send the
damage to the pilot
## Why It's Good For The Game
Bugfix.
## Changelog
:cl:
fix: Ripley MK-Is and Paddys now correctly make incoming projectiles hit
the pilot again.
/:cl:
## About The Pull Request

Fixes unencoded announcements doing nothing because everything's
indented one tab in.

## Changelog

:cl: LT3
fix: Unencoded server admin announcements will now actually broadcast
/:cl:
…tation#80856)

## About The Pull Request

Fixes tgstation#80851 
Fixes tgstation#73622

Thanks to iprice for bringing this to attention and Isratosh for
assistance on Sybil.

This PR removes some (hopefully) redundant
if(!SSticker.HasRoundStarted()) checks which prevented roundstart mobs
from getting added to the living players list and pre-roundstart
observers from being added to the observers list.

This affected the ability for midround antagonists with a minimum
population requirement to spawn when they should have been able to,
pre-roundstart observers could not get polled for ghost roles, and some
other silliness regarding antagonists which considered the living
station population.

Nobody is really sure why this check was here in the first place outside
of some sanity check with an unknown purpose. The only thing it would
impact at one point was regal rats, but you can't play as regal rats
pre-roundstart anymore, and even then they should be counted amongst the
living players of the round, no? Since players can spawn in before
roundstart only with admin goofiness now, hopefully removing these
checks won't break anything.

## Why It's Good For The Game

This was preventing pretty much any midround antagonist from being
picked to spawn outside of Sleeper Agents in most cases. Also,
pre-roundstart observers should have access to midround antags and other
observer-related activies.

## Changelog

:cl:
fix: Dynamic midround rolls will properly consider roundstart players as
part of the living population again, allowing antagonists with a minimum
population value to spawn when they should be able to.
fix: Players who observe before roundstart can be considered for
midround ghost roles again.
fix: Some antagonists which had elements that scale with living station
population now function properly again.
/:cl:
## About The Pull Request

Human heretic monsters (like the husked ones) can now drink the heretic
reagent and heal from it like heretics can, rather than dying.

## Why It's Good For The Game

I assume it is unintentional that a reagent for heretics kills heretic
allies, especially when they can already do so much like using their
knives and even abilities.
It's noob bait at best since people will assume that since they are also
heretics, they would heal from the same sources as heretics do.

## Changelog

:cl:
fix: Eldritch reagent (the one that heals heretics) now heal heretic
monsters rather than kill them.
/:cl:
…n the mag like that doesn't make much sense. (tgstation#80796)

## About The Pull Request
So, the misfiring proc (`blow_up`) can trigger even when the shot is
aimed at oneself, which is what the proc does. It also tries to loop
through every loaded projetile in the magazine when you only need the
chambered round, which is the one we're going to fire anyway. It's...
just plain dumb and can freeze your game for a fair bit.

## Why It's Good For The Game

![immagine](https://github.com/tgstation/tgstation/assets/42542238/f449e6ac-6fc5-4677-b409-c0e67ad3c137)

## Changelog

:cl:
fix: Fixed misfiring for firearms like tinkered detective revolvers.
/:cl:
## About The Pull Request
This fixes an issue caused by a class component and a pseudo hook called
useState.
The screen works now.

It's also terribly overdue for a refactor, which I'm working on after
looking at it. As a general rule I think tgui interfaces should keep it
under 500 lines. This one is 1203. I want to fix it before I do anything
else to it for file diff reasons.
## Why It's Good For The Game
Fixes tgstation#80850
## Changelog
:cl:
admin: Fixed the bluescreen in the centcom pod launcher.
/:cl:
## About The Pull Request

I don't know when this happened or why but this makes the PTech vending
machine sell regular PDAs now instead of Command ones.

## Why It's Good For The Game

PDA replacement should not be giving you all of Command's tablet apps.

## Changelog

:cl:
fix: The HoP's cartridge vending machine now sells regular PDAs instead
of base command ones.
/:cl:
I found these 2 foods in the mexican section that requires a bowl to
craft the food, but doesn't drop the bowl upon being eaten. This quickly
fixes that by making the bowl the trash item like every other instance
of this.
## About The Pull Request
Okay so turns out, the only thing stopping the exterior sm chamber from
being shut down by a grid check are the filters being marked as
critical. There's SUPPOSED to be an area based check, but that wasn't
being set up properly, so it only protected a single area, no subtypes.

Beyond fixing the very rare case that the sm room becomes vulnerable
when the filters are removed/replaced, the atmos engine and ai sat foyer
are also now protected. AI upload is NOT protected.

Also, I don't believe it has any impact now that the area check is
working, but I've made sure that the canister filters are also marked as
critical- They were already on all but northstar and birdshot.

Fixes tgstation#80852
## Why It's Good For The Game
fix bug, throw insect into sm
## Changelog
:cl:
fix: Certain areas are now properly protected against grid check. Namely
the supermatter should consistently be protected.
/:cl:
…on#80862)

## About The Pull Request

Fixes tgstation#78739, caused by
broken logic in
`/datum/heretic_knowledge/codex_cicatrix/recipe_snowflake_check`.

This is my fix at
Monkestation/Monkestation2.0#881 ported
upstream.

## Why It's Good For The Game

Because it's very inconvenient when the game says you can use X to craft
Y, when in reality it doesn't work due to a bug.

## Changelog
:cl:
fix: Fixed the Codex Cicatrix always requiring a dead body, despite the
description saying leather or a hide would work too.
/:cl:
## About The Pull Request

Fixes Lionhunter Rifle being inaccessible to all paths but Rust and
Blade.

Fixes certain key lock knowledges being inverted. 

## Changelog

:cl: Melbert
fix: Lionhunter Rifle is now available at the same point as Mawed
Crucible, making it available to all paths again.
fix: Lock knowledge now goes the correct order. Mark -> Ritual -> Unique
item, rather than backwards.
/:cl:
…r own module storage window (tgstation#80835)

<!-- 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
Adds a check against picking up objects with a `loc` of
`/obj/item/robot_model` (which is where inactive borg modules go). Also
adds a check against picking up nodrop items.

Also reorganizes the relevant proc to be IF > Early Return, rather than
IF/ELSE
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game
Fixes tgstation#80074
Probably also fixes tgstation#77156
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

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

:cl:
fix: The various borg apparatuses can no longer pick up other internal
borg tools.
/: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. -->
)

## About The Pull Request

Adds several very-long or obtuse typepaths into the fancytype menu. 

Including, but not limited to: 

- Jumpsuit, so you can type `spawn Jumpsuit`

![image](https://github.com/tgstation/tgstation/assets/51863163/9a38f788-b724-4e72-8754-471b15afc38d)

- Modsuit, so you can type `spawn Modsuit`

![image](https://github.com/tgstation/tgstation/assets/51863163/8a333ca0-991d-4953-b523-f7d47b33c467)

- And Medipens, so you can actually see what medipens you are spawning

![image](https://github.com/tgstation/tgstation/assets/51863163/f4a89353-b0ca-4fe6-805b-878c49dcbd9f)

## Changelog

:cl: Melbert
admin: Several types are now more accessible via the "spawn" verb (and
friends), meaning you can type 'Spawn" Modsuit' or 'Spawn "Jumpsuit' in
the command bar and it'll just give you a list of modsuits or jumpsuits
to pick from.
/:cl:
## About The Pull Request
No need to create a separate var called `contents_icon_state` when we
already have `base_icon_state`. Save some memory from creating an extra
var

## Changelog
:cl:
code: smart fridge content overlay now uses `base_icon_state` instead of
a separate var
/:cl:
…station#80824)

## About The Pull Request
- Fixes tgstation#80806

Was a problem with microwaves in general & not just with the wireless
version.


## Changelog
:cl:
fix: ejecting cells from microwaves via ctrl click now requires player
proximity.
/:cl:
…80817)

`Flaky test create_and_destroy: /obj/item/organ/internal/ears hard
deleted 1 times out of a total del count of 495`
->
`Flaky hard delete: /obj/item/organ/internal/ears`

`Flaky test monkey_business: Invalid timer: Timer: Timer: 2433
([0x2100859b]), TTR: 328041, wait:2 Flags: TIMER_CLIENT_TIME,
TIMER_STOPPABLE, callBack: [0x2105a831], callBack.object:
/datum/looping_sound/showering[0x210085b4](/datum/looping_sound/showering),
callBack.delegate:/datum/looping_sound/proc/start_sound_loop(), source:
code/datums/looping_sounds/_looping_sound.dm:220Prev: NULL, Next: NULL,
SPENT(328041), QDELETED, NO CALLBACK world.time: 942.5, head_offset:
600, practical_offset: 686, REALTIMEOFDAY: 328041`
->
`Flaky test monkey_business: Invalid timer:
/datum/looping_sound/proc/start_sound_loop() on
/datum/looping_sound/showering`


I will close every flaky test report with these patterns so that they
are repopulated with the new deduplicated names.
… Heretics, you now sacrifice Null Rods, with a caveat. (tgstation#80583)

## About The Pull Request

Merry Christmas, I bring Chaplain code. 

This PR reworks how cultists obtain the bloody bastard sword. 

Instead of sacrificing a Heretic, you gain the bastard sword by
sacrificing a Null Rod that has been used by a holy person to spill
cultist blood.

You can also sacrifice a Null Rod to turn it into a cult blade it if
hasn't spilled any blood, as a means of destroying it.

- Putting a Null Rod over an Offer rune with
   - 0 or 1 cultist crits / kills will transform it into ritual dagger.
   - 2 cultist crits / kills will transform it into longsword.
- 3 or more cultist crits / kills will transform it into the bastard
sword.

This effect does not apply to special null rod types like the Bow or
Scythe implant.

Heretics retain their innate cult stun resistance, and are still
un-convertable.

## Why It's Good For The Game

- Allowing the Cult to get multiple of these things is horrible. 
   - This puts a soft-cap on it to 1 under most circumstances.
- This makes obtaining the sword less incredibly easy. 
- Heretics require a lot more time and effort to get equipped to pose a
passing chance fighting cultists. As a consequence, it's dead easy to
obtain: `I try to convert a guy 10 minutes into the round, they glow
green, I stab them to death with my dagger. They can do nothing to
defend themself. Free sword.`
- Instead, we put it behind the chaplain, who more often than not is
protected by security.
- Additionally, we put it behind the requirements that the chaplain is
*robust*: a chaplain that has been killing cultists actively.
- This also serves as a "comeback" mechanic, as if a chaplain has been
ripping and tearing through your ranks, but you manage to take them
down, you are rewarded with a strong weapon.

Honestly I would prefer if we straight up removed the sword (or... maybe
nerfed it) but improve, don't remove etc.

## Changelog

:cl: Melbert
balance: Blood cultists can now convert a Null Rod into a cult weapon on
an offer rune. The strength of the weapon it is converted into depends
on how many cultists the Chaplain crit / killed with it. At five or
more, it will turn into a Bastard Sword. Note, sacrificing someone
holding a Null Rod will automatically convert it after they are gibbed.
balance: Heretics no longer produce a Bastard Sword upon cult
conversion. They are still immune to cult stun and cannot be converted
by blood cultists.
/:cl:
comfyorange and others added 29 commits January 12, 2024 12:41
## About The Pull Request
This implements a new popper library which seems to handle poppers much
faster.

Updates documentation and adds prior documentation to on dropdown hover
effects.

![image](https://github.com/tgstation/tgstation/assets/42397676/b06729f4-1bad-4b9a-a6b4-a7fe4d2b16cd)

This is a fairly complex issue, if you want to read about it:

<details>
<summary>More info</summary>

When I first rebuilt dropdowns and poppers, I tried using this library.
However, doing so had a visual bug which the original dropdown was using
a hack for:

```tsx
      // HACK: We don't want to create a wrapper, as it could break the layout
      // of consumers, so we use findDOMNode.
      // This is usually bad as refs are usually better, but refs did
      // not work in this case, as they weren't propagating correctly.
      // A previous attempt was made as a render prop that passed an ID,
      // but this made consuming use too unwieldly.
      // Because this component is written in TypeScript, we will know
      // immediately if this internal variable is removed.
      //
      // eslint-disable-next-line react/no-find-dom-node
      const domNode = findDOMNode(this) as Element;
      if (!domNode) {
        return;
      }
```

I thought I could skirt it by keeping the portal rendered but the
content inside conditionally rendered, but doing so created mass lag as
each popper was still rendering invisible elements. This is probably not
an issue for modern browsers, but tgui does not like this.

The alternative is still hacky but the performance is much better. I
tested this on a custom UI with 30 dropdowns and the scrolling/fps is
much, much smoother.

</details>

## Why It's Good For The Game
Fixes tgstation#80878
## Changelog
:cl:
fix: Dropdowns should be more performant
/:cl:
## About The Pull Request

Ensures `/obj/projectile/moon_parade` is actually handing living mobs
when hitting things.


![image](https://github.com/tgstation/tgstation/assets/51863163/4a0a1c33-8fc0-43ae-9d3d-29f5334a61d6)


![image](https://github.com/tgstation/tgstation/assets/51863163/463ad14a-d460-4f28-a08b-f591a019aacd)

## Changelog

:cl: Melbert
fix: Lunar Parade has the potential to break less. 
/:cl:
## About The Pull Request

See tgstation#80673 
I took a nap and got an idea how to make it better, so here we are

Less snowflake code, very robust, very good

Technically runs way more checks so it is slower but eh I believe it's
worth it in this case

Fully tested, it works as it should

## Changelog
:cl:
code: The check that prevents your stuff from dropping when you have
robotic parts is now more robust
/:cl:
…k lighting on that tile for the rest of the round (tgstation#80876)

## About The Pull Request

See title
## Why It's Good For The Game

1. Its a bit odd that the rods are still there and on top of the new
tile you placed, considering you were build on top of them.
2. Because building didn't use place on top, the lighting on the tile
would be broken and made entirely black for the rest of the round.
Slightly annoying when you're constructing something on top of it!
## Changelog
:cl:
qol: The heat-proof catwalk made by heat-proof rods will go away when a
tile is placed on it, rather than sticking around and needing to be
removed manually
fix: The lighting will not irreparably break on tiles where plating was
placed on lava-proof catwalks
code: Some single letter variables and the structure of the code around
placing tiles on lava-proof catwalks has been improved
/:cl:
…gstation#80877)

## About The Pull Request

Actually moves the rotation part of the code under the check for if the
component is supposed to rotate things
## Why It's Good For The Game

Despite setting the variable for rotating stuff to no, the component
would still rotate stuff, this is bad
## Changelog
:cl:
fix: The deployable component will now actually stop rotating things
when the variable to not do that is set
/:cl:
## About The Pull Request
This pull request fixes two things. First, it moves the behavior for
setting your account id from right click (shared with withdrawing
credits) over to Alt-Right click instead.
Second, this pull request fixes contextual screen tips for the Id card,
explaining how to set a bank account on a new card as a result.

## Why It's Good For The Game

This fixes tgstation#68351. Additionally he early return on add_context was
blocking all screen tips from appearing. It improves the readability of
ID cards by having the screen tips back, while also correctly splitting
two very distinct behaviors into separate hotkeys that weren't available
at the time we moved blank ID cards into having blank savings accounts.

## Changelog

:cl:
qol: ID cards now set their accounts with Alt-Right click.
fix: ID cards now once again have contextual screen tips showing what
buttons do what actions.
/:cl:
…produce their intended reagents (tgstation#80874)

## About The Pull Request

Crafting recipes now have an arg that decides if crafting results will
retain their starting reagents, or have ingredient reagents transferred
into them.

So, previously, crafting a specialty drink (lizard wine, candycorn
liquor) from the crafting menu would immediately empty the new bottle's
reagents and replace it with the ethanol used in the recipe.

Now, recipes can be prevented from modifying their result's reagents by
setting unique_reagents to TRUE (False by default. I don't know what
recipes really use this functionality but I wanted to preserve it for
everything but the drink recipes it interferes with.)

Bonus: This changelog entry I found from 3 years ago, apparently fixing
this same issue.


![image](https://github.com/tgstation/tgstation/assets/28870487/55d8f9d7-e3d7-41db-ace3-78156ffa3778)
## Why It's Good For The Game

Closes tgstation#80870. 

Makes some more reagents accessible again.
## Changelog
:cl: Rhials
fix: Specialty drinks crafted in the crafting menu will now create the
intended reagents, instead of containing the reagents used to craft it.
/:cl:
…btypes of that container, actually work again (tgstation#80882)

## About The Pull Request

During I think a semi-recent chem refactor, the variable that lets
reactions accept subtypes of their required container was made
non-functional. This is due to a little logic error in the check for
reagent containers, as it checked for the exact path of container
regardless of what the variable said.
## Why It's Good For The Game

If a variable says it should do something, it should actually do that
thing instead of just nothing
## Changelog
:cl:
fix: The "required_container_accepts_subtypes" variable on chemical
reactions now actually works again
/:cl:
## About The Pull Request

Makes some minor changes to Tramstation's power/disposals/distro, fixing
a few issues.

- Tram APCs now have consistent airlock access, and are visible at all 3
stations. This should reduce the frequent 'tram broken' with no apparent
visible issue
- Power/disposals adjusted to not be running through walls in central
station level
- East station APC will no longer be destroyed when the tram crashes

## Changelog

:cl: LT3
fix: Tramstation east APC will no longer be destroyed when the tram
crashes
qol: Tramstation central power and disposals moved out of the wall
/:cl:
…tation#80918)

This will make ci more than 30 seconds faster to start the game for unit
tests thanks to [ID:2906744](https://www.byond.com/forum/post/2906744)

---------

Co-authored-by: Zephyr <[email protected]>
Изменена одна клетка на решётку.
@depoz0 depoz0 merged commit df2a729 into master Jan 13, 2024
36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.