| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | 
							- using System.Collections.Generic;
 
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
 
- using Common.Combat.FxAILogic;
 
- using GameLogic.Combat.Buff;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Combat.Hero;
 
- using UnityEngine;
 
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 
- namespace GameLogic.Combat.Skill
 
- {
 
-     /// <summary>
 
-     /// 引雷
 
-     /// 请求仰天施法,引导天雷,天雷在战场上随机落下,{0}%概率击中目标,每层感电额外+{1}%概率
 
-     /// ,最多被击中{2}次,每次击中消耗一层感电额外照成{3}伤害。引雷可以击中弹道.持续{4}秒
 
-     /// </summary>
 
-     public class S9053 : SkillBasic
 
-     {
 
-         private float _currTime;
 
-         private int _hitCount;
 
-         private bool _isUpdate;
 
-         private float _jianGe;
 
-         private float _allTime;
 
-         protected override void ProUseSkill()
 
-         {
 
-             _hitCount = 0;
 
-             ballisticsCount = (int)effectValue[0];
 
-             ActivationTimeLineData("9053");
 
-             _isUpdate = true;
 
-             _allTime = 0;
 
-         }
 
-         protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
 
-             ITimelineFxLogic timelineFxLogic,
 
-             TriggerData triggerData, ISkillFeatures skillFeatures)
 
-         {
 
-         }
 
-         private void SetJianGe()
 
-         {
 
-             _jianGe = CombatCalculateTool.Instance.GetOdd(20, 100) / 100f;
 
-         }
 
-         protected override void ProCombatUpdate(float time)
 
-         {
 
-             if (!_isUpdate)
 
-             {
 
-                 return;
 
-             }
 
-             _currTime += time;
 
-             _allTime += time;
 
-             if (_allTime > effectValue[5])
 
-             {
 
-                 _isUpdate = false;
 
-                 return;
 
-             }
 
-             if (_currTime >= _jianGe)
 
-             {
 
-                 _currTime = 0;
 
-                 SetJianGe();
 
-                 Vector3 targetPos = Vector3.zero;
 
-                 //发射一道闪电
 
-                 int odds = CombatCalculateTool.Instance.GetOdd(0, 100);
 
-                 CombatHeroEntity combatHeroEntity = CombatHeroEntity.CombatAIBasic.currFocusTarget;
 
-                 if (combatHeroEntity == null || combatHeroEntity.BuffControl == null)
 
-                 {
 
-                     return;
 
-                 }
 
-                 b_1018 b1018 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();
 
-                 float addOdds = b1018 != null ? b1018.buffCount * effectValue[1] : 0;
 
-                 if (_hitCount<effectValue[2]&&odds <= effectValue[0]+addOdds)
 
-                 {
 
-                     _hitCount++;
 
-                     //击中目标
 
-                 
 
-                     targetPos = combatHeroEntity.dotPos;
 
-                     float harmBl = effectValue[3];
 
-                     // b_1018 b1018 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();
 
-                     if (b1018 != null) //消耗一层感电,额外照成伤害
 
-                     {
 
-                         b1018.ReduceCount(1);
 
-                         harmBl += effectValue[4];
 
-                     }
 
-                     long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(
 
-                         CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
 
-                         harmBl);
 
-                     HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity,
 
-                         combatHeroEntity, v,
 
-                         AttType.Skill, triggerData,
 
-                         wuXingType, null,
 
-                         HarmType.Default);
 
-                 }
 
-                 else
 
-                 {
 
-                     List<FxAILogicBasic> allFxAi =
 
-                         CombatController.currActiveCombat.GameTimeLineParticleFactory.GetFxAILogicBasic(
 
-                             !CombatHeroEntity
 
-                                 .IsEnemy);
 
-                     if (allFxAi.Count > 0)
 
-                     {
 
-                         int index = Random.Range(0, allFxAi.Count);
 
-                         FxAILogicBasic fxAILogicBasic = allFxAi[index];
 
-                         targetPos = fxAILogicBasic.gameObject.transform.position;
 
-                         FxParabolaBulletLogic fxParabolaBulletLogic = fxAILogicBasic as FxParabolaBulletLogic;
 
-                         if (fxParabolaBulletLogic != null)
 
-                         {
 
-                             fxParabolaBulletLogic.PengZhuang(GetSkillFeaturesData(), CombatHeroEntity);
 
-                         }
 
-                     }
 
-                     else
 
-                     {
 
-                         int x = Random.Range(-10, 10);
 
-                         int z = Random.Range(4, 10);
 
-                         targetPos = CombatHeroEntity.GameObject.transform.TransformPoint(new Vector3(x, 0, z));
 
-                     }
 
-                 }
 
-                 ActivationTimeLineData("9053_fashe", customizePos: new Vector3[] { targetPos });
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |