b_1011.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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}金属性伤害,满层后每隔{0}秒放血一次
  8. /// </summary>
  9. public class b_1011 : BuffBasic
  10. {
  11. /// <summary>
  12. /// 上次添加buff时间
  13. /// </summary>
  14. private float lasetAddBuffTime;
  15. protected override void ProInit()
  16. {
  17. _jianGe = 1;
  18. lasetAddBuffTime = 0;
  19. }
  20. protected override void UpdateJumping()
  21. {
  22. float addHarm = buffInf.BuffConfig.effectValue[0];
  23. b_1012 b1012 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1012>();
  24. if (b1012 != null)
  25. {
  26. addHarm += CombatCalculateTool.Instance.GetVlaueRatioForFloat(addHarm,
  27. b1012.buffInf.BuffConfig.effectValue[1]);
  28. }
  29. long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(source.CurrCombatHeroInfo.attack.Value,
  30. addHarm);
  31. harm += CombatCalculateTool.Instance.GetVlaueRatioForLong(
  32. harm, source.CurrCombatHeroInfo.Metal_Proficient);
  33. CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
  34. WuXingType.Gold, null);
  35. }
  36. protected override void ProUpdate(float t)
  37. {
  38. if (buffCount >= buffInf.BuffConfig.overlayCount)
  39. {
  40. float currTime = CombatController.currActiveCombat.combatTime;
  41. if (currTime - lasetAddBuffTime >= buffInf.BuffConfig.effectValue[1])
  42. {
  43. lasetAddBuffTime = currTime;
  44. b_1012 b1012 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1012>();
  45. if (b1012 != null)
  46. {
  47. b1012.FangXue();
  48. return;
  49. }
  50. BuffInfo buffInfo = BuffInfo.GetBuffInfo(10121, 1, this);
  51. combatHeroEntity.BuffControl.AddBuff(source, buffInfo);
  52. }
  53. }
  54. }
  55. }
  56. }