Files
OldThink/Content.Shared/_White/Cult/Components/CultistComponent.cs

70 lines
2.5 KiB
C#
Raw Normal View History

2024-01-27 15:19:52 +03:00
using System.Threading;
using Content.Shared.FixedPoint;
using Content.Shared.Mind;
2024-01-27 15:19:52 +03:00
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List;
2024-01-27 15:19:52 +03:00
2024-01-29 01:02:37 +07:00
namespace Content.Shared._White.Cult.Components;
2024-01-27 15:19:52 +03:00
/// <summary>
/// This is used for tagging a mob as a cultist.
/// </summary>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class CultistComponent : Component
2024-01-27 15:19:52 +03:00
{
[DataField("greetSound", customTypeSerializer: typeof(SoundSpecifierTypeSerializer))]
public SoundSpecifier? CultistGreetSound = new SoundPathSpecifier("/Audio/CultSounds/fart.ogg");
[ViewVariables(VVAccess.ReadWrite), DataField("holyConvertTime")]
public float HolyConvertTime = 15f;
public CancellationTokenSource? HolyConvertToken;
[AutoNetworkedField]
public List<NetEntity?> SelectedEmpowers = new();
2024-01-27 15:19:52 +03:00
[ViewVariables(VVAccess.ReadWrite)]
public FixedPoint2 RitesBloodAmount = FixedPoint2.Zero;
2023-11-15 19:15:07 +03:00
public static string SummonCultDaggerAction = "InstantActionSummonCultDagger";
2024-01-27 15:19:52 +03:00
2023-11-15 19:15:07 +03:00
public static string BloodRitesAction = "InstantActionBloodRites";
2024-01-27 15:19:52 +03:00
public static string EmpPulseAction = "InstantActionEmpPulse";
public static string ConcealPresenceAction = "InstantActionConcealPresence";
2023-11-15 19:15:07 +03:00
public static string CultTwistedConstructionAction = "ActionCultTwistedConstruction";
2024-01-27 15:19:52 +03:00
2023-11-15 19:15:07 +03:00
public static string CultTeleportAction = "ActionCultTeleport";
2024-01-27 15:19:52 +03:00
2023-11-15 19:15:07 +03:00
public static string CultSummonCombatEquipmentAction = "ActionCultSummonCombatEquipment";
2024-01-27 15:19:52 +03:00
public static string CultStunAction = "InstantActionCultStun";
public static string CultShadowShacklesAction = "ActionCultShadowShackles";
2023-11-15 19:15:07 +03:00
public static List<string> CultistActions = new()
2024-01-27 15:19:52 +03:00
{
SummonCultDaggerAction, BloodRitesAction, CultTwistedConstructionAction, CultTeleportAction,
CultSummonCombatEquipmentAction, CultStunAction, EmpPulseAction, ConcealPresenceAction, CultShadowShacklesAction
};
[DataField("bloodRites", customTypeSerializer: typeof(PrototypeIdListSerializer<CultistFactoryProductionPrototype>))]
public List<string> BloodRites = new ()
{
"FactoryCultBloodSpear",
"FactoryCultBloodBarrage"
2024-01-27 15:19:52 +03:00
};
[ViewVariables, NonSerialized]
public Entity<BloodSpearComponent>? BloodSpear;
[ViewVariables, NonSerialized]
public EntityUid? BloodSpearActionEntity;
[ViewVariables, NonSerialized]
public Entity<MindComponent>? OriginalMind;
2024-01-27 15:19:52 +03:00
}