Exemplo n.º 1
0
    // Spawn two boats with 15 enemies each or remainder enemies


    bool EnemiesIsAlive() // Tests if any enemies are still alive
    {
        for (int i = 0; i < iNumOfMelee; i++)
        {
            if (MeleeArray[i] != null)
            {
                CS_Enemy cs = MeleeArray[i].GetComponent <CS_Enemy>();

                if (cs != null)
                {
                    if (cs.IsAlive())
                    {
                        return(true);
                    }
                }
            }
        }
        for (int i = 0; i < iNumOfRange; i++)
        {
            CS_Enemy cs = RangeArray[i].GetComponent <CS_Enemy>();

            if (cs != null)
            {
                if (cs.IsAlive())
                {
                    return(true);
                }
            }
        }
        return(false);
    }
Exemplo n.º 2
0
    protected virtual void Update_Attack()
    {
        // update attack timer
        if (myAttackTimer > 0)
        {
            myAttackTimer -= Time.fixedDeltaTime;
            return;
        }

        // if enemy is gone, remove target
        if (myTargetEnemy != null && myTargetEnemy.gameObject.activeSelf == false)
        {
            myTargetEnemy = null;
        }

        // if i dont have a target, go through enemy list to find a target
        if (myTargetEnemy == null)
        {
            List <CS_Enemy> t_enemyList = CS_EnemyManager.Instance.GetEnemyList();
            foreach (CS_Enemy f_enemy in t_enemyList)
            {
                if (CheckInRange(f_enemy.transform) == true)
                {
                    myTargetEnemy = f_enemy;
                    break;
                }
            }
        }

        // if no enemy in range, dont attack
        if (myTargetEnemy == null)
        {
            return;
        }

        // if the enemy move out of the range, stop attacking this enemy
        if (CheckInRange(myTargetEnemy.transform) == false)
        {
            myTargetEnemy = null;
            Debug.Log("out of range");
            return;
        }

        // play sfx
        myAudioSource_Attack.Play();

        // play effect
        myEffect.Kill();
        myEffect.transform.position = myTargetEnemy.transform.position;
        myEffect.gameObject.SetActive(true);

        // attack enemy
        myTargetEnemy.TakeDamage(myStatus_Attack);
        myAttackTimer += myStatus_AttackTime;
        myAnimator.SetTrigger("Attack");
    }
Exemplo n.º 3
0
    public void LoseEnemy(CS_Enemy g_enemy)
    {
        // update enemy count
        myEnemyCount++;
        CS_UIManager.Instance.SetCount(myEnemyCount, myEnemySpawnTimeArray.Length);

        if (myEnemyCount == myEnemySpawnTimeArray.Length)
        {
            CS_UIManager.Instance.ShowPageEnd();
        }

        // remove enemy from list
        myEnemyList.Remove(g_enemy);
    }
Exemplo n.º 4
0
    private void Update_Timer()
    {
        if (myTimer < 0)
        {
            return;
        }

        // update timer
        myTimer -= Time.deltaTime;
        if (myTimer > 0)
        {
            return;
        }

        // generate enemy
        GameObject t_enemyObject = Instantiate(myEnemyPrefab);

        t_enemyObject.SetActive(false);
        // get enemy script
        CS_Enemy t_enemy = t_enemyObject.GetComponent <CS_Enemy> ();

        // init enemy
        t_enemy.Init();
        // add enemy to list
        myEnemyList.Add(t_enemy);

        // stop spawn process if all listed are finished
        myEnemySpawnIndex++;
        if (myEnemySpawnIndex >= myEnemySpawnTimeArray.Length)
        {
            myTimer = -1;
            return;
        }
        // set timer
        myTimer = myEnemySpawnTimeArray[myEnemySpawnIndex];
    }