Example #1
0
    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);
    }
Example #2
0
    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)));
    }
Example #3
0
    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)));
    }