XenoArch Rebalancing (#36604)

* Miscellaneous XenoArch Rebalancing

* Miscellaneous XenoArch Rebalancing

* 1 durability anomaly node

* better version
This commit is contained in:
Nemanja
2025-04-15 18:38:26 -04:00
committed by GitHub
parent 3ded6b537a
commit bbc0a09493
11 changed files with 16 additions and 73 deletions

View File

@@ -69,13 +69,13 @@ public sealed partial class XenoArtifactComponent : Component
/// By how much unlocking state should be prolonged for each node that was unlocked.
/// </summary>
[DataField]
public TimeSpan UnlockStateIncrementPerNode = TimeSpan.FromSeconds(5);
public TimeSpan UnlockStateIncrementPerNode = TimeSpan.FromSeconds(10);
/// <summary>
/// Minimum waiting time between unlock states.
/// </summary>
[DataField]
public TimeSpan UnlockStateRefractory = TimeSpan.FromSeconds(10);
public TimeSpan UnlockStateRefractory = TimeSpan.FromSeconds(5);
/// <summary>
/// When next unlock session can be triggered.

View File

@@ -64,7 +64,7 @@ public sealed partial class XenoArtifactNodeComponent : Component
/// The amount of points a node is worth with no scaling
/// </summary>
[DataField, AutoNetworkedField]
public float BasePointValue = 5000;
public float BasePointValue = 4000;
/// <summary>
/// Amount of points available currently for extracting.

View File

@@ -394,6 +394,6 @@ public abstract partial class SharedXenoArtifactSystem
: 1f + durabilityEffect;
var predecessorNodes = GetPredecessorNodes((artifact, artifact), node);
nodeComponent.ResearchValue = (int)(Math.Pow(1.25, predecessorNodes.Count) * nodeComponent.BasePointValue * durabilityMultiplier);
nodeComponent.ResearchValue = (int)(Math.Pow(1.25, Math.Pow(predecessorNodes.Count, 1.5f)) * nodeComponent.BasePointValue * durabilityMultiplier);
}
}

View File

@@ -73,6 +73,7 @@ public abstract partial class SharedXenoArtifactSystem
if (TryGetNodeFromUnlockState(ent, out var node))
{
SetNodeUnlocked((ent, artifactComponent), node.Value);
ActivateNode((ent, ent), (node.Value, node.Value), null, null, Transform(ent).Coordinates, false);
unlockAttemptResultMsg = "artifact-unlock-state-end-success";
// as an experiment - unlocking node doesn't activate it, activation is left for player to decide.

View File

@@ -10,16 +10,8 @@
state: ano01
- type: RandomSpawner
prototypes:
- SimpleXenoArtifact
- MediumXenoArtifact
- MediumXenoArtifact
- MediumXenoArtifact
- MediumXenoArtifact
- ComplexXenoArtifact
- ComplexXenoArtifact
- ComplexXenoArtifact
- SimpleXenoArtifactItem
- MediumXenoArtifactItem
- ComplexXenoArtifactItem
chance: 1

View File

@@ -62,47 +62,16 @@
tableId: XenoArtifactEffectsHandheldOnlyTable
weight: 2
- type: entity
parent: BaseXenoArtifactItem
id: SimpleXenoArtifactItem
suffix: hand-sized Simple
components:
- type: XenoArtifact
nodeCount:
min: 2
max: 5
- type: entity
parent: BaseXenoArtifactItem
id: MediumXenoArtifactItem
suffix: hand-sized Medium
components:
- type: XenoArtifact
nodeCount:
min: 5
max: 9
- type: entity
parent: BaseXenoArtifactItem
id: ComplexXenoArtifactItem
suffix: hand-sized Complex
suffix: Hand-Sized
components:
- type: XenoArtifact
nodeCount:
min: 9
max: 13
# this exists for crafting item artifacts so that the final result can be simple, medium, or complex.
- type: entity
parent: BaseXenoArtifactItem
id: VariedXenoArtifactItem
suffix: hand-sized Varied
components:
- type: XenoArtifact
nodeCount:
min: 2
max: 13
- type: entity
id: ArtifactFragment
parent: BaseItem

View File

@@ -39,30 +39,9 @@
mask:
- MachineMask
- type: entity
parent: BaseXenoArtifactStructure
id: SimpleXenoArtifact
suffix: Simple
components:
- type: XenoArtifact
nodeCount:
min: 2
max: 5
- type: entity
parent: BaseXenoArtifactStructure
id: MediumXenoArtifact
suffix: Medium
components:
- type: XenoArtifact
nodeCount:
min: 5
max: 9
- type: entity
parent: BaseXenoArtifactStructure
id: ComplexXenoArtifact
suffix: Complex
components:
- type: XenoArtifact
nodeCount:

View File

@@ -10,4 +10,4 @@
amount: 4
doAfter: 5
- node: done
entity: VariedXenoArtifactItem
entity: ComplexXenoArtifactItem

View File

@@ -1059,14 +1059,9 @@
- type: entity
id: XenoArtifactAnomalySpawn
parent: BaseXenoArtifactEffect
parent: BaseOneTimeXenoArtifactEffect
description: Creates anomaly
components:
- type: XenoArtifactNode
maxDurability: 2
maxDurabilityCanDecreaseBy:
min: 0
max: 1
- type: XAEApplyComponents
applyIfAlreadyHave: true
refreshOnReactivate: true

View File

@@ -9,7 +9,7 @@ By researching the unique things each artifact can do, you gain Research Points,
## Artifact Nodes
<Box>
<GuideEntityEmbed Entity="ComplexXenoArtifact" Caption=""/>
<GuideEntityEmbed Entity="SimpleXenoArtifactItem" Caption=""/>
<GuideEntityEmbed Entity="ComplexXenoArtifactItem" Caption=""/>
</Box>
Artifacts consist of a randomly-generated tree of nodes. These nodes have a "[color=#a4885c]depth[/color]", representing how dangerous the node is, and the number of other nodes connected to it, called "[color=#a4885c]edges[/color]",

View File

@@ -592,3 +592,10 @@ MailAllAccessSpam: MailSpamLetter
MailCentcommRetributionSpam: MailSpamLetter
MailEvilLizardSpam: MailSpamLetter
MailParentsNeedMoneySpam: MailSpamLetter
# 2025-04-15
SimpleXenoArtifact: ComplexXenoArtifact
MediumXenoArtifact: ComplexXenoArtifact
SimpleXenoArtifactItem: ComplexXenoArtifactItem
MediumXenoArtifactItem: ComplexXenoArtifactItem
VariedXenoArtifactItem: ComplexXenoArtifactItem