using Content.Server.Destructible.Thresholds.Behaviors;
using Content.Shared.Damage;
using Content.Shared.Damage.Prototypes;
+using Content.Shared.Destructible.Thresholds;
using Robust.Shared.GameObjects;
using Robust.Shared.Prototypes;
using static Content.IntegrationTests.Tests.Destructible.DestructibleTestPrototypes;
#nullable enable
using Content.Server.GameTicking;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Presets;
using Content.Shared.CCVar;
using Content.Shared.GameTicking;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.GameObjects;
namespace Content.IntegrationTests.Tests.GameRules;
using Content.Server.GameTicking;
using Content.Server.GameTicking.Commands;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules;
using Content.Server.GameTicking.Rules.Components;
using Content.Shared.CCVar;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Configuration;
using Robust.Shared.GameObjects;
using Robust.Shared.Timing;
using System.Threading.Tasks;
using Content.Server.Administration.Systems;
using Content.Server.GameTicking;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Presets;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Maps;
using Content.Server.RoundEnd;
using Content.Shared.Administration.Managers;
using Content.Shared.CCVar;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Prototypes;
using Robust.Server.ServerStatus;
using Robust.Shared.Asynchronous;
using Content.Server.Antag.Components;
using Content.Server.Chat.Managers;
using Content.Server.GameTicking;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules;
using Content.Server.Ghost.Roles;
using Content.Server.Ghost.Roles.Components;
using Content.Server.Station.Systems;
using Content.Shared.Antag;
using Content.Shared.GameTicking;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Ghost;
using Content.Shared.Humanoid;
using Content.Shared.Players;
using Content.Server.Administration.Systems;
-using Content.Server.Destructible.Thresholds;
using Content.Shared.Antag;
+using Content.Shared.Destructible.Thresholds;
using Content.Shared.Roles;
using Content.Shared.Storage;
using Content.Shared.Whitelist;
using Content.Server.Antag.Mimic;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules;
using Content.Server.GameTicking.Rules.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.VendingMachines;
using Robust.Shared.Map;
using Robust.Shared.Random;
using System.Numerics;
using Content.Server.Forensics;
using Content.Server.Stack;
+using Content.Shared.Destructible.Thresholds;
using Content.Shared.Prototypes;
using Content.Shared.Stacks;
using Robust.Server.GameObjects;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary;
namespace Content.Server.Destructible.Thresholds.Behaviors
{
/// <summary>
/// Entities spawned on reaching this threshold, from a min to a max.
/// </summary>
- [DataField("spawn", customTypeSerializer:typeof(PrototypeIdDictionarySerializer<MinMax, EntityPrototype>))]
- public Dictionary<string, MinMax> Spawn { get; set; } = new();
+ [DataField]
+ public Dictionary<EntProtoId, MinMax> Spawn = new();
[DataField("offset")]
public float Offset { get; set; } = 0.5f;
+++ /dev/null
-using Robust.Shared.Random;
-
-namespace Content.Server.Destructible.Thresholds
-{
- [Serializable]
- [DataDefinition]
- public partial struct MinMax
- {
- [DataField("min")]
- public int Min;
-
- [DataField("max")]
- public int Max;
-
- public MinMax(int min, int max)
- {
- Min = min;
- Max = max;
- }
-
- public int Next(IRobustRandom random)
- {
- return random.Next(Min, Max + 1);
- }
- }
-}
using System.Linq;
using Content.Server.Administration;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Shared.Administration;
using Content.Shared.Database;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Prototypes;
using JetBrains.Annotations;
using Robust.Shared.Console;
using System.Linq;
using Content.Server.Administration.Commands;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.KillTracking;
using Content.Server.Mind;
using Content.Server.Points;
using Content.Server.RoundEnd;
using Content.Server.Station.Systems;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Points;
using Content.Shared.Storage;
using Robust.Server.GameObjects;
+++ /dev/null
-
-
-namespace Content.Server.GameTicking.Rules;
-
-/*
-[Prototype("gameRule")]
-public sealed partial class GameRulePrototype : IPrototype
-{
- [IdDataField]
- public string ID { get; private set; } = default!;
-
- [DataField("config", required: true)]
- public GameRuleConfiguration Configuration { get; private set; } = default!;
-}
-*/
using System.Diagnostics.CodeAnalysis;
using System.Linq;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Station.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Random.Helpers;
using Robust.Server.GameObjects;
using Robust.Shared.Collections;
using Content.Server.Atmos.EntitySystems;
using Content.Server.Chat.Managers;
-using Content.Server.GameTicking.Components;
+using Content.Shared.GameTicking.Components;
using Robust.Server.GameObjects;
using Robust.Shared.Random;
using Robust.Shared.Timing;
using System.Threading;
using Content.Server.Chat.Managers;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
+using Content.Shared.GameTicking.Components;
using Robust.Server.Player;
using Robust.Shared.Player;
using Timer = Robust.Shared.Timing.Timer;
using Content.Server.Chat.Managers;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.KillTracking;
using Content.Shared.Chat;
+using Content.Shared.GameTicking.Components;
using Robust.Server.Player;
using Robust.Shared.Player;
using Robust.Shared.Random;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.GridPreloader;
+using Content.Shared.GameTicking.Components;
using Robust.Server.GameObjects;
using Robust.Server.Maps;
using Robust.Shared.Map;
using System.Threading;
using Content.Server.Chat.Managers;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
+using Content.Shared.GameTicking.Components;
using Timer = Robust.Shared.Timing.Timer;
namespace Content.Server.GameTicking.Rules;
using Content.Server.Station.Components;
using Content.Server.Store.Components;
using Content.Server.Store.Systems;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Mobs;
using Content.Shared.Mobs.Components;
using Content.Shared.NPC.Components;
using Robust.Shared.Random;
using Robust.Shared.Utility;
using System.Linq;
-using Content.Server.GameTicking.Components;
using Content.Shared.Store.Components;
namespace Content.Server.GameTicking.Rules;
using Content.Server.Chat.Managers;
using Content.Server.Database.Migrations.Postgres;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Station.Systems;
using Content.Shared.Chat;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Interaction.Events;
using Content.Shared.Mind;
using Content.Shared.Mobs;
using Content.Server.Shuttles.Systems;
using Content.Server.Station.Systems;
using Content.Shared.Database;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Humanoid;
using Content.Shared.IdentityManagement;
using Content.Shared.Mind;
using Content.Shared.Zombies;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
-using Content.Server.GameTicking.Components;
using Content.Shared.Cuffs.Components;
namespace Content.Server.GameTicking.Rules;
using System.Linq;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Shuttles.Systems;
using Content.Server.Station.Components;
using Content.Server.Station.Events;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Storage;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Sandbox;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.GameTicking.Rules;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Content.Server.Administration.Logs;
-using Content.Server.GameTicking.Components;
using Content.Server.Chat.Managers;
using Content.Server.GameTicking.Presets;
using Content.Server.GameTicking.Rules.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Random;
using Content.Shared.CCVar;
using Content.Shared.Database;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Storage;
namespace Content.Server.GameTicking.Rules;
using Content.Server.PDA.Ringer;
using Content.Server.Roles;
using Content.Server.Traitor.Uplink;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Mind;
using Content.Shared.NPC.Systems;
using Content.Shared.Objectives.Components;
using Robust.Shared.Random;
using System.Linq;
using System.Text;
-using Content.Server.GameTicking.Components;
namespace Content.Server.GameTicking.Rules;
using Content.Server.Station.Components;
using Content.Server.Station.Systems;
using Content.Server.Zombies;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Humanoid;
using Content.Shared.Mind;
using Content.Shared.Mobs;
using Robust.Shared.Player;
using Robust.Shared.Timing;
using System.Globalization;
-using Content.Server.GameTicking.Components;
namespace Content.Server.GameTicking.Rules;
using Content.Server.GameTicking;
using Content.Server.Shuttles.Systems;
using Content.Shared.Cuffs.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Mind;
using Content.Shared.Objectives.Components;
using Content.Shared.Objectives.Systems;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using System.Linq;
-using Content.Server.GameTicking.Components;
using System.Text;
using Robust.Server.Player;
using Content.Server.Power.NodeGroups;
using Content.Server.Station.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Pinpointer;
using Content.Shared.Power;
using JetBrains.Annotations;
using Robust.Shared.Map.Components;
using Robust.Shared.Utility;
using System.Linq;
-using Content.Server.GameTicking.Components;
namespace Content.Server.Power.EntitySystems;
using System.Numerics;
using Content.Server.GameTicking;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Spawners.Components;
+using Content.Shared.GameTicking.Components;
using JetBrains.Annotations;
using Robust.Shared.Random;
using System.Linq;
using Content.Server.Administration;
using Content.Server.GameTicking;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
using Content.Shared.Administration;
+using Content.Shared.GameTicking.Components;
using JetBrains.Annotations;
using Robust.Shared.Random;
using Robust.Shared.Toolshed;
-using Content.Server.GameTicking.Components;
using Content.Server.StationEvents.Components;
using Content.Server.AlertLevel;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.StationEvents.Events;
_alertLevelSystem.SetLevel(chosenStation.Value, component.AlertLevel, true, true, true);
}
-}
\ No newline at end of file
+}
using Content.Server.Anomaly;
-using Content.Server.GameTicking.Components;
using Content.Server.Station.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Random;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Resist;
using Content.Server.Station.Components;
using Content.Server.Storage.Components;
using Content.Server.Storage.EntitySystems;
using Content.Shared.Access.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Coordinates;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.Power.Components;
using Content.Server.Power.EntitySystems;
using Content.Server.Station.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using JetBrains.Annotations;
namespace Content.Server.StationEvents.Events;
using System.Linq;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Station.Components;
using Content.Server.Station.Systems;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using JetBrains.Annotations;
using Robust.Shared.Random;
using Content.Server.Cargo.Components;
using Content.Server.Cargo.Systems;
using Content.Server.GameTicking;
-using Content.Server.GameTicking.Components;
using Content.Server.Station.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Prototypes;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
using Content.Server.StationRecords;
using Content.Server.StationRecords.Systems;
using Content.Shared.StationRecords;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Random;
namespace Content.Server.StationEvents.Events;
using System.Linq;
-using Content.Server.GameTicking.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using JetBrains.Annotations;
using Robust.Shared.Random;
using Content.Server.Atmos.EntitySystems;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Audio;
using Robust.Shared.Random;
using Robust.Shared.Timing;
using System.Numerics;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.ImmovableRod;
using Content.Server.StationEvents.Components;
using Content.Server.Weapons.Ranged.Systems;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Storage;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
-using Content.Server.GameTicking.Components;
using System.Linq;
using Content.Server.Silicons.Laws;
using Content.Server.Station.Components;
using Content.Shared.Database;
using Content.Shared.Dataset;
using Content.Shared.FixedPoint;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Random;
using Content.Shared.Random.Helpers;
using Content.Shared.Silicons.Laws;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
using Content.Server.Traits.Assorted;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Mind.Components;
using Content.Shared.Traits.Assorted;
using System.Numerics;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Physics.Components;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Ninja.Systems;
using Content.Server.Station.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using System.Threading;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Power.Components;
using Content.Server.Power.EntitySystems;
using Content.Server.Station.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
using JetBrains.Annotations;
using Robust.Shared.Audio;
using Robust.Shared.Player;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
using Content.Server.Storage.Components;
using Content.Server.Storage.EntitySystems;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Map;
using Robust.Shared.Random;
using System.Linq;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Ghost.Roles.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Radio;
using Robust.Shared.Random;
using Content.Shared.Radio.Components;
using Content.Shared.Doors.Components;
using Content.Shared.Doors.Systems;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.StationEvents.Events;
using Content.Server.Administration.Logs;
using Content.Server.Chat.Systems;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules;
using Content.Server.Station.Systems;
using Content.Server.StationEvents.Components;
using Content.Shared.Database;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Audio.Systems;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using System.Linq;
using Content.Server.Fluids.EntitySystems;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
+using Content.Shared.GameTicking.Components;
namespace Content.Server.StationEvents.Events;
-using Content.Server.GameTicking.Components;
using Content.Server.StationEvents.Components;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Station.Components;
+using Content.Shared.GameTicking.Components;
using Content.Shared.Storage;
using Robust.Shared.Map;
using Robust.Shared.Random;
using Content.Server.GameTicking;
-using Content.Server.GameTicking.Components;
using Content.Server.GameTicking.Rules;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.StationEvents.Components;
using Content.Server.StationEvents.Events;
using Content.Shared.CCVar;
+using Content.Shared.GameTicking.Components;
using Robust.Shared.Configuration;
using Robust.Shared.Random;
--- /dev/null
+using Robust.Shared.Random;
+
+namespace Content.Shared.Destructible.Thresholds;
+
+[DataDefinition, Serializable]
+public partial struct MinMax
+{
+ [DataField]
+ public int Min;
+
+ [DataField]
+ public int Max;
+
+ public MinMax(int min, int max)
+ {
+ Min = min;
+ Max = max;
+ }
+
+ public int Next(IRobustRandom random)
+ {
+ return random.Next(Min, Max + 1);
+ }
+}
-namespace Content.Server.GameTicking.Components;
+namespace Content.Shared.GameTicking.Components;
/// <summary>
/// Added to game rules before <see cref="GameRuleStartedEvent"/> and removed before <see cref="GameRuleEndedEvent"/>.
/// Mutually exclusive with <seealso cref="EndedGameRuleComponent"/>.
/// </summary>
[RegisterComponent]
-public sealed partial class ActiveGameRuleComponent : Component
-{
-}
+public sealed partial class ActiveGameRuleComponent : Component;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
-namespace Content.Server.GameTicking.Components;
+namespace Content.Shared.GameTicking.Components;
/// <summary>
/// Generic component used to track a gamerule that's start has been delayed.
-namespace Content.Server.GameTicking.Components;
+namespace Content.Shared.GameTicking.Components;
/// <summary>
/// Added to game rules before <see cref="GameRuleEndedEvent"/>.
/// Mutually exclusive with <seealso cref="ActiveGameRuleComponent"/>.
/// </summary>
[RegisterComponent]
-public sealed partial class EndedGameRuleComponent : Component
-{
-}
+public sealed partial class EndedGameRuleComponent : Component;
-using Content.Server.Destructible.Thresholds;
+using Content.Shared.Destructible.Thresholds;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
-namespace Content.Server.GameTicking.Components;
+namespace Content.Shared.GameTicking.Components;
/// <summary>
/// Component attached to all gamerule entities.