/** 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; }
/** 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); }
/// <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; } }
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(); }
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); }
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; }
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); } } } }
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); }