private void WayNotFoundHandler(TankControl aControl)
 {
     // We can't reach our target...
     // But no problem, just finish this state
     // and AIAgent decide that we will do next...
     // Maybe select another point? ;)
     Finish();
 }
        private void ArrivedHandler(TankControl aControl)
        {
            // We have reach our target!

            // Don't forget to finish this state,
            // that is means that AIAgent can select new state.
            Finish();
        }
        public override void Create(GameObject aGameObject)
        {
            _control    = aGameObject.GetComponent <TankControl>();
            _blackboard = aGameObject.GetComponent <TankBlackboard>();

            // This state can't be interrupted.
            AllowInterrupting = false;
        }
Exemplo n.º 4
0
 /// <summary>
 /// Sets target unit for the health bar for observing of the health.
 /// </summary>
 /// <param name="aTank">Target tank.</param>
 public void SetTarget(TankControl aTank)
 {
     _tank = aTank;
     _tank.EventChangeHealth += TankChangeHealthHandler;
     _tank.EventDestroyed    += TankDestroyedHandler;
     _hasTarget = true;
     UpdateVisual();
 }
Exemplo n.º 5
0
 private void TankDestroyedHandler(TankControl aTank)
 {
     // If target is destroyed, destroy the health bar too.
     aTank.EventDestroyed    -= TankDestroyedHandler;
     aTank.EventChangeHealth -= TankChangeHealthHandler;
     _tank      = null;
     _hasTarget = false;
     GameObject.Destroy(gameObject);
 }
Exemplo n.º 6
0
 private void AddTouchTank(TankControl aTank)
 {
     for (int i = 0; i < TANKS_COUNT; i++)
     {
         if (_touchTanks[i] == null)
         {
             _touchTanks[i] = aTank;
         }
     }
 }
Exemplo n.º 7
0
 private void AddTank(TankControl aTank)
 {
     for (int i = 0; i < TANKS_COUNT; i++)
     {
         if (_seeTanks[i] == null)
         {
             _seeTanks[i] = aTank;
             break;
         }
     }
 }
Exemplo n.º 8
0
        private void Awake()
        {
            _t          = GetComponent <Transform>();
            _control    = GetComponent <TankControl>();
            _blackboard = GetComponent <TankBlackboard>();
            _seeItems   = new CollectableItem[SEE_ITEMS_COUNT];
            _seeTanks   = new TankControl[TANKS_COUNT];
            _touchTanks = new TankControl[TANKS_COUNT];

            _seeFrom = new List <Vector2>();
            _seeTo   = new List <Vector2>();
        }
Exemplo n.º 9
0
		/// <summary>
		/// Sets enemy tank as current target.
		/// </summary>
		/// <param name="aEnemyTank">Reference to the enemy tank.</param>
		public void TrackTank(TankControl aEnemyTank)
		{
			if (_enemyTank != null && !System.Object.ReferenceEquals(_enemyTank, aEnemyTank))
			{
				// If we already tracked other tank, then check what of them is close to us?
				float dist = AntMath.Distance(_t.position, aEnemyTank.Position);
				if (dist < _enemyTankDist)
				{
					// If new enemy closer, then replace old on the new one.
					_enemyTankDist = dist;
					_enemyTank.EventDestroyed -= TankDestroyedHandler;
					_enemyTank = aEnemyTank;
					_enemyTank.EventDestroyed += TankDestroyedHandler;
				}
			}
			else
			{
				// Just track the enemy.
				_enemyTankDist = AntMath.Distance(_t.position, aEnemyTank.Position);
				_enemyTank = aEnemyTank;
				_enemyTank.EventDestroyed += TankDestroyedHandler;
				_hasEnemy = true;
			}
		}
Exemplo n.º 10
0
 public override void Create(GameObject aGameObject)
 {
     _control    = aGameObject.GetComponent <TankControl>();
     _blackboard = aGameObject.GetComponent <TankBlackboard>();
 }
Exemplo n.º 11
0
 private void TankChangeHealthHandler(TankControl aTank)
 {
     // If target changed health value, update the health bar too.
     UpdateVisual();
 }
Exemplo n.º 12
0
 private void TankDestroyedHandler(TankControl aTank)
 {
     // Tank of this spawner is destroyed, activating the spawner to spawn new Tank.
     aTank.EventDestroyed -= TankDestroyedHandler;
     _isActive             = true;
 }
Exemplo n.º 13
0
 private void tankDestroyedHandler(TankControl aTank)
 {
     aTank.EventDestroyed -= tankDestroyedHandler;
     Finish();
 }
Exemplo n.º 14
0
		private void TankDestroyedHandler(TankControl aTank)
		{
			aTank.EventDestroyed -= TankDestroyedHandler;
			_enemyTank = null;
			_hasEnemy = false;
		}
Exemplo n.º 15
0
 private void TankDestroyedHandler(TankControl aTank)
 {
     aTank.EventDestroyed -= TankDestroyedHandler;
     tanks.Remove(aTank);
 }