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); } }