using Content.Server.RoundEnd; using Content.Shared.Roles; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.GameTicking.Rules.Components; [RegisterComponent, Access(typeof(ZombieRuleSystem))] public sealed partial class ZombieRuleComponent : Component { /// /// When the round will next check for round end. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] public TimeSpan? NextRoundEndCheck; /// /// The amount of time between each check for the end of the round. /// [DataField] public TimeSpan EndCheckDelay = TimeSpan.FromSeconds(30); /// /// After this amount of the crew become zombies, the shuttle will be automatically called. /// [DataField] public float ZombieShuttleCallPercentage = 0.7f; /// /// DeltaV - The behavior of the round if all zombies are defeated. /// public RoundEndBehavior ZombieRoundEndBehavior = RoundEndBehavior.BecomeSurvival; /// /// DeltaV - The amount of time before the evac shuttle will arrive if the ZombieRoundEndBehavior is set to ShuttleCall. /// public TimeSpan ZombieShuttleDelay = TimeSpan.FromMinutes(10); }