S1102.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using GameLogic.Combat.Buff;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Combat.Hero;
  5. using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
  6. using UnityEngine;
  7. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  8. namespace GameLogic.Combat.Skill
  9. {
  10. /// <summary>
  11. /// 吸收自身灵气凝聚{0}丙大剑,大剑旋转快速穿透敌人,对敌人照成伤害
  12. /// 敌人如果在流血或放血状态对敌人照成的伤害+10%
  13. /// 重伤敌人后,如果目标没在放血状态,直接放血,并不会消耗流血层数
  14. /// </summary>
  15. public class S1102 : SkillBasic
  16. {
  17. protected override void ProUseSkill()
  18. {
  19. CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
  20. .GetThis<CombatHeroEntity>()
  21. .GetMainHotPoin<CombatHeroHitPoint>();
  22. BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
  23. currTarget.Add(combatHeroHitPoint);
  24. for (int i = 0; i < effectValue[0]; i++)
  25. {
  26. SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
  27. ActivationTimeLineData("1102_fashe", currTarget: currTarget,
  28. customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
  29. }
  30. }
  31. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  32. ITimelineFxLogic timelineFxLogic,
  33. TriggerData triggerData)
  34. {
  35. float addHarm = effectValue[1];
  36. if (SelfSkillConfig.level >= 4)
  37. {
  38. addHarm += SelfSkillConfig.effectValue[3];
  39. }
  40. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  41. addHarm);
  42. CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData,
  43. wuXingType,
  44. HarmType.Default);
  45. int odds = CombatCalculateTool.Instance.GetOdd(0, 100);
  46. if (odds <= effectValue[2])
  47. {
  48. BuffInfo buffInfo = BuffInfo.GetBuffInfo(10111, 1);
  49. targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
  50. }
  51. if (SelfSkillConfig.level >= 4)
  52. {
  53. BuffBasic buffBasic= targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForIdGroup(1012);
  54. }
  55. }
  56. }
  57. }