| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | 
							- using System;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using Common.Utility.CombatEvent;
 
- using Core.State;
 
- using Fort23.Core;
 
- using GameLogic.Combat.CombatTool;
 
- using GameLogic.Combat.Hero;
 
- using GameLogic.Combat.Hero.State;
 
- using GameLogic.Combat.Hero.SubStatus;
 
- using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
 
- using UnityEngine;
 
- using UnityEngine.AI;
 
- public class CombatAIBasic : IDisposable
 
- {
 
-     public StateControl stateControl;
 
-     protected BetterList<SubStatusBasic> _subStatusList = new BetterList<SubStatusBasic>();
 
-     // public NavMeshObstacle NavMeshObstacle;
 
-     protected CombatHeroEntity _showBaiscEntity;
 
-     public CombatHeroStateBasic CurrState
 
-     {
 
-         get { return stateControl.CurrIState as CombatHeroStateBasic; }
 
-     }
 
-     /// <summary>
 
-     /// 当前聚焦的目标
 
-     /// </summary>
 
-     public virtual IHero currFocusTarget
 
-     {
 
-         get { return _currFocusTarget; }
 
-         set { _currFocusTarget = value; }
 
-     }
 
-     protected IHero _currFocusTarget;
 
-     private float _t;
 
-     public virtual void Init(CombatHeroEntity combatHeroEntity)
 
-     {
 
-         _showBaiscEntity = combatHeroEntity;
 
-         stateControl = new StateControl();
 
-         ProInitState();
 
-         ProInit();
 
-     }
 
-     protected virtual void ProInit()
 
-     {
 
-     }
 
-     public virtual void AddSubStatus(SubStatusBasic subStatusBasic)
 
-     {
 
-         if (!_subStatusList.Contains(subStatusBasic))
 
-         {
 
-             subStatusBasic.Init(_showBaiscEntity);
 
-             _subStatusList.Add(subStatusBasic);
 
-         }
 
-     }
 
-     public virtual T GetSubStatus<T>() where T : SubStatusBasic
 
-     {
 
-         for (int i = 0; i < _subStatusList.Count; i++)
 
-         {
 
-             if (_subStatusList[i] is (T))
 
-             {
 
-                 return _subStatusList[i] as T;
 
-             }
 
-         }
 
-         return null;
 
-     }
 
-     public virtual void RemoveSubStatus(SubStatusBasic subStatusBasic)
 
-     {
 
-         if (_subStatusList.Contains(subStatusBasic))
 
-         {
 
-             _subStatusList.Remove(subStatusBasic);
 
-         }
 
-     }
 
-     public virtual void RemoveSubStatus<T>()
 
-     {
 
-         for (int i = 0; i < _subStatusList.Count; i++)
 
-         {
 
-             if (_subStatusList[i] is T)
 
-             {
 
-                 _subStatusList.RemoveAt(i);
 
-                 i--;
 
-             }
 
-         }
 
-     }
 
-     protected virtual void ProInitState()
 
-     {
 
-     }
 
-     public virtual void ChangeState(string name, IStateEnterData iStateEnterData = null, bool isQiangZhi = false)
 
-     {
 
-         stateControl.ChangeState(name, iStateEnterData, isQiangZhi);
 
-     }
 
-     public virtual void Update(float t)
 
-     {
 
-         if (CombatController.currActiveCombat.isStopAi)
 
-         {
 
-             if (stateControl.CurrStateName.Equals(CombatHeroStateType.move))
 
-             {
 
-                 stateControl.ChangeState(CombatHeroStateType.idle);
 
-             }
 
-             return;
 
-         }
 
-         for (int i = 0; i < _subStatusList.Count; i++)
 
-         {
 
-             SubStatusBasic subStatusBasic = _subStatusList[i];
 
-             string s = subStatusBasic.IsGetStateName();
 
-             if (!string.IsNullOrEmpty(s))
 
-             {
 
-                 stateControl.ChangeState(s);
 
-             }
 
-             _subStatusList[i].Update(t);
 
-         }
 
-         stateControl.Update(t);
 
-         ProUpdate();
 
-     }
 
-     protected virtual void ProUpdate()
 
-     {
 
-     }
 
-     public void Dispose()
 
-     {
 
-         ProDispose();
 
-         _showBaiscEntity = null;
 
-         stateControl.Dispose();
 
-         stateControl = null;
 
-     }
 
-     protected virtual void ProDispose()
 
-     {
 
-     }
 
- }
 
 
  |