| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using Common.Combat.FxAILogic;using Core.Triiger;using GameLogic.Combat.CombatTool;using GameLogic.Combat.Hero;using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;using UnityEngine;namespace GameLogic.Combat.Skill.MagicSkill{    /// <summary>    /// 玄龟盾:前方形成一个土系防御盾,抵挡敌人伤害    /// </summary>    public class S3501 : MagicSkillBasic, ITriggerEntity, IBarrier    {        public string tag { get; }        private IUnRegister _unRegister;        private bool _use;        private long _currHp;        protected GameObject pengZhuang;        private bool isUpdate;        // protected bool         private SpecialDotInfo specialDotInfo;        private TimeLineEventLogicGroupBasic loop;        protected override void ProMagicUseSkill()        {            isUpdate = false;            specialDotInfo =                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.GetSpecialDotInfo("zdpos1");            MagicAttShowBasic magicAttShowBasic = InitXiaoShiAndShow(specialDotInfo.GetWorlPos(), Finish);            SetMagicAttShowBasic(magicAttShowBasic);        }        public ShowBaiscEntity Own { get; set; }        public BarrierTriggerData BarrierTriggerData { get; set; }        private void Finish()        {            isUpdate = true;            loop= ActivationTimeLineData("sk1");            Own = CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity;            if (pengZhuang == null)            {                pengZhuang = new GameObject("pengzhaung");                SphereCollider sphereCollider = pengZhuang.AddComponent<SphereCollider>();                sphereCollider.isTrigger = true;                sphereCollider.radius = 2.5f;            }            pengZhuang.SetActive(true);            BarrierEntityMono barrierEntityMono =                pengZhuang.GetOrAddComponent<BarrierEntityMono>();            pengZhuang.transform.position = CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.dotPos;            pengZhuang.transform.SetParent(CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.GameObject                .transform);            barrierEntityMono.Barrier = this;            _use = true;            _currHp = CombatCalculateTool.Instance.GetVlaueRatioForLong(                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.MaxCombatHeroInfo.hp.Value,                SelfSkillConfig.effectValue[0]);        }        public bool CollideTriiger(ITriggerEntity triggerEntity)        {            return !_use || _currHp <= 0;        }        protected override void ProDispose()        {            if (pengZhuang != null)            {                pengZhuang.SetActive(false);                pengZhuang = null;            }            if (loop != null)            {                loop.CloseLoopFx();            }            loop = null;        }        protected override void ProBreakMagicSkill()        {            isUpdate = false;            SkillPlayFinish();            pengZhuang.SetActive(false);        }        protected override void MagicSkillUpdate(float time)        {            if (isUpdate)            {                CombatMagicWeaponEntity.GameObject.transform.position = specialDotInfo.GetWorlPos();            }        }        protected override void ProSkillPlayFinish()        {            if (loop != null)            {                loop.CloseLoopFx();            }            loop = null;        }        public long Harm(HarmReturnInfo harmReturnInfo)        {            _currHp -= harmReturnInfo.att;            if (_currHp <= 0) //盾破            {                isUpdate = false;                SkillPlayFinish();                pengZhuang.SetActive(false);                Debug.Log("盾破了,做表现的时候一起做");            }            return 0;        }    }}
 |