S3203.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System.Collections.Generic;
  2. using GameLogic.Combat.Buff;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Combat.Hero;
  5. using UnityEngine;
  6. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  7. namespace GameLogic.Combat.Skill.MagicSkill
  8. {
  9. /// <summary>
  10. /// 绝脉瓶
  11. /// 对敌人照成水系伤害,封锁敌人筋脉随机{0}个格子流动{1}秒
  12. /// </summary>
  13. public class S3203 : MagicSkillBasic
  14. {
  15. private CombatHeroEntity target;
  16. protected override void ProMagicUseSkill()
  17. {
  18. // StraightLineShow straightLineShow = new StraightLineShow();
  19. // straightLineShow.Init(this);
  20. CombatHeroEntity[] allHero =
  21. CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
  22. if (allHero == null || allHero.Length <= 0)
  23. {
  24. SkillPlayFinish();
  25. return;
  26. }
  27. target = allHero[0];
  28. MagicAttShowBasic magicAttShowBasic = InitMagicAttShowBasic(allHero[0], Finish);
  29. SetMagicAttShowBasic(magicAttShowBasic);
  30. }
  31. protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
  32. TimeLineEventLogicBasic timeLineEventLogicBasic)
  33. {
  34. ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[1];
  35. lifetCycleHitPoints[0] = target.GetMainHotPoin<ILifetCycleHitPoint>();
  36. return lifetCycleHitPoints;
  37. }
  38. private void Finish()
  39. {
  40. //
  41. Debug.Log("法宝对敌人照成伤害");
  42. ILifetCycleHitPoint lifetCycleHitPoint = target.GetMainHotPoin<ILifetCycleHitPoint>();
  43. if (lifetCycleHitPoint == null)
  44. {
  45. SkillPlayFinish();
  46. return;
  47. }
  48. BetterList<ILifetCycleHitPoint> cBetterList = new BetterList<ILifetCycleHitPoint>(1);
  49. cBetterList.Add(lifetCycleHitPoint);
  50. ActivationTimeLineData("gongji", currTarget: cBetterList);
  51. SkillPlayFinish();
  52. List<int> buffId = new List<int>() { 10191, 10201, 10211, 10221, 10231 };
  53. for (int i = 0; i < effectValue[1]; i++)
  54. {
  55. int index = CombatCalculateTool.Instance.GetOdd(0, buffId.Count);
  56. int id = buffId[index];
  57. BuffInfo buffInfo = BuffInfo.GetBuffInfo(id, effectValue[2], 1);
  58. BuffBasic buffBasic = target.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
  59. buffId.RemoveAt(index);
  60. }
  61. long att = CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.CurrCombatHeroInfo.attack.Value;
  62. long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(att, effectValue[0]);
  63. CombatCalculateTool.Instance.Harm(CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity,
  64. lifetCycleHitPoint as CombatHeroHitPoint, harm, AttType.FaBao, triggerData, wuXingType, null,
  65. HarmType.Default);
  66. }
  67. }
  68. }