Skip to content

Class: AbilityTrigger ​

csharp
[LogicUpdatePriority(-300)]
public class AbilityTrigger : Actor, ILogicUpdate, ICleanup, ICustomDestroyRoutine

Fields ​

NameDeclarationDescription
ClientEvent_OnOwnerChangedpublic SafeAction<Entity, Entity> ClientEvent_OnOwnerChanged
ClientTriggerEvent_OnCooldownReducedpublic SafeAction<int, float> ClientTriggerEvent_OnCooldownReducedconfigIndex, reductionAmount. Note the amount is non-discarded variant. e.g. Applying 100 seconds cooldown reduction to a 3 seconds skill will still report 100 seconds reduction.
ClientTriggerEvent_OnCooldownReducedByRatiopublic SafeAction<int, float> ClientTriggerEvent_OnCooldownReducedByRatio
ClientTriggerEvent_OnCurrentConfigChargedpublic SafeAction ClientTriggerEvent_OnCurrentConfigCharged
ClientTriggerEvent_OnCurrentConfigCooldownReducedpublic SafeAction ClientTriggerEvent_OnCurrentConfigCooldownReduced
configs`[ListDrawerSettings(Expanded = true)]
public TriggerConfig[] configs`
currentCharges`[SaveVar(SaveVarFlags.ApplyAfterFrameDelay)]
[NonSerialized]
public int[] currentCharges`
currentMinimumDelays`[SaveVar(SaveVarFlags.ApplyAfterFrameDelay)]
[NonSerialized]
public float[] currentMinimumDelays`
currentUnscaledCooldownTimes`[SaveVar(SaveVarFlags.ApplyAfterFrameDelay)]
[NonSerialized]
public float[] currentUnscaledCooldownTimes`
takenCooldownReductionByRatioProcessorpublic DataProcessorGroup<CooldownReductionByRatioSettings, Actor, AbilityTrigger> takenCooldownReductionByRatioProcessor
takenCooldownReductionProcessorpublic DataProcessorGroup<CooldownReductionSettings, Actor, AbilityTrigger> takenCooldownReductionProcessor
TriggerEvent_OnCastCompletepublic Action<EventInfoCast> TriggerEvent_OnCastComplete
TriggerEvent_OnCastCompleteBeforePreparepublic Action<EventInfoCast> TriggerEvent_OnCastCompleteBeforePrepare
TriggerEvent_OnCastStartpublic Action<EventInfoCast> TriggerEvent_OnCastStart

Properties ​

NameDeclarationDescription
abilityIndexpublic int abilityIndex { get; }Ability index of this trigger if equipped to an entity.
currentConfigpublic TriggerConfig currentConfig { get; }
currentConfigChangeHandlepublic AbilityTrigger.ChangedConfigHandle currentConfigChangeHandle { get; }
currentConfigCooldownTimepublic float currentConfigCooldownTime { get; }
currentConfigCurrentChargepublic int currentConfigCurrentCharge { get; }
currentConfigCurrentMinimumDelaypublic float currentConfigCurrentMinimumDelay { get; }
currentConfigIndexpublic int currentConfigIndex { get; set; }
currentConfigMaxCooldownTimepublic float currentConfigMaxCooldownTime { get; }
currentConfigUnscaledCooldownTimepublic float currentConfigUnscaledCooldownTime { get; }
currentConfigUnscaledMaxCooldownTimepublic float currentConfigUnscaledMaxCooldownTime { get; }
currentPassiveEffectpublic StatusEffect currentPassiveEffect { get; }
fillAmountpublic float fillAmount { get; set; }
ignoreRangeCheckpublic bool ignoreRangeCheck { get; set; }
isDestroyedOnRoomChangepublic override bool isDestroyedOnRoomChange { get; }
ownerpublic Entity owner { get; set; }

Methods ​

Awake() ​

csharp
protected override void Awake()

CanBeCast() ​

Can this ability be cast? By default this checks charges/delay/mana cost/self validator/self applied status effects.This must return same value for everyone to ensure consistency.

csharp
public virtual bool CanBeCast()

Returns: bool

CanBeReserved() ​

Can this ability be reserved? By default this checks everything that CanBeCast() checks but self validators.This must return same value for everyone to ensure consistency.

csharp
public virtual bool CanBeReserved()

Returns: bool

ChangeConfigTimed(int, float, Action<EventInfoAbilityInstance>, Action, bool) ​

csharp
public AbilityTrigger.ChangedConfigHandle ChangeConfigTimed(int index, float duration, Action<EventInfoAbilityInstance> onUse = null, Action onExpire = null, bool setFillAmount = true)

Parameters:

NameTypeDescription
indexint
durationfloat
onUseSystem.Action<T><EventInfoAbilityInstance>
onExpireSystem.Action
setFillAmountbool

Returns: AbilityTrigger.ChangedConfigHandle

ChangeConfigTimedOnce(int, float, Action&lt;EventInfoAbilityInstance&gt;, Action, bool) ​

csharp
public AbilityTrigger.ChangedConfigHandle ChangeConfigTimedOnce(int index, float duration, Action<EventInfoAbilityInstance> onUse = null, Action onExpire = null, bool setFillAmount = true)

Parameters:

NameTypeDescription
indexint
durationfloat
onUseSystem.Action<T><EventInfoAbilityInstance>
onExpireSystem.Action
setFillAmountbool

Returns: AbilityTrigger.ChangedConfigHandle

GetActorReadableName() ​

csharp
public override string GetActorReadableName()

Returns: string

GetAnimationSpeed() ​

csharp
public virtual float GetAnimationSpeed()

Returns: float

GetCastInfoToTarget(Entity) ​

csharp
public CastInfo GetCastInfoToTarget(Entity target)

Parameters:

NameTypeDescription
targetEntity

Returns: CastInfo

GetChannelDurationMultiplier() ​

csharp
public virtual float GetChannelDurationMultiplier()

Returns: float

GetCooldownTimeMultiplier(int) ​

csharp
public virtual float GetCooldownTimeMultiplier(int configIndex)

Parameters:

NameTypeDescription
configIndexint

Returns: float

GetCooldownTimeMultiplierByAbilityHaste(float) ​

csharp
public static float GetCooldownTimeMultiplierByAbilityHaste(float abilityHaste)

Parameters:

NameTypeDescription
abilityHastefloat

Returns: float

GetCooldownTimeOffset(int) ​

csharp
public virtual float GetCooldownTimeOffset(int configIndex)

Parameters:

NameTypeDescription
configIndexint

Returns: float

GetInstanceSpawnPosition(int, CastInfo) ​

csharp
protected virtual Vector3 GetInstanceSpawnPosition(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

Returns: UnityEngine.Vector3

GetInstanceSpawnRotation(int, CastInfo) ​

csharp
protected virtual Quaternion? GetInstanceSpawnRotation(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

Returns: UnityEngine.Quaternion?

GetMaxCooldownTime(int, bool) ​

csharp
public float GetMaxCooldownTime(int configIndex, bool scaled = true)

Parameters:

NameTypeDescription
configIndexint
scaledbool

Returns: float

GetPostDelayDurationMultiplier() ​

csharp
public virtual float GetPostDelayDurationMultiplier()

Returns: float

GetPredictedCastInfoToTarget(Entity, float) ​

csharp
public CastInfo GetPredictedCastInfoToTarget(Entity target, float strength)

Parameters:

NameTypeDescription
targetEntity
strengthfloat

Returns: CastInfo

GetPredictedCastInfoToTarget(Entity) ​

csharp
public CastInfo GetPredictedCastInfoToTarget(Entity target)

Parameters:

NameTypeDescription
targetEntity

Returns: CastInfo

IsConfigLocked(int) ​

csharp
public bool IsConfigLocked(int configIndex)

Parameters:

NameTypeDescription
configIndexint

Returns: bool

IsTargetInRange(Entity) ​

csharp
public bool IsTargetInRange(Entity target)

Parameters:

NameTypeDescription
targetEntity

Returns: bool

LockCooldown(int) ​

csharp
public void LockCooldown(int configIndex)

Parameters:

NameTypeDescription
configIndexint

LogicUpdate(float) ​

csharp
public override void LogicUpdate(float dt)

Parameters:

NameTypeDescription
dtfloat

OnCastCancel(int, CastInfo) ​

Called on server when this ability's cast channel is canceled.By default, this sets the cooldown time to 1 second if its smaller than 1 second.

csharp
protected virtual void OnCastCancel(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnCastCancelSetCooldownTime(int, CastInfo) ​

csharp
protected virtual void OnCastCancelSetCooldownTime(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnCastComplete(int, CastInfo) ​

Called on server when this ability's cast channel is completed.By default, this spends mana and ability charge, sets the appropriate cooldown time, delay, and creates the configured ability instance using the owner's position and rotation.If the config is direction-type, the rotation will be based off of the cast direction.

csharp
public virtual AbilityInstance OnCastComplete(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

Returns: AbilityInstance

OnCastCompleteBeforePrepare(EventInfoCast) ​

csharp
public virtual void OnCastCompleteBeforePrepare(EventInfoCast cast)

Parameters:

NameTypeDescription
castEventInfoCast

OnCastCompleteSetCharge(int, CastInfo) ​

csharp
public virtual void OnCastCompleteSetCharge(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnCastCompleteSetCooldownTime(int, CastInfo) ​

csharp
public virtual void OnCastCompleteSetCooldownTime(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnCastCompleteSetMinimumDelay(int, CastInfo) ​

csharp
public virtual void OnCastCompleteSetMinimumDelay(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnCastCompleteSpendMana(int, CastInfo) ​

csharp
public virtual void OnCastCompleteSpendMana(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnCastStart(int, CastInfo) ​

Called on server when this ability is cast.By default, this plays the animation and starts the configured channel.IffaceForwardis set to true, it will cause the owner to rotate towards the target/point/direction/cursor position.Target validation will be done on the channel if the cast method is set to Target.

csharp
public virtual void OnCastStart(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnConfigChanged(int, int) ​

Called everywhere when current config index is changed or set initial value.

csharp
protected virtual void OnConfigChanged(int oldIndex, int newIndex)

Parameters:

NameTypeDescription
oldIndexint
newIndexint

OnCreate() ​

csharp
protected override void OnCreate()

OnDeserialize(NetworkReader, bool) ​

csharp
public override void OnDeserialize(NetworkReader reader, bool initialState)

Parameters:

NameTypeDescription
readerMirror.NetworkReader
initialStatebool

OnEquip(Entity) ​

Called on everyone when the trigger is being equipped.

csharp
protected virtual void OnEquip(Entity newOwner)

Parameters:

NameTypeDescription
newOwnerEntity

OnRotateForward(int, CastInfo) ​

csharp
protected virtual void OnRotateForward(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnSerialize(NetworkWriter, bool) ​

csharp
public override void OnSerialize(NetworkWriter writer, bool initialState)

Parameters:

NameTypeDescription
writerMirror.NetworkWriter
initialStatebool

OnStartChannel(int, CastInfo) ​

csharp
protected virtual void OnStartChannel(int configIndex, CastInfo info)

Parameters:

NameTypeDescription
configIndexint
infoCastInfo

OnStartServer() ​

csharp
public override void OnStartServer()

OnStopServer() ​

csharp
public override void OnStopServer()

OnUnequip(Entity) ​

Called on everyone when the trigger is being unequipped.

csharp
protected virtual void OnUnequip(Entity formerOwner)

Parameters:

NameTypeDescription
formerOwnerEntity

PredictAngle_Simple(float, Entity, Vector3, float) ​

csharp
public static float PredictAngle_Simple(float strength, Entity target, Vector3 startPos, float delay)

Parameters:

NameTypeDescription
strengthfloat
targetEntity
startPosUnityEngine.Vector3
delayfloat

Returns: float

PredictAngle_SpeedAcceleration(float, Entity, Vector3, float, float, float, float, float) ​

csharp
public static float PredictAngle_SpeedAcceleration(float strength, Entity target, Vector3 startPos, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)

Parameters:

NameTypeDescription
strengthfloat
targetEntity
startPosUnityEngine.Vector3
delayfloat
frontDistancefloat
initSpeedfloat
targetSpeedfloat
accelerationfloat

Returns: float

PredictPoint_Simple(float, Entity, float) ​

csharp
public static Vector3 PredictPoint_Simple(float strength, Entity target, float delay)

Parameters:

NameTypeDescription
strengthfloat
targetEntity
delayfloat

Returns: UnityEngine.Vector3

PredictPoint_SpeedAcceleration(float, Entity, Vector3, float, float, float, float, float) ​

csharp
public static Vector3 PredictPoint_SpeedAcceleration(float strength, Entity target, Vector3 startPos, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)

Parameters:

NameTypeDescription
strengthfloat
targetEntity
startPosUnityEngine.Vector3
delayfloat
frontDistancefloat
initSpeedfloat
targetSpeedfloat
accelerationfloat

Returns: UnityEngine.Vector3

PredictPointClamped_Simple(float, Entity, Vector3, float, float) ​

csharp
public static Vector3 PredictPointClamped_Simple(float strength, Entity target, Vector3 startPos, float range, float delay)

Parameters:

NameTypeDescription
strengthfloat
targetEntity
startPosUnityEngine.Vector3
rangefloat
delayfloat

Returns: UnityEngine.Vector3

PredictPointClamped_SpeedAcceleration(float, Entity, Vector3, float, float, float, float, float, float) ​

csharp
public static Vector3 PredictPointClamped_SpeedAcceleration(float strength, Entity target, Vector3 startPos, float range, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)

Parameters:

NameTypeDescription
strengthfloat
targetEntity
startPosUnityEngine.Vector3
rangefloat
delayfloat
frontDistancefloat
initSpeedfloat
targetSpeedfloat
accelerationfloat

Returns: UnityEngine.Vector3

PredictTime_SpeedAcceleration(Entity, Vector3, float, float, float, float, float) ​

csharp
public static float PredictTime_SpeedAcceleration(Entity target, Vector3 startPos, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)

Parameters:

NameTypeDescription
targetEntity
startPosUnityEngine.Vector3
delayfloat
frontDistancefloat
initSpeedfloat
targetSpeedfloat
accelerationfloat

Returns: float

ProcessRange(float) ​

csharp
public virtual float ProcessRange(float original)

Parameters:

NameTypeDescription
originalfloat

Returns: float

ProcessReceivedCooldownReduction(ref CooldownReductionSettings, Actor) ​

csharp
public void ProcessReceivedCooldownReduction(ref CooldownReductionSettings data, Actor actor)

Parameters:

NameTypeDescription
dataCooldownReductionSettings
actorActor

ProcessReceivedCooldownReductionByRatio(ref CooldownReductionByRatioSettings, Actor) ​

csharp
public void ProcessReceivedCooldownReductionByRatio(ref CooldownReductionByRatioSettings data, Actor actor)

Parameters:

NameTypeDescription
dataCooldownReductionByRatioSettings
actorActor

SetCharge(int, int) ​

csharp
public void SetCharge(int configIndex, int charge)

Parameters:

NameTypeDescription
configIndexint
chargeint

SetChargeAll(int) ​

csharp
public void SetChargeAll(int charge)

Parameters:

NameTypeDescription
chargeint

SetCooldownTime(int, float, bool) ​

csharp
public void SetCooldownTime(int configIndex, float time, bool scaled = true)

Parameters:

NameTypeDescription
configIndexint
timefloat
scaledbool

SetCooldownTimeAll(float, bool) ​

csharp
public void SetCooldownTimeAll(float time, bool scaled = true)

Parameters:

NameTypeDescription
timefloat
scaledbool

SetMinimumDelay(int, float) ​

csharp
public void SetMinimumDelay(int configIndex, float delay)

Parameters:

NameTypeDescription
configIndexint
delayfloat

SetMinimumDelayAll(float) ​

csharp
public void SetMinimumDelayAll(float delay)

Parameters:

NameTypeDescription
delayfloat

ShouldTickCooldown(int) ​

If false, this trigger will not tick cooldowns by itself nor replenish charges. Delays will tick as usual. This should return same values in server and clients for consistent behavior.

csharp
protected virtual bool ShouldTickCooldown(int configIndex)

Parameters:

NameTypeDescription
configIndexint

Returns: bool

SyncCastMethodChanges(int) ​

csharp
public void SyncCastMethodChanges(int configIndex)

Parameters:

NameTypeDescription
configIndexint

UndoChangeConfig() ​

csharp
public void UndoChangeConfig()

UnlockCooldown(int) ​

csharp
public void UnlockCooldown(int configIndex)

Parameters:

NameTypeDescription
configIndexint

Maintained by the Shape of Dreams Modding Community