public override void OnSkillFinish(SceneObject sender, SceneObject reciever, object data) { if (_executed && RestoreOnFinish) { if (Operation == Operation.Absolute) { sender.AttributeManager.Remove(AttributeType, _motifier); } else { sender.AttributeManager.Remove(AttributeType, _motifier); } } _motifier = default(AttributeMotifier); base.OnSkillFinish(sender, reciever, data); }
public override void Execute(SceneObject sender, SceneObject reciever, object data) { _executed = true; if (Operation == Operation.Absolute) { _motifier = new AttributeMotifier { Operation = Operation, Value = Value.value * FixedMath.One }; sender.AttributeManager.Add(AttributeType, _motifier); } else { _motifier = new AttributeMotifier { Operation = Operation, Value = Value.value * FixedMath.One / 100 }; sender.AttributeManager.Add(AttributeType, _motifier); } base.Execute(sender, reciever, data); }