Example #1
0
 /** Sets the spawn time for the given area. */
 public void SetRespawnTime(MDRArea area, long value)
 {
     if (!SpawnInfo.ContainsKey(area))
     {
         SpawnInfo[area] = new SpawnInformation();
     }
     SpawnInfo[area].RespawnTimer = value;
 }
Example #2
0
 /** Sets the monster instance to be associdated with the given area. */
 public void TrackSpawnedMonster(MDRArea area, MDRMonsterInstance value)
 {
     if (!SpawnInfo.ContainsKey(area))
     {
         SpawnInfo[area] = new SpawnInformation();
     }
     SpawnInfo[area].SpawnedMonsters.Add(value);
 }
Example #3
0
 /// <summary>
 /// Modifies the enemy health based on the player count.
 /// </summary>
 private void ModifyEnemyHealthBasedOnPlayerCount(SpawnInformation spawnInfo)
 {
     if (PlayerManager.PlayerCountInGameSession > 0)
     {
         spawnInfo.preciseHealth = spawnInfo.preciseHealth * playerCountHealthMultiplier[PlayerManager.PlayerCountInGameSession - 1];
         spawnInfo.ActualHealth  = (int)spawnInfo.preciseHealth;
     }
 }
Example #4
0
    void AddSpawn()
    {
        //GameObject i_newSpawn = new GameObject();
        //i_newSpawn.name = "Wave-Spawn [" + (waveEditor.spawnList.Count + 1) + "]";
        //i_newSpawn.transform.SetParent(waveEditor.transform);
        //i_newSpawn.transform.position = waveEditor.GetComponentInChildren<CameraZone>().GetCenterPosition();
        SpawnInformation i_newSpawnInf = new SpawnInformation();

        i_newSpawnInf.transform  = null;
        i_newSpawnInf.customName = "SpawnName";
        i_newSpawnInf.color      = Color.white;
        waveEditor.spawnList.Add(i_newSpawnInf);
        this.serializedObject.Update();
    }
Example #5
0
    public List <GameObject> spawnEnemyGroup(SpawnInformation spawnInformation)
    {
        List <GameObject> spawnedEnemies = new List <GameObject>();

        if (spawnInformation != null && spawnInformation.enemyType != null && spawnInformation.enemyNumber > 0)
        {
            for (int i = 0; i < spawnInformation.enemyNumber; i++)
            {
                GameObject singleSpawnedEnemy = SpawnEnemy(spawnInformation.enemyType);
                singleSpawnedEnemy.GetComponent <PatrolAI>().SetPatrolRoute(spawnInformation.patrolRoute);
                singleSpawnedEnemy.GetComponent <PatrolAI>().SetPatrolEnding(spawnInformation.patrolEndingPolicy);
                singleSpawnedEnemy.GetComponent <PatrolAI>().SetTargetResolvePolicy(spawnInformation.targetResolvePolicy);
                spawnedEnemies.Add(singleSpawnedEnemy);
            }
        }
        return(spawnedEnemies);
    }
Example #6
0
	public List<GameObject> spawnEnemyGroup(SpawnInformation spawnInformation)
	{
		List<GameObject> spawnedEnemies = new List<GameObject>();
		
		if(spawnInformation != null && spawnInformation.enemyType != null && spawnInformation.enemyNumber > 0)
		{
			for(int i = 0; i < spawnInformation.enemyNumber; i++)
			{
				GameObject singleSpawnedEnemy = SpawnEnemy(spawnInformation.enemyType);
				singleSpawnedEnemy.GetComponent<PatrolAI>().SetPatrolRoute(spawnInformation.patrolRoute);
				singleSpawnedEnemy.GetComponent<PatrolAI>().SetPatrolEnding(spawnInformation.patrolEndingPolicy);
				singleSpawnedEnemy.GetComponent<PatrolAI>().SetTargetResolvePolicy(spawnInformation.targetResolvePolicy);
				spawnedEnemies.Add(singleSpawnedEnemy);
			}
		}
		return spawnedEnemies;
	}
Example #7
0
    void Update()
    {
        if (!isAlive)
        {
            return;
        }
        if (waveActive)
        {
            int c = toSpawn.Count;
            if (c > 0)
            {
                SpawnInformation si = toSpawn [0];
                if (TimeManager.timer - lastWaveTime > si.time)
                {
                    SpawnEnemyManager.ins.SpawnEnemy(si.type, si.diff);
                    toSpawn.Remove(si);

                    GameUI.ins.UpdateEnemiesLeftToSpawn(c - 1);
                }
            }
            else
            {
                //if there any enemies left on the battleground
                if (SpawnEnemyManager.ins.isAnyEnemyAlive())
                {
                    waveActive            = false;
                    lastWaveTimeCompleted = TimeManager.timer;
                }
            }
        }
        else
        {
            if (TimeManager.timer - lastWaveTimeCompleted > TIME_IN_BETWEEN_WAVE)
            {
                currentWave++;
                GenerateSpawnList(currentWave);
                if (currentWave % 5 == 0)
                {
                    int lootIndex = (int)(currentWave / 5);
                    LootsManager.ins.UnLookRoot(lootIndex + 3);
                }
            }
        }
    }
Example #8
0
    void GenerateSpawnList(int waveLevel)
    {
        lastWaveTime = TimeManager.timer;
        toSpawn.Clear();
        float delay      = 2f;
        int   amnToSpawn = 10 + (int)(waveLevel / ADDTIONAL_ENEMY_LEVELDELTA);

        for (int i = 0; i < amnToSpawn; i++)
        {
            SpawnInformation s = new SpawnInformation();
            s.time = delay += DELAY_IN_BETWEEN_SPAWN + (waveLevel % 5) * -0.1f;
            s.type = EnemyType.Tiny;
            s.diff = currentDifficulty;
            if (Random.value <= 0.05)
            {
                s.diff += 1;
            }
            toSpawn.Add(s);
        }
        waveActive = true;
        GameUI.ins.UpdateEnemiesLeftToSpawn(amnToSpawn);
        GameUI.ins.UpdateCurrentWaveText(waveLevel);
        RewardOnDefeat(currentDifficulty);
    }