コード例 #1
0
 public Model_GameDataProxy() : base(NAME)
 {
     GameData = new Model_GameData();
     //得到最高分
     GameData.MaxScore = PlayerPrefs.GetInt("MaxScore");
     SendNotification("Msg_DisplayGameInfo", GameData);
 }
コード例 #2
0
    public Model_GameDataProxy() : base(NAME)
    {
        _GameData = new Model_GameData();
        //得到最高分

        _GameData.HighScore = PlayerPrefs.GetInt("GameHighScore");
    }
コード例 #3
0
    public override void HandleNotification(INotification notification)
    {
        Model_GameData gameData = notification.Body as Model_GameData;

        switch (notification.Name)
        {
        case "Msg_DisplayGameInfo":
            View.UpdataGameInfo(gameData);
            break;
        }
    }
コード例 #4
0
    public void SaveGameData(Model_SaveData data, Model_GameData gameDataOverride)
    {
        Debug.Log($"Saving Total Time Played {game.totalPlayTime.FormatTotalPlayTime()}");

        data.gameData = new Model_GameData(
            gameDataOverride?.runIdx ?? game.RunIdx,
            gameDataOverride?.level ?? game.level,
            gameDataOverride?.cycleCount ?? game.CycleCount,
            gameDataOverride?.totalPlayTime ?? game.totalPlayTime,
            gameDataOverride?.activeEnding ?? game.ActiveEnding,
            gameDataOverride?.faceOffCounter ?? game.faceOffCounter
            );
    }
コード例 #5
0
    /// <summary>
    /// 处理接受到的消息列表
    /// </summary>
    /// <param name="notification"></param>
    public override void HandleNotification(PureMVC.Interfaces.INotification notification)
    {
        Model_GameData gameData = null;

        switch (notification.Name)
        {
        case "Msg_DisPlayGameInfo":
            gameData = notification.Body as Model_GameData;
            if (gameData != null && _TxtShowGameTime != null && _TxtShowGameHighestScore != null && _TxtShowGameHighestScore != null)
            {
                _TxtShowGameTime.text         = gameData.GameTime.ToString();
                _TxtShowGameScore.text        = gameData.Score.ToString();
                _TxtShowGameHighestScore.text = gameData.HighScore.ToString();
            }
            break;

        default:
            break;
        }
        base.HandleNotification(notification);
    }
コード例 #6
0
    /// <summary>
    /// 处理接收的消息列表
    /// </summary>
    /// <param name="notification"></param>
    public override void HandleNotification(INotification notification)
    {
        Model_GameData gameData = null;

        switch (notification.Name)
        {
        case "Msg_DisplayGameInfo":
            gameData = notification.Body as Model_GameData;
            if (gameData != null)
            {
                if (_TxtShowGameTime && _TxtShowGameScore && _TxtShowGameHighestScore)
                {
                    _TxtShowGameTime.text         = gameData.GameTime.ToString();
                    _TxtShowGameScore.text        = gameData.Scores.ToString();
                    _TxtShowGameHighestScore.text = gameData.HighestScores.ToString();
                }
            }
            break;

        default:
            break;
        }
    }
コード例 #7
0
 public void UpdataGameInfo(Model_GameData gameData)
 {
     GameTimer.text = gameData.GameTime.ToString();
     MAXScore.text  = gameData.MaxScore.ToString();
     CurScore.text  = gameData.Score.ToString();
 }
コード例 #8
0
    /// <param name="type">SavePoint saves within Kelsingor</param>
    /// <param name="playerStateOverride">Option to override player state</param>
    public void Save(
        Model_PlayerState playerStateOverride = null,
        Model_GameData gameDataOverride       = null
        )
    {
        SetPath();

        try
        {
            /// Update total play time
            game.OnSaveTasks();

            BinaryFormatter bf = new BinaryFormatter();

            /// Main data to pass around and modify
            Model_SaveData saveData = new Model_SaveData();

            SaveGame(saveData);
            OverridePlayerData(saveData, playerStateOverride);
            HandleSaveRun(saveData);
            WriteSaveDataFile(bf, saveFilePath, saveData);

            /// Create SavedGameTitleData
            FileStream titleFile = File.Create(savedGameTitleDataPath);
            Model_SavedGameTitleData savedGameTitleData = savedGameTitleDataHandler.Create();
            bf.Serialize(titleFile, savedGameTitleData);
            titleFile.Close();

            if (Debug.isDebugBuild)
            {
                Debug.Log("Save successful at: " + saveFilePath);
            }
        }
        catch (System.Exception e)
        {
            Debug.LogError("Failed Save with exception: " + e.ToString());
        }

        void SaveGame(Model_SaveData data)
        {
            gameHandler.SaveGameData(data, gameDataOverride);
            playerHandler.SavePlayerData(data);
            entriesHandler.SaveEntries(data);
            inventoryHandler.SaveInventory(data);
            equipmentHandler.SaveEquipment(data);
            dropsHandler.SaveDrops(data);
            namesHandler.SaveNames(data);
            scarletCipherHandler.SaveScarletCipher(data);
            eventCycleHandler.SaveEventCycle(data);
            mynesMirrorHandler.SaveMynesMirror(data);
            pianosHandler.SavePianos(data);
        }

        void WriteSaveDataFile(BinaryFormatter bf, string filePath, Model_SaveData data)
        {
            // will overwrite existing file
            FileStream gameFile = File.Create(filePath);

            bf.Serialize(gameFile, data);
            gameFile.Close();
        }

        void OverridePlayerData(Model_SaveData data, Model_PlayerState playerState)
        {
            data.playerData = playerState ?? data.playerData;
        }

        void HandleSaveRun(Model_SaveData data)
        {
            levelsHandler.SaveLevels(data);
        }
    }