/// <summary> /// Update the StatusEffectInstance's Active status. /// </summary> public virtual void CheckActive(StatusEffectInstance instance) { if (active != null) { // ReSharper disable once CompareOfFloatsByEqualityOperator instance.Active = active.Value != 0; } }
public override void Tick(StatusEffectInstance instance) { base.Tick(instance); if (instance.TimeActive >= duration) { instance.MarkForRemoval(); } }
public override void Tick(StatusEffectInstance instance) { if (instance.Holder.TryGetComponent <PlayerProperties>(out var playerProperties)) { playerProperties.Damage(damage); } base.Tick(instance); }
public override void OnInactive(StatusEffectInstance instance) { base.OnInactive(instance); var attributeHolders = instance.Holder.GetComponents <AttributeHolder>(); foreach (var statModifier in modifiers) { statModifier.RemoveModifier(instance, attributeHolders); } }
/// <summary> /// Add a new StatusEffect to this StatusEffectHolder. /// </summary> /// <param name="effect">new StatusEffect</param> /// <param name="active">optional active flag, per default a new StatusEffect is activated immediately</param> /// <returns>added StatusEffectInstance</returns> public StatusEffectInstance AddEffect(StatusEffect effect, bool active = true) { if (effect == null) { throw new ArgumentException("effect must not be null."); } var instance = new StatusEffectInstance(effect, this); _effects.Add(instance); instance.OnAdd(); instance.Active = active; if (effectHUD != null && effect.showInHUD) { effectHUD.AddEffect(instance); } return(instance); }
public override string ToString(StatusEffectInstance instance) { return(base.ToString(instance) + $": {GetTimeRemainingSeconds(instance):0.##} s"); }
public override string GetHUDText(StatusEffectInstance instance) { return($"{GetTimeRemainingSeconds(instance):F1} s"); }
public float GetTimeRemainingSeconds(StatusEffectInstance instance) { return(Time.fixedDeltaTime * GetTimeRemaining(instance)); }
public int GetTimeRemaining(StatusEffectInstance instance) { return(duration - instance.TimeActive); }
public virtual string ToString(StatusEffectInstance instance) { return($"{name}"); }
public virtual string GetHUDText(StatusEffectInstance instance) { return(""); }
/// <summary> /// Event Handler for update logic. Gets called every FixedUpdate. /// </summary> public virtual void Tick(StatusEffectInstance instance) { }
/// <summary> /// Event Handler for becoming inactive. /// </summary> public virtual void OnInactive(StatusEffectInstance instance) { }
/// <summary> /// Event Handler for removing from a StatusEffectHolder. /// </summary> public virtual void OnRemove(StatusEffectInstance instance) { }
/// <summary> /// Event Handler for adding to a StatusEffectHolder. /// </summary> public virtual void OnAdd(StatusEffectInstance instance) { }