Ejemplo n.º 1
0
 private void Awake()
 {
     if (!(startQuestPrefab == null || returnQuestPrefab == null))
     {
         this.enabled = true;
         Hide();
     }
     else
     {
         Debug.LogWarning("Missing indicator, load a preset if the same assets are used everytime.", this);
         this.enabled = false;
     }
     giver = GetComponent <QuestGiver>();
 }
Ejemplo n.º 2
0
        public void StartQuestList(QuestGiver _giver)
        {
            //giver = _giver;
            startQuest.onClick.AddListener(() => {
                GetSelectedQuest(out QuestLink _link);
                _giver.QuestAccept(_link.line);
                CloseQuestList();
            });

            declineQuest.onClick.AddListener(() => {
                GetSelectedQuest(out QuestLink _link);
                _giver.QuestDecline(_link.line);
                CloseQuestList();
            });

            endQuest.onClick.AddListener(() => {
                GetSelectedQuest(out QuestLink _link);
                _giver.QuestEnd(_link.line, GetSelectedRewards());
                CloseQuestList();
            });

            quests = _giver.GetAvailableQuests();

            List <QuestRewardType> availableTypes = new List <QuestRewardType>();
            List <QuestRewardType> selectedTypes  = new List <QuestRewardType>();
            List <QuestReward>     rewards        = new List <QuestReward>();

            // Get all rewards for each quest.
            foreach (QuestLink _link in quests)
            {
                QuestReward[] _rewards = _link.quest.GetRewardData();

                // Get each RewardType flag for the quest.
                availableTypes.Add(QuestRewardType.Nothing);
                selectedTypes.Add(QuestRewardType.Nothing);
                for (int i = 0; i < _rewards.Length; i++)
                {
                    // Quest might have many available selections.
                    availableTypes[i] |= rewards[i].type;
                }

                rewards.AddRange(_rewards);
            }

            rewardTypes         = availableTypes.ToArray();
            selectedRewardTypes = selectedTypes.ToArray();
        }