-
Notifications
You must be signed in to change notification settings - Fork 146
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
Cherry-Pick "EMP Grenade Actually Sabotages Power" From Wizden #516
Merged
VMSolidus
merged 20 commits into
Simple-Station:master
from
WarMechanic:make_emp_great_again
Aug 6, 2024
Merged
Cherry-Pick "EMP Grenade Actually Sabotages Power" From Wizden #516
VMSolidus
merged 20 commits into
Simple-Station:master
from
WarMechanic:make_emp_great_again
Aug 6, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…for a limited time as you'd expect
github-actions
bot
added
Changes: C#
Changes any cs files
Changes: YML
Changes any yml files
labels
Jul 6, 2024
SimpleStation14
changed the title
Cherry-pick "EMP grenade actually sabotages power" from upstream
Cherry-Pick "EMP Grenade Actually Sabotages Power" From Upstream
Jul 6, 2024
argh i hate ubuntu latest test |
tbf, it is just the normal debug build, all the tests runn on ubuntu latest |
One of the known false negatives, yea. |
"We are upstream, please call them wizden" But other then that, nice. |
WarMechanic
changed the title
Cherry-Pick "EMP Grenade Actually Sabotages Power" From Upstream
Cherry-Pick "EMP Grenade Actually Sabotages Power" From Wizden
Jul 9, 2024
DangerRevolution
requested review from
Pspritechologist,
VMSolidus and
DEATHB4DEFEAT
July 12, 2024 18:08
DangerRevolution
requested review from
Peptide90,
OldDanceJacket and
DangerRevolution
July 12, 2024 18:08
DangerRevolution
approved these changes
Jul 12, 2024
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Signed-off-by: VMSolidus <[email protected]>
VMSolidus
approved these changes
Jul 29, 2024
SimpleStation14
added a commit
that referenced
this pull request
Aug 6, 2024
Mnemotechnician
added a commit
to Mnemotechnician/Einstein-Engines
that referenced
this pull request
Sep 8, 2024
DEATHB4DEFEAT
pushed a commit
that referenced
this pull request
Sep 14, 2024
# Description - Resolves #864 by partially reverting #516 - Adds a _net.IsClient check to RehydratableSystem to avoid spawning duplicate entities on client side <details><summary><h1>Media</h1></summary> <p> https://github.com/user-attachments/assets/e50785a6-b5f7-4484-9097-118bc3a5dfa5 </p> </details> --- # Changelog :cl: - fix: Cyborg recharging stations finally work again. - fix: Rehydratable entities (such as monkey cubes) no longer spawn a second client-side entity when rehydrated. --------- Signed-off-by: Mnemotechnican <[email protected]> Co-authored-by: VMSolidus <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Changes: C#
Changes any cs files
Changes: YML
Changes any yml files
Status: Needs Review
Someone please review this
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
About the PR
EMP has been changed to target APC-powered-devices (most electrical devices) as well as batteries to disable them. This means EMP can interfere with autolathes, airlocks, atmos devices, substations and SMES. The power draw of a single EMP grenade now cuts out a substation, and the disabling effect prevents further recharge until it subsides.
EMP duration now also stacks, which creates a novel way to quietly black out the station by attacking engineering SMES with 3 EMP grenades (6tc EMP bundle) to black out the station for 3 minutes.
Edit, here's a detailed changelog of the PR,
Functionality:
Results:
Why / Balance
EMP at 2tc has a relatively low value-proposition when compared to C4 which is also 2tc. While EMP can probably black out one (or two if you're lucky) APCs and can be used as a defensive option against Stun/Lasers. C4 can be used to cut wires, substations, SMES, generators, doors, reinforced walls, people and the list probably continues.
New EMP can be used to soft-bomb station power in an explosion that isn't globally alarming (salv boom). Targeting the captain's office directly may let you crowbar in and steal the locker but it leaves ephemeral evidence in the form of everything electrical shimmering blue. Opting to bomb substations blacks out a wider area, providing several degrees of separation from your target. That is to say, new EMP grenade favours map knowledge and rewards better stealth.
Technical details
C.S/.../EmpSystem.cs
uses TryComp to turn on/off charging forC.S/Power/Components/PowerNetworkBatteryComponent
C.S/Power/EntitySystems/PowerReceiverSystem.cs
listens toEmpPulseEvent
to turn off. Requests to turn back on are additionally intercepted byEmpSystem.cs
and cancelled.C.S/.../GravityGeneratorSystem.cs
listens toEmpPulseEvent
and converts energy consumption to a normalised chargeC.S/Power/EntitySystems/ApcSystem.cs
no longer toggles its breaker, but still listens toEmpPulseEvent
for updating visuals.C.S/Power/EntitySystems/ChargerSystem.cs
was refactored to add aChargingComponent
flag to power cells instead ofActiveCharger
on itself. Battery and Charger communicate through this flag. Listens toEmpPulseEvent
for updating its state machine. NewChargerUpdateStatusEvent
allows batteries to update the charger's status.C.S/Power/EntitySystems/BatterySystem.cs
can now be disabled, and checks for disabling before updating its charge. RaisesChargerUpdateStatusEvent
when hearingEmpDisabledRemoved
to tell its charger to start charging again.C.S/Power/PowerWireAction.cs
checks forEmpDisabledComponent
before turning power back on.C.S/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs
andC.S/VendingMachines/VendingMachineSystem.cs
had redundantEmpPulseEvent
listeners culled.Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml
buffed EMP grenade.Media
https://www.youtube.com/embed/rSVph6OIg1s?si=8o4bx9Vx16B6usuu - outdated video demonstrating changes on a wizden map
https://www.youtube.com/embed/B3iPhLcfs-0?si=trB1HY2ccjMf96Bj - electrical anomaly crit with updated emp
Changelog
🆑