Пример #1
0
 public void CheckAllActiveObjectives(RelevantPosition rp = null)
 {
     foreach (Quest q in questList)
     {
         if (q.questStatus != QuestStatus.Completed && q.questStatus != QuestStatus.Failed)
         {
             int objectives          = q.questObjectives.Length;
             int completedObjectives = 0;
             foreach (QuestObjective o in q.questObjectives)
             {
                 o.CheckObjectiveCompleted(rp);
                 if (o.objectiveStatus == ObjectiveStatus.Completed)
                 {
                     completedObjectives++;
                 }
             }
             if (objectives == completedObjectives)
             {
                 q.questStatus = QuestStatus.Successful;
                 if (q.returnToGiver == false)
                 {
                     if (rp != null)
                     {
                         rp.busyFirstThing = true;
                     }
                     q.questGiver.CompletedQuest(q, q.questGiver, null);
                     q.questStatus = QuestStatus.Completed;
                     q.questGiver.InteractWithQuestGiver("questgiver", null, rp);
                     InsertQuestCompleted(q);
                 }
             }
         }
     }
 }
Пример #2
0
 private void CheckMoveCompleted(RelevantPosition rp = null)
 {
     if (positionToMove == rp)
     {
         objectiveStatus = ObjectiveStatus.Completed;
     }
     else
     {
         objectiveStatus = ObjectiveStatus.Pending;
     }
 }
Пример #3
0
    public void CheckObjectiveCompleted(RelevantPosition rp = null)
    {
        switch (objectiveType)
        {
        case ObjectiveType.Gather:
            CheckGatherCompleted();
            break;

        case ObjectiveType.Defeat:
            CheckDefeatCompleted();
            break;

        case ObjectiveType.Move:
            CheckMoveCompleted(rp);
            break;
        }
    }
Пример #4
0
    public void InteractWithQuestGiver(string npc, NpcAI ai, RelevantPosition rp = null)
    {
        relevantPosition = rp;
        npcAI            = ai;
        switch (quest.questStatus)
        {
        case QuestStatus.Closed:
            //als de quest closed is, niks tonen. de quest is niet beschikbaar.
            break;

        case QuestStatus.Open:
            QuestOpen(npc);
            break;

        case QuestStatus.Pending:
            QuestPending(npc);
            break;

        case QuestStatus.Active:
            QuestActive(npc);
            break;

        case QuestStatus.Successful:
            if (quest.returnToGiver)
            {
                QuestSuccessful(npc);
            }
            else
            {
                QuestCompleted(npc);
            }
            break;

        case QuestStatus.Failed:
            QuestFailed(npc);
            break;

        case QuestStatus.Completed:
            QuestCompleted(npc);
            break;
        }
    }