* refactor CheZaHuetaMagicSystem * эщкере * alt-spells system. lmb, rmb, alt-click * fix * ChargeSpellsIndicator + Visual(CheZaHueta) * Custom charge effect for spell * Custom MaxChargeLevel * Finally. Alt spells seems to work!! Need to start do spells and gamerule * fuckkk * fix crash, actually burn scroll.. * some fixes blyat * ArcSpell * очередная CheZaHuetaSystem, ForceSpell * ONI'SOMA! * mraow * prepare this LMAO * Yebanyy rot etogo kazino blyat! - CardsSpell * forcewall * nig * blink * Ethereal Jaunt * игра говно * Блядина * ну на еще спеллов * blyadina * да иди ты нахуй БЛЯДЬ * кто прочитал, тот сдохнет. сделай 5 репостов чтобы выжить.... * icons * та ваще поебать * одежда
176 lines
4.4 KiB
C#
176 lines
4.4 KiB
C#
using Content.Shared.Actions;
|
|
using Content.Shared.DoAfter;
|
|
using Content.Shared.Magic;
|
|
using Robust.Shared.Audio;
|
|
using Robust.Shared.Prototypes;
|
|
using Robust.Shared.Serialization;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
|
|
|
namespace Content.Shared._White.Wizard;
|
|
|
|
#region HelperEvents
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed partial class ScrollDoAfterEvent : SimpleDoAfterEvent
|
|
{
|
|
}
|
|
|
|
[ByRefEvent]
|
|
public struct BeforeCastSpellEvent
|
|
{
|
|
public EntityUid Performer;
|
|
|
|
public bool Cancelled;
|
|
|
|
public BeforeCastSpellEvent(EntityUid performer)
|
|
{
|
|
Performer = performer;
|
|
}
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed partial class AddWizardChargeEvent : EntityEventArgs
|
|
{
|
|
public string ChargeProto;
|
|
|
|
public AddWizardChargeEvent(string chargeProto)
|
|
{
|
|
ChargeProto = chargeProto;
|
|
}
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed partial class RemoveWizardChargeEvent : EntityEventArgs
|
|
{
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed partial class RequestSpellChargingAudio : EntityEventArgs
|
|
{
|
|
public SoundSpecifier Sound;
|
|
public bool Loop;
|
|
|
|
public RequestSpellChargingAudio(SoundSpecifier sound, bool loop)
|
|
{
|
|
Sound = sound;
|
|
Loop = loop;
|
|
}
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed partial class RequestSpellChargedAudio : EntityEventArgs
|
|
{
|
|
public SoundSpecifier Sound;
|
|
public bool Loop;
|
|
|
|
public RequestSpellChargedAudio(SoundSpecifier sound, bool loop)
|
|
{
|
|
Sound = sound;
|
|
Loop = loop;
|
|
}
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
public sealed partial class RequestAudioSpellStop : EntityEventArgs
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Spells
|
|
|
|
public sealed partial class ArcSpellEvent : WorldTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
|
public string Prototype = default!;
|
|
|
|
[DataField("posData")]
|
|
public MagicSpawnData Pos = new TargetCasterPos();
|
|
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class ForceSpellEvent : WorldTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class FireballSpellEvent : WorldTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
|
public string Prototype = default!;
|
|
|
|
[DataField("posData")]
|
|
public MagicSpawnData Pos = new TargetCasterPos();
|
|
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class CardsSpellEvent : WorldTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
|
public string Prototype = default!;
|
|
|
|
[DataField("posData")]
|
|
public MagicSpawnData Pos = new TargetCasterPos();
|
|
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class ForceWallSpellEvent : WorldTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("prototype", required: true, customTypeSerializer: typeof(PrototypeIdSerializer<EntityPrototype>))]
|
|
public string Prototype = default!;
|
|
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class BlinkSpellEvent : InstantActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class EtherealJauntSpellEvent : InstantActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class EmpSpellEvent : InstantActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class CluwneCurseSpellEvent : EntityTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class BananaTouchSpellEvent : EntityTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class MimeTouchSpellEvent : EntityTargetActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
public sealed partial class InstantRecallSpellEvent : InstantActionEvent, ISpeakSpell
|
|
{
|
|
[DataField("speech")]
|
|
public string? Speech { get; private set; }
|
|
}
|
|
|
|
#endregion
|