BuffBasic.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using System;
  2. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  3. using Fort23.Core;
  4. using Fort23.UTool;
  5. using UnityEngine;
  6. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  7. namespace GameLogic.Combat.Buff
  8. {
  9. public class BuffBasic : CObject
  10. {
  11. protected CombatHeroEntity combatHeroEntity;
  12. public BuffInfo buffInf;
  13. protected CombatHeroEntity source;
  14. protected TriggerData _triggerData;
  15. public float _currTime;
  16. protected float _jianGe;
  17. public int buffCount
  18. {
  19. get { return _count; }
  20. }
  21. protected int _count;
  22. private float _time;
  23. public void Init(CombatHeroEntity combatHeroEntity, CombatHeroEntity source, BuffInfo buffInfo)
  24. {
  25. _triggerData.Source = this;
  26. this.combatHeroEntity = combatHeroEntity;
  27. this.buffInf = buffInfo;
  28. this.source = source;
  29. ProInit();
  30. AddBuffCount(source, buffInfo);
  31. }
  32. public void AddBuffCount(CombatHeroEntity source, BuffInfo buffInfo)
  33. {
  34. _currTime = 0;
  35. int c = buffCount + buffInfo.count;
  36. if (c > buffInfo.BuffConfig.overlayCount)
  37. {
  38. c = buffInfo.BuffConfig.overlayCount - buffCount;
  39. }
  40. else
  41. {
  42. c = buffInfo.count;
  43. }
  44. if (c <= 0)
  45. {
  46. return;
  47. }
  48. _count += c;
  49. UpdateEffect();
  50. }
  51. protected virtual void ProInit()
  52. {
  53. }
  54. public override void ActiveObj()
  55. {
  56. }
  57. public void UpdateEffect()
  58. {
  59. ProUpdateEffect();
  60. }
  61. protected virtual void ProUpdateEffect()
  62. {
  63. }
  64. public void ReduceCount(int count)
  65. {
  66. _count -= count;
  67. if (_count <= 0)
  68. {
  69. combatHeroEntity.BuffControl.RemoveBuff(this);
  70. return;
  71. }
  72. UpdateEffect();
  73. }
  74. public TimeLineEventLogicGroupBasic ActivationTimeLineData(string groupName,
  75. BetterList<ILifetCycleHitPoint> currTarget = null,
  76. Vector3[] customizePos = null, System.Action finishCallBack = null, float startTime = default,
  77. object extraData = null, int indexCount = 0)
  78. {
  79. TimeLineEventLogicGroupBasic timeLineEventLogicGroup =
  80. source.combatHeroTimeLineControl
  81. .GetTimeLineEventLogicGroup<TimeLineEventLogicGroupBasic>(groupName, null);
  82. try
  83. {
  84. if (timeLineEventLogicGroup != null)
  85. {
  86. timeLineEventLogicGroup.extraData = extraData;
  87. timeLineEventLogicGroup.SetCombatInfo(combatHeroEntity, null, currTarget, _triggerData,
  88. customizePos, indexCount);
  89. timeLineEventLogicGroup.TimeLineUpdateEnd = finishCallBack;
  90. timeLineEventLogicGroup.timeLineTime = startTime;
  91. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup(timeLineEventLogicGroup);
  92. // currUseAllTimeLineLogic.Add(timeLineEventLogicGroup);
  93. }
  94. }
  95. catch (Exception e)
  96. {
  97. LogTool.Error(e);
  98. }
  99. return timeLineEventLogicGroup;
  100. }
  101. public override void DormancyObj()
  102. {
  103. _currTime = 0;
  104. ProDormancyObj();
  105. CObjectPool.Instance.Recycle(buffInf);
  106. buffInf = null;
  107. combatHeroEntity = null;
  108. }
  109. protected virtual void ProDormancyObj()
  110. {
  111. }
  112. public void Update(float t)
  113. {
  114. if (_jianGe > 0)
  115. {
  116. _time += t;
  117. if (_time >= _jianGe)
  118. {
  119. _time -= _jianGe;
  120. UpdateJumping();
  121. }
  122. }
  123. _currTime += t;
  124. if (buffInf.buffTime > 0 && _currTime > buffInf.buffTime)
  125. {
  126. combatHeroEntity.BuffControl.RemoveBuff(this);
  127. return;
  128. }
  129. ProUpdate(t);
  130. }
  131. protected virtual void UpdateJumping()
  132. {
  133. }
  134. protected virtual void ProUpdate(float t)
  135. {
  136. }
  137. }
  138. }