// Copyright (c) Pixel Crushers. All rights reserved.
using UnityEngine;
using System.Collections.Generic;
namespace PixelCrushers.QuestMachine
{
///
/// Interface for quest dialogue UIs.
///
public interface IQuestDialogueUI
{
///
/// True if the dialogue UI is visible, false otherwise.
///
bool isVisible { get; }
///
/// Shows UI content.
///
/// Speaker.
/// Content being spoken by speaker.
void ShowContents(QuestParticipantTextInfo speaker, List contents);
///
/// Shows content explaining that all quests' offer conditions are unmet.
///
/// Speaker.
/// Content explaining that all quests' offer conditions are unmet.
/// List of quests.
void ShowOfferConditionsUnmet(QuestParticipantTextInfo speaker, List contents, List quests);
///
/// Shows a list of quests.
///
/// Speaker.
/// Content introducing the list of active quests.
/// Active quests.
/// Content introducing the list of offerable quests.
/// Offerable quests.
/// Method to invoke when the player selects a quest.
void ShowQuestList(QuestParticipantTextInfo speaker, List activeQuestsContents, List activeQuests,
List offerableQuestsContents, List offerableQuests, QuestParameterDelegate selectHandler);
///
/// Shows a quest offer.
///
/// Speaker.
/// Quest to offer.
/// Method to invoke if the player accepts the quest.
/// Method to invoke if the player declines the quest.
void ShowOfferQuest(QuestParticipantTextInfo speaker, Quest quest, QuestParameterDelegate acceptHandler, QuestParameterDelegate declineHandler);
///
/// Shows an active quest.
///
/// Speaker.
/// Active quest.
/// Method to invoke if the player clicks the continue button.
/// Method to invoke if the player clicks the back button.
void ShowActiveQuest(QuestParticipantTextInfo speaker, Quest quest, QuestParameterDelegate continueHandler, QuestParameterDelegate backHandler);
///
/// Shows completed quests.
///
/// Speaker
/// Completed quests.
void ShowCompletedQuest(QuestParticipantTextInfo speaker, List quests);
///
/// Hides the dialogue UI.
///
void Hide();
}
}