S3202.cs 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using GameLogic.Combat.Buff;
  3. using GameLogic.Combat.CombatTool;
  4. using UnityEngine;
  5. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  6. namespace GameLogic.Combat.Skill.MagicSkill
  7. {
  8. /// <summary>
  9. /// 混沌珠 使用后短时间内大幅提升所有灵根{0}%,一场战斗有使用{1}次
  10. /// 使用后额外对敌人照成的功法伤害提升10%
  11. /// </summary>
  12. public class S3202 : MagicSkillBasic
  13. {
  14. private CombatHeroEntity target;
  15. private bool isUpdate = false;
  16. private float _currTime;
  17. private int _useCount;
  18. protected override void ProInitSkill()
  19. {
  20. }
  21. private Vector3 GetTargetPos()
  22. {
  23. SpecialDotInfo specialDotInfo =
  24. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.GetSpecialDotInfo("toupos1");
  25. return specialDotInfo.GetWorlPos();
  26. }
  27. protected override void ProMagicUseSkill()
  28. {
  29. TimeLineEventLogicGroupBasic sk1_show = ActivationTimeLineData("sk1_show");
  30. sk1_show.TimeLineUpdateEnd = ShowFinish;
  31. _useCount++;
  32. }
  33. private void ShowFinish()
  34. {
  35. isUpdate = true;
  36. _currTime = 0;
  37. float v = SelfSkillConfig.effectValue[0];
  38. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Metal += v;
  39. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Wood += v;
  40. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Water += v;
  41. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Fire += v;
  42. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Earth += v;
  43. CombatMagicWeaponEntity.combatHeroGameObject.SetPosition(GetTargetPos());
  44. TimeLineEventLogicGroupBasic sk1 = ActivationTimeLineData("sk1");
  45. sk1.TimeLineUpdateEnd = Skill1Finish;
  46. }
  47. private void Skill1Finish()
  48. {
  49. ActivationTimeLineData("sk1_xiaoshi");
  50. SkillPlayFinish();
  51. }
  52. public override bool IsCanUse()
  53. {
  54. if (_useCount >= SelfSkillConfig.effectValue[1])
  55. {
  56. return false;
  57. }
  58. return true;
  59. }
  60. protected override void MagicSkillUpdate(float time)
  61. {
  62. if (!isUpdate)
  63. {
  64. return;
  65. }
  66. _currTime += time;
  67. if (_currTime >= SelfSkillConfig.effectValue[2])
  68. {
  69. isUpdate = false;
  70. float v = SelfSkillConfig.effectValue[0];
  71. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Metal -= v;
  72. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Wood -= v;
  73. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Water -= v;
  74. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Fire -= v;
  75. CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.Earth -= v;
  76. }
  77. }
  78. protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
  79. TimeLineEventLogicBasic timeLineEventLogicBasic)
  80. {
  81. ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[1];
  82. lifetCycleHitPoints[0] = target.GetMainHotPoin<ILifetCycleHitPoint>();
  83. return lifetCycleHitPoints;
  84. }
  85. }
  86. }