* move to gurps magic types * spell traits, categorize spells * Update TraitSystem.cs * magic spells item provider * Update twoHandedStaffs.yml * Update CP14MagicManacostModifySystem.cs * Update CP14SpellStorageSystem.cs * some funny shit * fix problems 1 * FIX * more funny broken shit * predict slowdown, fixes funny * EntityTarget action * fixes * Update T1_sphere_of_light.yml * fix demiplan loot centering * predict movement!
124 lines
3.1 KiB
C#
124 lines
3.1 KiB
C#
using Content.Shared.Actions;
|
|
using Content.Shared.DoAfter;
|
|
using Robust.Shared.Map;
|
|
using Robust.Shared.Serialization;
|
|
|
|
namespace Content.Shared._CP14.MagicSpell.Events;
|
|
|
|
public sealed partial class CP14DelayedEntityWorldTargetActionEvent : EntityWorldTargetActionEvent,
|
|
ICP14DelayedMagicEffect
|
|
{
|
|
[DataField]
|
|
public float Cooldown { get; private set; } = 1f;
|
|
|
|
[DataField]
|
|
public float CastDelay { get; private set; } = 1f;
|
|
|
|
[DataField]
|
|
public bool BreakOnMove { get; private set; } = true;
|
|
|
|
[DataField]
|
|
public bool BreakOnDamage { get; private set; } = true;
|
|
|
|
[DataField]
|
|
public bool Hidden { get; private set; } = false;
|
|
|
|
[DataField]
|
|
public float EntityDistance { get; private set; } = 100f;
|
|
}
|
|
|
|
//Entity Target
|
|
public sealed partial class CP14DelayedEntityTargetActionEvent : EntityTargetActionEvent,
|
|
ICP14DelayedMagicEffect
|
|
{
|
|
[DataField]
|
|
public float Cooldown { get; private set; } = 1f;
|
|
|
|
[DataField]
|
|
public float CastDelay { get; private set; } = 1f;
|
|
|
|
[DataField]
|
|
public bool BreakOnMove { get; private set; } = true;
|
|
|
|
[DataField]
|
|
public bool BreakOnDamage { get; private set; } = true;
|
|
|
|
[DataField]
|
|
public bool Hidden { get; private set; } = false;
|
|
|
|
[DataField]
|
|
public float EntityDistance { get; private set; } = 100f;
|
|
}
|
|
|
|
public sealed partial class CP14DelayedInstantActionEvent : InstantActionEvent, ICP14DelayedMagicEffect
|
|
{
|
|
[DataField]
|
|
public float Cooldown { get; private set; } = 3f;
|
|
|
|
[DataField]
|
|
public float CastDelay { get; private set; } = 1f;
|
|
|
|
[DataField]
|
|
public bool BreakOnMove { get; private set; } = true;
|
|
|
|
[DataField]
|
|
public bool BreakOnDamage { get; private set; } = true;
|
|
|
|
[DataField]
|
|
public bool Hidden { get; private set; } = false;
|
|
|
|
[DataField]
|
|
public float EntityDistance { get; private set; } = 100f;
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed partial class CP14DelayedEntityWorldTargetActionDoAfterEvent : DoAfterEvent
|
|
{
|
|
[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;
|
|
}
|