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);
}