Exemple #1
0
        public void Update()
        {
            _dead.Clear();
            Dijkstra.Clear();
            foreach (Light light in _lights)
            {
                Dijkstra.AddStartPos(light.PosX, light.PosY, 40 - light.IntensityAt(light.PosX, light.PosY) * 2);
            }
            Dijkstra.AddStartPos(Player.Light.PosX, Player.Light.PosY, 20 - Player.Light.IntensityAt(Player.Light.PosX, Player.Light.PosY));

            Dijkstra.ComputeDijkstra();

            foreach (Monster mons in _monsters)
            {
                mons.Act();
                int intens = IntensityAt(mons.PosX, mons.PosY);
                if (intens > 0)
                {
                    mons.TakeDamage(intens);
                }
            }
            foreach (Light light in _lights)
            {
                light.Update();
            }
            Player.Light.Update();
            foreach (Monster mons in _dead)
            {
                _monsters.Remove(mons);
                _game.AddMonster(this);
            }
            foreach (Light light in _deadLights)
            {
                _lights.Remove(light);
            }
        }