fish-station/Content.Shared/Vampire/VampireEvents.cs
Rinary a85433e877
Новый антагонист: Вампиры (#560)
* Initial Commit

* Unfinished

* Continuing, more abilities

* Remove necromicon healing

* oops

* Continuing

* Continuing

* Checkpoint incase i need to undo something

* Rewrite to use event per power, working passives

* refactor fixes

* so many fixes

* some fixes

* some fixes

* new textures, status icon

* vampire antag role, mind role

* проверку на дауна вызывали?(если Null, у сервера ступор головного фатала)

* fix 1

* fix 2

* fix fatal, fix build

* breafing audio

* fix icons style, store in action

* clear store things, add gamerule, mid round game rule

* some rework

* clear any store systems

* clear x2

* if you have 150 Blood Essence, you get mutation

* upd

* some changes

* simple mutation menu

* я вот сижу, в 12 ночи, пишу какую-то очередную хуйню, вместо приятного сна...

* upd

* normal mutations menu

* actions translate

* None type, base actions list

* passive abilities

* ability earning

* fix

* translate vampire preset

* translate vampire mutations menu

* mutations menu textures

* disable some

* ДРАНЫЙ БРИФ ФАТАЛКУ ПО ПРИКОЛУ БЕЕМ

* game preset

* mutation can infinity changed

* fix

* fully rework abilities update system

* gargantua info

* update ignore list

* fix gargantua passives

* vampire objectives

* new icons

* balance

* fix

* upd objectives

* fix metabolizer type, balance 2

* fix metabolizer type 2

* fix syntax

* clear translation

* xd

* update

* round end info

* fix

* drain objective fix

* fix

* fix syntax

* fix

* clear

---------

Co-authored-by: Rainfey <rainfey0+github@gmail.com>
2024-10-31 19:06:01 +03:00

61 lines
2.2 KiB
C#

using Content.Shared.Actions;
using Content.Shared.DoAfter;
using Content.Shared.Vampire.Components;
using Robust.Shared.Serialization;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Shared.Vampire;
//Use power events
public sealed partial class VampireToggleFangsEvent : VampireSelfPowerEvent { }
public sealed partial class VampireOpenMutationsMenu : InstantActionEvent { }
public sealed partial class VampireScreechEvent : VampireSelfPowerEvent { }
public sealed partial class VampirePolymorphEvent : VampireSelfPowerEvent { }
public sealed partial class VampireBloodStealEvent : VampireSelfPowerEvent { }
public sealed partial class VampireCloakOfDarknessEvent : VampireSelfPowerEvent { }
public sealed partial class VampireGlareEvent : VampireTargetedPowerEvent { }
public sealed partial class VampireHypnotiseEvent : VampireTargetedPowerEvent { }
public abstract partial class VampireSelfPowerEvent : InstantActionEvent
{
[DataField(customTypeSerializer: typeof(PrototypeIdSerializer<VampirePowerProtype>))]
public string DefinitionName = default!;
};
public abstract partial class VampireTargetedPowerEvent : EntityTargetActionEvent
{
[DataField(customTypeSerializer: typeof(PrototypeIdSerializer<VampirePowerProtype>))]
public string DefinitionName = default!;
};
public sealed partial class VampirePassiveActionEvent : BaseActionEvent
{
[DataField(customTypeSerializer: typeof(PrototypeIdSerializer<VampirePowerProtype>))]
public string DefinitionName = default!;
};
//Purchase passive events
[Serializable, NetSerializable]
public sealed partial class VampirePurchaseUnnaturalStrength : EntityEventArgs { }
[Serializable, NetSerializable]
public sealed partial class VampireBloodChangedEvent : EntityEventArgs { }
//Doafter events
[Serializable, NetSerializable]
public sealed partial class VampireDrinkBloodDoAfterEvent : DoAfterEvent
{
[DataField]
public float Volume = 0;
public override DoAfterEvent Clone() => this;
}
[Serializable, NetSerializable]
public sealed partial class VampireHypnotiseDoAfterEvent : DoAfterEvent
{
[DataField]
public TimeSpan? Duration = TimeSpan.Zero;
public override DoAfterEvent Clone() => this;
}