| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | 
							- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
 
- using Core.Utility;
 
- using GameLogic.Combat.Buff;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Combat.Hero;
 
- using GameLogic.Player;
 
- using UnityEngine;
 
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 
- namespace GameLogic.Combat.Skill
 
- {
 
-     /// <summary>
 
-     /// 伤害很高)(前摇时间长):很多剑从远处汇聚到boss周围,然后以一字行快速贯穿目标,每命中{0}次防御削减{1}%,{2}次所有伤势+{3}  
 
-     /// ,如果目标上有剑毅,每丙剑消耗{4}层剑毅让敌人受到{5}额外的伤害
 
-     /// </summary>
 
-     public class S9001 : SkillBasic
 
-     {
 
-         private bool isTrgger;
 
-         private float currTime;
 
-         private int count;
 
-         private int hitCount;
 
-         private int shangShiCount;
 
-         protected override void ProInitSkill()
 
-         {
 
-             ballisticsCount = (int)10;
 
-             AddTriggerCallBack("sk1_fashe", Sk1_FaSheProDefaultTimeLineTrigger);
 
-         }
 
-         protected override void ProUseSkill()
 
-         {
 
-             ActivationTimeLineData("sk1");
 
-             hitCount = 0;
 
-         }
 
-         protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
 
-             ITimelineFxLogic timelineFxLogic,
 
-             TriggerData triggerData, ISkillFeatures skillFeatures)
 
-         {
 
-             count = 0;
 
-             hitCount = 0;
 
-             shangShiCount = 0;
 
-             currTime = 1;
 
-             isTrgger = true;
 
-         }
 
-         private void Sk1_FaSheProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
 
-             ITimelineFxLogic timelineFxLogic,
 
-             TriggerData triggerData, ISkillFeatures skillFeatures)
 
-         {
 
-             float hv = effectValue[0];
 
-             b_1007 b1007 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1007>();
 
-             if (b1007 != null)
 
-             {
 
-                 b1007.ReduceCount((int)effectValue[5]);
 
-                 hv += effectValue[6];
 
-             }
 
-             long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
 
-                 hv);
 
-             HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
 
-                 AttType.Skill, triggerData, wuXingType, skillFeatures,
 
-                 HarmType.Default);
 
-             if (harmReturnInfo.triggerData.IBarrier == null)
 
-             {
 
-                 hitCount++;
 
-                 shangShiCount++;
 
-                 if (hitCount >= effectValue[1])
 
-                 {
 
-                     hitCount = 0;
 
-                     long def = targetEntity.combatHeroEntity.MaxCombatHeroInfo.defense.Value;
 
-                     long jdef = CombatCalculateTool.Instance.GetVlaueRatioForLong(def, effectValue[2]);
 
-                     targetEntity.combatHeroEntity.CurrCombatHeroInfo.defense -= jdef;
 
-                     if (targetEntity.combatHeroEntity.CurrCombatHeroInfo.defense < 0)
 
-                     {
 
-                         targetEntity.combatHeroEntity.CurrCombatHeroInfo.defense = (EncryptionLong)0;
 
-                     }
 
-                 }
 
-                 if (shangShiCount >= effectValue[3])
 
-                 {
 
-                     shangShiCount = 0;
 
-                     int vInjury = (int)effectValue[4];
 
-                     ShangSHi(WuXingType.Gold, CombatHeroEntity, targetEntity.combatHeroEntity, vInjury);
 
-                     ShangSHi(WuXingType.Wood, CombatHeroEntity, targetEntity.combatHeroEntity, vInjury);
 
-                     ShangSHi(WuXingType.Water, CombatHeroEntity, targetEntity.combatHeroEntity, vInjury);
 
-                     ShangSHi(WuXingType.Fire, CombatHeroEntity, targetEntity.combatHeroEntity, vInjury);
 
-                     ShangSHi(WuXingType.Earth, CombatHeroEntity, targetEntity.combatHeroEntity, vInjury);
 
-                 }
 
-             }
 
-         }
 
-         public void ShangSHi(WuXingType wuXingType, CombatHeroEntity source, ShowBaiscEntity target, int vInjury)
 
-         {
 
-             BuffInfo buffInfo = null;
 
-             switch (wuXingType)
 
-             {
 
-                 case WuXingType.Gold:
 
-                     buffInfo = BuffInfo.GetBuffInfo(10291, vInjury, this);
 
-                     break;
 
-                 case WuXingType.Fire:
 
-                     buffInfo = BuffInfo.GetBuffInfo(10321, vInjury, this);
 
-                     break;
 
-                 case WuXingType.Wood:
 
-                     buffInfo = BuffInfo.GetBuffInfo(10301, vInjury, this);
 
-                     break;
 
-                 case WuXingType.Earth:
 
-                     buffInfo = BuffInfo.GetBuffInfo(10331, vInjury, this);
 
-                     break;
 
-                 case WuXingType.Water:
 
-                     buffInfo = BuffInfo.GetBuffInfo(10311, vInjury, this);
 
-                     break;
 
-             }
 
-             target.BuffControl.AddBuff(source, buffInfo);
 
-         }
 
-         protected override void ProCombatUpdate(float time)
 
-         {
 
-             if (!isTrgger)
 
-             {
 
-                 return;
 
-             }
 
-             currTime += time;
 
-             if (currTime > 0.15f)
 
-             {
 
-                 count++;
 
-                 currTime -= 0.15f;
 
-                 SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos1");
 
-                 Vector3 pos = specialDotInfo.GetWorlPos();
 
-                 Quaternion quaternion = CombatHeroEntity.GameObject.transform.rotation *
 
-                                         Quaternion.Euler(new Vector3(0, 0, 360f / 10 * count))
 
-                     ;
 
-                 Vector3 dir = quaternion * Vector3.up * 3;
 
-                 ActivationTimeLineData("sk1_fashe", customizePos: new Vector3[] { pos + dir });
 
-                 if (count > 10)
 
-                 {
 
-                     isTrgger = false;
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |