b_1003.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Player;
  5. using UnityEngine;
  6. namespace GameLogic.Combat.Buff
  7. {
  8. /// <summary>
  9. /// 3、毒:每层毒对敌人每秒照成1%伤害,10层毒后毒气会入侵五脏对敌人对敌人施加噬魂
  10. /// </summary>
  11. public class b_1003 : BuffBasic
  12. {
  13. private float _time;
  14. protected override void ProInit()
  15. {
  16. CombatEventManager.Instance.AddEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
  17. }
  18. private void AddUseGongFa(IEventData eventData)
  19. {
  20. AddUseGongFaEventData data = (AddUseGongFaEventData)eventData;
  21. if (data.SkillBasic.CombatHeroEntity == combatHeroEntity)
  22. {
  23. if (buffCount < buffInf.BuffConfig.effectValue[1])
  24. {
  25. return;
  26. }
  27. BuffInfo buffInfo = null;
  28. switch (data.SkillBasic.wuXingType)
  29. {
  30. case WuXingType.Gold:
  31. buffInfo = BuffInfo.GetBuffInfo(10291, 1,this);
  32. break;
  33. case WuXingType.Fire:
  34. buffInfo = BuffInfo.GetBuffInfo(10321, 1,this);
  35. break;
  36. case WuXingType.Wood:
  37. buffInfo = BuffInfo.GetBuffInfo(10301, 1,this);
  38. break;
  39. case WuXingType.Earth:
  40. buffInfo = BuffInfo.GetBuffInfo(10331, 1,this);
  41. break;
  42. case WuXingType.Water:
  43. buffInfo = BuffInfo.GetBuffInfo(10311, 1,this);
  44. break;
  45. }
  46. combatHeroEntity.BuffControl.AddBuff(source, buffInfo);
  47. }
  48. }
  49. protected override void ProDormancyObj()
  50. {
  51. CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);
  52. }
  53. protected override void ProUpdate(float t)
  54. {
  55. _time += t;
  56. if (_time >= 1)
  57. {
  58. _time -= 1;
  59. float harmbl = buffCount * buffInf.BuffConfig.effectValue[0];
  60. long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(
  61. source.CurrCombatHeroInfo.attack.Value, harmbl);
  62. harm += CombatCalculateTool.Instance.GetVlaueRatioForLong(
  63. harm, source.CurrCombatHeroInfo.Wood_Proficient);
  64. CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
  65. WuXingType.Null,null,HarmType.Buff);
  66. }
  67. }
  68. protected override void ProUpdateEffect()
  69. {
  70. }
  71. }
  72. }