public static void GenerateMapEventsRecords() { List <MapEventsRecord> mapEventsRecords = new List <MapEventsRecord>(); for (int i = 0; i <= CommonData.maxLevelIndex; i++) { mapEventsRecords.Add(new MapEventsRecord(i, new List <Vector2>(), false, false)); } DataHandler.SaveInstanceListToFile <MapEventsRecord>(mapEventsRecords, CommonData.originDataPath + "/MapEventsRecord.json"); }
public static void InitSpellItemsFromData() { string propertyGemstoneOriFilePath = "/Users/houlianghong/Desktop/MyGameData/属性宝石原始数据.csv"; string propertyGemstoneDataString = DataHandler.LoadDataString(propertyGemstoneOriFilePath); PropertyGemstoneDataHelper loader = new PropertyGemstoneDataHelper(); loader.LoadAllItemsWithFullDataString(propertyGemstoneDataString); string propertyGemstoneDataPath = CommonData.originDataPath + "/GameItems/PropertyGemstoneDatas.json"; DataHandler.SaveInstanceListToFile <PropertyGemstoneModel>(loader.propertyGemstoneModels, propertyGemstoneDataPath); Debug.Log("属性宝石数据完成"); }
public static void InitSpellItemsFromData() { string skillScrollOriFilePath = "/Users/houlianghong/Desktop/MyGameData/技能卷轴原始数据.csv"; string skillScrollDataString = DataHandler.LoadDataString(skillScrollOriFilePath); SkillScrollDataHelper loader = new SkillScrollDataHelper(); loader.LoadAllItemsWithFullDataString(skillScrollDataString); string propertyGemstoneDataPath = CommonData.originDataPath + "/GameItems/SkillScrollDatas.json"; DataHandler.SaveInstanceListToFile <SkillScrollModel>(loader.skillScrollModels, propertyGemstoneDataPath); Debug.Log("技能卷轴数据完成"); }
public static void InitSpellItemsFromData() { string spellItemDataPath = "/Users/houlianghong/Desktop/MyGameData/拼写物品原始数据.csv"; string spellItemDataString = DataHandler.LoadDataString(spellItemDataPath); SpellItemDataHelper loader = new SpellItemDataHelper(); loader.LoadAllItemsWithFullDataString(spellItemDataString); string spellITemDataPath = CommonData.originDataPath + "/GameItems/SpellItemDatas.json"; DataHandler.SaveInstanceListToFile <SpellItemModel>(loader.spellItemModels, spellITemDataPath); Debug.Log("拼写物品数据完成"); }
// [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; } }
/// <summary> /// 重置地图事件触发记录文件 /// </summary> public void ResetMapEventsRecord() { bool hasRecord = DataHandler.FileExist(CommonData.mapEventsRecordFilePath); if (hasRecord) { DataHandler.DeleteFile(CommonData.mapEventsRecordFilePath); } List <MapEventsRecord> mapEventsRecords = new List <MapEventsRecord>(); for (int i = 0; i <= CommonData.maxLevelIndex; i++) { mapEventsRecords.Add(new MapEventsRecord(i, new List <Vector2>(), false, false)); } DataHandler.SaveInstanceListToFile <MapEventsRecord>(mapEventsRecords, CommonData.mapEventsRecordFilePath); }
public static void InitSpellItemsFromData() { /******************** 注意: *******************/ // 1. 原始数据格式必须使用【消耗品原始数据表(02_resume_design)】导出的csv文件,原始表格尾部不能有空行 // 2. 原始数据存放的地址根据实际地址进行修改 string consumablesOriFilePath = "/Users/houlianghong/Desktop/MyGameData/消耗品原始数据.csv"; /******************** 注意: *******************/ string consumablesDataString = DataHandler.LoadDataString(consumablesOriFilePath); ConsumablesDataHelper loader = new ConsumablesDataHelper(); loader.LoadAllItemsWithFullDataString(consumablesDataString); string consumablesDataPath = CommonData.originDataPath + "/GameItems/ConsumablesDatas.json"; DataHandler.SaveInstanceListToFile <ConsumablesModel>(loader.consumablesModels, consumablesDataPath); Debug.Log("消耗品数据完成"); }
public static void LoadNewItemDataFromLocalFile() { string newItemDataPath = "/Users/houlianghong/Desktop/MyGameData/物品设计.csv"; string fullItemDataString = DataHandler.LoadDataString(newItemDataPath); NewItemDataLoader loader = new NewItemDataLoader(); loader.LoadAllItemsWithFullDataString(fullItemDataString); for (int i = 0; i < loader.newItemModels.Count; i++) { ItemModel im = loader.newItemModels [i]; Debug.Log(im); } string newItemModelsDataPath = CommonData.originDataPath + "/NewItemDatas.json"; DataHandler.SaveInstanceListToFile <ItemModel> (loader.newItemModels, newItemModelsDataPath); }
public static void LoadAllProverbData() { List <HLHSentenceAndPoem> saps = new List <HLHSentenceAndPoem>(); string oriProverbData = DataHandler.LoadDataString(sapOriFilePath); string[] sapbDatasArray = oriProverbData.Split(new char[] { '\n' }, System.StringSplitOptions.RemoveEmptyEntries); for (int i = 1; i < sapbDatasArray.Length; i++) { string sapData = sapbDatasArray[i]; HLHSentenceAndPoem sap = GenerateHLHProverb(sapData); saps.Add(sap); } //string formatData = JsonHelper.ToJson<HLHProverb>(proverbs.ToArray()); DataHandler.SaveInstanceListToFile <HLHSentenceAndPoem>(saps, sapTargetFilePath); }
public static void GenerateNewEquipmentData() { /******************** 注意: *******************/ // 1. 原始数据格式必须使用【装备原始数据表(01_equip_design)】导出的csv文件,原始表格尾部不能有空行 // 2. 原始数据存放的地址根据实际地址进行修改 string newItemDataSourcePath = "/Users/houlianghong/Desktop/MyGameData/装备原始数据.csv"; /******************** 注意: *******************/ string newItemDataString = DataHandler.LoadDataString(newItemDataSourcePath); NewItemDataLoader loader = new NewItemDataLoader(); loader.LoadAllItemsWithFullDataString(newItemDataString); string newItemModelsDataPath = CommonData.originDataPath + "/GameItems/EquipmentDatas.json"; DataHandler.SaveInstanceListToFile <EquipmentModel> (loader.newItemModels, newItemModelsDataPath); Debug.Log("装备数据完成"); }
public static void InitPuzzleDatas() { string sourceDataFilePath = "/Users/houlianghong/Desktop/MyGameData/PuzzlesData.csv"; string sourcePuzzleData = DataHandler.LoadDataString(sourceDataFilePath); List <Puzzle> puzzles = new List <Puzzle>(); string[] puzzleDataArray = sourcePuzzleData.Split(new char[] { '\n' }); for (int i = 1; i < puzzleDataArray.Length; i++) { Puzzle puzzle = GeneratePuzzleFromDataString(puzzleDataArray[i]); Debug.Log(puzzle.question); puzzles.Add(puzzle); } string targetFilePath = CommonData.originDataPath + "/PuzzleDatas.json"; DataHandler.SaveInstanceListToFile <Puzzle>(puzzles, targetFilePath); Debug.Log("puzzles finish!"); }
/// <summary> /// 保存和npc的聊天记录 /// </summary> public void SaveChatRecords() { List <HLHNPCChatRecord> chatRecords = GameManager.Instance.gameDataCenter.chatRecords; DataHandler.SaveInstanceListToFile <HLHNPCChatRecord>(chatRecords, CommonData.chatRecordsFilePath); }
/// <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 SaveCurrentMapWordsRecords() { DataHandler.SaveInstanceListToFile <HLHWord>(GameManager.Instance.gameDataCenter.currentMapWordRecords, CommonData.currentMapWordsRecordsFilePath); }
/// <summary> /// 清理当前单词学习记录并保存 /// </summary> public void ClearCurrentMapWordsRecordAndSave() { GameManager.Instance.gameDataCenter.currentMapWordRecords.Clear(); DataHandler.SaveInstanceListToFile <HLHWord>(new List <HLHWord>(), CommonData.currentMapWordsRecordsFilePath); }
/// <summary> /// 保存地图事件记录 /// </summary> public void SaveMapEventsRecord() { DataHandler.SaveInstanceListToFile <MapEventsRecord>(GameManager.Instance.gameDataCenter.mapEventsRecords, CommonData.mapEventsRecordFilePath); }
/// <summary> /// 保存通关记录 /// </summary> /// <param name="playRecords">Play records.</param> public void SavePlayRecords(List <PlayRecord> playRecords) { DataHandler.SaveInstanceListToFile <PlayRecord>(playRecords, CommonData.playRecordsFilePath); }
/// <summary> /// 重置和npc的聊天记录 /// </summary> public void ResetChatRecords() { DataHandler.SaveInstanceListToFile <HLHNPCChatRecord>(new List <HLHNPCChatRecord>(), CommonData.chatRecordsFilePath); }
public static void SaveMonstersData() { List <MonsterData> monsterDatas = new List <MonsterData>(); string monsterDataPath = "/Users/houlianghong/Desktop/MyGameData/monsters.csv"; MonsterModel[] monsterModels = LoadMonsterModels(monsterDataPath); for (int i = 0; i < monsterModels.Length; i++) { MonsterModel monsterModel = monsterModels[i]; MonsterData monsterData = new MonsterData(); monsterData.agentLevel = 1; monsterData.monsterId = monsterModel.monsterId; monsterData.monsterName = monsterModel.monsterName; monsterData.originalMaxHealth = monsterModel.maxHealth; //基础最大生命值 monsterData.originalAttack = monsterModel.attack; //基础物理伤害 monsterData.originalMagicAttack = monsterModel.magicAttack; //基础魔法伤害 monsterData.originalArmor = monsterModel.armor; //基础护甲 monsterData.originalMagicResist = monsterModel.magicResist; //基础抗性 monsterData.originalArmorDecrease = monsterModel.armorDecrease; //基础护甲穿刺 monsterData.originalMagicResistDecrease = monsterModel.magicResistDecrease; //基础抗性穿刺 monsterData.originalCrit = monsterModel.crit; //基础暴击率 monsterData.originalDodge = monsterModel.dodge; //基础闪避率 monsterData.originalCritHurtScaler = monsterModel.critHurtScaler; //基础暴击系数 monsterData.attackInterval = monsterModel.attackInterval; //攻击间隔 monsterData.rewardExperience = monsterModel.experience; //奖励的经验值 monsterData.rewardGold = monsterModel.gold; //奖励的金钱 monsterData.attackSpeedLevel = monsterModel.attackSpeedLevel; monsterData.mosnterEvaluate = monsterModel.evaluate; monsterData.monsterStory = monsterModel.story.Replace('+', ','); monsterDatas.Add(monsterData); } monsterDataPath = "/Users/houlianghong/Desktop/MyGameData/boss.csv"; monsterModels = LoadMonsterModels(monsterDataPath); for (int i = 0; i < monsterModels.Length; i++) { MonsterModel monsterModel = monsterModels[i]; MonsterData monsterData = new MonsterData(); monsterData.agentLevel = 1; monsterData.monsterId = monsterModel.monsterId; monsterData.monsterName = monsterModel.monsterName; monsterData.originalMaxHealth = monsterModel.maxHealth; //基础最大生命值 monsterData.originalAttack = monsterModel.attack; //基础物理伤害 monsterData.originalMagicAttack = monsterModel.magicAttack; //基础魔法伤害 monsterData.originalArmor = monsterModel.armor; //基础护甲 monsterData.originalMagicResist = monsterModel.magicResist; //基础抗性 monsterData.originalArmorDecrease = monsterModel.armorDecrease; //基础护甲穿刺 monsterData.originalMagicResistDecrease = monsterModel.magicResistDecrease; //基础抗性穿刺 monsterData.originalCrit = monsterModel.crit; //基础暴击率 monsterData.originalDodge = monsterModel.dodge; //基础闪避率 monsterData.originalCritHurtScaler = monsterModel.critHurtScaler; //基础暴击系数 monsterData.attackInterval = monsterModel.attackInterval; //攻击间隔 monsterData.rewardExperience = monsterModel.experience; //奖励的经验值 monsterData.rewardGold = monsterModel.gold; //奖励的金钱 monsterData.attackSpeedLevel = monsterModel.attackSpeedLevel; monsterData.mosnterEvaluate = monsterModel.evaluate; monsterData.monsterStory = monsterModel.story.Replace('+', ','); monsterDatas.Add(monsterData); } string targetPath = CommonData.originDataPath + "/MonstersData.json"; DataHandler.SaveInstanceListToFile <MonsterData>(monsterDatas, targetPath); Debug.Log("怪物数据存储完毕!"); }