| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using Common.Utility.CombatEvent;using Fort23.Core;using GameLogic.Combat.Buff;using GameLogic.Combat.CombatTool;using GameLogic.Combat.Hero;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;namespace GameLogic.Combat.Skill{    /// <summary>    /// 幻花迷雾(当场上有木灵分身时触发)    /// 身体摇动,天空散发出小小的花朵。木灵隐藏其中防御+{0}%,期间不在攻击,直到木灵之子全部死亡后的{1}秒消失    /// </summary>    public class S9061 : SkillBasic    {        protected float _currTime;        private bool _isUpdate;        private BuffBasic _buffBasic;        private long addDef;        protected override void ProInitSkill()        {            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroDie, HeroDie);        }        private void HeroDie(IEventData iEventData)        {            if (_isUpdate)            {                return;            }            HeroDieEventData heroHpUpdateEventData = iEventData as HeroDieEventData;            SummonCombatHeroEntity summonCombatHeroEntity =                heroHpUpdateEventData.combatHeroEntity as SummonCombatHeroEntity;            if (summonCombatHeroEntity != null && summonCombatHeroEntity.ownerEntity == CombatHeroEntity)            {                CombatHeroEntity[] combatHeroEntities =                    CombatController.currActiveCombat.CombatHeroController.GetHero(CombatHeroEntity.IsEnemy,out int maxCount);                bool isOk = false;                for (int i = 0; i < maxCount; i++)                {                    SummonCombatHeroEntity t = combatHeroEntities[i] as SummonCombatHeroEntity;                    if (t != null)                    {                        isOk = true;                        break;                    }                }                if (isOk)                {                    return;                }                _isUpdate = true;                _currTime = 0;            }        }        protected override void ProDispose()        {            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroDie, HeroDie);        }        protected override void ProUseSkill()        {            ActivationTimeLineData("9061");            BuffInfo buffInfo = BuffInfo.GetBuffInfo(10261, -1, 1);            _buffBasic = CombatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);            long defense = CombatHeroEntity.MaxCombatHeroInfo.defense.Value;            addDef = CombatCalculateTool.Instance.GetVlaueRatioForLong(defense, effectValue[0]);            CombatHeroEntity.CurrCombatHeroInfo.defense += addDef;        }        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,            ITimelineFxLogic timelineFxLogic,            TriggerData triggerData, ISkillFeatures skillFeatures)        {            // float harmBl = 0;            // b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();            // if (b1018 != null) //消耗一层感电,额外照成伤害            // {            //     harmBl += b1018.buffCount * effectValue[1];            // }            //            // 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);        }        protected override void ProCombatUpdate(float time)        {            if (!_isUpdate)            {                return;            }            _currTime += time;            if (_currTime >= effectValue[1])            {                _isUpdate = false;                CombatHeroEntity.CurrCombatHeroInfo.defense -= addDef;                if (_buffBasic != null)                {                    _buffBasic.DelectBuff();                }                // CombatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().SkillTurntable.isStop = false;            }        }    }}
 |