Ejemplo n.º 1
0
    public void SpawnEnemy()
    {
        GameObject enemy_ = Instantiate(Enemy, enemy_spawns.Pop(), Quaternion.identity);

        Enemy_Manager.AddEnemy(enemy_);
        enemy_.transform.LookAt(ClosestOpenVectorTo(enemy_.transform.position));
    }
    public void Update(GameTime gameTime)
    {
        if (Active)
        {
            float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
            LastSpawnCounter += elapsed;

            if (LastSpawnCounter > MinSpawnTime)
            {
                if (Vector2.Distance(activeSprite.WorldCenter,
                                     Player.BaseSprite.WorldCenter) > 128)
                {
                    if (EnemyManager.Enemies.Count <
                        EnemyManager.MaxActiveEnemies)
                    {
                        EnemyManager.AddEnemy(MapLocation);
                        LastSpawnCounter = 0;
                    }
                }
            }

            activeSprite.Update(gameTime);
        }
        else
        {
            inactiveSprite.Update(gameTime);
        }
    }
Ejemplo n.º 3
0
    IEnumerator SpawnEnemy()
    {
        curSe = waves[currentWave].wave[currentElement];

        if (curSe.enemy)
        {
            GameObject g = curSe.enemy as GameObject;
            if (curSe.health > 0)
            {
                g.GetComponent <Enemy>().Health = curSe.health;
            }
            for (int i = 0; i < spawnPos.Length; i++)
            {
                if (spawnPos[i] != null)
                {
                    enemyManager.AddEnemy(Instantiate(g, spawnPos[i].transform.position, Quaternion.identity) as GameObject);
                    g.transform.position = spawnPos[i].transform.position;
                    g.GetComponent <NavMeshAgent>().Warp(spawnPos[i].transform.position);
                }
            }
        }
        yield return(new WaitForSeconds(curSe.delay));

        NextSpawn();
    }
Ejemplo n.º 4
0
    IEnumerator SpawnEnemy()
    {
        //gameLoop = false;
        routine = true;

        int i = 0;

        while (true)
        {
            enemy.AddEnemy(new Vector2(9.5f, 0), enemyArray[i]);
            yield return(new WaitForSeconds(0.5f));

            ++i;
            if (i >= 3)
            {
                yield return(new WaitForSeconds(1f));

                if (gameStart)
                {
                    gameLoop = true;
                }
                break;
            }
        }

        routine = false;
    }
Ejemplo n.º 5
0
 void Start()
 {
     EnemyManager.AddEnemy();
     currentHealth      = startingHealth;
     healthSlider.value = currentHealth;
     damaged            = false;
     healthSlider.gameObject.SetActive(false);
 }
Ejemplo n.º 6
0
    public void Spawn(Enemy e, Vector3 spawnPoint)
    {
        spawnSound.Play();
        Enemy spawned = Instantiate(e.gameObject, spawnPoint, Quaternion.identity).GetComponent <Enemy>();

        enemyManager.AddEnemy(spawned);
        spawned.Spawn(enemyManager);
    }
Ejemplo n.º 7
0
    private void OnTriggerEnter(Collider other)
    {
        Enemy enemy = other.transform.GetComponent <Enemy>();

        if (enemy)
        {
            enemyManager.AddEnemy(enemy);
        }
    }
    void SpawnEnemies()
    {
        for (int i = 0; i < _numEnemies; ++i)
        {
            GameObject enemy = (GameObject)GameObject.Instantiate(_enemyPrefab, Vector3.zero, Quaternion.identity);

            // call straight to the EnemyManager static class
            EnemyManager.AddEnemy(enemy);
        }
    }
Ejemplo n.º 9
0
    //private void Start()
    //{
    //	var enemy = Spawn();
    //	enemyManager.AddEnemy(enemy);

    //}

    void Update()
    {
        timer += Time.deltaTime;
        if (timer > enemyFrequency)
        {
            timer = 0;
            var enemy = Spawn();
            enemyManager.AddEnemy(enemy);
        }
    }
 public void SpawnVariant()
 {
     if (containsVariant)
     {
         for (int i = 0; i < variantAmount; i++)
         {
             GameObject variantObj = Instantiate(varientPrefab, transform.position, Quaternion.identity);
             enemyManager.AddEnemy(variantObj.GetInstanceID(), variantObj.transform);
         }
     }
 }
Ejemplo n.º 11
0
    private void CreateEnemy(int tileID, Vector3 position)
    {
        if (fields[tileID].enemyKinds.Count == 0)
        {
            return;
        }
        var newEnemy = Instantiate(fields[tileID].GetRandomEnemy(), position, Quaternion.identity).GetComponent <EnemyController>();

        newEnemy.Generator = generatorManager;
        enemyManager.AddEnemy(newEnemy);
        newEnemy.GetComponentInChildren <Canvas>().worldCamera = Camera.main;
    }
Ejemplo n.º 12
0
    private void Awake()
    {
        anim     = GetComponent <Animator>();
        location = GetComponentInParent <Location>();
        EnemyManager manager = FindObjectOfType <EnemyManager>();

        if (manager != null)
        {
            manager.AddEnemy(this);
        }
        speaker = GetComponent <AudioSource>();
    }
Ejemplo n.º 13
0
    private void SpawnEnemy(GameObject spawnenemy)
    {
        _timeBetweenSpawns = Random.Range(2f, 10f);
        _angle             = Random.Range(0f, 360f);
        _toBeSpawned       = _yellowEnemies[Random.Range(0, _yellowEnemies.Length - 1)];
        _pos = new Vector2(Random.Range(_minX, _maxX), Random.Range(_minY, _maxY));
        var pT       = transform;
        var newEnemy = Instantiate(_toBeSpawned, _pos, Quaternion.Euler(new Vector3(0f, 0f, _angle)), pT);

        newEnemy.gameObject.tag = "Enemy";
        _enemyManager.AddEnemy(newEnemy);
    }
	void OnDeath () {
		for (int i = 0; i < spawnPos.Length; i++) {
			GameObject m = (GameObject)Instantiate (minion, transform.position + spawnPos[i], Quaternion.identity);
			Enemy that = m.GetComponent<Enemy>();
			Enemy my = GetComponent<Enemy>();

			that.path = my.path;
			that.pathIndex = my.pathIndex;
            that.Initialize ();

            EnemyManager.AddEnemy (that);
        }
    }
Ejemplo n.º 15
0
    IEnumerator SpawnEnemy()
    {
        curSe = waves[currentWave][currentElement];
        if (curSe.enemy)
        {
            GameObject g = curSe.enemy as GameObject;
            if (curSe.health > 0)
            {
                g.GetComponent <Enemy>().Health = curSe.health;
            }
            enemyManager.AddEnemy(Instantiate(g, spawnPos.transform.position, Quaternion.identity) as GameObject);
        }
        yield return(new WaitForSeconds(curSe.delay));

        NextSpawn();
    }
Ejemplo n.º 16
0
    //更新
    void Update()
    {
        //部屋にプレイヤーが入ってきたら、更新を開始
        if (!m_EnableUpdate)
        {
            return;
        }

        //スポーン地点の上に敵がいる場合は出現しない
        if (m_OnEnemy)
        {
            return;
        }

        //出現数が最大のとき
        if (m_PopCount > m_PopMax)
        {
            return;
        }

        //経過時間を更新
        m_TimeElapsed += Time.deltaTime;

        //経過時間が一定に達した時に敵出現
        if (m_TimeElapsed > m_PopInterval)
        {
            //敵データをランダム取得
            GameObject _newEnemy = enemyManager.GetEnemyObject();

            //取得した敵をインスタンス化し、マネージャーのリストに追加
            enemyManager.AddEnemy(Instantiate(_newEnemy, this.transform.position, new Quaternion()));

            //出現数を加算
            m_PopCount++;

            //経過時間リセット
            m_TimeElapsed = 0.0f;
        }
    }
Ejemplo n.º 17
0
    void CreateEnemies(MusicManager musicManager)
    {
        for (int a = 0; a < 64; a++)
        {
            GameObject enemyInstance = (GameObject)Instantiate(enemyPrefab);

            //Subscribe the enemy to enemyManager
            EnemyBehavior enemyBehavior = enemyInstance.GetComponent <EnemyBehavior>();
            enemyManager.AddEnemy(enemyBehavior);

            // Subscribe the enemy to soundManader to animate them
            SampleTriggered soundTriggeredComponent = enemyInstance.GetComponent <SampleTriggered>();
            soundTriggeredComponent.Init(a);
            musicManager.SubscribeSampleSubscriber(soundTriggeredComponent);

            enemyInstance.transform.position = this.transform.position;
            enemyInstance.transform.parent   = this.transform;

            this.transform.eulerAngles       = new Vector3(0, -5.625f * a, 0);
            enemyInstance.transform.position = new Vector3((float)0f, (float)this.transform.position.y, (float)radius);
            satelites[a] = enemyInstance;
        }
    }
Ejemplo n.º 18
0
    private void SpawnEnemy(bool random)
    {
        GameObject enemy = null;

        if (!random)
        {
            Instantiate(Enemies[enemyType], transform.position, transform.rotation);
        }
        else
        {
            enemyType = (EnemyTypes)Enum.GetValues(enemyType.GetType()).GetValue(UnityEngine.Random.Range(0, 3));

            enemy = Instantiate(Enemies[enemyType], transform.position, transform.rotation);
        }

        if (randomSpawnLocation)
        {
            RandomRelocateSpawner();
        }

        enemyManager.AddEnemy(enemy);
        enemyCounter++;
        timeSinceSpawn = 0.0f;
    }
Ejemplo n.º 19
0
 void Awake()
 {
     agent  = GetComponent <NavMeshAgent>();
     source = GetComponent <AudioSource>();
     enemyManager.AddEnemy(this);
 }
Ejemplo n.º 20
0
    private void Spawn()
    {
        CheckSpawn();

        EnemyManager.AddEnemy(this);
    }
Ejemplo n.º 21
0
 private void Awake()
 {
     enemyManager.AddEnemy(this);
 }
Ejemplo n.º 22
0
        /// <summary>
        /// Battlesequence
        /// </summary>
        /// <param name="aPlayer">The player which will enter the sequence</param>
        public void BattleSequence(Player.Player aPlayer)
        {
            int
                tempWWD2 = Console.WindowWidth / 2,
                tempWHD2 = Console.WindowHeight / 2;
            bool
                tempHasFled = false;

            EnemyManager.Reset();
            if (!myIsBossRoom)
            {
                EnemyManager.SetEnemies(myEnemies);
            }
            else
            {
                EnemyManager.AddEnemy(myBoss);
            }
            while (!EnemyManager.AreEnemiesDefeated() && !tempHasFled)
            {
                float
                    tempDamageToDeal = 0;
                int
                    tempAoECount    = 0,
                    tempSpellChoice = 0;
                bool
                    tempShouldBeStunned = false;
                switch (aPlayer.ChooseBattleAction())
                {
                case Player.BattleActions.OFFENSIVE:
                    aPlayer.PrintUI();
                    Console.SetCursorPosition(tempWWD2 - 13, tempWHD2 - 12);
                    Console.Write(Language.GetMethodViolence());
                    Console.SetCursorPosition(tempWWD2 - 13, tempWHD2 - 10);
                    Console.Write("[1] " + Language.GetAttack());
                    Console.SetCursorPosition(tempWWD2 - 13, tempWHD2 - 9);
                    Console.Write("[2] " + Language.GetSpells());
                    switch (Utility.GetDigitInput(-12, -7, 2))
                    {
                    case 1:
                        aPlayer.PrintUI();
                        Console.SetCursorPosition(tempWWD2 - 13, tempWHD2 - 12);
                        Console.Write(Language.GetChooseAttack());
                        Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 10);
                        Console.Write("[1] " + Language.GetSlash());
                        Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 9);
                        Console.Write("[2] " + Language.GetSweep());
                        Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 8);
                        Console.Write("[3] " + Language.GetSlap());
                        switch (Utility.GetDigitInput(-19, -6, 3, 1))
                        {
                        case 1:
                            tempDamageToDeal = aPlayer.GetDamage();
                            break;

                        case 2:
                            tempDamageToDeal = aPlayer.GetDamage() * 0.55f;
                            tempAoECount     = 2;
                            break;

                        case 3:
                            tempDamageToDeal    = aPlayer.GetDamage() * 0.2f;
                            tempShouldBeStunned = true;
                            break;
                        }
                        break;

                    case 2:
                        aPlayer.PrintUI();
                        Console.SetCursorPosition(tempWWD2 - 13, tempWHD2 - 12);
                        Console.Write(Language.GetChooseSpell());
                        Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 10);
                        Console.Write("[1] " + Language.GetFirebolt());
                        Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 9);
                        Console.Write("[2] " + Language.GetFlamestrike());
                        Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 8);
                        Console.Write("[3] " + Language.GetFireball());
                        switch (Utility.GetDigitInput(-19, -6, 3, 1))
                        {
                        case 1:
                            if (aPlayer.GetMana() - 20 >= 0)
                            {
                                tempDamageToDeal = aPlayer.GetSpellDamage();
                                tempSpellChoice  = 1;
                                aPlayer.SetMana(20);
                            }
                            else
                            {
                                Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 4);
                                Console.Write(Language.GetInsufficientMana());
                                Thread.Sleep(1500);
                            }
                            break;

                        case 2:
                            if (aPlayer.GetMana() - 60 >= 0)
                            {
                                tempDamageToDeal = aPlayer.GetSpellDamage() * 0.55f;
                                tempAoECount     = 2;
                                tempSpellChoice  = 2;
                                aPlayer.SetMana(60);
                            }
                            else
                            {
                                Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 4);
                                Console.Write(Language.GetInsufficientMana());
                                Thread.Sleep(1500);
                            }
                            break;

                        case 3:
                            if (aPlayer.GetMana() - 120 >= 0)
                            {
                                tempDamageToDeal    = aPlayer.GetSpellDamage() * 5;
                                tempShouldBeStunned = true;
                                tempSpellChoice     = 3;
                                tempAoECount        = myEnemies.Count;
                                aPlayer.SetMana(120);
                            }
                            else
                            {
                                Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 4);
                                Console.Write(Language.GetInsufficientMana());
                                Thread.Sleep(1500);
                            }
                            break;
                        }
                        break;
                    }

                    if (tempAoECount == 0 && tempDamageToDeal > 0)
                    {
                        aPlayer.PrintUI();
                        Console.SetCursorPosition(tempWWD2 - 13, tempWHD2 - 12);
                        Console.WriteLine(Language.GetChooseEnemy());
                        if (!myIsBossRoom)
                        {
                            for (int i = 0; i < myEnemies.Count; i++)
                            {
                                string tempTypeString = string.Empty;
                                if (myEnemies[i].GetEnemyType() == EnemyType.ARCHER)
                                {
                                    tempTypeString = Language.GetArcher();
                                }
                                else if (myEnemies[i].GetEnemyType() == EnemyType.SKELETON)
                                {
                                    tempTypeString = Language.GetSkeleton();
                                }
                                Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 10 + i);
                                Console.Write("[" + (i + 1).ToString() + "] '" + tempTypeString + "'; " + Language.GetHealth() + " - " + Math.Round(myEnemies[i].GetHealth(), 2).ToString() + "; " + Language.GetArmour() + " - " + myEnemies[i].GetArmourRating().ToString());
                            }
                        }
                        else
                        {
                            Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 10);
                            Console.Write("[1] '" + myBoss.GetName() + "'; " + Language.GetHealth() + " - " + Math.Round(myBoss.GetHealth(), 2).ToString() + "; " + Language.GetArmour() + " - " + myBoss.GetArmourRating().ToString());
                        }
                        if (Utility.GetDigitInput(-2, -9 + myEnemies.Count, (myIsBossRoom ? 1 : myEnemies.Count), out int tempInputValue) <= myEnemies.Count && !myIsBossRoom)
                        {
                            aPlayer.PrintUI();
                            aPlayer.DealDamage(myEnemies[tempInputValue - 1], tempDamageToDeal, tempShouldBeStunned, tempSpellChoice);
                        }
                        else
                        {
                            aPlayer.PrintUI();
                            aPlayer.DealDamage(myBoss, tempDamageToDeal, tempShouldBeStunned, tempSpellChoice);
                        }
                    }
                    else
                    {
                        if (!myIsBossRoom && tempDamageToDeal > 0)
                        {
                            List <int> tempHitEnemiesIndex = new List <int>();
                            for (int i = 0; i < tempAoECount; i++)
                            {
                                int tempRandomIndex = Utility.GetRNG().Next(0, myEnemies.Count);
                                while (tempHitEnemiesIndex.Contains(tempRandomIndex))
                                {
                                    tempHitEnemiesIndex.Remove(tempRandomIndex);
                                    tempRandomIndex = Utility.GetRNG().Next(0, myEnemies.Count);
                                }
                                tempHitEnemiesIndex.Add(tempRandomIndex);
                                aPlayer.PrintUI();
                                aPlayer.DealDamage(myEnemies[tempRandomIndex], tempDamageToDeal, tempShouldBeStunned, tempSpellChoice);
                            }
                        }
                        else if (tempDamageToDeal > 0)
                        {
                            aPlayer.PrintUI();
                            aPlayer.DealDamage(myBoss, tempDamageToDeal, tempShouldBeStunned, tempSpellChoice);
                        }
                    }
                    if (tempSpellChoice == 3)
                    {
                        aPlayer.PrintUI();
                        aPlayer.TakeDamage(aPlayer.GetMaxHealth() * 0.6f, out float tempDamageTaken);
                        Console.SetCursorPosition(tempWWD2 - 18, tempWHD2 - 12);
                        Console.Write(Language.GetBurnSkin());
                        Console.SetCursorPosition(tempWWD2 - 10, tempWHD2 - 10);
                        Console.Write(Language.GetTakeDamagePt1());
                        Utility.PrintInColour(tempDamageTaken.ToString(), ConsoleColor.DarkRed);
                        Console.Write(Language.GetTakeDamagePt2());
                        Thread.Sleep(2000);
                    }
                    break;

                case Player.BattleActions.DEFENSIVE:
                    aPlayer.PrintUI();
                    Console.SetCursorPosition(tempWWD2 - 13, tempWHD2 - 12);
                    Console.Write(Language.GetChooseDefence());
                    Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 10);
                    Console.Write("[1] " + Language.GetRaiseShield());
                    Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 9);
                    Console.Write("[2] " + Language.GetHealingTouch());
                    Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 8);
                    Console.Write("[3] " + Language.GetSuperStun());
                    switch (Utility.GetDigitInput(-19, -6, 3, 1))
                    {
                    case 1:
                        aPlayer.PrintUI();
                        Console.SetCursorPosition(tempWWD2 - Language.GetRaiseDefencePt1().Length / 2, tempWHD2 - 11);
                        Console.Write(Language.GetRaiseDefencePt1());
                        Console.SetCursorPosition(tempWWD2 - Language.GetRaiseDefencePt2().Length / 2, tempWHD2 - 10);
                        Console.Write(Language.GetRaiseDefencePt2());
                        aPlayer.SetIsDefending(true);
                        break;

                    case 2:
                        aPlayer.PrintUI();
                        if (aPlayer.GetMana() - 30 < aPlayer.GetMana())
                        {
                            Console.SetCursorPosition(tempWWD2 - Language.GetBeginTouch().Length / 2, tempWHD2 - 11);
                            Console.Write(Language.GetBeginTouch());
                            Thread.Sleep(2000);
                            Console.SetCursorPosition(tempWWD2 - Language.GetMagicallyHeal().Length / 2, tempWHD2 - 9);
                            Console.Write(Language.GetMagicallyHeal());
                            float tempHealingAmount = 25 * (1 + aPlayer.GetWisdom() / 100f);
                            aPlayer.SetHealth(tempHealingAmount);
                            Console.SetCursorPosition(tempWWD2 - Language.GetRegain().Length / 2, tempWHD2 - 7);
                            Console.Write(Language.GetRegain());
                            Utility.PrintInColour(tempHealingAmount.ToString(), ConsoleColor.Green);
                            Console.Write(" " + Language.GetHealthLowerCase() + "!");
                            aPlayer.SetMana(20);
                        }
                        else
                        {
                            Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 4);
                            Console.Write(Language.GetInsufficientMana());
                        }
                        break;

                    case 3:
                        aPlayer.PrintUI();
                        if (aPlayer.GetMana() - 80 < aPlayer.GetMana())
                        {
                            Console.SetCursorPosition(tempWWD2 - Language.GetThrowPebblesPt1().Length / 2, tempWHD2 - 11);
                            Console.Write(Language.GetThrowPebblesPt1());
                            Console.SetCursorPosition(tempWWD2 - Language.GetThrowPebblesPt2().Length / 2, tempWHD2 - 10);
                            Console.Write(Language.GetThrowPebblesPt2());
                            if (myIsBossRoom)
                            {
                                myBoss.SetStunDuration(2);
                            }
                            else
                            {
                                foreach (Enemy tempEnemy in myEnemies)
                                {
                                    tempEnemy.SetStunDuration(2);
                                }
                            }
                            aPlayer.SetMana(80);
                        }
                        else
                        {
                            Console.SetCursorPosition(tempWWD2 - 20, tempWHD2 - 4);
                            Console.Write(Language.GetInsufficientMana());
                        }
                        break;
                    }
                    Thread.Sleep(2000);
                    break;

                case Player.BattleActions.USEITEM:
                    aPlayer.OpenInventory();
                    break;

                case Player.BattleActions.FLEE:
                    if (myIsBossRoom)
                    {
                        aPlayer.PrintUI();
                        Console.SetCursorPosition(tempWWD2 - Language.GetBossFlee().Length / 2, tempWHD2 - 11);
                        Console.Write(Language.GetBossFlee());
                        Thread.Sleep(1500);
                    }
                    else
                    {
                        tempHasFled = true;
                    }
                    break;

                case Player.BattleActions.ABSTAIN:
                    aPlayer.PrintUI();
                    Console.SetCursorPosition(tempWWD2 - Language.GetNoAttackPt1().Length / 2, tempWHD2 - 11);
                    Console.Write(Language.GetNoAttackPt1());
                    Console.SetCursorPosition(tempWWD2 - Language.GetNoAttackPt2().Length / 2, tempWHD2 - 10);
                    Console.Write(Language.GetNoAttackPt2());
                    Thread.Sleep(2000);
                    break;
                }
                EnemyManager.Update(aPlayer);
                aPlayer.Update();
            }
            if (!tempHasFled)
            {
                aPlayer.PrintUI();
                Console.SetCursorPosition(tempWWD2 - Language.GetAllDefeated().Length / 2, tempWHD2 - 12);
                if (myIsBossRoom)
                {
                    Console.Write(myBoss.GetName() + Language.GetBossDefeated());
                }
                else
                {
                    Console.Write(Language.GetAllDefeated());
                }
                aPlayer.SubtractStamina(10);
                Thread.Sleep(2000);
                aPlayer.PrintUI();
                LootSequence(aPlayer);
            }
            else
            {
                aPlayer.PrintUI();
                Console.SetCursorPosition(tempWWD2 - 18, tempWHD2 - 12);
                Console.Write(Language.GetFlee());
                aPlayer.SubtractStamina(30);
                Thread.Sleep(2000);
            }
        }