using Content.Shared.Physics; using Robust.Shared.Physics.Collision.Shapes; using Robust.Shared.Physics.Components; using Robust.Shared.Physics.Systems; namespace Content.Server.GameTicking.Rules.Components; [RegisterComponent, Access(typeof(GracewallRuleSystem))] public sealed partial class GracewallRuleComponent : Component { /// /// How long the grace wall lasts since the round started /// [DataField("gracewallDuration")] public TimeSpan GracewallDuration { get; set; } = TimeSpan.FromMinutes(5); /// /// Is the grace wall currently active? /// [DataField("gracewallActive")] public bool GracewallActive { get; set; } = true; /// /// How much time is remaining until the grace wall drops. /// public float Timer; } [RegisterComponent] public sealed partial class GracewallAreaComponent : Component { /// /// How long the grace wall lasts since the round started /// [DataField("gracewallRadius")] public float GracewallRadius { get; set; } = 1.5f; /// /// Is the grace wall currently active? /// [DataField("gracewallActive")] public bool GracewallActive { get; set; } = true; /// /// Which factions are blocked by the wall? If 'All', it applies to all /// [DataField("blockingFactions")] public List BlockingFactions { get; set; } = ["All"]; }