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"];
}