// Reloads the level and reinitializes Mario to his default state. public void Reset() { Enemies.Clear(); Blocks.Clear(); Pipes.Clear(); Coins.Clear(); Checkpoints.Clear(); Flagpoles.Clear(); levelData.Clear(); InvisibleBarrier = new InvisibleBarrier(Vector2.Zero); CoinRoomPosition = Vector2.Zero; DynamicObjects.Clear(); StaticObjects.Clear(); PowerUpState = false; Mario.Instance.ResetPlayer(); SoundManager.Instance.gameOverPlayOnce = true; levelData = ParseLevelCSV(fileName); BuildLevel(levelData); }
private void Load(string fileName) { Processors.Clear(); Pipes.Clear(); try { //var serializer = new XmlSerializer(typeof(Pipeline)); using (var stream = new FileStream(fileName, FileMode.Open)) { Model = _serializer.ReadObject(stream) as Pipeline ?? new Pipeline(); foreach (var target in Model.Targets) { AddNode(target); } BuildPipeViewModels(Model); } } catch (Exception e) { ExceptionMessageBox.ShowException(e, String.Format("Could not load pipeline. {0}.", e.Message)); } Name = fileName; }
public void LoadWorld(string levelName, Game1 game, bool clearMario = true) { var state = (game.Mario == null) ? null : game.Mario.State; game.LevelName = levelName; game.Map = null; game.Mario = null; Items.Clear(); Enemies.Clear(); Fireballs.Clear(); Pipes.Clear(); Background.Clear(); Texts.Clear(); MovingTexts.Clear(); Achievements.Clear(); Game1.Camera.Position = Vector2.Zero; LevelName = levelName; string level = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + "\\Content\\Levels\\" + levelName + ".csv"; new LevelLoader(game, level); if (!clearMario) { if (state.Name == "Big") { game.Mario.ToBig(); } else if (state.Name == "Fire") { game.Mario.ToFire(); } } }
private void OnNew() { var defaultPipeline = MessageBox.Show("Do you want create an new pipeline?", "Default Pipeline", MessageBoxButton.YesNo, MessageBoxImage.Question); if (defaultPipeline != MessageBoxResult.Yes) { return; } foreach (var processor in Processors) { processor.Stop(); } Model.Stop(); Processors.Clear(); Pipes.Clear(); Model = new Pipeline(); }
private static void LoadMap(string name) { // == Purge Existing Stage Spatial.Clear(); Pipes.Clear(); // Kill entities generated by loading map foreach (var o in FindEntities <Spawner>()) { RemoveEntity(o); } foreach (var o in FindEntities <Block>()) { RemoveEntity(o); } foreach (var o in FindEntities <Pipe>()) { RemoveEntity(o); } // == Load Phase // Get map data Map = Assets.GetMap(name); // Get Layers var groundLayer = Map.GetLayer("ground"); var spawnLayer = Map.GetLayer("spawn"); var pipeLayer = Map.GetLayer("pipes"); // Scan map data (generate phase) foreach (var(x, y) in Rasterizer.Rectangle(Map.Size)) { var groundTile = groundLayer.GetTile(x, y); if (groundTile != null) { LoadMapProcessGroundTiles(x, y, groundTile); } var pipeTile = pipeLayer.GetTile(x, y); if (pipeTile != null) { LoadMapProcessPipesTiles(x, y, pipeTile); } var spawnTile = spawnLayer.GetTile(x, y); if (spawnTile != null) { var position = new Vector(x, y) * 70 + (35, 15); if (spawnTile.Id == 80) { // Move player to start position Player.Transform.Position = position; } else { // Create spawner var spawner = AddEntity(new Spawner(count: 2, period: 6, () => new Slime())); spawner.Transform.Position = position; } } } // Detect initial pipe configuration Pipes.EvaluatePipeConfiguration(); }