MyGame.MonstersManager.Update C# (CSharp) Method

Update() public method

Allows the component to run logic.
public Update ( GameTime gameTime ) : void
gameTime Microsoft.Xna.Framework.GameTime The gametime.
return void
        public override void Update(GameTime gameTime)
        {
            if (myGame.paused)
                return;

            foreach (Event ev in events)
            {
                switch (ev.EventId)
                {
                    case (int)MyEvent.G_NextLevel_END_OF_MUSIC: reinitializeMonstersTypes(); break;
                }
            }
            events.Clear();

            reaminingTimeToNextSpawn -= gameTime.ElapsedGameTime.Milliseconds;
            if (reaminingTimeToNextSpawn < 0 && monsters.Count < myGame.difficultyConstants.NUM_MONSTERS_IN_FIELD)
            {
                reaminingTimeToNextSpawn = spawnTime;
                addEnemy();
            }
            for (int j = 0; j < monsters.Count; j++)// Monster monster in monsters)
            {
                monsters[j].Update(gameTime);

                if (monsters[j].unit.alive && myGame.player.unit.collideWith(monsters[j].unit))
                {
                    monsters[j].monsterUnit.moving = false;
                    if (monsters[j].ActiveAnimation != MonsterModel.MonsterAnimations.Bite)
                    {
                        monsters[j].Bite();
                        myGame.mediator.fireEvent(MyEvent.M_BITE, "decreasedHealth",
                            monsters[j].monsterUnit.monsterConstants.PLAYER_HEALTH_DECREASE);
                    }
                }
                else if (monsters[j].monsterUnit.dead)
                {
                    deadMonsters.Add(monsters[j]);
                    monsters.RemoveAt(j);
                    hpBillBoardSystem.monstersTextures.RemoveAt(j);
                    monsters[j].Dispose();
                    j--;
                }
            }

            if (monsters.Count != 0)
                hpBillBoardSystem.generateParticles();
            base.Update(gameTime);
        }