S3202.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using GameLogic.Combat.Buff;
  2. using GameLogic.Combat.CombatTool;
  3. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  4. namespace GameLogic.Combat.Skill.MagicSkill
  5. {
  6. /// <summary>
  7. /// 混沌珠 使用后短时间内大幅提升所有灵根{0}%,一场战斗有使用{1}次
  8. /// 使用后额外对敌人照成的功法伤害提升10%
  9. /// </summary>
  10. public class S3202 : MagicSkillBasic
  11. {
  12. private CombatHeroEntity target;
  13. private bool isUpdate = false;
  14. private float _currTime;
  15. private int _useCount;
  16. protected override void ProMagicUseSkill()
  17. {
  18. _useCount++;
  19. isUpdate = true;
  20. _currTime = 0;
  21. float v = SelfSkillConfig.effectValue[0];
  22. CombatHeroEntity.CurrCombatHeroInfo.Metal += v;
  23. CombatHeroEntity.CurrCombatHeroInfo.Wood += v;
  24. CombatHeroEntity.CurrCombatHeroInfo.Water += v;
  25. CombatHeroEntity.CurrCombatHeroInfo.Fire += v;
  26. CombatHeroEntity.CurrCombatHeroInfo.Earth += v;
  27. }
  28. public override bool IsCanUse()
  29. {
  30. if (_useCount >= SelfSkillConfig.effectValue[1])
  31. {
  32. return false;
  33. }
  34. return true;
  35. }
  36. protected override void MagicSkillUpdate(float time)
  37. {
  38. if (!isUpdate)
  39. {
  40. return;
  41. }
  42. _currTime += time;
  43. if (_currTime >= SelfSkillConfig.effectValue[2])
  44. {
  45. isUpdate = false;
  46. float v = SelfSkillConfig.effectValue[0];
  47. CombatHeroEntity.CurrCombatHeroInfo.Metal -= v;
  48. CombatHeroEntity.CurrCombatHeroInfo.Wood -= v;
  49. CombatHeroEntity.CurrCombatHeroInfo.Water -= v;
  50. CombatHeroEntity.CurrCombatHeroInfo.Fire -= v;
  51. CombatHeroEntity.CurrCombatHeroInfo.Earth -= v;
  52. }
  53. }
  54. protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
  55. TimeLineEventLogicBasic timeLineEventLogicBasic)
  56. {
  57. ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[1];
  58. lifetCycleHitPoints[0] = target.GetMainHotPoin<ILifetCycleHitPoint>();
  59. return lifetCycleHitPoints;
  60. }
  61. }
  62. }