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))); }