예제 #1
0
 private void OnItemRemoved(Item item)
 {
     if (item.ItemName == ItemName && !Quest.Completed)
     {
         CurrentAmount = InventoryController.instance.CountItemsHavingName(ItemName);
         Evaluate();
         Phase.CheckGoals();
         QuestEventHandler.GoalUpdated(this);
     }
 }
예제 #2
0
 public void OnShowDoneQuestsClicked()
 {
     if (showingToDoQuests)
     {
         QuestEventHandler.UnselectQuest();
     }
     showingToDoQuests = false;
     Header.text       = "Your journal: Done Quests";
     ShowDoneQuests();
 }
예제 #3
0
 public void OnShowToDoQuestsClicked()
 {
     if (!showingToDoQuests)
     {
         QuestEventHandler.UnselectQuest();
     }
     showingToDoQuests = true;
     Header.text       = "Your journal: To-Do Quests";
     ShowTodoQuests();
 }
예제 #4
0
 void ItemPickedUp(Item item)
 {
     if (!Phase.Active)
     {
         return;
     }
     if (item.ItemName == ItemName && !Quest.Completed)
     {
         CurrentAmount = InventoryController.instance.CountItemsHavingName(ItemName);
         Evaluate();
         Phase.CheckGoals();
         QuestEventHandler.GoalUpdated(this);
     }
 }
예제 #5
0
    private void FollowQuest(Quest quest, Button followButton)
    {
        string text = followButton.transform.GetChild(0).GetComponent <Text>().text;

        if (text == "Follow")
        {
            QuestEventHandler.FollowQuest(quest);
        }
        else
        {
            QuestEventHandler.UnFollowQuest();
        }
        followButton.transform.GetChild(0).GetComponent <Text>().text = text == "Follow" ? "Unfollow" : "Follow";
    }
예제 #6
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        eventHandler = new QuestEventHandler();
        questOverflowAlert.SetActive(false);
        outstandingQuests = new List <Quest>();
    }
예제 #7
0
 private void OnTalkedToNPC(string NPCName)
 {
     if (!Phase.Active)
     {
         return;
     }
     if (this.NPCName == NPCName && !Completed)
     {
         CurrentAmount++;
         Evaluate();
         Phase.CheckGoals();
         Navigation2D();
         QuestEventHandler.GoalUpdated(this);
     }
 }
예제 #8
0
 void EnemyDied(IEnemy enemy)
 {
     if (!Phase.Active)
     {
         return;
     }
     if (enemy.ID == EnemyID && !Completed)
     {
         CurrentAmount++;
         Evaluate();
         Phase.CheckGoals();
         Navigation2D();
         QuestEventHandler.GoalUpdated(this);
     }
 }
예제 #9
0
    public void RefreshPhasesStates()
    {
        Phases.ForEach(x => x.Active = false);
        Phases.ForEach(x => x.UnInit());

        Phase activePhase = null;

        for (int i = 0; i < Phases.Count; i++)
        {
            if (!Phases[i].Completed && activePhase == null)
            {
                activePhase        = Phases[i];
                activePhase.Active = true;
                currentPhase       = i;
            }
        }

        Phases[currentPhase].Init();
        QuestEventHandler.QuestStateChanged(this);
    }
예제 #10
0
 public QuestEventHandler()
 {
     activeQuests = new List <Quest>();
     instance     = this;
 }
예제 #11
0
 public void FinishQuestFrom(Quest quest, QuestGiver questGiver)
 {
     quest.GiveReward();
     quest.Finish(questGiver);
     QuestEventHandler.FinishedQuest(quest);
 }
예제 #12
0
 public void AddQuest(Quest quest)
 {
     QuestList.Add(quest);
     QuestEventHandler.AddedQuest(quest);
 }
예제 #13
0
 private void DisplayQuestDetails(Quest quest)
 {
     QuestEventHandler.DisplayQuestDetails(quest);
 }