S2008.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using Common.Utility.CombatEvent;
  3. using Fort23.Core;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Combat.Hero;
  6. using UnityEngine;
  7. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  8. namespace GameLogic.Combat.Skill
  9. {
  10. /// <summary>
  11. /// 太虚剑意 后方槽位如果是剑功法,在释放功法时额外释放一道剑气,对敌人照成100%伤害,并无视护盾类效果
  12. /// </summary>
  13. public class S2008 : SkillBasic
  14. {
  15. protected override void ProUseSkill()
  16. {
  17. }
  18. protected override void ProReplace()
  19. {
  20. CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
  21. }
  22. protected override void ProActiveSkill()
  23. {
  24. CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
  25. }
  26. private void UseSkill(IEventData iEventData)
  27. {
  28. CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
  29. .GetThis<CombatHeroEntity>()
  30. .GetMainHotPoin<CombatHeroHitPoint>();
  31. BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
  32. currTarget.Add(combatHeroHitPoint);
  33. for (int i = 0; i < effectValue[0]; i++)
  34. {
  35. SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
  36. ActivationTimeLineData("2008", currTarget: currTarget,
  37. customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
  38. }
  39. }
  40. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  41. ITimelineFxLogic timelineFxLogic,
  42. TriggerData triggerData)
  43. {
  44. float addHarm = effectValue[1];
  45. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  46. addHarm);
  47. HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
  48. AttType.Skill, triggerData,
  49. wuXingType,
  50. HarmType.Default);
  51. }
  52. }
  53. }