public ViewModelWall(WallSquare model) : base(model) { this.model = model; this.model.ChangePointX += (sender, square) => PointX = square; this.model.ChangePointY += (sender, square) => PointY = square; }
public void GenerateLevel(int level) { currLevel = level; var projectPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase))); var fullPath = new Uri(projectPath + @"\Doolhof\doolhof" + level + ".txt").LocalPath; // Bevat het level(speelveld) textFile = File.ReadAllLines(fullPath); int row = 0; int column = 0; char[] squares; Square newSquare = null; foreach (string line in textFile) { squares = line.ToCharArray(); foreach (char square in squares) { switch (square) { case '#': newSquare = new WallSquare(row, column); row++; break; case '.': newSquare = new NormalSquare(row, column); row++; break; case '@': newSquare = new NormalSquare(row, column); newSquare.addMovableObject(Spike); Spike.Square = newSquare; Spike.Square.CalculateShape(); row++; break; case 'x': newSquare = new GoalSquare(row, column); row++; break; case 'o': newSquare = new NormalSquare(row, column); Box box = new Box(); newSquare.addMovableObject(box); box.Square = newSquare; box.Square.CalculateShape(); Boxes.Add(box); // add box to the array row++; break; case '~': newSquare = new PitFallSquare(row, column); row++; break; case '$': newSquare = new NormalSquare(row, column); newSquare.addMovableObject(Collaborator); Collaborator.Square = newSquare; Collaborator.Square.CalculateShape(); row++; CollaboratorActive = true; break; default: // add empty square PlayField.Add("e" + row + ":" + column, null); // indicate an emty square should be written row++; break; } // end switch if (newSquare != null) { PlayField.Add(newSquare.ID, newSquare); } newSquare = null; } // end for-loop -> for each char in string column++; row = 0; PlayField.Add("n" + row + ":" + column, null); // indicate an enter has to be written } // end for-loop -> for each string in string[] gameController.PrintField(PlayField); }