| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | using System.Collections.Generic;using Common.Combat.FxAILogic;using Core.Triiger;using UnityEngine;namespace GameLogic.Combat.Skill.MagicSkill{    /// <summary>    /// 法宝技能 翡翠葫芦 战场区域形成一个域。敌人的功法弹道进入域后将降低敌人的功法弹道速度    /// </summary>    public class FS901002 : MagicSkillBasic, ITriggerEntity    {        private List<FxAILogicBasic> _fxAILogicBasics = new List<FxAILogicBasic>();        private float _currTime;        private bool _update;        private IUnRegister _unRegister;        protected override void ProMagicUseSkill()        {            SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("lingyu");            _unRegister=specialDotInfo.targetTran.gameObject.OnTriggerEnterEvent(this, OnTriggerEnter);            _currTime = 0;            _update = true;            // specialDotInfo.targetTran.gameObject.OnTriggerExitEvent(this, OnTriggerEnter);        }        private void OnTriggerEnter(Collider collider, ITriggerEntity triggerEntity)        {            if (triggerEntity == null)            {                return;            }            FxAILogicBasic fxAILogicBasic = triggerEntity as FxAILogicBasic;            if (fxAILogicBasic != null)            {                fxAILogicBasic.extraMoveSpeed -= SelfSkillConfig.effectValue[0];            }        }        protected override void MagicSkillUpdate(float time)        {            if (_update)            {                _currTime += time;                if (_currTime >= SelfSkillConfig.effectValue[1])                {                    Finish();                }            }        }        private void Finish()        {            _unRegister?.UnRegister();            _unRegister = null;            _update = false;            SkillPlayFinish();            for (int i = 0; i < _fxAILogicBasics.Count; i++)            {                _fxAILogicBasics[i].extraMoveSpeed += SelfSkillConfig.effectValue[0];            }            _fxAILogicBasics.Clear();        }        public string tag { get; }    }}
 |