public void Update(float dt) { if (!lastTimeCheckInited) { lastTimeCheckInited = true; lastTimeCheck = environment.ElapsedTime(); } if (recognizedDeadMonster.Count >= environment.DeadMonstersSoFar().Count()) { return; } foreach (Monster monster in environment.DeadMonstersSoFar()) { if (monster.DeadTime() < lastTimeCheck) { continue; } if (recognizedDeadMonster.Contains(monster)) { continue; } recognizedDeadMonster.Add(monster); //DLog.Log("Recognize dead monster " + monster); } }
private void UpdateSpawn(float dt, int waveOrder) { if (IsFinished()) { return; } elapsedTimeSinceLastSpawn += dt; if (!IsSpawnCompleted() && elapsedTimeSinceLastSpawn >= spawnInterval) { elapsedTimeSinceLastSpawn = 0; spawnCountSoFar++; for (int i = 0; i < monsterCount; i++) { float x = Random(); gameObjectSpawner.SpawnEntity( monsterId, monsterLevel, x, spawnY, spawnZ, new DungeonSystemSpawnSourceInfo(), facingDirection, spawnSkillLevelPool, group ).Then(entity => { entityRole = entity.GetComponent <StatsComponent>().BasicStatsFromConfig.ShowRole(); monsterUniqueIds.Add(entity.UniqueId); foreach (Tracker tracker in trackers) { tracker.AddEntity(entity); } foreach (IAction action in actions) { action.AddEntity(entity); } }); } } foreach (Monster m in environment.DeadMonstersSoFar()) { if (!monsterUniqueIds.Contains(m.UniqueId())) { continue; } if (deadMonsters.Contains(m)) { continue; } deadMonsters.Add(m); } }
public void Update(float dt) { foreach (Monster monster in environment.DeadMonstersSoFar()) { if (monster.Type() != monsterType) { continue; } if (monster.DeadTime() <= lastTimeCheck) { continue; } killCountSoFar++; lastTimeCheck = environment.ElapsedTime(); } }