// Start is called before the first frame update
 void Start()
 {
     crystalController = GetComponent <CrystalController>();
     screenMessage     = FindObjectOfType <ScreenMessage>().gameObject;
     patronController  = FindObjectOfType <PatronController>();
     audioSource       = GetComponent <AudioSource>();
 }
    void Start()
    {
        //find refernces for in-game objects
        turrets = GameObject.FindGameObjectsWithTag(Tags.miniTurrret);
        cc = GameObject.FindGameObjectWithTag(Tags.crystal).GetComponent<CrystalController>();
        pc = GameObject.FindGameObjectWithTag(Tags.player).GetComponent<PlayerController>();
        gec = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent<GUIElementsController>();
        gt = GameObject.FindGameObjectWithTag(Tags.gameController).GetComponent<GameTimer>();

        gameEnded = false;
    }
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
    // Use this for initialization
    void Awake()
    {
        primaryCrystal    = GameObject.FindGameObjectWithTag("PrimaryCrystal");
        crystalController = primaryCrystal.GetComponent <CrystalController> ();

        orbitCrystals = GameObject.FindGameObjectWithTag("OrbitCrystals");

        frozenOrb = GameObject.FindGameObjectWithTag("FrozenOrb");


        EstablishReferencesToFrozenOrb();
        frozenOrb.SetActive(false);
    }
 void Awake()
 {
     current = this;
 }
Exemple #6
0
    private void Update()
    {
        // If Crystal was destroyed, have all enemies stop all movement.
        if (GameController.GameOver())
        {
            if (navMeshAgent.velocity.magnitude > 0.0f)
            {
                DelayReaction();
            }
            return;
        }

        // If no target detected, move towards the Crystal.
        if (attackTarget == null)
        {
            if (movementTimer > movementDelay)
            {
                navMeshAgent.SetDestination(CrystalController.GetInstance().transform.position);
                movementTimer = 0.0f;
            }
        }

        // Target is detected.
        else
        {
            // If close enough to attack target.
            if (Vector3.Distance(attackTarget.transform.position, transform.position) < attackRange)
            {
                navMeshAgent.velocity = Vector3.zero;
                navMeshAgent.ResetPath();

                // Start attacking after delay has been reached.
                if (attackTimer > attackDelay)
                {
                    // Align sprite to always face target.
                    spriteDirection = Vector3.ProjectOnPlane(attackTarget.transform.position - transform.position, Camera.main.transform.forward).normalized;
                    if (spriteAnimator != null)
                    {
                        spriteAnimator.Attack();
                    }

                    // Player sound and remove health from target.
                    AudioController.Attack();
                    StartCoroutine(DelayedAttack(0.2f));
                    attackTimer = 0.0f;
                }

                movementTimer = 0.0f;
                attackTimer  += Time.deltaTime;
            }

            // Not close enough to attack, keep chasing target.
            else if (movementTimer > movementDelay)
            {
                navMeshAgent.SetDestination(attackTarget.transform.position);
                movementTimer = 0.0f;
            }
        }

        movementTimer += Time.deltaTime;
    }
Exemple #7
0
 // Use this for initialization
 void Start()
 {
     current = this;
 }
    // Update is called once per frame
    void Update()
    {
        // Cycle through each game state.
        switch (currentState)
        {
        // Welcome Message
        case -1:
            if (currentWindow == null)
            {
                currentWindow = CreateWindow(tutorialMessage);
                currentState++;
            }
            break;

        // Tutorial Message
        case 0:
            if (currentWindow == null)
            {
                EnableInput();
                currentState++;
            }
            break;

        // Enemy Spawner
        case 1:
            if (!enemySpawnerController.Started())
            {
                enemySpawnerController.StartEnemySpawner();
            }

            else if (enemySpawnerController.Victorious())
            {
                AudioController.Win();
                currentWindow = CreateWindow(winMessage, 0.5f);
                DisableInput();
                currentState++;
            }

            else if (player == null || CrystalController.GetInstance() == null)
            {
                AudioController.Lose();
                currentWindow = CreateWindow(loseMessage, 0.5f);
                DisableInput();
                currentState++;
            }
            break;

        // Win/Lose Message
        case 2:
            if (currentWindow == null)
            {
                currentWindow = CreateWindow(creditsMessage);
                currentState++;
            }
            break;

        // Credit Screen
        case 3:
            if (currentWindow == null)
            {
                Quit();
            }
            break;
        }
    }