xenoarch: hide some node effects until unlocked
About the PR
Artifact node effects are now sometimes hidden (in the analysis console), until you unlock them.
- there is a 10% chance for a node's effect to be hidden completely (it says "Unable to detect (unlock to discover)")
- there is a 33% chance for only a vague description of the effect to be shown (e.g. "Strong energy release (unable to detect details)")
- otherwise, the detailed description is shown (the descriptions we already were showing)
- after a node is unlocked, its detailed description is shown forever after
Why / Balance
This is related to a common criticism of the new xenoarch system, when discussing the system in https://github.com/DeltaV-Station/Delta-v/pull/4640
A general feedback point of the new xenoarch system is that it is missing the mystery and danger of the old system. The old system had vague descriptions of what effect will actually occur, while the new system always shows a unique and precisely-worded effect description.
With this PR, some nodes will be reminiscent of the old system, where many possible effects fall under the vague descriptions. The description narrows it down a little, but not much.
Technical details
Description of the changed files:
XenoArtifactComponent.csdefines the probability rates of the hiding to occur- With those probabilities, the
SharedXenoArtifactSystem.Node.csdecides whether each node will hide, vaguely-describe, or specifically-describe the effect until unlocked (this is tracked inXenoArtifactNodeComponent.cs) AnalysisConsoleMenu.xaml.csdoes the rendering of this decision, via the localization inartifact-analyzer.ftl- To facilitate each effect having multiple descriptions (a specific one, and a vague one shared with other effects), the descriptions were moved out of
effects.ymland intoartifact-hints.ftl.- Each effect specifies its descriptions via the new
XAEDetailsComponent.cs
- Each effect specifies its descriptions via the new
Media
Example of a vaguely-described effect (33% of nodes). After the node is triggered for the first time (unlocking it), the text in parentheses is replaced with the more specific description.
Most nodes (60%) still just immediately show the specific description, when they're next to be unlocked.
Some effects are hidden entirely (10% of nodes), until you unlock them.
Merging
The new xenoarch system might be reverted soon, in https://github.com/DeltaV-Station/Delta-v/pull/4640 . Merging this before that would cause merge conflicts.
I'm posting this PR for two reasons: 1. in case we decide to postpone the revert, and also 2. for our reference if we revisit the system in the future.
Requirements
- [ ] I have tested all added content and changes.
- [X] I have added media to this PR or it does not require an ingame showcase.
Breaking changes
Changelog
:cl:
- fix: Artifact node effects are sometimes unpredictable until after you trigger them for the first time. Be careful!
This PR is code-complete. Opening it as a draft because:
- I want feedback on the idea
- I need to do more extensive testing
these changes you're doing are genuinely peak and I PRAY they get approved, new xenoarch is missing the real risk and danger that the old system had and I LOVE seeing things like what you're doing bringing it back.
dislike how the localization string is created in AnalysisConsoleMenu.xaml.cs
this is prevalent throughout upstream code in the file, so if we want to change that we should probably do it in upstream
(my understanding is a smaller DeltaV code footprint == better DeltaV code footprint)
@ShepardToTheStars ready for re-review
dislike how the localization string is created in AnalysisConsoleMenu.xaml.cs
this is prevalent throughout upstream code in the file, so if we want to change that we should probably do it in upstream
(my understanding is a smaller DeltaV code footprint == better DeltaV code footprint)
No worries. I understand how complex this stuff can be.
Is this ready to be taken out of draft?
Nah I still gotta figure out how to test... every single effect to make sure I didn't mess up
Or something
This is probably ready to go. I tested it as best I could (which wasn't a great amount of testing). See the PR description (Testing section) for details.
Direction might want to have an opinion about this PR.
Very relevant test fails.
My first TryStopNukeOpsFromConstantlyFailing failure! :)
Changed percentages to the current direction consensus:
Was: 10% total hiding, 30% vague hiding, 60% specific
Now: 10% total hiding, 60% vague hiding, 30% specific