public override void OnExecute() { switch (this.BuffData.BuffWorkType) { case BuffWorkTypes.ChangeAttackValue: ConstantModifier constantModifier_AttackValue = ReferencePool.Acquire <ConstantModifier>(); constantModifier_AttackValue.ChangeValue = BuffDataCalculateHelper.CalculateCurrentData(this, this.BuffData); dataModifier = constantModifier_AttackValue; this.GetBuffTarget().GetComponent <DataModifierComponent>() .AddDataModifier(NumericType.AttackAdd.ToString(), dataModifier, NumericType.AttackAdd); break; case BuffWorkTypes.ChangeMagic: PercentageModifier constantModifier_Magic = ReferencePool.Acquire <PercentageModifier>(); constantModifier_Magic.Percentage = BuffDataCalculateHelper.CalculateCurrentData(this, this.BuffData); this.dataModifier = constantModifier_Magic; this.GetBuffTarget().GetComponent <DataModifierComponent>() .AddDataModifier(NumericType.Mp.ToString(), this.dataModifier, NumericType.Mp); break; case BuffWorkTypes.ChangeSpeed: PercentageModifier percentageModifier_Speed = ReferencePool.Acquire <PercentageModifier>(); percentageModifier_Speed.Percentage = BuffDataCalculateHelper.CalculateCurrentData(this, this.BuffData); this.dataModifier = percentageModifier_Speed; this.GetBuffTarget().GetComponent <DataModifierComponent>() .AddDataModifier(NumericType.SpeedAdd.ToString(), this.dataModifier, NumericType.SpeedAdd); break; } this.BuffState = BuffState.Running; }
public override void OnFinished() { ReferencePool.Release(dataModifier); dataModifier = null; }