Anomaly events & science point gen tweaks (#13590)

This commit is contained in:
Nemanja
2023-01-20 19:42:38 -05:00
committed by GitHub
parent f57f9e9ffb
commit cd52b458df
15 changed files with 207 additions and 43 deletions

View File

@@ -1,4 +1,5 @@
using Robust.Shared.Audio;
using Content.Shared.Damage;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
@@ -104,6 +105,13 @@ public sealed class AnomalyComponent : Component
[DataField("pulseVariation")]
public float PulseVariation = .1f;
/// <summary>
/// The largest value by which the anomaly will vary in stability for each pulse.
/// In simple terms, every pulse, stability changes from a range of -this_value to this_value
/// </summary>
[DataField("pulseStabilityVariation")]
public float PulseStabilityVariation = 0.05f;
/// <summary>
/// The sound played when an anomaly pulses
/// </summary>
@@ -200,8 +208,36 @@ public sealed class AnomalyComponent : Component
/// This doesn't include the point bonus for being unstable.
/// </summary>
[DataField("maxPointsPerSecond")]
public int MaxPointsPerSecond = 100;
public int MaxPointsPerSecond = 65;
/// <summary>
/// The multiplier applied to the point value for the
/// anomaly being above the <see cref="GrowthThreshold"/>
/// </summary>
[DataField("growingPointMultiplier")]
public float GrowingPointMultiplier = 1.2f;
/// <summary>
/// The multiplier applied to the point value for the
/// anomaly being below the <see cref="DecayThreshold"/>
/// </summary>
[DataField("decayingPointMultiplier")]
public float DecayingPointMultiplier = 0.75f;
#endregion
/// <summary>
/// The amount of damage dealt when either a player touches the anomaly
/// directly or by hitting the anomaly.
/// </summary>
[DataField("anomalyContactDamage", required: true)]
public DamageSpecifier AnomalyContactDamage = default!;
/// <summary>
/// The sound effect played when a player
/// burns themselves on an anomaly via contact.
/// </summary>
[DataField("anomalyContactDamageSound")]
public SoundSpecifier AnomalyContactDamageSound = new SoundPathSpecifier("/Audio/Effects/lightburn.ogg");
}
[Serializable, NetSerializable]