コード例 #1
0
ファイル: GameProgress.cs プロジェクト: fordream/Locks
        public static Models.GameProgress Deserialize(string serializedGameProgress)
        {
            Csv csv = new Csv (serializedGameProgress);
            int[] savedGameData = csv.ToIntArray ();
            int dataIndex = 0;

            Models.GameProgress gameProgress = new Models.GameProgress (savedGameData [dataIndex++]);

            while (dataIndex < savedGameData.Length) {
                int worldNumber = savedGameData [dataIndex++];
                int levelNumber = savedGameData [dataIndex++];
                int moves = savedGameData [dataIndex++];
                int stars = savedGameData [dataIndex++];
                Models.SolvedLevel solvedLevel = new Models.SolvedLevel (worldNumber, levelNumber, moves, stars);
                gameProgress.AddSolvedLevel (solvedLevel);
            }

            return gameProgress;
        }
コード例 #2
0
ファイル: Level.cs プロジェクト: fordream/Locks
        private void HandleLockDialRotateComplete(Views.Lock lockWhoseDialRotated)
        {
            UpdateLockCountLabel ();
            lockWhoseDialRotated.OnDialRotateComplete = null;

            if (Model.LockGrid.IsSolved ()) {

                // Save the game progress
                Models.SolvedLevel solvedLevel = LocksGame.GameProgress.GetSolvedLevel (WorldNumber, LevelNumber);
                if (solvedLevel == null || Moves < solvedLevel.Moves) {
                    int stars = Model.LockGrid.GetStars (Moves);
                    solvedLevel = new Models.SolvedLevel (WorldNumber, LevelNumber, Moves, stars);
                    LocksGame.GameProgress.AddSolvedLevel (solvedLevel);
                    Rules.GameProgress.SaveGameProgress (LocksGame.GameProgress);
                }

                // Detect and record Game Center achievements
                if (Model.LevelNumber == Locks.Core.Constants.WorldLevelCount - 1) {
                    Locks.iOS.GameCenter.RecordWorldCompleteAchievement (Model.WorldNumber);
                }
                if (LocksGame.GameProgress.IsWorld3Star (WorldNumber)) {
                    Locks.iOS.GameCenter.RecordWorld3StarsAchievement (Model.WorldNumber);

                }
                if (LocksGame.GameProgress.AllLevels3Stars ()) {
                    Locks.iOS.GameCenter.RecordAllLevels3StarsAchievment ();
                }

                // Update the solved message
                if (Model.IsLastLevel ()) {
                    SolvedLabel.SetText ("All Levels Complete!");
                } else {
                    SolvedLabel.SetText ("Solved in " + Moves.ToString () + " Turns");
                }
                // Start an animation indicating that the level is solved
                StartSolvedLockAnimation ();

            }
        }