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

Upstream merge 07.02 #74

Merged
merged 88 commits into from
Feb 7, 2025
Merged

Conversation

larentoun
Copy link

@larentoun larentoun commented Feb 7, 2025

About the pull request

апстрим мерге

Summary by Sourcery

Update the security computer to use TGUI, add new survivor roles for Weyland-Yutani corporate security, and implement a chat reliability layer.

New Features:

  • Added a chat reliability layer to improve chat message delivery.

Tests:

  • Added unit tests for areas that require power.

Red-byte3D and others added 30 commits February 4, 2025 15:00
…cmss13-devs#8325)

# About the pull request

fixes cmss13-devs#6963


# Explain why it's good for the game

bugfix

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: You can no longer use telekinesis to grab paper from far away.
/:cl:

Co-authored-by: InsaneRed <[email protected]>
…#8329)

# About the pull request

You can now only fill extuingishers with non harmful chemicals

# Explain why it's good for the game

bugfix


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Extuingishers can no longer be filled by harmful chemicals
/:cl:

Co-authored-by: InsaneRed <[email protected]>
…etter vars (cmss13-devs#8332)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->

# About the pull request

fixes cmss13-devs#8326

# Explain why it's good for the game

bug fix


# Testing Photographs and Procedure
<!-- Include any screenshots/videos/debugging steps of the modified code
functioning successfully, ideally including edge cases. -->

<!-- !! If you are modifying sprites, you **must** include one or more
in-game screenshots or videos of the new sprites. !! -->

<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# 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
label your changes in the changelog. 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. -->
<!-- If you add a name after the ':cl', that name will be used in the
changelog. You must add your CKEY after the CL if your GitHub name
doesn't match. Maintainers freely reserve the right to remove and add
tags should they deem it appropriate. -->

:cl:
fix:Synthetic backpack light now properly turns off on death.
code: Removes some one letter vars from smartpack code.
/:cl:

<!-- Both :cl:'s are required for the changelog to work! -->

Co-authored-by: InsaneRed <[email protected]>
…#8341)

# About the pull request

see title

# Explain why it's good for the game

fix


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: fixed cas ammo's icons not updating after ammo transfer
/:cl:
# About the pull request

fixes cmss13-devs#8266


# Explain why it's good for the game

bugfix


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Mutated hive hugger icons work again.
/:cl:

Co-authored-by: InsaneRed <[email protected]>
# About the pull request
Fixes cmss13-devs#8320
# Explain why it's good for the game

bugfix

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Dead huggers can no longer be used to hug people
/:cl:

Co-authored-by: InsaneRed <[email protected]>
# About the pull request

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->
uniforms can no longer be removed if you are wearing armor
(stripping still works like usual this change only affects your own
character)

# Explain why it's good for the game
Closes cmss13-devs#1182 
2022 issue lmao

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Uniforms can no longer be removed if you are wearing a suit on top
of it
/:cl:

---------

Co-authored-by: harry <[email protected]>
# About the pull request

see title
Closes cmss13-devs#8113

# Explain why it's good for the game

directional explosions is an unintentional devastating nerf for
explosive ot rockets, this fixes that

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: fixed ot rocket's blast wave only going in one direction
/:cl:
…, again (cmss13-devs#8331)

# About the pull request

Fixes praetorian acid ball using plasma if you cancelled the do_after
unlike cmss13-devs#5486 whoever made that sucked
# Explain why it's good for the game

bugfix


# Testing Photographs and Procedure
<details>


![image](https://github.com/user-attachments/assets/e54c19a8-8c8a-4aba-aebc-c4e5530d7e4d)

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Praetorian's acid ball no longer uses plasma if you cancel / do not
use it.
/:cl:

Co-authored-by: InsaneRed <[email protected]>
# About the pull request
Fixes cmss13-devs#7198 

# Explain why it's good for the game
We are vending the ASO Jacket, not a bloodbag

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>


![image](https://github.com/user-attachments/assets/60ff79e0-7357-42d9-86c4-2b5b6034b04a)
</details>


# Changelog
:cl: Mikrel0712
fix: ASO Jacket icon in the vendor now shows up as the actual jacket
instead of a bloodbag
/:cl:
# About the pull request

Adds a bunch of career paths for CO's to choose from.
practical revive of cmss13-devs#3999 with HOPEFULLY better code (probably not)

# Explain why it's good for the game

RP Fluff, requested by senator and cool stuff is always cool.


# Testing Photographs and Procedure
<details>


![image](https://github.com/user-attachments/assets/991bba06-729e-43ae-8181-a25116838801)


![image](https://github.com/user-attachments/assets/77fe117f-4df2-462b-b2fd-a61f5ee58f64)


![image](https://github.com/user-attachments/assets/fee566dc-c3f1-4d70-aa75-a986ac6ef37b)


</details>


# Changelog
:cl:
add: Adds a bunch of career options for the commanding officer
whitelist, currently only used for fluff and RP.
/:cl:

---------

Co-authored-by: InsaneRed <[email protected]>
Co-authored-by: ihatethisengine <[email protected]>
Co-authored-by: forest2001 <[email protected]>
fixes cmss13-devs#7702 

# Explain why it's good for the game

synths having their NVGs bug out and blind them is unintended

# Testing Photographs and Procedure

<details>
<summary>Screenshots & Videos</summary>


https://cdn.discordapp.com/attachments/490668342357786645/1335745530692894852/Timeline_24.mov?ex=67a14977&is=679ff7f7&hm=60d04e89b300a0fe6019e4dc288d646c5d7450061a3f9f8996885c73437387ca&

</details>


# Changelog
:cl:
fix:Synth NVGs no longer bug out and blind them
/:cl:
…mss13-devs#8342)

# About the pull request

fixes: cmss13-devs#8339

cant buy strains while zooming anymore


# Explain why it's good for the game
bugfix


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Fixes boiler speed being stuck if you buy a strain while zoomed in
/:cl:

Co-authored-by: InsaneRed <[email protected]>
# About the pull request

<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->
QoL good , Bug = bad

# Explain why it's good for the game
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:

fix: Queen no longer stomps on dead and resting xenomorphs

/:cl:
# About the pull request

fixes cmss13-devs#8285 

replaces the Security Cabinet in the Office with a regular one.

# Explain why it's good for the game

Colony cabinets magically spawning with USS Almayer information is bad.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
maptweak: Replaced the Security Cabinet in the Security Office on LV624
with a regular Cabinet. Almayer Crew Records should no longer spawn.
/:cl:
# About the pull request

fixes cmss13-devs#7287
You can now slash airlock assemblies apart

# Explain why it's good for the game
bugfix

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: Airlock assemblies are no longer unslashable.
/:cl:

---------

Co-authored-by: InsaneRed <[email protected]>
Co-authored-by: harry <[email protected]>
# About the pull request

fixes cmss13-devs#8319
You can no longer apply the black holocard to people who are still
revivable

# Explain why it's good for the game

bugfix


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: You can no longer apply the black holocard to people who are still
revivable
/:cl:

---------

Co-authored-by: InsaneRed <[email protected]>
Co-authored-by: harry <[email protected]>
hry-gh and others added 19 commits February 5, 2025 22:11
Reverts cmss13-devs#7334

i actually think it was good and useful that it told players the next
steps when they were attempting to press the button again
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->

# About the pull request

It's possible for lockers to be both opened and locked at the same time,
and the code won't let you close or unlock them in this state. I don't
know what allows them to be opened and locked in the first place
(probably an issue with the automatic stuff that happens when going to
and from red alert). In any case we should let people unlock if this
happens.

# Explain why it's good for the game

mitigates bug


# Testing Photographs and Procedure
<!-- Include any screenshots/videos/debugging steps of the modified code
functioning successfully, ideally including edge cases. -->

<!-- !! If you are modifying sprites, you **must** include one or more
in-game screenshots or videos of the new sprites. !! -->

<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# 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
label your changes in the changelog. 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. -->
<!-- If you add a name after the ':cl', that name will be used in the
changelog. You must add your CKEY after the CL if your GitHub name
doesn't match. Maintainers freely reserve the right to remove and add
tags should they deem it appropriate. -->

:cl:
fix: mitigates bug where you can't close or unlock an opened locked
locker
/:cl:

<!-- Both :cl:'s are required for the changelog to work! -->
# About the pull request

Makes the frequent announcements about souto being 5% more expensive or
whatever not play sound for anyone. (Also tried to improve the one
letter var situation)

# Explain why it's good for the game

I feel like playing interference.ogg for such a frequent fluff-RP
"event" a little annoying and pointless. (If the consensus is that I'm
being a grinch then you can reject this PR, no problem.)


# Testing Photographs and Procedure

I did test it on local and it worked.


# Changelog
:cl:
sounddel: the vendor inflation event no longer plays sound
/:cl:
# About the pull request

Allows Yautja to source their tracking location from an active falcon
drone.

# Explain why it's good for the game

Can already mark from the drone, difficult to accurately mark remote
gear carriers if the location is relative to the original Yautja mob.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
add: Yautja can now track gear relative to their active falcon drone.
add: Yautja can now mark through walls and don't need direct line of
sight.
/:cl:
# About the pull request
closes cmss13-devs#7079 hopefully

Makes restocking attackby instead of draging on

# Explain why it's good for the game

fixes are good

# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: fixes being able to infintely dupe weapon attachements
/:cl:

---------

Co-authored-by: InsaneRed <[email protected]>
# About the pull request

cmss13-devs#8349 causes the boatswain
sound announcements to get signed by '1' - woops - this aims to fix that

# Explain why it's good for the game

i hate 1


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
fix: minor signature bug fixed with 'all hands on deck' announcements
/:cl:
# About the pull request

Adds camera, camera film, tape recorder, clue scanner to SecTech.
Changes ads/slogans to be in line with the coding of other vendors
(well, with the Eat an EAT vendor anyways, I know that vendor works).

# Explain why it's good for the game

I feel like these items are all things that lead to HRP behavior, and so
I don't think any of these additions would be controversial - am I
wrong? Also shoutout to cmss13-devs#8191
for making it so adding photos to security records works! It's very
cool, and it's what led me to make this PR. And the ads/slogans thing is
a bug, I think these are never broadcasting.


# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
qol: Adds camera, camera film, tape recorder, clue scanner to SecTech.
fix: Code fixed for sectech machine ads/slogans.
/:cl:
# About the pull request


![goonreduxdeux](https://github.com/user-attachments/assets/16e79ce4-9e64-47f9-82c9-7be1d4b7f8ff)


Adds engi, medic, and TL to corp dome nightmare insert. Changes some
other fluff stuff like factions so they appear in the WY tab and the MD
in the insert doesn't ping on goons. Adds flavor uniforms for goon med
and engi with different sprites (credit to vandie)

# Explain why it's good for the game

engis and medics and TLs incentivize people to stick together and
cooperate with their fellow man instead of hiding or running off or
whatever. facilitates more interesting roleplay. Everything else is
minor detailing and fluff like faction tabs and alt uniform sprites.

# Testing Photographs and Procedure
<details>
<summary>In game</summary>


![engimed](https://github.com/user-attachments/assets/60a1c1cd-b82e-4ae1-8d58-d997809c51dc)





</details>


# Changelog
:cl:
add: Goon Medic
imageadd: New alt uniforms for goon techs and medics
maptweak: Corporate Dome nightmare insert now has a medic, engi, and TL.
/:cl:

---------

Co-authored-by: Blundir <[email protected]>
Copy link

sourcery-ai bot commented Feb 7, 2025

Reviewer's Guide by Sourcery

This pull request performs a large upstream merge that integrates a variety of changes including several new features, refactors, and bug fixes. Major updates include a new TGUI interface for managing security records, a complete overhaul of the equipment presets for USCM Commanding Officers (with new career path options), improvements to the chat reliability system with sequence tracking and resend capabilities, and a refactoring of explosive/shrapnel mechanics. In addition, many map areas now correctly specify their power requirements and new unit tests have been added for areas lacking power, along with various bug fixes and style improvements across the codebase.

Sequence diagram for chat reliability and resend mechanism

sequenceDiagram
  participant C as Client
  participant TM as TGUI Middleware
  participant CC as Chat Controller
  participant CG as Chat Payload Generator
  participant RS as Resend Service

  C->>TM: Sends chat/message payload (JSON with sequence)
  TM->>TM: Parse payload, extract sequence number
  TM->>CC: Check sequence order against local history
  alt Gap in sequence detected
    CC->>RS: Request missing sequence(s)
    RS-->>CC: Resend missing payload(s)
  end
  CC->>TM: Process and update sequence list
  TM->>C: Render chat message
Loading

File-Level Changes

Change Details Files
Security Records TGUI Interface
  • Introduced a new TGUI UI in SecurityRecords.jsx for managing security records.
  • Implemented features for record sorting, filtering, editing, updating photos, fingerprint scanning, and comment management.
  • Added corresponding styling in SecurityRecords.scss.
tgui/packages/tgui/interfaces/SecurityRecords.jsx
tgui/packages/tgui/styles/interfaces/SecurityRecords.scss
USCM Commanding Officer Equipment Presets Update
  • Added a new equipment preset file (uscm_co.dm) that replaces the old commander presets.
  • Introduced multiple career paths (Infantry, Intel, Medical, Aviation, Tanker, Engineering, Logistics) with council and leader variants.
  • Updated client preferences to include a new 'co_career_path' field.
code/modules/gear_presets/uscm_co.dm
code/modules/client/preferences.dm
code/modules/client/preferences_savefile.dm
__DEFINES/job.dm
Chat Reliability Layer Enhancements
  • Refactored the chat subsystem to track sequence numbers for messages and handle resends if discrepancies are detected.
  • Added new procedures in the chat controller and datums (e.g. chat_payload.dm) to support reliability.
  • Updated changelogs to reflect additions of the chat reliability layer.
code/controllers/subsystem/chat.dm
code/__DEFINES/chat.dm
html/changelogs/archive/2025-02.yml
code/datums/chat_payload.dm
Explosive and Shrapnel Mechanics Refactoring
  • Replaced use of the 'angle' variable with 'shrapnel_spread' and added support for hit_angle to determine projectile direction.
  • Updated explosion procedures in various explosive objects, reagent chemistry, and shrapnel creation functions.
  • Refactored related code in warhead.dm, mine.dm, and plastic.dm to use the new variables.
code/modules/reagents/Chemistry-Holder.dm
code/game/objects/explosives/explosive.dm
code/game/objects/explosives/mine.dm
code/game/objects/items/explosives/warhead.dm
code/modules/objects/explosives/plastic.dm
code/game/objects/shrapnel.dm
Area and Map Adjustments for Power Requirements
  • Multiple map files and area definitions updated with 'requires_power', 'always_unpowered', or 'unlimited_power' flags as appropriate.
  • Ensured outdoor and interior areas (e.g. LV759, LV522, Kutjevo, Corsat, BigRed) correctly specify power states.
  • Added new unit tests (areas_unpowered.dm) to detect areas missing APC coverage.
code/game/area/LV522_Chances_Claim.dm
code/game/area/almayer.dm
code/game/area/kutjevo.dm
maps/map_files/BigRed/...
maps/map_files/LV759_Hybrisa_Prospera.dmm
code/modules/unit_tests/areas_unpowered.dm
Crew Monitor and Marine Console Updates
  • Refactored crew monitor variable naming from 'crewmonitor' to 'crew_monitor' and updated lookup logic.
  • Modified marine console code to reference the new crew monitor mapping.
code/modules/cm_marines/marines_consoles.dm
Various Bug Fixes and Code Refactoring
  • Fixed issues in fingerprint scanner reports and photo update functionalities in security records.
  • Addressed minor bugs in chat TTS announcements (“all hands on deck” message) and other areas.
  • Refactored variable names and cleaned up redundant code in multiple files including xenomorph abilities, clothing, smartpack, and device interactions.
  • Updated several map texts and document templates to reflect corrected margins and logos.
code/game/machinery/computer/security.dm
code/modules/paperwork/paper.dm
code/game/jobs/job/command/cic/captain.dm
code/modules/mob/living/carbon/xenomorph/abilities/queen/queen_powers.dm
code/modules/clothing/under/under.dm
code/game/objects/items/storage/smartpack.dm
code/modules/mob/living/carbon/xenomorph/attack_alien.dm
code/modules/tgchat/to_chat.dm
code/modules/cm_preds/yaut_hudprocs.dm

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!
  • Generate a plan of action for an issue: Comment @sourcery-ai plan on
    an issue to generate a plan of action for it.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@PhantornRU PhantornRU closed this Feb 7, 2025
@PhantornRU PhantornRU reopened this Feb 7, 2025
@larentoun larentoun force-pushed the upstream-merge branch 2 times, most recently from 61307a3 to 2607f16 Compare February 7, 2025 11:56
port rustg from tg

linter

Revert "port rustg from tg"

This reverts commit 4f976f8.

ignore our stuff

linter fix

now it should work

move rustg220 to 220 files

linter

update from tg

return it

better comment

linter

oopsie

i changed you, didn't I?

better order

rust utils for tests
@larentoun larentoun merged commit 5f8ff06 into ss220club:master Feb 7, 2025
25 of 26 checks passed
@larentoun larentoun deleted the upstream-merge branch February 7, 2025 12:50
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.