Class AbilityTrigger
"Buttons" that entities can press to spawn an instance of abilities.
Inheritance
object
UnityEngine.Object
UnityEngine.Component
UnityEngine.Behaviour
UnityEngine.MonoBehaviour
Mirror.NetworkBehaviour
AbilityTrigger
Assembly: Dew.Core.dll
Syntax
[LogicUpdatePriority(-300)]
public class AbilityTrigger : Actor, ILogicUpdate, ICleanup, ICustomDestroyRoutine
Fields
ClientEvent_OnOwnerChanged
Declaration
public SafeAction<Entity, Entity> ClientEvent_OnOwnerChanged
Field Value
ClientTriggerEvent_OnCooldownReduced
configIndex, 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.
Declaration
public SafeAction<int, float> ClientTriggerEvent_OnCooldownReduced
Field Value
ClientTriggerEvent_OnCooldownReducedByRatio
Declaration
public SafeAction<int, float> ClientTriggerEvent_OnCooldownReducedByRatio
Field Value
ClientTriggerEvent_OnCurrentConfigCharged
Declaration
public SafeAction ClientTriggerEvent_OnCurrentConfigCharged
Field Value
ClientTriggerEvent_OnCurrentConfigCooldownReduced
Declaration
public SafeAction ClientTriggerEvent_OnCurrentConfigCooldownReduced
Field Value
configs
Declaration
[ListDrawerSettings(Expanded = true)]
public TriggerConfig[] configs
Field Value
currentCharges
Declaration
[SaveVar(SaveVarFlags.ApplyAfterFrameDelay)]
[NonSerialized]
public int[] currentCharges
Field Value
currentMinimumDelays
Declaration
[SaveVar(SaveVarFlags.ApplyAfterFrameDelay)]
[NonSerialized]
public float[] currentMinimumDelays
Field Value
currentUnscaledCooldownTimes
Declaration
[SaveVar(SaveVarFlags.ApplyAfterFrameDelay)]
[NonSerialized]
public float[] currentUnscaledCooldownTimes
Field Value
takenCooldownReductionByRatioProcessor
Declaration
public DataProcessorGroup<CooldownReductionByRatioSettings, Actor, AbilityTrigger> takenCooldownReductionByRatioProcessor
Field Value
takenCooldownReductionProcessor
Declaration
public DataProcessorGroup<CooldownReductionSettings, Actor, AbilityTrigger> takenCooldownReductionProcessor
Field Value
TriggerEvent_OnCastComplete
Declaration
public Action<EventInfoCast> TriggerEvent_OnCastComplete
Field Value
TriggerEvent_OnCastCompleteBeforePrepare
Declaration
public Action<EventInfoCast> TriggerEvent_OnCastCompleteBeforePrepare
Field Value
TriggerEvent_OnCastStart
Declaration
public Action<EventInfoCast> TriggerEvent_OnCastStart
Field Value
Properties
abilityIndex
Ability index of this trigger if equipped to an entity.
Declaration
public int abilityIndex { get; }
Property Value
currentConfig
Declaration
public TriggerConfig currentConfig { get; }
Property Value
currentConfigChangeHandle
Declaration
public AbilityTrigger.ChangedConfigHandle currentConfigChangeHandle { get; }
Property Value
currentConfigCooldownTime
Declaration
public float currentConfigCooldownTime { get; }
Property Value
currentConfigCurrentCharge
Declaration
public int currentConfigCurrentCharge { get; }
Property Value
currentConfigCurrentMinimumDelay
Declaration
public float currentConfigCurrentMinimumDelay { get; }
Property Value
currentConfigIndex
Declaration
public int currentConfigIndex { get; set; }
Property Value
currentConfigMaxCooldownTime
Declaration
public float currentConfigMaxCooldownTime { get; }
Property Value
currentConfigUnscaledCooldownTime
Declaration
public float currentConfigUnscaledCooldownTime { get; }
Property Value
currentConfigUnscaledMaxCooldownTime
Declaration
public float currentConfigUnscaledMaxCooldownTime { get; }
Property Value
currentPassiveEffect
Declaration
public StatusEffect currentPassiveEffect { get; }
Property Value
fillAmount
Declaration
public float fillAmount { get; set; }
Property Value
ignoreRangeCheck
Declaration
public bool ignoreRangeCheck { get; set; }
Property Value
isDestroyedOnRoomChange
Declaration
public override bool isDestroyedOnRoomChange { get; }
Property Value
Overrides
owner
Declaration
public Entity owner { get; set; }
Property Value
Methods
Awake()
Declaration
protected override void Awake()
Overrides
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.
Declaration
public virtual bool CanBeCast()
Returns
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.
Declaration
public virtual bool CanBeReserved()
Returns
ChangeConfigTimed(int, float, Action<EventInfoAbilityInstance>, Action, bool)
Declaration
public AbilityTrigger.ChangedConfigHandle ChangeConfigTimed(int index, float duration, Action<EventInfoAbilityInstance> onUse = null, Action onExpire = null, bool setFillAmount = true)
Parameters
| Type |
Name |
Description |
| int |
index |
|
| float |
duration |
|
| System.Action<T><EventInfoAbilityInstance> |
onUse |
|
| System.Action |
onExpire |
|
| bool |
setFillAmount |
|
Returns
ChangeConfigTimedOnce(int, float, Action<EventInfoAbilityInstance>, Action, bool)
Declaration
public AbilityTrigger.ChangedConfigHandle ChangeConfigTimedOnce(int index, float duration, Action<EventInfoAbilityInstance> onUse = null, Action onExpire = null, bool setFillAmount = true)
Parameters
| Type |
Name |
Description |
| int |
index |
|
| float |
duration |
|
| System.Action<T><EventInfoAbilityInstance> |
onUse |
|
| System.Action |
onExpire |
|
| bool |
setFillAmount |
|
Returns
GetActorReadableName()
Declaration
public override string GetActorReadableName()
Returns
Overrides
GetAnimationSpeed()
Declaration
public virtual float GetAnimationSpeed()
Returns
GetCastInfoToTarget(Entity)
Declaration
public CastInfo GetCastInfoToTarget(Entity target)
Parameters
| Type |
Name |
Description |
| Entity |
target |
|
Returns
GetChannelDurationMultiplier()
Declaration
public virtual float GetChannelDurationMultiplier()
Returns
GetCooldownTimeMultiplier(int)
Declaration
public virtual float GetCooldownTimeMultiplier(int configIndex)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
Returns
GetCooldownTimeMultiplierByAbilityHaste(float)
Declaration
public static float GetCooldownTimeMultiplierByAbilityHaste(float abilityHaste)
Parameters
| Type |
Name |
Description |
| float |
abilityHaste |
|
Returns
GetCooldownTimeOffset(int)
Declaration
public virtual float GetCooldownTimeOffset(int configIndex)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
Returns
GetInstanceSpawnPosition(int, CastInfo)
Declaration
protected virtual Vector3 GetInstanceSpawnPosition(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
Returns
| Type |
Description |
| UnityEngine.Vector3 |
|
GetInstanceSpawnRotation(int, CastInfo)
Declaration
protected virtual Quaternion? GetInstanceSpawnRotation(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
Returns
| Type |
Description |
| UnityEngine.Quaternion? |
|
GetMaxCooldownTime(int, bool)
Declaration
public float GetMaxCooldownTime(int configIndex, bool scaled = true)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| bool |
scaled |
|
Returns
GetPostDelayDurationMultiplier()
Declaration
public virtual float GetPostDelayDurationMultiplier()
Returns
GetPredictedCastInfoToTarget(Entity, float)
Declaration
public CastInfo GetPredictedCastInfoToTarget(Entity target, float strength)
Parameters
| Type |
Name |
Description |
| Entity |
target |
|
| float |
strength |
|
Returns
GetPredictedCastInfoToTarget(Entity)
Declaration
public CastInfo GetPredictedCastInfoToTarget(Entity target)
Parameters
| Type |
Name |
Description |
| Entity |
target |
|
Returns
IsConfigLocked(int)
Declaration
public bool IsConfigLocked(int configIndex)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
Returns
IsTargetInRange(Entity)
Declaration
public bool IsTargetInRange(Entity target)
Parameters
| Type |
Name |
Description |
| Entity |
target |
|
Returns
LockCooldown(int)
Declaration
public void LockCooldown(int configIndex)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
LogicUpdate(float)
Declaration
public override void LogicUpdate(float dt)
Parameters
| Type |
Name |
Description |
| float |
dt |
|
Overrides
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.
Declaration
protected virtual void OnCastCancel(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnCastCancelSetCooldownTime(int, CastInfo)
Declaration
protected virtual void OnCastCancelSetCooldownTime(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
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.
Declaration
public virtual AbilityInstance OnCastComplete(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
Returns
OnCastCompleteBeforePrepare(EventInfoCast)
Declaration
public virtual void OnCastCompleteBeforePrepare(EventInfoCast cast)
Parameters
OnCastCompleteSetCharge(int, CastInfo)
Declaration
public virtual void OnCastCompleteSetCharge(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnCastCompleteSetCooldownTime(int, CastInfo)
Declaration
public virtual void OnCastCompleteSetCooldownTime(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnCastCompleteSetMinimumDelay(int, CastInfo)
Declaration
public virtual void OnCastCompleteSetMinimumDelay(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnCastCompleteSpendMana(int, CastInfo)
Declaration
public virtual void OnCastCompleteSpendMana(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnCastStart(int, CastInfo)
Called on server when this ability is cast.
By default, this plays the animation and starts the configured channel.
If faceForward is 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.
Declaration
public virtual void OnCastStart(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnConfigChanged(int, int)
Called everywhere when current config index is changed or set initial value.
Declaration
protected virtual void OnConfigChanged(int oldIndex, int newIndex)
Parameters
| Type |
Name |
Description |
| int |
oldIndex |
|
| int |
newIndex |
|
OnCreate()
Declaration
protected override void OnCreate()
Overrides
OnDeserialize(NetworkReader, bool)
Declaration
public override void OnDeserialize(NetworkReader reader, bool initialState)
Parameters
| Type |
Name |
Description |
| Mirror.NetworkReader |
reader |
|
| bool |
initialState |
|
Overrides
Mirror.NetworkBehaviour.OnDeserialize(Mirror.NetworkReader, bool)
OnEquip(Entity)
Called on everyone when the trigger is being equipped.
Declaration
protected virtual void OnEquip(Entity newOwner)
Parameters
| Type |
Name |
Description |
| Entity |
newOwner |
|
OnRotateForward(int, CastInfo)
Declaration
protected virtual void OnRotateForward(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnSerialize(NetworkWriter, bool)
Declaration
public override void OnSerialize(NetworkWriter writer, bool initialState)
Parameters
| Type |
Name |
Description |
| Mirror.NetworkWriter |
writer |
|
| bool |
initialState |
|
Overrides
Mirror.NetworkBehaviour.OnSerialize(Mirror.NetworkWriter, bool)
OnStartChannel(int, CastInfo)
Declaration
protected virtual void OnStartChannel(int configIndex, CastInfo info)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| CastInfo |
info |
|
OnStartServer()
Declaration
public override void OnStartServer()
Overrides
OnStopServer()
Declaration
public override void OnStopServer()
Overrides
OnUnequip(Entity)
Called on everyone when the trigger is being unequipped.
Declaration
protected virtual void OnUnequip(Entity formerOwner)
Parameters
| Type |
Name |
Description |
| Entity |
formerOwner |
|
PredictAngle_Simple(float, Entity, Vector3, float)
Declaration
public static float PredictAngle_Simple(float strength, Entity target, Vector3 startPos, float delay)
Parameters
| Type |
Name |
Description |
| float |
strength |
|
| Entity |
target |
|
| UnityEngine.Vector3 |
startPos |
|
| float |
delay |
|
Returns
PredictAngle_SpeedAcceleration(float, Entity, Vector3, float, float, float, float, float)
Declaration
public static float PredictAngle_SpeedAcceleration(float strength, Entity target, Vector3 startPos, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)
Parameters
| Type |
Name |
Description |
| float |
strength |
|
| Entity |
target |
|
| UnityEngine.Vector3 |
startPos |
|
| float |
delay |
|
| float |
frontDistance |
|
| float |
initSpeed |
|
| float |
targetSpeed |
|
| float |
acceleration |
|
Returns
PredictPoint_Simple(float, Entity, float)
Declaration
public static Vector3 PredictPoint_Simple(float strength, Entity target, float delay)
Parameters
| Type |
Name |
Description |
| float |
strength |
|
| Entity |
target |
|
| float |
delay |
|
Returns
| Type |
Description |
| UnityEngine.Vector3 |
|
PredictPoint_SpeedAcceleration(float, Entity, Vector3, float, float, float, float, float)
Declaration
public static Vector3 PredictPoint_SpeedAcceleration(float strength, Entity target, Vector3 startPos, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)
Parameters
| Type |
Name |
Description |
| float |
strength |
|
| Entity |
target |
|
| UnityEngine.Vector3 |
startPos |
|
| float |
delay |
|
| float |
frontDistance |
|
| float |
initSpeed |
|
| float |
targetSpeed |
|
| float |
acceleration |
|
Returns
| Type |
Description |
| UnityEngine.Vector3 |
|
PredictPointClamped_Simple(float, Entity, Vector3, float, float)
Declaration
public static Vector3 PredictPointClamped_Simple(float strength, Entity target, Vector3 startPos, float range, float delay)
Parameters
| Type |
Name |
Description |
| float |
strength |
|
| Entity |
target |
|
| UnityEngine.Vector3 |
startPos |
|
| float |
range |
|
| float |
delay |
|
Returns
| Type |
Description |
| UnityEngine.Vector3 |
|
PredictPointClamped_SpeedAcceleration(float, Entity, Vector3, float, float, float, float, float, float)
Declaration
public static Vector3 PredictPointClamped_SpeedAcceleration(float strength, Entity target, Vector3 startPos, float range, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)
Parameters
| Type |
Name |
Description |
| float |
strength |
|
| Entity |
target |
|
| UnityEngine.Vector3 |
startPos |
|
| float |
range |
|
| float |
delay |
|
| float |
frontDistance |
|
| float |
initSpeed |
|
| float |
targetSpeed |
|
| float |
acceleration |
|
Returns
| Type |
Description |
| UnityEngine.Vector3 |
|
PredictTime_SpeedAcceleration(Entity, Vector3, float, float, float, float, float)
Declaration
public static float PredictTime_SpeedAcceleration(Entity target, Vector3 startPos, float delay, float frontDistance, float initSpeed, float targetSpeed, float acceleration)
Parameters
| Type |
Name |
Description |
| Entity |
target |
|
| UnityEngine.Vector3 |
startPos |
|
| float |
delay |
|
| float |
frontDistance |
|
| float |
initSpeed |
|
| float |
targetSpeed |
|
| float |
acceleration |
|
Returns
ProcessRange(float)
Declaration
public virtual float ProcessRange(float original)
Parameters
| Type |
Name |
Description |
| float |
original |
|
Returns
ProcessReceivedCooldownReduction(ref CooldownReductionSettings, Actor)
Declaration
public void ProcessReceivedCooldownReduction(ref CooldownReductionSettings data, Actor actor)
Parameters
ProcessReceivedCooldownReductionByRatio(ref CooldownReductionByRatioSettings, Actor)
Declaration
public void ProcessReceivedCooldownReductionByRatio(ref CooldownReductionByRatioSettings data, Actor actor)
Parameters
SetCharge(int, int)
Declaration
public void SetCharge(int configIndex, int charge)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| int |
charge |
|
SetChargeAll(int)
Declaration
public void SetChargeAll(int charge)
Parameters
| Type |
Name |
Description |
| int |
charge |
|
SetCooldownTime(int, float, bool)
Declaration
public void SetCooldownTime(int configIndex, float time, bool scaled = true)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| float |
time |
|
| bool |
scaled |
|
SetCooldownTimeAll(float, bool)
Declaration
public void SetCooldownTimeAll(float time, bool scaled = true)
Parameters
| Type |
Name |
Description |
| float |
time |
|
| bool |
scaled |
|
SetMinimumDelay(int, float)
Declaration
public void SetMinimumDelay(int configIndex, float delay)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
| float |
delay |
|
SetMinimumDelayAll(float)
Declaration
public void SetMinimumDelayAll(float delay)
Parameters
| Type |
Name |
Description |
| float |
delay |
|
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.
Declaration
protected virtual bool ShouldTickCooldown(int configIndex)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
Returns
SyncCastMethodChanges(int)
Declaration
public void SyncCastMethodChanges(int configIndex)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
UndoChangeConfig()
Declaration
public void UndoChangeConfig()
UnlockCooldown(int)
Declaration
public void UnlockCooldown(int configIndex)
Parameters
| Type |
Name |
Description |
| int |
configIndex |
|
Implements
Extension Methods