public virtual void ApplyStatusEffects(Weapon weapon) { foreach (AggregateStatusEffectMetaData data in weapon.statusEffectMetaData) { if (data.statusEffect.activateOnEquip == false) { InflictedStatusEffect currentStatusEffect = this.gameObject.GetComponent(Type.GetType(data.statusEffect.statusEffectName)) as InflictedStatusEffect; if (currentStatusEffect == null) { currentStatusEffect = this.gameObject.AddComponent(Type.GetType(data.statusEffect.statusEffectName)) as InflictedStatusEffect; currentStatusEffect.level = data.aggregateLevel; } else { currentStatusEffect.level = data.aggregateLevel; currentStatusEffect.AttemptStatusEffectRefresh(this); } } } }
public override void ApplyStatusEffects(Weapon weapon) { foreach (AggregateStatusEffectMetaData data in weapon.statusEffectMetaData) { if (data.statusEffect.activateOnEquip == false) { InflictedStatusEffect currentStatusEffect = this.gameObject.GetComponent(Type.GetType(data.statusEffect.statusEffectName)) as InflictedStatusEffect; if (currentStatusEffect == null) { currentStatusEffect = this.gameObject.AddComponent(Type.GetType(data.statusEffect.statusEffectName)) as InflictedStatusEffect; currentStatusEffect.level = data.aggregateLevel; this.currentCharacter.activeInflictedStatusEffects.Add(currentStatusEffect); currentStatusEffect.onInflicedStatusEffectEnded += this.currentCharacter.RemoveInflictedStatusEffect; } else { currentStatusEffect.level = data.aggregateLevel; currentStatusEffect.AttemptStatusEffectRefresh(this); } } } }
public void RemoveInflictedStatusEffect(InflictedStatusEffect statusEffect) { statusEffect.onInflicedStatusEffectEnded -= this.RemoveInflictedStatusEffect; this.activeInflictedStatusEffects.Remove(statusEffect); }