S9002.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using Core.Triiger;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Combat.Hero;
  5. using GameLogic.Player;
  6. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  7. namespace GameLogic.Combat.Skill
  8. {
  9. /// <summary>
  10. /// (2转,防御型技能):身体周围围绕多丙剑飞行,可以阻挡敌人的功法.抵挡{0}最大生命值的伤害 改剑阵收到火系伤害时会升温,升温后会融化。(受到的火系伤害提升60%)
  11. /// </summary>
  12. public class S9002 : SkillBasic, IBarrier
  13. {
  14. private bool isTrgger;
  15. public long shel;
  16. protected TimeLineEventLogicGroupBasic _timeLineEventLogicGroupBasic;
  17. protected override void ProInitSkill()
  18. {
  19. // AddTriggerCallBack("sk1_fashe", Sk1_FaSheProDefaultTimeLineTrigger);
  20. }
  21. protected override void ProUseSkill()
  22. {
  23. CombatHeroEntity.CloseLoopFx();
  24. _timeLineEventLogicGroupBasic = ActivationTimeLineData("sk2");
  25. Own = CombatHeroEntity;
  26. }
  27. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  28. ITimelineFxLogic timelineFxLogic,
  29. TriggerData triggerData,ISkillFeatures skillFeatures)
  30. {
  31. // count = 0;
  32. SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("sk2_trigger");
  33. // specialDotInfo
  34. BarrierEntityMono barrierEntityMono =
  35. specialDotInfo.targetTran.gameObject.GetOrAddComponent<BarrierEntityMono>();
  36. barrierEntityMono.Barrier = this;
  37. isTrgger = true;
  38. shel = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.MaxCombatHeroInfo.hp.Value,
  39. effectValue[0]);
  40. isActive = false;
  41. }
  42. // private void Sk1_FaSheProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  43. // ITimelineFxLogic timelineFxLogic,
  44. // TriggerData triggerData,ISkillFeatures skillFeatures)
  45. // {
  46. // long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  47. // effectValue[0]);
  48. // CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData, wuXingType,skillFeatures,
  49. // HarmType.Default);
  50. // }
  51. protected override void ProCombatUpdate(float time)
  52. {
  53. if (!isTrgger)
  54. {
  55. return;
  56. }
  57. // currTime += time;
  58. // if (currTime > 0.1f)
  59. // {
  60. // currTime -= time;
  61. // ActivationTimeLineData("sk1_fashe");
  62. // count++;
  63. // if (count > 20)
  64. // {
  65. // isTrgger = false;
  66. // }
  67. // }
  68. }
  69. public ShowBaiscEntity Own { get; set; }
  70. public BarrierTriggerData BarrierTriggerData { get; set; }
  71. public bool CollideTriiger(ITriggerEntity triggerEntity)
  72. {
  73. return !isTrgger || shel <= 0;
  74. }
  75. public long Harm(HarmReturnInfo harmReturnInfo)
  76. {
  77. if (harmReturnInfo.WuXingType.HasFlag(WuXingType.Fire))
  78. {
  79. harmReturnInfo.att +=
  80. CombatCalculateTool.Instance.GetVlaueRatioForLong(harmReturnInfo.att, effectValue[1]);
  81. }
  82. shel -= harmReturnInfo.att;
  83. if (shel <= 0)
  84. {
  85. isActive = true;
  86. _timeLineEventLogicGroupBasic?.CloseLoopFx();
  87. _timeLineEventLogicGroupBasic = null;
  88. }
  89. return 0;
  90. }
  91. }
  92. }