public BoardState() { bool fieldSymmetry = PlayerPrefs.GetInt(Settings.symmetricFildKey, 0) == 1; bool offsetSymmetry = PlayerPrefs.GetInt(Settings.symmetricTileOffsetKey, 0) == 1; bool miceSymmetry = PlayerPrefs.GetInt(Settings.symmetricMicePositionKey, 0) == 1; offsetSymmetry = offsetSymmetry && fieldSymmetry; miceSymmetry = miceSymmetry && offsetSymmetry; for (int i = 0; i < blueMice.Length; i++) { blueMice[i] = new BlueMouse(); } for (int i = 0; i < redMice.Length; i++) { redMice[i] = new RedMouse(); } PlaceTiles(fieldSymmetry, offsetSymmetry); PlaceMice(blueMice, 1, 10); if (!miceSymmetry) { PlaceMice(redMice, 11, 20); } else { PlaceMiceSymmetric(blueMice, redMice); } // initial mice movement requires starting from end turn state turnState = Random.Range(0, 2) == 0 ? TurnState.BlueEnd : TurnState.RedEnd; QuickMoveAllMice(); }
public BoardState(BoardState other) { tiles = (TileType[, ])other.tiles.Clone(); turnState = other.turnState; for (int i = 0; i < blueMice.Length; i++) { blueMice[i] = new BlueMouse { X = other.blueMice[i].X, Y = other.blueMice[i].Y, IsActive = other.blueMice[i].IsActive }; } for (int i = 0; i < redMice.Length; i++) { redMice[i] = new RedMouse() { X = other.redMice[i].X, Y = other.redMice[i].Y, IsActive = other.redMice[i].IsActive }; } blueScore = other.blueScore; redScore = other.redScore; lastTurn = other.lastTurn; validTurns = GetValidTurns(); }