using System.Numerics; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Chasm; /// /// Added to entities which have started falling into a chasm. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentPause] public sealed partial class ChasmFallingComponent : Component { /// /// Time it should take for the falling animation (scaling down) to complete. /// [DataField("animationTime")] public TimeSpan AnimationTime = TimeSpan.FromSeconds(1.5f); /// /// Time it should take in seconds for the entity to actually delete /// [DataField("deletionTime")] public TimeSpan DeletionTime = TimeSpan.FromSeconds(1.8f); [DataField("nextDeletionTime", customTypeSerializer:typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan NextDeletionTime = TimeSpan.Zero; /// /// Original scale of the object so it can be restored if the component is removed in the middle of the animation /// public Vector2 OriginalScale = Vector2.Zero; /// /// Scale that the animation should bring entities to. /// public Vector2 AnimationScale = new Vector2(0.01f, 0.01f); }