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; }
- }
- }
|