b_1011.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using GameLogic.Combat.CombatTool;
  2. using GameLogic.Player;
  3. using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
  4. namespace GameLogic.Combat.Buff
  5. {
  6. /// <summary>
  7. /// 敌人持续流血{0}金属性伤害,满层后照成流血,并清除层数
  8. /// </summary>
  9. public class b_1011 : BuffBasic
  10. {
  11. protected override void ProInit()
  12. {
  13. _jianGe = 1;
  14. }
  15. protected override void UpdateJumping()
  16. {
  17. float addHarm = buffInf.BuffConfig.effectValue[0];
  18. b_1012 b1012 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1012>();
  19. if (b1012 != null)
  20. {
  21. addHarm += CombatCalculateTool.Instance.GetVlaueRatioForFloat(addHarm,
  22. b1012.buffInf.BuffConfig.effectValue[1]);
  23. }
  24. long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(source.CurrCombatHeroInfo.attack.Value,
  25. addHarm);
  26. harm += CombatCalculateTool.Instance.GetVlaueRatioForLong(
  27. harm, source.CurrCombatHeroInfo.Metal_Proficient);
  28. CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
  29. WuXingType.Gold,null);
  30. }
  31. protected override void ProUpdateEffect()
  32. {
  33. if (buffCount >= buffInf.BuffConfig.overlayCount) //最大叠加数量
  34. {
  35. b_1012 b1012 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1012>();
  36. if (b1012 != null)
  37. {
  38. return;
  39. }
  40. BuffInfo buffInfo = BuffInfo.GetBuffInfo(10121, 1);
  41. combatHeroEntity.BuffControl.AddBuff(source, buffInfo);
  42. combatHeroEntity.BuffControl.RemoveBuff(this);
  43. }
  44. }
  45. }
  46. }