From: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Date: Tue, 15 Apr 2025 22:38:26 +0000 (-0400)
Subject: XenoArch Rebalancing (#36604)
X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=bbc0a0949395428d963515f9a4e23c9e1a4f1fb5;p=space-station-14.git
XenoArch Rebalancing (#36604)
* Miscellaneous XenoArch Rebalancing
* Miscellaneous XenoArch Rebalancing
* 1 durability anomaly node
* better version
---
diff --git a/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactComponent.cs b/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactComponent.cs
index 85462d0efc..b01d3d34f6 100644
--- a/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactComponent.cs
+++ b/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactComponent.cs
@@ -69,13 +69,13 @@ public sealed partial class XenoArtifactComponent : Component
/// By how much unlocking state should be prolonged for each node that was unlocked.
///
[DataField]
- public TimeSpan UnlockStateIncrementPerNode = TimeSpan.FromSeconds(5);
+ public TimeSpan UnlockStateIncrementPerNode = TimeSpan.FromSeconds(10);
///
/// Minimum waiting time between unlock states.
///
[DataField]
- public TimeSpan UnlockStateRefractory = TimeSpan.FromSeconds(10);
+ public TimeSpan UnlockStateRefractory = TimeSpan.FromSeconds(5);
///
/// When next unlock session can be triggered.
diff --git a/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactNodeComponent.cs b/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactNodeComponent.cs
index c4c1673150..4a8b8ec49f 100644
--- a/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactNodeComponent.cs
+++ b/Content.Shared/Xenoarchaeology/Artifact/Components/XenoArtifactNodeComponent.cs
@@ -64,7 +64,7 @@ public sealed partial class XenoArtifactNodeComponent : Component
/// The amount of points a node is worth with no scaling
///
[DataField, AutoNetworkedField]
- public float BasePointValue = 5000;
+ public float BasePointValue = 4000;
///
/// Amount of points available currently for extracting.
diff --git a/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Node.cs b/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Node.cs
index e4c1a1bae5..75f88a41c3 100644
--- a/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Node.cs
+++ b/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Node.cs
@@ -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);
}
}
diff --git a/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Unlock.cs b/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Unlock.cs
index 3238bedcba..9786e65478 100644
--- a/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Unlock.cs
+++ b/Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Unlock.cs
@@ -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.
diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/artifacts.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/artifacts.yml
index a678ef03f3..0135361044 100644
--- a/Resources/Prototypes/Entities/Markers/Spawners/Random/artifacts.yml
+++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/artifacts.yml
@@ -10,16 +10,8 @@
state: ano01
- type: RandomSpawner
prototypes:
- - SimpleXenoArtifact
- - MediumXenoArtifact
- - MediumXenoArtifact
- - MediumXenoArtifact
- - MediumXenoArtifact
- ComplexXenoArtifact
- ComplexXenoArtifact
- - ComplexXenoArtifact
- - SimpleXenoArtifactItem
- - MediumXenoArtifactItem
- ComplexXenoArtifactItem
chance: 1
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml
index 00c6abf362..83a04a809b 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/item_xenoartifacts.yml
@@ -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
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_xenoartifacts.yml b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_xenoartifacts.yml
index 0b3d95777d..8edbbd71f4 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_xenoartifacts.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/structure_xenoartifacts.yml
@@ -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:
diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/artifact.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/artifact.yml
index a0961a1669..d48731ad5a 100644
--- a/Resources/Prototypes/Recipes/Crafting/Graphs/artifact.yml
+++ b/Resources/Prototypes/Recipes/Crafting/Graphs/artifact.yml
@@ -10,4 +10,4 @@
amount: 4
doAfter: 5
- node: done
- entity: VariedXenoArtifactItem
+ entity: ComplexXenoArtifactItem
diff --git a/Resources/Prototypes/XenoArch/effects.yml b/Resources/Prototypes/XenoArch/effects.yml
index e02514d2c2..027c79550c 100644
--- a/Resources/Prototypes/XenoArch/effects.yml
+++ b/Resources/Prototypes/XenoArch/effects.yml
@@ -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
diff --git a/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml b/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml
index 87177acbaf..cd717511c3 100644
--- a/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml
+++ b/Resources/ServerInfo/Guidebook/Science/Xenoarchaeology.xml
@@ -9,7 +9,7 @@ By researching the unique things each artifact can do, you gain Research Points,
## Artifact Nodes
-
+
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]",
diff --git a/Resources/migration.yml b/Resources/migration.yml
index f505db5268..851e6ca03c 100644
--- a/Resources/migration.yml
+++ b/Resources/migration.yml
@@ -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