Exemplo n.º 1
0
    public void UpdateQuestLog()
    {
        qlogmodel.questlog = new Dictionary <Quest, int>();
        Quest mainquest = database.FetchQuestByID(qprogress.questProgress);

        if (qprogress.questTimer == -1000 || qprogress.questTimer == 0)
        {
            qprogress.questTimer = mainquest.timeLimit;
        }
        qlogmodel.questlog.Add(mainquest, mainquest.ID);
        if (mainquest.subQuests != "")
        {
            foreach (int subquestID in mainquest.SubQuestsList)
            {
                int sqid = subquestID;
                if (qprogress.CompletedQuests.Find(i => i == sqid) == 0)
                {
                    Quest questToAdd = database.FetchQuestByID(subquestID);
                    if (questToAdd.RequiredQuestList.Count != 0)
                    {
                        foreach (int id in questToAdd.RequiredQuestList)
                        {
                            if (qprogress.CompletedQuests.Find(i => i == sqid) == 0)
                            {
                                OkToAdd = false;
                                break;
                            }
                        }
                    }
                    else
                    {
                        OkToAdd = true;
                    }
                    if (OkToAdd)
                    {
                        qlogmodel.questlog.Add(database.FetchQuestByID(sqid), sqid);
                    }
                }
            }
        }
        qlogview.LoadQuestLog();
    }