예제 #1
0
        private void HandleGiveReport(NWPlayer player, int questID)
        {
            var pcStatus = DataService.PCQuestStatus.GetByPlayerAndQuestIDOrDefault(player.GlobalID, questID);

            if (pcStatus == null)
            {
                return;
            }
            var state = DataService.QuestState.GetByID(pcStatus.CurrentQuestStateID);

            // Quest is calling for collecting items. Run that method.
            if (state.QuestTypeID == (int)QuestType.CollectItems)
            {
                QuestService.RequestItemsFromPC(player, GetDialogTarget(), questID);
            }
            // All other quest types
            else if (QuestService.CanPlayerCompleteQuest(player, questID))
            {
                QuestService.CompleteQuest(player, GetDialogTarget(), questID, null);
                EndConversation();
            }
            // Missing a requirement.
            else
            {
                player.SendMessage(ColorTokenService.Red("One or more task is incomplete. Refer to your journal for more information."));
            }
        }