using System.Collections.Generic; using Common.Combat.FxAILogic; using Core.Triiger; using UnityEngine; namespace GameLogic.Combat.Skill.MagicSkill { /// /// 法宝技能 翡翠葫芦 战场区域形成一个域。敌人的功法弹道进入域后将降低敌人的功法弹道速度 /// public class FS901002 : MagicSkillBasic, ITriggerEntity { private List _fxAILogicBasics = new List(); 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; } } }