Пример #1
0
        private void OnCrystalDestroyed(EnemyCrystal crystal)
        {
            if (!hasCrystalTarget || IsCarryingCrystalState())
            {
                return;
            }

            //if (IsSearchingState() && hasCrystalTarget && crystalTarget == crystal)

            if (IsSearchingState())
            {
                if (crystal == crystalTarget)
                {
                    hasCrystalTarget = false;
                    crystalTarget    = null;
                    if (Util.crystalManager.HasValidCrystals())
                    {
                        SetupUnitToSearchForCrystal();
                    }
                    else
                    {
                        // What if the tower is destroyed?
                        SetReturningState();
                        agent.SetDestination(tower.transform.position);
                    }
                }
            }
        }
Пример #2
0
 public void SetupUnitToSearchForCrystal()
 {
     crystalTarget            = Util.crystalManager.FindValidCrystal(transform);
     crystalTarget.isTargeted = true;
     hasCrystalTarget         = true;
     agent.SetDestination(crystalTarget.transform.position);
     SetSearchingState();
 }
Пример #3
0
 private void OnCrystalCreated(EnemyCrystal crystal)
 {
     foreach (Unit unit in units)
     {
         Snrk2Unit snrkUnit = (Snrk2Unit)unit;
         if (snrkUnit.IsIdleState() || snrkUnit.IsReturniningState())
         {
             if (Util.crystalManager.HasValidCrystals())
             {
                 snrkUnit.SetupUnitToSearchForCrystal();
                 return;
             }
         }
     }
 }