| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | 
							- using System.Collections.Generic;
 
- using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
 
- using Common.Combat.FxAILogic;
 
- using Common.Utility.CombatEvent;
 
- using Core.Utility;
 
- using Fort23.Core;
 
- using GameLogic.Combat.Buff;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Combat.Hero;
 
- using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
 
- using UnityEngine;
 
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 
- namespace GameLogic.Combat.Skill
 
- {
 
-     /// <summary>
 
-     /// 霜域新生(被动,只会生效一次) 凤凰在伤害还剩10%的时候会触发此技能,
 
-     /// 凤凰身体冰冻住并有一层寒气笼罩,期间凤凰不在受到任何伤害,并慢慢回血,
 
-     /// 直到恢复满,持续5秒左右吧,恢复满后凤凰所有灵根增加{0}。冰块爆开,
 
-     /// 生成一个冲击波,对当前场上所有的弹道照成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{1}枚冰锥冲向玩家,对玩家照成{2}伤害
 
-     /// </summary>
 
-     public class S9013 : SkillBasic
 
-     {
 
-         protected BuffBasic BuffBasic;
 
-         private bool isActiveFuHuo;
 
-         private int count;
 
-         private float _currTime;
 
-         protected long addHp;
 
-         protected override void ProActiveSkill()
 
-         {
 
-             count = 0;
 
-             isActiveFuHuo = false;
 
-             CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
 
-         }
 
-         private void HeroInjured(IEventData data)
 
-         {
 
-             if (count > 0)
 
-             {
 
-                 return;
 
-             }
 
-             HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;
 
-             if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
 
-             {
 
-                 float bl = CombatHeroEntity.CurrCombatHeroInfo.hp.Value * 1.0f /
 
-                            CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
 
-                 if (bl * 100 < effectValue[0])
 
-                 {
 
-                  
 
-                     addHp = CombatCalculateTool.Instance.GetVlaueRatioForLong(
 
-                         CombatHeroEntity.MaxCombatHeroInfo.hp.Value, 10);
 
-                     BuffInfo buffInfo = BuffInfo.GetBuffInfo(10151, -1, 1);
 
-                     BuffBasic = CombatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
 
-                     CombatHeroEntity.CurrCombatHeroInfo.hp=(EncryptionLong)CombatCalculateTool.Instance.GetVlaueRatioForLong(
 
-                         CombatHeroEntity.MaxCombatHeroInfo.hp.Value, effectValue[0]);
 
-                     count++;
 
-                     CombatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().AddCommandSkill(this);
 
-                     // SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos2");
 
-                 }
 
-             }
 
-         }
 
-         protected override void ProUseSkill()
 
-         {
 
-             _finishTimeLineGroupName = "-1";
 
-             ActivationTimeLineData("9013");
 
-             isActiveFuHuo = true;
 
-         }
 
-         protected override void ProCombatUpdate(float time)
 
-         {
 
-             if (!isActiveFuHuo)
 
-             {
 
-                 return;
 
-             }
 
-             _currTime += time;
 
-             if (_currTime > 0.2f)
 
-             {
 
-                 _currTime = 0;
 
-                 Recover(CombatHeroEntity, CombatHeroEntity.GetMainHotPoin<CombatHeroHitPoint>(), addHp, AttType.Skill);
 
-                 if (CombatHeroEntity.CurrCombatHeroInfo.hp.Value >= CombatHeroEntity.MaxCombatHeroInfo.hp.Value)
 
-                 {
 
-                     CombatHeroEntity.CloseLoopFx();
 
-                     ActivationTimeLineData("9013_hit");
 
-                     isActiveFuHuo = false;
 
-                     float v = effectValue[1];
 
-                     CombatHeroEntity.CurrCombatHeroInfo.Metal += v;
 
-                     CombatHeroEntity.CurrCombatHeroInfo.Wood += v;
 
-                     CombatHeroEntity.CurrCombatHeroInfo.Water += v;
 
-                     CombatHeroEntity.CurrCombatHeroInfo.Fire += v;
 
-                     CombatHeroEntity.CurrCombatHeroInfo.Earth += v;
 
-                     CombatHeroEntity.BuffControl.RemoveBuff(BuffBasic);
 
-                     BuffBasic = null;
 
-                     S9014 s9014 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<S9014>();
 
-                     if (s9014 != null)
 
-                     {
 
-                         s9014.isActive = true;
 
-                     }
 
-                     ballisticsCount = (int)effectValue[2];
 
-                     for (int i = 0; i < effectValue[2]; i++)
 
-                     {
 
-                         CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
 
-                             .GetThis<CombatHeroEntity>()
 
-                             .GetMainHotPoin<CombatHeroHitPoint>();
 
-                         BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
 
-                         currTarget.Add(combatHeroHitPoint);
 
-                         // SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
 
-                         float x = CombatCalculateTool.Instance.GetOdd(-2, 2);
 
-                         float y = CombatCalculateTool.Instance.GetOdd(1, 3);
 
-                         float z = CombatCalculateTool.Instance.GetOdd(-1, 1);
 
-                         Vector3 pos = CombatHeroEntity.GameObject.transform.TransformPoint(x, y, z);
 
-                         ActivationTimeLineData("9013_suipian", currTarget: currTarget,
 
-                             customizePos: new Vector3[] { pos }, indexCount: i);
 
-                     }
 
-                     List<FxAILogicBasic> allFxAi =
 
-                         CombatController.currActiveCombat.GameTimeLineParticleFactory.GetFxAILogicBasic(
 
-                             !CombatHeroEntity
 
-                                 .IsEnemy);
 
-                     for (int i = 0; i < allFxAi.Count; i++)
 
-                     {
 
-                         SkillFeaturesData mySkillFeaturesData = GetSkillFeaturesData();
 
-                         FxParabolaBulletLogic fxParabolaBulletLogic = allFxAi[i] as FxParabolaBulletLogic;
 
-                         fxParabolaBulletLogic.PengZhuang(mySkillFeaturesData, CombatHeroEntity);
 
-                     }
 
-                     SkillPlayFinish();
 
-                     //完成
 
-                 }
 
-             }
 
-         }
 
-         protected void ProDefaultTimeLineTrigger_BaoZa(string groupName, CombatHeroHitPoint targetEntity,
 
-             ITimelineFxLogic timelineFxLogic,
 
-             TriggerData triggerData, ISkillFeatures skillFeatures)
 
-         {
 
-             float harmBl = effectValue[3];
 
-             long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
 
-                 harmBl);
 
-             HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
 
-                 AttType.Skill, triggerData,
 
-                 wuXingType, skillFeatures,
 
-                 HarmType.Default);
 
-         }
 
-     }
 
- }
 
 
  |