2024-07-28 17:26:47 +03:00
|
|
|
using Content.Shared.Actions;
|
|
|
|
|
using Content.Shared.DoAfter;
|
|
|
|
|
using Robust.Shared.Map;
|
|
|
|
|
using Robust.Shared.Serialization;
|
|
|
|
|
|
2024-08-01 11:52:27 +03:00
|
|
|
namespace Content.Shared._CP14.MagicSpell.Events;
|
2024-07-28 17:26:47 +03:00
|
|
|
|
2024-09-29 16:44:17 +03:00
|
|
|
public sealed partial class CP14DelayedEntityWorldTargetActionEvent : EntityWorldTargetActionEvent,
|
|
|
|
|
ICP14DelayedMagicEffect
|
2024-07-28 17:26:47 +03:00
|
|
|
{
|
|
|
|
|
[DataField]
|
2024-11-07 16:04:49 +03:00
|
|
|
public float Cooldown { get; private set; } = 1f;
|
|
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public float CastDelay { get; private set; } = 1f;
|
2024-07-28 17:26:47 +03:00
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool BreakOnMove { get; private set; } = true;
|
|
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool BreakOnDamage { get; private set; } = true;
|
2024-08-05 15:22:14 +03:00
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool Hidden { get; private set; } = false;
|
2024-07-28 17:26:47 +03:00
|
|
|
|
|
|
|
|
[DataField]
|
2024-09-29 16:44:17 +03:00
|
|
|
public float EntityDistance { get; private set; } = 100f;
|
2024-07-28 17:26:47 +03:00
|
|
|
}
|
|
|
|
|
|
2024-11-07 16:04:49 +03:00
|
|
|
//Entity Target
|
|
|
|
|
public sealed partial class CP14DelayedEntityTargetActionEvent : EntityTargetActionEvent,
|
|
|
|
|
ICP14DelayedMagicEffect
|
2024-07-28 17:26:47 +03:00
|
|
|
{
|
|
|
|
|
[DataField]
|
2024-11-07 16:04:49 +03:00
|
|
|
public float Cooldown { get; private set; } = 1f;
|
|
|
|
|
|
2024-07-28 17:26:47 +03:00
|
|
|
[DataField]
|
2024-11-07 16:04:49 +03:00
|
|
|
public float CastDelay { get; private set; } = 1f;
|
2024-08-05 15:22:14 +03:00
|
|
|
|
2024-11-07 16:04:49 +03:00
|
|
|
[DataField]
|
|
|
|
|
public bool BreakOnMove { get; private set; } = true;
|
2024-07-28 17:26:47 +03:00
|
|
|
|
2024-11-07 16:04:49 +03:00
|
|
|
[DataField]
|
|
|
|
|
public bool BreakOnDamage { get; private set; } = true;
|
|
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool Hidden { get; private set; } = false;
|
|
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public float EntityDistance { get; private set; } = 100f;
|
2024-07-28 17:26:47 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed partial class CP14DelayedInstantActionEvent : InstantActionEvent, ICP14DelayedMagicEffect
|
|
|
|
|
{
|
|
|
|
|
[DataField]
|
2024-11-07 16:04:49 +03:00
|
|
|
public float Cooldown { get; private set; } = 3f;
|
|
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public float CastDelay { get; private set; } = 1f;
|
2024-07-28 17:26:47 +03:00
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool BreakOnMove { get; private set; } = true;
|
|
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool BreakOnDamage { get; private set; } = true;
|
2024-08-05 15:22:14 +03:00
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public bool Hidden { get; private set; } = false;
|
2024-09-29 16:44:17 +03:00
|
|
|
|
|
|
|
|
[DataField]
|
|
|
|
|
public float EntityDistance { get; private set; } = 100f;
|
2024-07-28 17:26:47 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Serializable, NetSerializable]
|
2024-11-07 16:04:49 +03:00
|
|
|
public sealed partial class CP14DelayedEntityWorldTargetActionDoAfterEvent : DoAfterEvent
|
2024-07-28 17:26:47 +03:00
|
|
|
{
|
2024-11-07 16:04:49 +03:00
|
|
|
[DataField]
|
|
|
|
|
public NetCoordinates? TargetPosition;
|
|
|
|
|
[DataField]
|
|
|
|
|
public NetEntity? TargetEntity;
|
|
|
|
|
[DataField]
|
|
|
|
|
public float? Cooldown;
|
|
|
|
|
|
|
|
|
|
public CP14DelayedEntityWorldTargetActionDoAfterEvent(NetCoordinates? targetPos, NetEntity? targetEntity, float cooldown)
|
|
|
|
|
{
|
|
|
|
|
TargetPosition = targetPos;
|
|
|
|
|
TargetEntity = targetEntity;
|
|
|
|
|
Cooldown = cooldown;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override DoAfterEvent Clone() => this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Serializable, NetSerializable]
|
|
|
|
|
public sealed partial class CP14DelayedEntityTargetActionDoAfterEvent : DoAfterEvent
|
|
|
|
|
{
|
|
|
|
|
[DataField]
|
|
|
|
|
public NetEntity? TargetEntity;
|
|
|
|
|
[DataField]
|
|
|
|
|
public float? Cooldown;
|
|
|
|
|
|
|
|
|
|
public CP14DelayedEntityTargetActionDoAfterEvent(NetEntity? targetEntity, float cooldown)
|
|
|
|
|
{
|
|
|
|
|
TargetEntity = targetEntity;
|
|
|
|
|
Cooldown = cooldown;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override DoAfterEvent Clone() => this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Serializable, NetSerializable]
|
|
|
|
|
public sealed partial class CP14DelayedInstantActionDoAfterEvent : DoAfterEvent
|
|
|
|
|
{
|
|
|
|
|
[DataField]
|
|
|
|
|
public float? Cooldown;
|
|
|
|
|
|
|
|
|
|
public CP14DelayedInstantActionDoAfterEvent(float cooldown)
|
|
|
|
|
{
|
|
|
|
|
Cooldown = cooldown;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override DoAfterEvent Clone() => this;
|
2024-07-28 17:26:47 +03:00
|
|
|
}
|