-
Notifications
You must be signed in to change notification settings - Fork 370
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
Port Supermatter from Impstation #2717
base: master
Are you sure you want to change the base?
Port Supermatter from Impstation #2717
Conversation
supermatter .ftl was broken, this fixes it. <!-- This is a semi-strict format, you can add/remove sections as needed but the order/format should be kept the same Remove these comments before submitting --> # Description <!-- Explain this PR in as much detail as applicable Some example prompts to consider: How might this affect the game? The codebase? What might be some alternatives to this? How/Who does this benefit/hurt [the game/codebase]? --> Easly fix the supermatter .ftl files that was not set correctly, why? i dunno. now its works. --- # Changelog <!-- You can add an author after the `:cl:` to change the name that appears in the changelog (ex: `:cl: Death`) Leaving it blank will default to your GitHub display name This includes all available types for the changelog --> :cl: - fix: Supermatter Annoncements Signed-off-by: FoxxoTrystan <[email protected]>
RSI Diff Bot; head commit 26a05e8 merging into f3d2632 Resources/Textures/_EE/Structures/Machines/computers.rsi
Resources/Textures/_EE/Structures/Power/Generation/Supermatter/supermatter.rsi
Resources/Textures/_EE/Structures/Power/Generation/Supermatter/supermatter_sliver.rsi
|
Resources/Prototypes/Entities/Structures/Doors/Shutter/shutters.yml
Outdated
Show resolved
Hide resolved
Resources/Textures/_EE/Structures/Power/Generation/Supermatter/supermatter.rsi/meta.json
Show resolved
Hide resolved
Resources/Textures/_EE/Structures/Power/Generation/Supermatter/supermatter.rsi/meta.json
Outdated
Show resolved
Hide resolved
Resources/Textures/_EE/Structures/Power/Generation/Supermatter/supermatter.rsi/meta.json
Outdated
Show resolved
Hide resolved
Resources/Textures/_EE/Structures/Power/Generation/Supermatter/supermatter_sliver.rsi/meta.json
Show resolved
Hide resolved
Resources/Textures/_EE/Structures/Power/Generation/Supermatter/supermatter_sliver.rsi/meta.json
Outdated
Show resolved
Hide resolved
@Radezolid I think I got everything you had tagged. Let me know if I missed anything 🙂 |
Will review once i get some sleep |
i'm really happy you're looking to port this! i do want to let you know that i'm still working on further adjustments on imp. i'll also take the requested changes from this pr into account for our fork, the organisation is admittedly a bit of a mess |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good YAML-wise, gotta wait for delta's code review and direction's input.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Direction approved! This can go live for mappers to add at their leisure, in accordance with our two power source dealio
@@ -65,7 +65,8 @@ private void OnDamage(EntityUid uid, DoAfterComponent component, DamageChangedEv | |||
{ | |||
// If we're applying state then let the server state handle the do_after prediction. | |||
// This is to avoid scenarios where a do_after is erroneously cancelled on the final tick. | |||
if (!args.InterruptsDoAfters || !args.DamageIncreased || args.DamageDelta == null || GameTiming.ApplyingState) | |||
if (!args.InterruptsDoAfters || !args.DamageIncreased || args.DamageDelta == null || GameTiming.ApplyingState | |||
|| args.DamageDelta.DamageDict.ContainsKey("Radiation")) // imp - Sanity check so people can crowbar doors open to flee from Lord Singuloth |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this isnt needed it was fixed like 2 years ago, radiation doesnt interrupt doafters
@@ -29,6 +29,7 @@ | |||
HoSGunStealObjective: 0.5 # DeltaV | |||
PlutoniumCoreStealObjective: 0.5 # DeltaV, was reverted upstream | |||
NukeDiskStealObjective: 0.25 | |||
#StealSupermatterSliverObjective: 0.5 # imp - disabled supermatter steal objectives |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it doesnt exist here so just remove it
About the PR
Port the following PRs from Impstation:
Adds the Supermatter crystal as implemented in impstation, a power source that requires active cooling, emitters, and produces radiation. It comes with a monitoring computer, a variety of sound effects, and three delamination types:
Resonance Cascade exists in the code, but will not be chosen as there are no conditions for it in Impstation.
The crystal will announce the expected delamination type once, but the delamination type is checked every update before the delamination occurs, and as a result the delam can change from singularity formation to explosion if the amount of absorbed moles drops below the required number.
The crystal is damaged in a variety of ways:
HeatPenaltyThreshold
(Default 40; Value is in C not K).PowerPenaltyThreshold
(Default 5000, or 5.0 GeV)MolePenaltyThreshold
(Default 1,800 moles)The crystal cannot lose more than 0.2% integrity per update.
The integrity cannot go negative, and delamination will be canceled if the crystal's integrity is restored above 0.
Mapping & Testing Remarks
This PR does not add the supermatter to any stations. I tested this by creating a very basic setup derived from following this guide, but I am by no means an expert.
Why / Balance
Additional content for engineering: Another way to accidentally destroy the station, a way to farm plasma, variety in station power generation.
The steal objective has been commented out in Impstation, I have left it commented out here; however, cutting a sliver of the supermatter is still a function that works and will halve the delamination timer from 30s to 15s.
Technical details
The Beam and Lightning systems now support targeting coordinates as an alternative to targeting entities, and now has support for non-randomized lightning sprites. This is not expected to impact any other uses of the beam or lightning systems.
supermatter.singuloose_moles_modifier
supermatter.do_singuloose
supermatter.tesloose_power_modifier
supermatter.do_tesloose
supermatter.do_force_delam
supermatter.forced_delam_type
variablesupermatter.forced_delam_type
supermatter.do_force_delam
is set to true. Note: I was unable to use this cvar from the server console, I suspect because it is an Enum type.supermatter.rads_base
supermatter.rads_modifier
supermatter.yell_timer
Media
Computer board can be printed in circuit imprinter:
Supermatter Crystal, Active:
CE Hardsuit immune:
Urist McHands not immune:
urist-destroyed.mp4
Supermatter stating integrity is falling:
SM integrity healing:
Explosive Delam:
delam-explosive.mp4
Singulo Delam (w/Sliver taken):
delam-singulo.mp4
Tesla Delam (w/Sliver taken):
Requirements
Breaking changes
Content.Shared.Beam.Components.CreateBeamSuccessEvent.Target
is now nullable and will require null handling.Content.Server.Lightning.HitByLightningEvent.Source
is now nullable and will require null handling.I did not see any usages of these properties in the codebase, but any future uses of these properties will need null checks.
Changelog
🆑 FaintSpeaker