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

09.05.2024 merge upstream #257

Closed
wants to merge 98 commits into from
Closed

09.05.2024 merge upstream #257

wants to merge 98 commits into from

Conversation

Gaxeer
Copy link
Collaborator

@Gaxeer Gaxeer commented May 9, 2024

About The Pull Request

Merge upstream

actions-user and others added 30 commits May 7, 2024 00:20
…ion#83067)

## About The Pull Request

temporarily soulless bodies dont appear as soulless on medhud

like if you were playing deathmatch or something

## Why It's Good For The Game

getting revived is good

## Changelog
:cl:
qol: temporarily soulless (deathmatch, etc) bodies dont appear as
soulless on medhud
/:cl:
…on#83059)

<!-- 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
In the Electrical Maintenance area on Ice Box, there is a pair of SMESs
that are used for emergency power. One of the SMESs has a single, loose
power cable underneath it that does not connect to anything. It causes a
test to fail on the CI suite, so I made a PR to remove it.

The test in question:

![image](https://github.com/tgstation/tgstation/assets/110273561/9fac3846-46fe-474e-8d94-dfdbf82e31b8)

proof of testing:

![image](https://github.com/tgstation/tgstation/assets/110273561/48f76bde-1278-4b30-ad1d-3db0262dbbf4)
(Before)

![image](https://github.com/tgstation/tgstation/assets/110273561/74c199c5-9ca0-4fb9-878f-f38ed0317a1b)
(After)
It's GONE.
<!-- 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
I am annoyed by this single mapping error, and by resolving it, I have
fixed every issue with ice box and we will never need to touch Ice Box
again. (Looks at the camera)
<!-- 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: ReturnToZender (hitting delete on a power cable)
del: Single loose power cable in icebox maintenance
/: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
Changes a meter in Birdshot's atmospherics from layer 3 to layer 2, so
that it matches up with the distribution pipe its intended to monitor.
## Why It's Good For The Game
The meter will work better when its on the matching pipe layer.
## Changelog
:cl:
fix: A meter attached to distribution pipes in Birdshot's atmospherics
has been moved to the matching pipe layer.
/:cl:
## About The Pull Request

Per title

## Why It's Good For The Game

We can have things process only when they need to process

## Changelog
…no power cell inserted (tgstation#83091)

![image](https://github.com/tgstation/tgstation/assets/6209658/059c5647-55c2-4509-8cce-7bcb565f6070)


![image](https://github.com/tgstation/tgstation/assets/6209658/5f7c0335-fda1-4db7-b24e-99c9fbb5169c)

```
[2024-05-03 02:26:28.713] RUNTIME: runtime error: Cannot execute null.use().
 - proc name: draw energy (/obj/machinery/power/apc/proc/draw_energy)
 -   source file: code/modules/power/apc/apc_main.dm,709
 -   usr: null
 -   src: the Brig Entrance APC (/obj/machinery/power/apc/auto_name/directional/north)
 -   src.loc: the floor (66,117,2) (/turf/open/floor/iron)
 -   call stack:
 - the Brig Entrance APC (/obj/machinery/power/apc/auto_name/directional/north): draw energy(2565)
 - the Brig Entrance APC (/obj/machinery/power/apc/auto_name/directional/north): early process(2)
 - Machines (/datum/controller/subsystem/machines): fire(0)
 - Machines (/datum/controller/subsystem/machines): ignite(0)
 - Master (/datum/controller/master): RunQueue()
 - Master (/datum/controller/master): Loop(2)
 - Master (/datum/controller/master): StartProcessing(0)
 - 
```

```
[2024-05-03 02:08:31.047] RUNTIME: runtime error: Cannot execute null.use().
 - proc name: use energy (/obj/machinery/proc/use_energy)
 -   source file: code/modules/power/power.dm,180
 -   usr: null
 -   src: the disposal unit (/obj/machinery/disposal/bin/tagger)
 -   src.loc: the floor (51,156,2) (/turf/open/floor/iron)
 -   call stack:
 - the disposal unit (/obj/machinery/disposal/bin/tagger): use energy(100, 1, 0, 1)
 - the disposal unit (/obj/machinery/disposal/bin/tagger): process(2)
 - Machines (/datum/controller/subsystem/machines): fire(1)
 - Machines (/datum/controller/subsystem/machines): ignite(1)
 - Master (/datum/controller/master): RunQueue()
 - Master (/datum/controller/master): Loop(2)
 - Master (/datum/controller/master): StartProcessing(0)
 - 
```

Don't think this one has an issue report, but it's all over in the
runtime log.

Fixes tgstation#83106
…gstation#83087)

## About The Pull Request
Fixes tgstation#83035 - attached_circuit is not guaranteed to exist & we should
just pass the parent in that case.
## Why It's Good For The Game
Inducers no longer break permanently due to this issue.
## Changelog
:cl: ShizCalev
fix: Inducers no longer break completely after trying to charge a PDA
with them.
/:cl:

---------

Co-authored-by: Ghom <[email protected]>
Fun fact: This PR has been made a total of three (3) times because I
keep forgetting about it.

## About The Pull Request

The inspector's Fedora now uses regex. When saying commands, it is much
more generous on picking up trigger words, as it is now case insensitive
and ignores punctuation at the middle end as well as extra words.

For example, if the prefix is "go go gadget" and the prefix is "batong",
it will trigger with these phrases:
- Go go gadget... batong (Ignores punctuation after the prefix)
- Go go gadget batong! (Ignores punctuation at the end)
- Go go gadget batong bitch! (Ignores extra words at the end)
- Go go GADGET, BATONG (Ignores case)

Multiple items can also be deployed at once, if it is possible to put an
item in your hand. For example, you can assign two items to the same
word, and the first item will be put in your active hand and the second
would be put in your off hand.

## Why It's Good For The Game

Regex good. Removes infuriating situations where the entire phrase is
ignored because you didn't say it exactly, such as adding extra
punctuation or typing in all caps.

I tested this pretty extensively(tm) so it does work, and I tested some
dumb possible exploits as well and couldn't do them. Works with latest
version of /tg/.

## Changelog

:cl: BurgerBB
qol: The inspector's Fedora now uses regex. When saying commands, it is
much more generous on picking up trigger word.
/:cl:

---------

Co-authored-by: san7890 <[email protected]>
…rference (tgstation#82960)

## About The Pull Request

This touches up on the bitrunning ghost roles that come with some maps,
namely Corsair Cove and Syndicate Assault.

The gist of it is: Ghost role spawners and Digital Anomalies (the random
event boss mobs) are now restricted from entering the VDOM safehouse,
and other areas where critical equipment is stored.

Here's an example from Syndicate Assault -- The X-ed out area is
considered "out of bounds" for digital anomalies/ghost roles:

![image](https://github.com/tgstation/tgstation/assets/28870487/b0752dd4-102b-4b64-8c21-c100a58c1a96)

Additionally, this also fixes the matter of pirate ghost role spawns
creating their own antag datum/pirate team, which would carry into the
roundend report. Since these are no longer legitimate pirate spawners
and are now specifically designed spawners for virtual domains.

Naturally, emagging the server jailbreaks all of these restrictions and
notifies any virtual entities.

The new subtype of spawners should also be scalable enough that new
VDOMs should be able to implement new ghost role spawners with ease.
## Why It's Good For The Game

It's one thing to have sentient mobs to fight, which can shake up the
otherwise somewhat static nature of bitrunning maps, but when players
are tossing equipment, spawncamping, or otherwise making it impossible
for the runners to fight them it ends up being unfun for everyone
involved. You can't get into a good fight with a bitrunner avatar if
their only recourse is to wipe the map and everything (YOU) in it.

This ensures a level of fairness between the (typically vindictive)
ghost roles of a VDOM and the players.

Also, pirate spawns don't make a new pirate team/datum. That's one of
the fixes I was aiming for with this.
## Changelog
:cl: Rhials
balance: Virtual domain ghost roles can no longer enter the
safehouse/"equipment" areas of a domain.
fix: Pirate virtual domain ghost roles will no longer make a pirate team
antag datum.
/:cl:

---------

Co-authored-by: Jeremiah <[email protected]>
## About The Pull Request
Per request of MSO, drops the fallback icon generation for clients under
515.1635. Lootpanel warns about this anyways and you had ample time.


![image](https://github.com/tgstation/tgstation/assets/42397676/b7064b28-13b9-4cd1-ad99-33f3e665209b)

Saves some time from SSlooting.
## Why It's Good For The Game
Pushes players to use a better client
Saves some server cost from older clients
## Changelog
:cl:
fix: Lootpanel now requires 515.1635 to generate most icons. TG support
for 514 ended May 1. Update your client to fix the icons.
/:cl:
## About The Pull Request

Setting RD suplex skillchip as common chip. Adding Roboticist's
skillchip into RD. Skillchip's categories are global defines now

## Why It's Good For The Game

RD is literally the most skilled scientist and roboticist. CEO of all
Silicons. Why he doesn't have robo wires trait?
## About The Pull Request

Spies can now use other spies' uplinks.

## Why It's Good For The Game

Every other antagonist in the game has a recovery method for their main
gimmick or has their main gimmick baked into their mind and thus cannot
be taken from them. This sucks ass for spies because they have zero
recovery so they're left with the broken ass freeform objectives that
don't green or redtext that maintainers and admins told me were bad for
Families but are suddenly okay here I guess.

Spies being able to jack and use other spies' PDAs means you can now
recover your primary gimmick by tracking down other spies, which
improves spy gameplay and also discourages sharing loot.
…gstation/tgstation/actions/runs/8977813552/job/24657813451 the changelog workflow errors when theres nothing in the pr body, which causes a useless notification. now it should be fixed (tgstation#83122)
…3093)

Bro it's a different station with different wires!
## About The Pull Request

Firstly adds `var/datum/fish_source/fishing_datum` to
`/turf/open/water`, allowing a much easier way of adding lootpools to
water tiles, and sets its default to `/datum/fish_source/portal`

Secondly, adds a small pool for fishing in the metastation garden. This
sadly means Betsy had to move in with the chickens.

## Why It's Good For The Game

Should show more people that fishing actually exists, and give you
something more to do in the face of chaos and murder.


![image](https://github.com/tgstation/tgstation/assets/49160555/023ddebe-5938-402c-97af-d5def27069be)

This is mostly a test run. I plan on following up with more pools on
other stations if people like this one

## Changelog
:cl: @MrEmre12, @Majkl-J 
add: Fishing pool introduced to metastation garden
refactor: All water tiles now handle fishing through a unified
fishing_datum variable
/:cl:

---------

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

To see the wires in a photo of blueprints you first must squint at them.

## Why It's Good For The Game

Realism, a picture of blueprints taken from across the room makes it
difficult to see what's up

## Changelog

:cl: Melbert
balance: To see wires in photos of blueprints, you first must squint at
the photo.
/:cl:
ShizCalev and others added 25 commits May 8, 2024 19:24
…wings) (tgstation#83137)

## About The Pull Request

Pretty straightforward, the wing sprites were not updating on the mob
after calling `open_wings()`/`close_wings()`. Additionally I reduced the
time between opening/closing for the flap emote to 0.35 seconds. It
matches up more with the sound effect that way, and in my opinion look a
bit more like a proper flap should. 2 seconds was really long.

And finally functional moth wings will make the moth flap sound too! As
they should.


---

More codey stuff:

I slightly refactored the way sounds play to be more object oriented
adding a new proc for it:
`/obj/item/organ/external/wings/make_flap_sound()`. This will make it
easier for people to add different sound effects for other types of
wings beyond just moth ones, should they so desire.

## Why It's Good For The Game

Moths can rejoice in more ways to express yourselves!

<details><summary>Flap emote</summary>


![dreamseeker_KhEzxJaA4A](https://github.com/tgstation/tgstation/assets/13398309/d5b2ad6d-be62-4629-9c7f-4bb0523d8da3)

</details>

<details><summary>Wing emote</summary>


![dreamseeker_kuV1sMxHOB](https://github.com/tgstation/tgstation/assets/13398309/78f339d5-b28f-4cb6-885c-e16e649a89e3)

</details>

## Changelog

:cl:
fix: moths with functional/flight potion wings get an animation when
they *flap once again, and it makes a sound
/:cl:
## About The Pull Request
Adds screen tips for anchoring sm shard
## Why It's Good For The Game
I worry each time I go to click this thing
## Changelog
:cl:
fix: Supermatter shards now have screentips with a wrench in hand
/:cl:
## About The Pull Request

Now that we require Byond 515 we can make use of the sound pitch var
instead of frequency.
The advantage of this is that we can make a sound lower or higher
pitched without also changing its duration.

Before:


https://github.com/tgstation/tgstation/assets/7483112/ff61c130-788b-432e-93e8-56c6b6df42d4

After:


https://github.com/tgstation/tgstation/assets/7483112/c1c3d1d5-97fd-468e-9724-61fb6f9f3026


In some extreme cases with frequency, the sound would become incredibly
long. This no longer occurs.

## Why It's Good For The Game

I think it sounds better.

## Changelog

:cl:
sound: Lasers adjust their pitch as they run out of charge, rather than
frequency
/:cl:
## About The Pull Request

There is not much to this.
We make `toggle_icon` register an additional signal
`COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM` upon which we set the
alt-click usage context, and just add the `HAS_CONTEXTUAL_SCREENTIPS_1`
flag to the parent ourselves as we don't want the other effects of
`register_context()`.
## Why It's Good For The Game

Having working screentips is helpful.
## Changelog
:cl:
qol: Added alt-click usage context to toggle_icon component
/:cl:
…nts. The station return message specifies which prisoner returned. (tgstation#83132)

## About The Pull Request
The labour camp shuttle paroles the user when they complete their
points. The station return message specifies which prisoner returned.
## Why It's Good For The Game
People shouldn't be looking like fugitives after completing their work.
## Changelog
:cl:
qol: The labor camp shuttle properly sets people to parole after they
complete their work.
qol: The labor camp shuttle specifies which person returned to the
station.
/:cl:

---------

Co-authored-by: MrMelbert <[email protected]>
…83100)

## About The Pull Request

Currently, space heaters with their panel closed will always say they
are in Auto mode, even if that's not true. This PR changes it to display
the correct mode when the panel is closed.

Before:

![image](https://github.com/tgstation/tgstation/assets/44654353/d1d40493-8580-440f-b2ca-e047861b62a9)
After:

![image](https://github.com/tgstation/tgstation/assets/44654353/d29e93ff-160a-43e0-8699-1f578816ddfc)


## Why It's Good For The Game

It's annoying that space heaters lie about their current mode. The UI
should correctly identify the current mode of the heater, even if the
panel is closed.

## Changelog
:cl:
fix: space heaters now display the correct mode when the maintenance
panel is closed
/:cl:
…3081)

This uses a browser skin element to spy on the command bar and report
back to the server what verb is currently in it and how many characters
it has. it skips reporting if the text hasn't changed since the last
report.

im intentionally not providing the full text in the command bar to the
server, while designing the system so new verbs can be given typing
indicators by editing DM code, not html code.

The report rate is once a second but this could be lowered or tweaked.

Both the tgui say window being open and this system being active because
the command bar starts with `say "` is undefined behavior, mostly the
first one to end the indicator will just freeze indicators for the other
one until it too ends its current indicator session.

The system waits until something besides the `"` is in the argument to
say.

It is enabled for verbs `say`, `me`, and `whisper`.

I don't actually know if this is the case for tgui say. this is a one
line tweak anyways so let me know if this should be changed.

[(This pr closes a
bounty)](https://tgstation13.org/phpBB/viewtopic.php?p=726634#p726634)

:cl: MrStonedOne & Lilah Novi
add: Say commands typed in the command bar now trigger typing indicators
/:cl:

---------

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

Being sacrificed by a Heretic no longer applies an incurable brain
trauma that gives you a phobia of Heretic-associated items.
Instead it does the following things:

- Removes 2-4 of your organs and leaves them behind on the sacrificial
circle, replacing them with "corrupt" organs with negative effects.
- Gives you an unremovable "curse" debuff which will cause you to
immediately cough a random organ out of your chest if you attack or are
attack by the person who sacrificed you, **if they are wearing a Focus
at the time.**

Corrupt Organs can be removed via surgery, although doing so is
dangerous.
A removed corrupt organ will often either immediately explode for a
small (but not insignificant) amount of burn damage to everyone nearby,
or it will animate itself as a haunted object and be a general nuisance
until subdued.
A patient dosed with Holy Water can always have their organs removed
without consequence.
Chugging Holy Water will also suppress most of the negative effects of
your corrupt organs.

The effects of Corrupt Organs are as follows:
- **Eyes:** All Heretics **and also a selection of additional random
people** are completely invisible to you. You can still see their
runtext (or "hear") them, but they otherwise cannot be seen. And as you
can't see them you also cannot click on them.
- **Tongue:** When you speak, your language will sometimes be replaced
by "Shadowspeak", understood only by Curators and Nightmares. This is
less of an impediment during Halloween because of the friendly
Shadowpeople.
- **Liver:** When you drink something, it will add extra reagents to
your sip from a pool largely composed of alcohol and hallucinogens.
- **Stomach:** Your hunger will deplete significantly faster if you do
not regularly ingest blood. (Fun fact: Did you know that a drinking
glass full of blood automatically relabels itself "tomato juice"?)
- **Heart:** You will continue to be intermittently tormented by
frightening hands.
- **Lungs:** You will intermittently cough out dangerous or unpleasant
gases.
- **Appendix:** Very infrequently you will vomit out several hostile
worms.

Most of these effects aren't present while you're dodging the spooky
hands in the Mansus realm.
Plasmamen never have their lungs replaced because they'd immediately
start choking on their internals and that is annoying. Ethereals _do_
have their hearts replaced so may be surprised to find that they don't
respawn when killed if they don't get a new one.
I would haved called them Cursed Organs but the Cursed Heart already
exists.

## Why It's Good For The Game

Nobody enjoys the Heretic phobia from any angle.
Phobias suck to deal with in general. and while being scared of all
Heretic stuff from that point on is mildly flavourful it's not very
interesting.
This alternative hopefully provides a more interesting answer (which
should provide more storytelling and interaction with other people) to
the problems that the original change intended to address:
Making sure that nonlethal sacrifices still feel significantly bad
enough that you're not going to volunteer, and as an extra layer of
protection to ensure that someone you sacrificed functionally ceases to
be a threat to you.

## Changelog
:cl:
del: Being sacrified by a Heretic no longer gives you an incurable
phobia.
add: Being sacrificed by a Heretic will drop 2-4 of your organs on the
ground and replace them with "corrupt organs" with negative effects
which can be suppressed with Holy Water.
add: Players who have been sacrificed by Heretics will experience
additional and rapidly lethal consequences for attempting to fight
someone who previously sacrificed them, as long as that person is
wearing a focus.
/:cl:
## About The Pull Request
client deletion isn't the only way to leave a mob
## Changelog
:cl:
fix: fixed clients being seen as stuck doing tutorials in some cases
when changing mobs
/:cl:

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

## About The Pull Request
As it's said in title, the shuttle will not gib you now while you in
jaunt. This applies to a mage, a (s)laughter demon, an ash heretic and
anything that uses spell "jaunt" and its child classes.
## Why It's Good For The Game
I think it's pretty counterintuitive that you can't be harmed by
anything in the jaunt, including an explosion, but if you accidentally
end up on the tile where the shuttle arrives, it deletes you. So, this
PR closes this logical hole.
## Changelog
:cl:
fix: The shuttle will no longer delete you while you are in jaunt
/:cl:

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

Sometimes when you get a nonlethal instability consequence you will now
become crab

## Why It's Good For The Game

You should be abel to reach teh peak of evolution when messing with your
genetics

## Changelog

:cl:
add: Chance to become crab on nonlethal DNA meltdown
/:cl:
@Gaxeer Gaxeer reopened this May 10, 2024
@Gaxeer Gaxeer closed this May 10, 2024
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.