Delta-v icon indicating copy to clipboard operation
Delta-v copied to clipboard

xenoarch: hide some node effects until unlocked

Open cmorley191 opened this issue 1 month ago • 6 comments

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.cs defines the probability rates of the hiding to occur
  • With those probabilities, the SharedXenoArtifactSystem.Node.cs decides whether each node will hide, vaguely-describe, or specifically-describe the effect until unlocked (this is tracked in XenoArtifactNodeComponent.cs)
  • AnalysisConsoleMenu.xaml.cs does the rendering of this decision, via the localization in artifact-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.yml and into artifact-hints.ftl.
    • Each effect specifies its descriptions via the new XAEDetailsComponent.cs

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.

image

Most nodes (60%) still just immediately show the specific description, when they're next to be unlocked.

image

Some effects are hidden entirely (10% of nodes), until you unlock them.

image

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!

cmorley191 avatar Nov 25 '25 06:11 cmorley191

This PR is code-complete. Opening it as a draft because:

  • I want feedback on the idea
  • I need to do more extensive testing

cmorley191 avatar Nov 25 '25 06:11 cmorley191

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.

AirlineFood001 avatar Nov 25 '25 06:11 AirlineFood001

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)

cmorley191 avatar Nov 26 '25 20:11 cmorley191

@ShepardToTheStars ready for re-review

cmorley191 avatar Nov 26 '25 21:11 cmorley191

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?

ShepardToTheStars avatar Nov 26 '25 21:11 ShepardToTheStars

Nah I still gotta figure out how to test... every single effect to make sure I didn't mess up

Or something

cmorley191 avatar Nov 26 '25 22:11 cmorley191

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.

cmorley191 avatar Nov 29 '25 20:11 cmorley191

Very relevant test fails.

ShepardToTheStars avatar Nov 29 '25 21:11 ShepardToTheStars

My first TryStopNukeOpsFromConstantlyFailing failure! :)

cmorley191 avatar Nov 30 '25 07:11 cmorley191

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

cmorley191 avatar Nov 30 '25 07:11 cmorley191