public static MissionDatabase InitSetting() { string path = Application.persistentDataPath + "/Xml/Mission.Xml"; if (!System.IO.File.Exists(path)) { string folderPath; folderPath = Application.persistentDataPath + "/Xml"; DirectoryInfo di = new DirectoryInfo(folderPath); if (di.Exists == false) { di.Create(); } TextAsset _xml = Resources.Load <TextAsset>("XmlData/Mission"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(_xml.text); if (_xml != null) { XmlSerializer serializer = new XmlSerializer(typeof(MissionDatabase)); var reader = new StringReader(_xml.text); MissionDatabase missionDB = serializer.Deserialize(reader) as MissionDatabase; reader.Close(); CreateXml(path); Debugging.Log("MissionDatabase 최초 생성 성공"); return(missionDB); } } Debugging.Log("MissionDatabase 최초 생성 실패"); return(null); }
public static void ClearMission(int id) { Mission clearMission = userMissions.Find(m => m.id == id || m.id.Equals(id)); if (clearMission != null) { Debugging.Log(id + " 의 미션클리어 했습니다."); if (clearMission.missionType == 2) { clearMission.enable = false; clearMission.missionLevel += 1; clearMission.clearPoint = GetArchivementClearPoint(clearMission); // 업적 목표 재설정 clearMission.clearPoint += 00; } else { if (clearMission.missionType == 0) { AddClearPoint(ClearType.DayMissionClear); } else if (clearMission.missionType == 1) { AddClearPoint(ClearType.WeeklyClear); } clearMission.clear = true; MissionDatabase.ClearMission(clearMission); } } }
public static MissionDatabase LoadUser() { string path = Application.persistentDataPath + "/Xml/Mission.Xml"; if (System.IO.File.Exists(path)) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(System.IO.File.ReadAllText(path)); //복호화//// XmlElement elmRoot = xmlDoc.DocumentElement; var decrpytData = DataSecurityManager.DecryptData(elmRoot.InnerText); elmRoot.InnerXml = decrpytData; ////////// string _xml; using (var stringWriter = new StringWriter()) using (var xmlTextWriter = XmlWriter.Create(stringWriter)) { xmlDoc.WriteTo(xmlTextWriter); xmlTextWriter.Flush(); _xml = stringWriter.GetStringBuilder().ToString(); } if (_xml != null) { XmlSerializer serializer = new XmlSerializer(typeof(MissionDatabase)); var reader = new StringReader(_xml); MissionDatabase missionDB = serializer.Deserialize(reader) as MissionDatabase; reader.Close(); Debugging.Log("MissionDatabase 유저 파일 로드"); return(missionDB); } } Debugging.LogSystemWarning("MissionDatabase wasn't loaded. >> " + path + " is null. >>"); return(null); }
private static void InitUserData(string localId, string name) { SaveSystem.InitPlayer(localId, name); ItemDatabase.InitSetting(); HeroDatabase.InitSetting(); AbilityDatabase.InitSetting(); SkillDatabase.InitSetting(); MissionDatabase.InitSetting(); MapDatabase.InitSetting(); SaveData(); }
public void SetDataToCloud(string socialUserId, string socialName, string saveTime) { localId = socialUserId; name = socialName; lastSavedTime = saveTime; UserData = SaveSystem.GetUserDataToCloud(); ItemData = ItemDatabase.GetItemDataToCloud(); HeroData = HeroDatabase.GetHeroDataToCloud(); AbilityData = AbilityDatabase.GetAbilityDataToCloud(); SkillData = SkillDatabase.GetSkillDataToCloud(); MissionData = MissionDatabase.GetMissionDataToCloud(); MapData = MapDatabase.GetMapDataToCloud(); }
private static void SetCloudDataToLocal() { if (gameInfo != null) { SaveSystem.SetCloudDataToUser(gameInfo); ItemDatabase.SetCloudDataToItem(gameInfo); HeroDatabase.SetCloudDataToHero(gameInfo); AbilityDatabase.SetCloudDataToAbility(gameInfo); SkillDatabase.SetCloudDataToSkill(gameInfo); MissionDatabase.SetCloudDataToMission(gameInfo); MapDatabase.SetCloudDataToMap(gameInfo); } else { Debug.LogWarning("클라우드 데이터 로컬저장중 오류 발생"); } }
public static MissionDatabase Load() { TextAsset _xml = Resources.Load <TextAsset>("XmlData/Mission"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(_xml.text); if (_xml != null) { XmlSerializer serializer = new XmlSerializer(typeof(MissionDatabase)); var reader = new StringReader(_xml.text); MissionDatabase missionDB = serializer.Deserialize(reader) as MissionDatabase; reader.Close(); Debugging.Log("MissionDatabase 로드 성공"); return(missionDB); } return(null); }
public static void LoadMission() { missions.Clear(); userMissions.Clear(); string path = Application.persistentDataPath + "/Xml/Mission.Xml"; MissionDatabase md = null; MissionDatabase userMd = null; if (System.IO.File.Exists(path)) { md = MissionDatabase.Load(); userMd = MissionDatabase.LoadUser(); } else { md = MissionDatabase.InitSetting(); userMd = MissionDatabase.LoadUser(); } if (md != null) { foreach (Mission mission in md.missions) { missions.Add(mission); } } if (userMd != null) { foreach (Mission mission in userMd.missions) { userMissions.Add(mission); } } if (missions != null && userMissions != null) { Debugging.LogSystem("MissionDatabase is loaded Succesfully."); } GetDayMissions(); GetWeekMissions(); GetArchivement(); SetArchivementClearPoint(); CheckClearMissions(true); }
public static List <Mission> GetWeekMissions() { string currentWeek = (DateTime.Now.DayOfYear / 7).ToString(); Debugging.Log("오늘 일자 > " + currentWeek); string saveWeek = PlayerPrefs.GetString("MissionWeek"); Debugging.Log("저장된 일자 > " + saveWeek); //주가 변경될경우 if (saveWeek != currentWeek || !saveWeek.Equals(currentWeek) || string.IsNullOrEmpty(saveWeek)) { PlayerPrefs.SetString("MissionWeek", currentWeek); PlayerPrefs.Save(); // 전체 주간미션을 가져온다. List <Mission> weekMissionDatas = missions.FindAll(m => (m.missionType == 1 || m.missionType.Equals(1)) && m.id != 100); // 랜덤 주간미션 아이디를 5개 뽑는다. int[] randomDayMissionID = Common.getRandomId(5, 0, weekMissionDatas.Count); // 다시 초기화를 하고. List <Mission> resultDayMissionDatas = new List <Mission>(); resultDayMissionDatas.Add(GetMission(100)); for (var i = 0; i < randomDayMissionID.Length; i++) { // 랜덤으로 뽑은 미션을 추가한다. resultDayMissionDatas.Add(GetMission(weekMissionDatas[randomDayMissionID[i]].id)); } // 현재유저주간미션을 삭제하고 새로운 주간미션 5개를 추가저장한다. MissionDatabase.RegenerateWeekMission(resultDayMissionDatas); // 유저미션을 다시받아온다. userMissions.Clear(); foreach (var mission in MissionDatabase.LoadUser().missions) { userMissions.Add(mission); } Debugging.Log("새로운 주간미션 데이터를 가져옴"); } else { Debugging.Log("기존의 주간미션 데이터를 가져옴"); } return(userMissions.FindAll(m => m.missionType == 1 || m.missionType.Equals(1))); }
public static List <Mission> GetDayMissions() { string currentday = DateTime.Now.ToString("dd"); Debugging.Log("오늘 일자 > " + currentday); string saveday = PlayerPrefs.GetString("MissionDay"); Debugging.Log("저장된 일자 > " + saveday); //저장된날짜와 오늘날짜가 다를때. 저녁 12:00가 지났는데 if (saveday != currentday || !saveday.Equals(currentday) || string.IsNullOrEmpty(saveday)) { PlayerPrefs.SetString("MissionDay", currentday); PlayerPrefs.Save(); // 전체 일일미션을 가져온다. List <Mission> dayMissionDatas = missions.FindAll(m => (m.missionType == 0 || m.missionType.Equals(0)) && m.id != 0); // 랜덤 일일미션 아이디를 5개 뽑는다. int[] randomDayMissionID = Common.getRandomId(4, 0, dayMissionDatas.Count); // 다시 초기화를 하고. List <Mission> resultDayMissionDatas = new List <Mission>(); resultDayMissionDatas.Add(GetMission(0)); for (var i = 0; i < randomDayMissionID.Length; i++) { // 랜덤으로 뽑은 미션을 추가한다. resultDayMissionDatas.Add(GetMission(dayMissionDatas[randomDayMissionID[i]].id)); } // 현재유저일일미션을 삭제하고 새로운 일일미션 5개를 추가저장한다. MissionDatabase.RegenerateDayMission(resultDayMissionDatas); // 유저미션을 다시받아온다. userMissions.Clear(); foreach (var mission in MissionDatabase.LoadUser().missions) { userMissions.Add(mission); } Debugging.Log("새로운 일일미션 데이터를 가져옴"); } else { Debugging.Log("기존의 일일미션 데이터를 가져옴"); } return(userMissions.FindAll(m => m.missionType == 0 || m.missionType.Equals(0))); }
public static List <Mission> GetArchivement() { List <Mission> archivementList = missions.FindAll(x => x.missionType == 2 || x.missionType.Equals(2)); List <Mission> newArchivementList = new List <Mission>(); foreach (var achivement in archivementList) { Mission mission = userMissions.Find(x => x.id == achivement.id || x.id.Equals(achivement)); if (mission == null) { newArchivementList.Add(achivement); } } if (newArchivementList.Count > 0) { MissionDatabase.GenerateMission(newArchivementList); foreach (var mission in newArchivementList) { userMissions.Add(mission); } } return(userMissions.FindAll(item => item.missionType == 2 || item.missionType.Equals(2))); }
public static void PointSave() { MissionDatabase.PointSave(userMissions.FindAll(x => !x.clear)); }
public Mission(string mission) { this.missionName = mission; this.data = MissionDatabase.GetMission(missionName); }
public void RefreshMission() { this.data = MissionDatabase.GetMission(missionName); }