コード例 #1
0
ファイル: DBConnector.cs プロジェクト: CBorange/ProjectPocket
    public string LoadUserQuests()
    {
        string  query   = $"SELECT * FROM dbo.PlayerQuests WHERE UserAccount = '{UserInfoProvider.Instance.UserAccount}'";
        DataSet dataSet = ConnectDB_GetDataSet("PlayerInfo_DB", query);

        object[] dataArray = dataSet.Tables[0].Rows[0].ItemArray;

        string questCodesInProgressSTR          = dataArray[1].ToString();
        string questInProgress_Discussion_JSON  = dataArray[2].ToString();
        string questInProgress_KillMonster_JSON = dataArray[3].ToString();
        string completedQuests = dataArray[4].ToString();

        QuestProgress_Discussion  progress_Discussion  = JsonUtility.FromJson <QuestProgress_Discussion>(questInProgress_Discussion_JSON);
        QuestProgress_KillMonster progress_KillMonster = JsonUtility.FromJson <QuestProgress_KillMonster>(questInProgress_KillMonster_JSON);

        int[] progressQuestCodes  = null;
        int[] completedQuestCodes = null;

        if (!string.IsNullOrEmpty(questCodesInProgressSTR))
        {
            progressQuestCodes = CodesSTR_To_IntegerArray(questCodesInProgressSTR);
        }
        if (!string.IsNullOrEmpty(completedQuests))
        {
            completedQuestCodes = CodesSTR_To_IntegerArray(completedQuests);
        }

        UserQuestProvider.Instance.Initialize(progressQuestCodes, completedQuestCodes, progress_Discussion, progress_KillMonster);
        return("Success");
    }
コード例 #2
0
    public void Initialize(int[] questCodesInProgress, int[] questCodesCompleted, QuestProgress_Discussion progress_Discussion, QuestProgress_KillMonster progress_KillMonster)
    {
        if (questCodesInProgress != null)
        {
            for (int i = 0; i < questCodesInProgress.Length; ++i)
            {
                QuestData data = QuestDB.Instance.GetQuestData(questCodesInProgress[i]);
                questDatasInProgress.Add(data);
            }
        }
        if (questCodesCompleted != null)
        {
            for (int i = 0; i < questCodesCompleted.Length; ++i)
            {
                try
                {
                    QuestData data = QuestDB.Instance.GetQuestData(questCodesCompleted[i]);
                    completedQuests.Add(data);
                }
                catch (Exception)
                {
                    Debug.Log($"UserQuestProvider : {questCodesCompleted[i]} 데이터가 존재하지 않음");
                }
            }
        }

        questProgress_Discussion = progress_Discussion;
        questProgress_Discussion.Initiailize();

        questProgress_KillMonster = progress_KillMonster;
        questProgress_KillMonster.Initialize();
    }
コード例 #3
0
    // Singleton
    private UserQuestProvider()
    {
        questDatasInProgress = new List <QuestData>();

        questProgress_Discussion = new QuestProgress_Discussion();
        questProgress_Discussion.Initiailize();

        questProgress_KillMonster = new QuestProgress_KillMonster();
        questProgress_KillMonster.Initialize();

        completedQuests = new List <QuestData>();
    }
コード例 #4
0
ファイル: PlayerQuest.cs プロジェクト: CBorange/ProjectPocket
    public void Initialize()
    {
        questObservers = new List <QuestObserver>();
        questObservers.Add(QuestNoticePopup.Instance.GetComponent <QuestObserver>());

        // 퀘스트 진행상황 불러오기
        questsInProgress = new Dictionary <int, QuestTotalProgress>();
        completedQuests  = new Dictionary <int, QuestData>();

        questProgress_Discussion  = UserQuestProvider.Instance.QuestProgress_Discussion;
        questProgress_KillMonster = UserQuestProvider.Instance.QuestProgress_KillMonster;
        for (int i = 0; i < questObservers.Count; ++i)
        {
            questProgress_Discussion.AddObserver(questObservers[i]);
            questProgress_KillMonster.AddObserver(questObservers[i]);
        }

        if (UserQuestProvider.Instance.QuestDatasInProgress.Count > 0)
        {
            for (int i = 0; i < UserQuestProvider.Instance.QuestDatasInProgress.Count; ++i)
            {
                QuestTotalProgress totalProgress = new QuestTotalProgress();
                totalProgress.Completed         = false;
                totalProgress.OriginalQuestData = UserQuestProvider.Instance.QuestDatasInProgress[i];
                for (int questTypeIdx = 0; i < totalProgress.OriginalQuestData.QuestCategorys.Length; ++i)
                {
                    switch (totalProgress.OriginalQuestData.QuestCategorys[questTypeIdx])
                    {
                    case "GetItem":
                        totalProgress.OriginalQuestData.Behaviour_GetItem.Initialize();
                        for (int observerIdx = 0; observerIdx < questObservers.Count; ++observerIdx)
                        {
                            totalProgress.OriginalQuestData.Behaviour_GetItem.AddObserver(questObservers[observerIdx]);
                        }
                        break;

                    case "Building":
                        totalProgress.OriginalQuestData.Behaviour_Building.Initialize();
                        for (int observerIdx = 0; observerIdx < questObservers.Count; ++observerIdx)
                        {
                            totalProgress.OriginalQuestData.Behaviour_Building.AddObserver(questObservers[observerIdx]);
                        }
                        break;
                    }
                }

                questsInProgress.Add(totalProgress.OriginalQuestData.QuestCode, totalProgress);
            }
            UpdateAllQuestProgress();
        }

        // 완료된 퀘스트 불러오기
        if (UserQuestProvider.Instance.CompletedQuests.Count > 0)
        {
            for (int i = 0; i < UserQuestProvider.Instance.CompletedQuests.Count; ++i)
            {
                QuestData data = UserQuestProvider.Instance.CompletedQuests[i];
                completedQuests.Add(data.QuestCode, data);
            }
        }
        else
        {
            completedQuests = new Dictionary <int, QuestData>();
        }
    }