2025-03-13 18:09:07 +01:00
|
|
|
using Content.Shared.Cloning;
|
2025-03-16 23:24:47 +01:00
|
|
|
using Content.Shared.Whitelist;
|
2025-03-13 18:09:07 +01:00
|
|
|
using Robust.Shared.Prototypes;
|
|
|
|
|
|
|
|
|
|
namespace Content.Server.GameTicking.Rules.Components;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gamerule component for spawning a paradox clone antagonist.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[RegisterComponent]
|
|
|
|
|
public sealed partial class ParadoxCloneRuleComponent : Component
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Cloning settings to be used.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
2025-03-26 16:34:17 +01:00
|
|
|
public ProtoId<CloningSettingsPrototype> Settings = "Antag";
|
2025-03-13 18:09:07 +01:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Visual effect spawned when gibbing at round end.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
|
|
|
|
public EntProtoId GibProto = "MobParadoxTimed";
|
2025-03-16 23:24:47 +01:00
|
|
|
|
2025-03-27 18:04:25 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// Entity of the original player.
|
|
|
|
|
/// Gets randomly chosen from all alive players if not specified.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
|
|
|
|
public EntityUid? OriginalBody;
|
|
|
|
|
|
2025-03-16 23:24:47 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// Mind entity of the original player.
|
|
|
|
|
/// Gets assigned when cloning.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
2025-03-27 18:04:25 +01:00
|
|
|
public EntityUid? OriginalMind;
|
2025-03-16 23:24:47 +01:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Whitelist for Objectives to be copied to the clone.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
|
|
|
|
public EntityWhitelist? ObjectiveWhitelist;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Blacklist for Objectives to be copied to the clone.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[DataField]
|
|
|
|
|
public EntityWhitelist? ObjectiveBlacklist;
|
2025-03-13 18:09:07 +01:00
|
|
|
}
|