ChangeAttrValueFunEvent.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. using UnityEngine;
  2. using System.Collections;
  3. public class ChangeAttrValueFunEvent : DurationFunctionEvent
  4. {
  5. public static ChangeAttrValueFunEvent Creator(BuffFunctionData data)
  6. {
  7. return new ChangeAttrValueFunEvent(data);
  8. }
  9. public ChangeAttrValueFunEvent(BuffFunctionData data):base(data)
  10. {
  11. mType = data.functionType;
  12. }
  13. public override float GetValue()
  14. {
  15. switch(mType)
  16. {
  17. case Buff_Function_Type.Attack_Change_ByTargetAttr:
  18. case Buff_Function_Type.MagicAttack_Change_ByTargetAttr:
  19. case Buff_Function_Type.AttackDefense_Change_ByTargetAttr:
  20. case Buff_Function_Type.MagicDefense_Change_ByTargetAttr:
  21. return HitInfo.Target.GetAttrByType(Data.fromAttr) * base.GetValue() * 0.01f;
  22. case Buff_Function_Type.Attack_Change_BySourceAttr:
  23. case Buff_Function_Type.MagicAttack_Change_BySourceAttr:
  24. case Buff_Function_Type.AttackDefense_Change_BySourceAttr:
  25. case Buff_Function_Type.MagicDefense_Change_BySourceAttr:
  26. return HitInfo.Caster.GetAttrByType(Data.fromAttr) * base.GetValue() * 0.01f;
  27. default:
  28. return base.GetValue();
  29. }
  30. }
  31. }