示例#1
0
        private void UpdateTitleQualification(int qualifyIndex)
        {
            WordType wordType = LearningInfo.Instance.currentWordType;

            PlayerData playerData = GameManager.Instance.persistDataManager.LoadPlayerData();

            switch (wordType)
            {
            case WordType.Simple:
                Player.mainPlayer.titleQualificationsOfSimple[qualifyIndex] = true;
                playerData.titleQualificationsOfSimple[qualifyIndex]        = true;
                break;

            case WordType.Medium:
                Player.mainPlayer.titleQualificationsOfMedium[qualifyIndex] = true;
                playerData.titleQualificationsOfMedium[qualifyIndex]        = true;
                break;

            case WordType.Master:
                Player.mainPlayer.titleQualificationsOfMedium[qualifyIndex] = true;
                playerData.titleQualificationsOfMedium[qualifyIndex]        = true;
                break;
            }

            DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath);
        }
        /// <summary>
        /// 更新人物技能点并保存
        /// </summary>
        public void AddOneSkillPointToPlayerDataFile()
        {
            PlayerData playerData = DataHandler.LoadDataToSingleModelWithPath <PlayerData>(CommonData.playerDataFilePath);

            playerData.skillNumLeft++;

            DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath, true);
        }
        /// <summary>
        /// 更新人物金钱并保存
        /// </summary>
        public void UpdateBuyGoldToPlayerDataFile()
        {
            PlayerData playerData = DataHandler.LoadDataToSingleModelWithPath <PlayerData>(CommonData.playerDataFilePath);

            playerData.totalGold = Player.mainPlayer.totalGold;

            DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath, true);
        }
        /// <summary>
        /// Saves the learn info.
        /// </summary>
//		public void SaveLearnInfo(){
//
//			string learnInfoPath = string.Format ("{0}/{1}", CommonData.persistDataPath, "LearningInfo.json");
//
//			DataHandler.SaveInstanceDataToFile<LearningInfo> (learnInfo, learnInfoPath);
//		}

        /// <summary>
        /// Saves the player data.
        /// </summary>
        public void SaveCompletePlayerData()
        {
            string playerDataPath = Path.Combine(CommonData.persistDataPath, "PlayerData.json");

            PlayerData playerData = new PlayerData(Player.mainPlayer);

            DataHandler.SaveInstanceDataToFile <PlayerData> (playerData, playerDataPath);
        }
        /// <summary>
        /// 保存玩家角色数据
        /// </summary>
        public void SaveCompletePlayerData()
        {
            string playerDataPath = CommonData.playerDataFilePath;

            PlayerData playerData = new PlayerData(Player.mainPlayer);

            DataHandler.SaveInstanceDataToFile <PlayerData> (playerData, playerDataPath, true);
        }
示例#6
0
        private void SaveGoodsInfoOfTrader()
        {
            string traderDataPath = Path.Combine(CommonData.originDataPath, "NPCs/Trader_TraderMan.json");

            Trader trader = DataHandler.LoadDataToSingleModelWithPath <Trader> (traderDataPath);

            trader.goodsGroupList = allGoodsGroup;

            DataHandler.SaveInstanceDataToFile <Trader> (trader, traderDataPath);
        }
        /// <summary>
        /// 重置本关地图事件记录
        /// </summary>
        public void ResetCurrentMapEventRecord()
        {
            bool hasRecord = DataHandler.FileExist(CommonData.currentMapEventsRecordFilePath);

            if (hasRecord)
            {
                DataHandler.DeleteFile(CommonData.currentMapEventsRecordFilePath);
            }

            CurrentMapEventsRecord currentMapEventsRecord = null;

            DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath);
        }
        /// <summary>
        /// 重置小地图记录
        /// </summary>
        public void ResetMiniMapEventsRecord()
        {
            bool hasRecord = DataHandler.FileExist(CommonData.miniMapRecordFilePath);

            if (hasRecord)
            {
                DataHandler.DeleteFile(CommonData.miniMapRecordFilePath);
            }

            MiniMapRecord currentMinimapRecord = null;

            GameManager.Instance.gameDataCenter.currentMapMiniMapRecord = null;

            DataHandler.SaveInstanceDataToFile <MiniMapRecord>(currentMinimapRecord, CommonData.miniMapRecordFilePath);
        }
示例#9
0
        public static void GeneratePlayerJsonData()
        {
            Player p = TransformManager.FindTransform("Player").GetComponent <Player> ();

//			p.allEquipedEquipments = new Equipment[6];

            p.physicalHurtScaler = 1.0f;
            p.magicalHurtScaler  = 1.0f;
            p.critHurtScaler     = 1.5f;

            PlayerData pd = new PlayerData(p);

            string originalPlayerDataPath = Path.Combine(CommonData.originDataPath, "OriginalPlayerData.json");

            DataHandler.SaveInstanceDataToFile <PlayerData> (pd, originalPlayerDataPath);
        }
示例#10
0
        //		[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
        //		static public void CallbackInitialization()
        //		{
        //			//register the callback to be called everytime the scene is loaded
        //			SceneManager.sceneLoaded += OnSceneLoaded;
        //		}
        //
        //		static private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1)
        //		{
        //			switch (arg0.name) {
        //			case "GameScene":
        //				TransformManager.FindTransform ("GameLoader").GetComponent<GameLoader> ().SetUpHomeView ();
        //				break;
        //			case "ExploreScene":
        //				int currentExploreLevel = GameManager.Instance.unlockedMaxChapterIndex;
        //
        //				ResourceLoader exploreSceneLoader = ResourceLoader.CreateNewResourceLoader ();
        //
        //				ResourceManager.Instance.LoadAssetsWithBundlePath (exploreSceneLoader, "explore/scene", () => {
        //
        //					ExploreManager.Instance.GetComponent<ExploreManager> ().SetupExploreView (currentExploreLevel);
        //
        //				}, true);
        //				break;
        //
        //			}
        //
        //		}



#warning 打包ios时需要在xcode中更改以下内容
        /// <summary>
        /// 保存所有数据
        /// 该方法用于和ios交互
        /// xcode中UnityAppController.mm  修改如下

        /*
         * - (void)applicationDidEnterBackground:(UIApplication*)application
         * {
         * UnitySendMessage("GameManager","SaveAllData",""); // 退回主界面时都进行保存操作
         * ::printf("-> applicationDidEnterBackground()\n");
         * }
         */
        /// </summary>
        public void SaveAllData()
        {
            Debug.Log("save data ");
            if (Camera.main.GetComponent <GameLoader>().dataReady)
            {
                persistDataManager.SaveDataInExplore(null, true);
            }
            // 如果退出的时候游戏数据还没有ready,用备用数据存储一次,防止数据丢失
            else if (persistDataManager.dataBackUp != null)
            {
                if (persistDataManager.dataBackUp.playerData != null)
                {
                    DataHandler.SaveInstanceDataToFile <PlayerData>(persistDataManager.dataBackUp.playerData, CommonData.playerDataFilePath);
                }
                if (persistDataManager.dataBackUp.buyRecord != null)
                {
                    DataHandler.SaveInstanceDataToFile <BuyRecord>(persistDataManager.dataBackUp.buyRecord, CommonData.buyRecordFilePath);
                }
                if (persistDataManager.dataBackUp.chatRecords != null)
                {
                    DataHandler.SaveInstanceListToFile <HLHNPCChatRecord>(persistDataManager.dataBackUp.chatRecords, CommonData.chatRecordsFilePath);
                }
                if (persistDataManager.dataBackUp.currentMapEventsRecord != null)
                {
                    DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(persistDataManager.dataBackUp.currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath);
                }
                if (persistDataManager.dataBackUp.gameSettings != null)
                {
                    DataHandler.SaveInstanceDataToFile <GameSettings>(persistDataManager.dataBackUp.gameSettings, CommonData.gameSettingsDataFilePath);
                }
                if (persistDataManager.dataBackUp.mapEventsRecords != null)
                {
                    DataHandler.SaveInstanceListToFile <MapEventsRecord>(persistDataManager.dataBackUp.mapEventsRecords, CommonData.mapEventsRecordFilePath);
                }
                if (persistDataManager.dataBackUp.miniMapRecord != null)
                {
                    DataHandler.SaveInstanceDataToFile <MiniMapRecord>(persistDataManager.dataBackUp.miniMapRecord, CommonData.miniMapRecordFilePath);
                }
                if (persistDataManager.dataBackUp.playRecords != null)
                {
                    DataHandler.SaveInstanceListToFile <PlayRecord>(persistDataManager.dataBackUp.playRecords, CommonData.playRecordsFilePath);
                }

                persistDataManager.dataBackUp = null;
            }
        }
示例#11
0
        /// <summary>
        /// 没有旧版本时的安装逻辑
        /// </summary>
        private void OnNewInstall()
        {
            GameSettings gameSettings = GameManager.Instance.gameDataCenter.gameSettings;

            string dateString = DateTime.Now.ToShortDateString();

            gameSettings.installDateString = dateString;

            GameManager.Instance.persistDataManager.SaveGameSettings();

            Player.mainPlayer.currentExploreStartDateString = dateString;

            PlayerData playerData = DataHandler.LoadDataToSingleModelWithPath <PlayerData>(CommonData.playerDataFilePath);

            playerData.currentExploreStartDateString = dateString;

            ApplicationInfo.Instance.currentVersion = GameManager.Instance.currentVersion;

            DataHandler.SaveInstanceDataToFile <ApplicationInfo>(ApplicationInfo.Instance, CommonData.applicationInfoFilePath);

            DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.playerDataFilePath, true);
        }
示例#12
0
        private void ResetPlayerDataAndSave()
        {
            Player.mainPlayer.InitializeMapIndex();

            PlayerData playerData = new PlayerData(Player.mainPlayer);

            playerData.agentLevel = 1;


            playerData.maxHealth         = maxHealth;
            playerData.originalMaxHealth = maxHealth;
            playerData.health            = maxHealth;

            playerData.originalMaxMana = maxMana;
            playerData.maxMana         = maxMana;
            playerData.mana            = maxMana;

            playerData.originalAttack = attack;
            playerData.attack         = attack;

            playerData.originalMagicAttack = magicAttack;
            playerData.magicAttack         = magicAttack;

            playerData.originalArmor = armor;
            playerData.armor         = armor;

            playerData.originalMagicResist = magicResist;
            playerData.magicResist         = magicResist;

            playerData.originalDodge = dodge;
            playerData.dodge         = dodge;

            playerData.originalCrit = crit;
            playerData.crit         = crit;


            playerData.originalAttackSpeed = AttackSpeed.Slow;

            playerData.originalMoveSpeed = 20;


            playerData.originalArmorDecrease       = 0;
            playerData.originalMagicResistDecrease = 0;



            playerData.originalCritHurtScaler     = 1.5f;
            playerData.originalPhysicalHurtScaler = 1f;
            playerData.originalMagicalHurtScaler  = 1f;

            playerData.originalExtraGold       = 0;
            playerData.originalExtraExperience = 0;

            playerData.originalHealthRecovery = 0;
            playerData.originalMagicRecovery  = 0;


            playerData.attackSpeed = AttackSpeed.Slow;
            playerData.moveSpeed   = 20;


            playerData.armorDecrease       = 0;
            playerData.magicResistDecrease = 0;


            playerData.critHurtScaler     = 1.5f;
            playerData.physicalHurtScaler = 1f;
            playerData.magicalHurtScaler  = 1f;

            playerData.extraGold       = 0;
            playerData.extraExperience = 0;

            playerData.healthRecovery = 0;
            playerData.magicRecovery  = 0;


            playerData.allEquipmentsInBag        = new List <Equipment>();
            playerData.allConsumablesInBag       = new List <Consumables>();
            playerData.allSkillScrollsInBag      = new List <SkillScroll>();
            playerData.allSpecialItemsInBag      = new List <SpecialItem>();
            playerData.allLearnedSkillsRecord    = new List <SkillModel>();
            playerData.allPropertyGemstonesInBag = new List <PropertyGemstone>();

            playerData.maxUnlockLevelIndex = 0;
            playerData.currentLevelIndex   = 0;


            playerData.totalGold  = 0;
            playerData.experience = 0;

            playerData.isNewPlayer          = false;
            playerData.needChooseDifficulty = true;

            playerData.skillNumLeft = 0;

            playerData.luckInOpenTreasure    = 0;
            playerData.luckInMonsterTreasure = 0;

            DataHandler.SaveInstanceDataToFile <PlayerData>(playerData, CommonData.oriPlayerDataFilePath);
        }
        /// <summary>
        /// 保存游戏设置
        /// </summary>
        public void SaveGameSettings()
        {
            string gameSettingsPath = string.Format("{0}/{1}", CommonData.persistDataPath, "GameSettings.json");

            DataHandler.SaveInstanceDataToFile <GameSettings> (GameManager.Instance.gameDataCenter.gameSettings, gameSettingsPath);
        }
示例#14
0
        /// <summary>
        /// 版本更新时数据处理
        /// </summary>
        /// <param name="checkData">Check data.</param>
        /// <param name="sql">Sql.</param>
        private void OnVersionUpdate(CheckDataModel checkData, MySQLiteHelper sql)
        {
            //更新原始数据
            if (checkData.chatRecords != null && checkData.chatRecords.Count > 0)
            {
                DataHandler.SaveInstanceListToFile <HLHNPCChatRecord>(checkData.chatRecords, CommonData.chatRecordsFilePath);
            }
            if (checkData.mapEventsRecords != null && checkData.mapEventsRecords.Count > 0)
            {
                DataHandler.SaveInstanceListToFile <MapEventsRecord>(checkData.mapEventsRecords, CommonData.mapEventsRecordFilePath);
            }
            if (checkData.gameSettings != null)
            {
                DataHandler.SaveInstanceDataToFile <GameSettings>(checkData.gameSettings, CommonData.gameSettingsDataFilePath);
            }
            if (checkData.miniMapRecord != null)
            {
                DataHandler.SaveInstanceDataToFile <MiniMapRecord>(checkData.miniMapRecord, CommonData.miniMapRecordFilePath);
            }
            if (checkData.currentMapEventsRecord != null)
            {
                DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(checkData.currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath);
            }
            if (checkData.playRecords != null)
            {
                DataHandler.SaveInstanceListToFile <PlayRecord>(checkData.playRecords, CommonData.playRecordsFilePath);
            }
            if (checkData.buyRecord != null)
            {
                DataHandler.SaveInstanceDataToFile <BuyRecord>(checkData.buyRecord, CommonData.buyRecordFilePath, true);
            }

            sql.GetConnectionWith(CommonData.dataBaseName);
            sql.BeginTransaction();

            if (checkData.learnedWordsInSimple.Count > 0)
            {
                Debug.Log(checkData.learnedWordsInSimple.Count);
                UpdateWordsDataBase(sql, 0, checkData.learnedWordsInSimple);
            }

            if (checkData.learnedWordsInMedium.Count > 0)
            {
                UpdateWordsDataBase(sql, 1, checkData.learnedWordsInMedium);
            }

            if (checkData.learnedWordsInMaster.Count > 0)
            {
                UpdateWordsDataBase(sql, 2, checkData.learnedWordsInMaster);
            }


            sql.EndTransaction();

            sql.CloseConnection(CommonData.dataBaseName);

            WordType wordType = WordType.Simple;

            if (checkData.gameSettings != null)
            {
                wordType = checkData.gameSettings.wordType;
            }

            // 更新版本信息
            ApplicationInfo.Instance.currentVersion = GameManager.Instance.currentVersion;

            DataHandler.SaveInstanceDataToFile <ApplicationInfo>(ApplicationInfo.Instance, CommonData.applicationInfoFilePath);

            if (checkData.playerData == null)
            {
                GameManager.Instance.persistDataManager.SaveCompletePlayerData();
                return;
            }

            if (checkData.playerData.currentExploreStartDateString == null ||
                checkData.playerData.currentExploreStartDateString == string.Empty)
            {
                string dateString = DateTime.Now.ToShortDateString();

                Player.mainPlayer.currentExploreStartDateString = dateString;

                checkData.playerData.currentExploreStartDateString = dateString;
            }

            // 更新单词数据
            if (checkData.playerData.maxWordContinuousRightRecord > 0)
            {
                switch (wordType)
                {
                case WordType.Simple:
                    Player.mainPlayer.maxSimpleWordContinuousRightRecord    = checkData.playerData.maxWordContinuousRightRecord;
                    checkData.playerData.maxSimpleWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord;
                    break;

                case WordType.Medium:
                    Player.mainPlayer.maxMediumWordContinuousRightRecord    = checkData.playerData.maxWordContinuousRightRecord;
                    checkData.playerData.maxMediumWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord;
                    break;

                case WordType.Master:
                    Player.mainPlayer.maxMasterWordContinuousRightRecord    = checkData.playerData.maxWordContinuousRightRecord;
                    checkData.playerData.maxMasterWordContinuousRightRecord = checkData.playerData.maxWordContinuousRightRecord;
                    break;
                }
                checkData.playerData.maxWordContinuousRightRecord = 0;
            }


            if (checkData.playerData.wordContinuousRightRecord > 0)
            {
                switch (wordType)
                {
                case WordType.Simple:
                    Player.mainPlayer.simpleWordContinuousRightRecord    = checkData.playerData.wordContinuousRightRecord;
                    checkData.playerData.simpleWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord;
                    break;

                case WordType.Medium:
                    Player.mainPlayer.mediumWordContinuousRightRecord    = checkData.playerData.wordContinuousRightRecord;
                    checkData.playerData.mediumWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord;
                    break;

                case WordType.Master:
                    Player.mainPlayer.masterWordContinuousRightRecord    = checkData.playerData.wordContinuousRightRecord;
                    checkData.playerData.masterWordContinuousRightRecord = checkData.playerData.wordContinuousRightRecord;
                    break;
                }
                checkData.playerData.wordContinuousRightRecord = 0;
            }

            if (checkData.playerData.titleQualifications != null)
            {
                bool hasOldVersionTitle = false;

                for (int i = 0; i < checkData.playerData.titleQualifications.Length; i++)
                {
                    if (checkData.playerData.titleQualifications[i])
                    {
                        hasOldVersionTitle = true;
                        break;
                    }
                }

                if (checkData.playerData.titleQualificationsOfSimple == null || checkData.playerData.titleQualificationsOfSimple.Length == 0)
                {
                    checkData.playerData.titleQualificationsOfSimple = new bool[] { false, false, false, false, false, false };
                }

                if (checkData.playerData.titleQualificationsOfMedium == null || checkData.playerData.titleQualificationsOfMedium.Length == 0)
                {
                    checkData.playerData.titleQualificationsOfMedium = new bool[] { false, false, false, false, false, false };
                }

                if (checkData.playerData.titleQualificationsOfMaster == null || checkData.playerData.titleQualificationsOfMaster.Length == 0)
                {
                    checkData.playerData.titleQualificationsOfMaster = new bool[] { false, false, false, false, false, false };
                }

                Player.mainPlayer.titleQualificationsOfSimple = checkData.playerData.titleQualificationsOfSimple;
                Player.mainPlayer.titleQualificationsOfMedium = checkData.playerData.titleQualificationsOfMedium;
                Player.mainPlayer.titleQualificationsOfMaster = checkData.playerData.titleQualificationsOfMaster;

                if (hasOldVersionTitle)
                {
                    switch (wordType)
                    {
                    case WordType.Simple:
                        Player.mainPlayer.titleQualificationsOfSimple    = checkData.playerData.titleQualifications;
                        checkData.playerData.titleQualificationsOfSimple = checkData.playerData.titleQualifications;
                        break;

                    case WordType.Medium:
                        Player.mainPlayer.titleQualificationsOfMedium    = checkData.playerData.titleQualifications;
                        checkData.playerData.titleQualificationsOfMedium = checkData.playerData.titleQualifications;
                        break;

                    case WordType.Master:
                        Player.mainPlayer.titleQualificationsOfMaster    = checkData.playerData.titleQualifications;
                        checkData.playerData.titleQualificationsOfMaster = checkData.playerData.titleQualifications;
                        break;
                    }
                    checkData.playerData.titleQualifications = new bool[] { false, false, false, false, false, false };
                }
            }

            DataHandler.SaveInstanceDataToFile <PlayerData>(checkData.playerData, CommonData.playerDataFilePath, true);
        }
 /// <summary>
 /// 保存应用信息【主要是当前版本号】
 /// </summary>
 public void SaveApplicationInfo()
 {
     DataHandler.SaveInstanceDataToFile <ApplicationInfo>(ApplicationInfo.Instance, CommonData.applicationInfoFilePath);
 }
 /// <summary>
 /// 保存游戏购买记录
 /// </summary>
 public void SaveBuyRecord()
 {
     DataHandler.SaveInstanceDataToFile <BuyRecord> (BuyRecord.Instance, CommonData.buyRecordFilePath, true);
 }
 /// <summary>
 /// 保存当前关卡地图事件记录
 /// </summary>
 public void SaveCurrentMapEventsRecords()
 {
     DataHandler.SaveInstanceDataToFile <CurrentMapEventsRecord>(GameManager.Instance.gameDataCenter.currentMapEventsRecord, CommonData.currentMapEventsRecordFilePath);
 }
        /// <summary>
        /// 重置当前小地图记录并保存
        /// </summary>
        public void ResetCurrentMapMiniMapRecordAndSave()
        {
            GameManager.Instance.gameDataCenter.currentMapMiniMapRecord = null;

            DataHandler.SaveInstanceDataToFile <MiniMapRecord>(null, CommonData.miniMapRecordFilePath);
        }
 /// <summary>
 /// 保存当前小地图记录
 /// </summary>
 public void SaveCurrentMapMiniMapRecord()
 {
     DataHandler.SaveInstanceDataToFile <MiniMapRecord>(GameManager.Instance.gameDataCenter.currentMapMiniMapRecord, CommonData.miniMapRecordFilePath);
 }