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