예제 #1
0
    public Quest(Knowledge.ResearchRoute rr, byte subID)
    {
        subIndex = subID;
        int stepsCount = 1;

        switch (rr)
        {
        case Knowledge.ResearchRoute.Foundation:
            type = QuestType.Foundation;
            break;

        case Knowledge.ResearchRoute.CloudWhale:
            type = QuestType.CloudWhale;
            break;

        case Knowledge.ResearchRoute.Engine:
            type = QuestType.Engine;
            break;

        case Knowledge.ResearchRoute.Pipes:
            type = QuestType.Pipe;
            break;

        case Knowledge.ResearchRoute.Crystal:
            type = QuestType.Crystal;
            break;

        case Knowledge.ResearchRoute.Monument:
            type = QuestType.Monument;
            break;

        case Knowledge.ResearchRoute.Pollen:
            type = QuestType.Pollen;
            break;

        case Knowledge.ResearchRoute.Blossom:
            type = QuestType.Blossom;
            break;
        }
        steps         = new string[stepsCount];
        stepsAddInfo  = new string[stepsCount];
        stepsFinished = new bool[stepsCount];
        Localization.FillQuestData(this);
    }
예제 #2
0
    public Quest FindQuest(Knowledge.ResearchRoute rr, byte subIndex)
    {
        Quest     q;
        QuestType qt = QuestType.Total;

        switch (rr)
        {
        case Knowledge.ResearchRoute.Foundation: qt = QuestType.Foundation; break;

        case Knowledge.ResearchRoute.CloudWhale: qt = QuestType.CloudWhale; break;

        case Knowledge.ResearchRoute.Engine: qt = QuestType.Engine; break;

        case Knowledge.ResearchRoute.Pipes: qt = QuestType.Pipe; break;

        case Knowledge.ResearchRoute.Crystal: qt = QuestType.Crystal; break;

        case Knowledge.ResearchRoute.Monument: qt = QuestType.Monument; break;

        case Knowledge.ResearchRoute.Blossom: qt = QuestType.Blossom; break;

        case Knowledge.ResearchRoute.Pollen: qt = QuestType.Pollen; break;
        }
        for (int i = 0; i < activeQuests.Length; i++)
        {
            q = activeQuests[i];
            if (q != Quest.NoQuest)
            {
                if (q.type == qt && q.subIndex == subIndex)
                {
                    return(q);
                }
            }
        }
        return(null);
    }
예제 #3
0
    public void FindAndCompleteQuest(Knowledge.ResearchRoute rr, byte subIndex)
    {
        var q = FindQuest(rr, subIndex);

        q?.MakeQuestCompleted();
    }
예제 #4
0
 public static void GiveRoutePoints(Knowledge.ResearchRoute rr, int count)
 {
     Knowledge.GetCurrent()?.AddResearchPoints(rr, count);
 }