| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using GameLogic.Combat.CombatTool;using GameLogic.Combat.Hero;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;namespace GameLogic.Combat.Skill{    /// <summary>    /// 大蛇技能2,吐火焰经过的敌人收到伤害,没0.5秒收到一次伤害    /// </summary>    public class S110002 : SkillBasic    {        private float _harm;        private float _currTime;        private bool _isUpdate;        // protected BetterList<CombatHeroEntity>         protected override void ProInitSkill()        {            _harm = SelfSkillConfig.effectValue[0];        }        protected override void ProUseSkill()        {            int odds = CombatCalculateTool.Instance.GetOdd();            string timeName = odds < 50 ? "sk2" : "sk3";            ActivationTimeLineData(timeName);            _currTime = 0;            // _isUpdate = true;        }        // protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(        //     TimeLineEventLogicBasic timeLineEventLogicBasic)        // {        //     ILifetCycleHitPoint[] lifetCycleHitPoints = new ILifetCycleHitPoint[_enterAlertTarget.Count];        //        //     for (int i = 0; i < _enterAlertTarget.Count; i++)        //     {        //         CombatHeroHitPoint combatHeroHitPoint = _enterAlertTarget[i].GetMainHotPoin<CombatHeroHitPoint>();        //         lifetCycleHitPoints[i] = combatHeroHitPoint;        //     }        //     return  lifetCycleHitPoints;        // }        protected override void ProHeroEnter(TimeLineAlertSeriailztion timeLineAlertSeriailztion,            CombatHeroEntity target)        {            // base.ProHeroEnter(timeLineAlertSeriailztion, target);        }        protected override void ProSkillPlayFinish()        {            _isUpdate = false;        }        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,            ITimelineFxLogic timelineFxLogic,            TriggerData triggerData)        {            _isUpdate = true;        }        protected override void ProCombatUpdate(float time)        {            if (!_isUpdate)            {                return;            }            _currTime += time;            if (_currTime > 0.1f)            {                _currTime -= 0.1f;                for (int i = 0; i < _enterAlertTarget.Count; i++)                {                    long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(                        CombatHeroEntity.CurrCombatHeroInfo.attack.Value,                        _harm);                    CombatHeroHitPoint combatHeroHitPoint = _enterAlertTarget[i].GetMainHotPoin<CombatHeroHitPoint>();                    HarmReturnInfo harmReturnInfo = Harm(CombatHeroEntity, combatHeroHitPoint,                        v, AttType.Skill, triggerData);                }            }        }        public override bool IsCanUse()        {            int odds = CombatCalculateTool.Instance.GetOdd();            float bl = CombatHeroEntity.CurrCombatHeroInfo.hp.Value * 100.0f /                       CombatHeroEntity.MaxCombatHeroInfo.hp.Value;            if (bl < 50 && odds < 50)            {                return true;            }            SkillCd = SkillMaxCd;            return false;        }    }}
 |