| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using Core.Triiger;using GameLogic.Combat.CombatTool;using GameLogic.Combat.Hero;using GameLogic.Player;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;namespace GameLogic.Combat.Skill{    /// <summary>    /// (2转,防御型技能):身体周围围绕多丙剑飞行,可以阻挡敌人的功法.抵挡{0}最大生命值的伤害 改剑阵收到火系伤害时会升温,升温后会融化。(受到的火系伤害提升60%)    /// </summary>    public class S9002 : SkillBasic, IBarrier    {        private bool isTrgger;        public long shel;        protected TimeLineEventLogicGroupBasic _timeLineEventLogicGroupBasic;        protected override void ProInitSkill()        {            // AddTriggerCallBack("sk1_fashe", Sk1_FaSheProDefaultTimeLineTrigger);        }        protected override void ProUseSkill()        {            CombatHeroEntity.CloseLoopFx();            _timeLineEventLogicGroupBasic = ActivationTimeLineData("sk2");            Own = CombatHeroEntity;        }        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,            ITimelineFxLogic timelineFxLogic,            TriggerData triggerData,ISkillFeatures skillFeatures)        {            // count = 0;            SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("sk2_trigger");            // specialDotInfo            BarrierEntityMono barrierEntityMono =                specialDotInfo.targetTran.gameObject.GetOrAddComponent<BarrierEntityMono>();            barrierEntityMono.Barrier = this;            isTrgger = true;            shel = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.MaxCombatHeroInfo.hp.Value,                effectValue[0]);        }        // private void Sk1_FaSheProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,        //     ITimelineFxLogic timelineFxLogic,        //     TriggerData triggerData,ISkillFeatures skillFeatures)        // {        //     long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,        //         effectValue[0]);        //     CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v, AttType.Skill, triggerData, wuXingType,skillFeatures,        //         HarmType.Default);        // }        protected override void ProCombatUpdate(float time)        {            if (!isTrgger)            {                return;            }            // currTime += time;            // if (currTime > 0.1f)            // {            //     currTime -= time;            //     ActivationTimeLineData("sk1_fashe");            //     count++;            //     if (count > 20)            //     {            //         isTrgger = false;            //     }            // }        }        public ShowBaiscEntity Own { get; set; }        public BarrierTriggerData BarrierTriggerData { get; set; }        public bool CollideTriiger(ITriggerEntity triggerEntity)        {            return !isTrgger || shel <= 0;        }        public long Harm(HarmReturnInfo harmReturnInfo)        {            if (harmReturnInfo.WuXingType.HasFlag(WuXingType.Fire))            {                harmReturnInfo.att +=                    CombatCalculateTool.Instance.GetVlaueRatioForLong(harmReturnInfo.att, effectValue[1]);            }            shel -= harmReturnInfo.att;            if (shel <= 0)            {                _timeLineEventLogicGroupBasic?.CloseLoopFx();                _timeLineEventLogicGroupBasic = null;            }            return 0;        }    }}
 |