Exemple #1
0
        /// <summary>
        /// Checks if the player meets the requirements inside the task.
        /// </summary>
        protected virtual void CheckCollectTask()
        {
            // Give away the item from the inventory
            bool oneItem     = m_CurrentTask.Items.Count == 1;
            var  itemToCheck = m_CurrentTask.Items[0];

            bool InventoryCheck() => oneItem?inventory.Contains(itemToCheck.Item, itemToCheck.Amount) : inventory.Contains(m_CurrentTask.Items);

            if (InventoryCheck())
            {
                if (oneItem)
                {
                    giveItemEvent.RaiseEvent(m_CurrentTask.Items[0]);
                }
                else
                {
                    giveItemEvent.RaiseEvent(m_CurrentTask.Items);
                }

                // Trigger complete dialogue
                completeDialogueEvent.RaiseEvent();

                // we have completed the task so progress to the new one.
                EndTask();
            }
            else
            {
                //trigger incomplete dialogue
                incompleteDialogueEvent.RaiseEvent();
            }
        }