예제 #1
0
    public void AddItems(ItemObj item)
    {
        bool IfRemove = false;

        foreach (QuestEventBase questEvent in currentQuests.GetEvents())
        {
            if (questEvent.eventType == EventType.FindObject)
            {
                FindObjectEvent findObjectEvent = (FindObjectEvent)questEvent;
                if (findObjectEvent.ItemName == item.ItemName)
                {
                    findObjectEvent.FinishedAmount++;
                    if (findObjectEvent.FinishedAmount >= findObjectEvent.Amount)
                    {
                        IfRemove         = true;
                        EventToBeRemoved = findObjectEvent;
                    }
                }
            }
        }
        if (IfRemove)
        {
            currentQuests.RemoveQuestEvent(EventToBeRemoved);
        }

        items.Add(item);
    }
    public void SetCurrentEvents()
    {
        bool IfMove            = false;
        bool IfAlreadyFinished = false;

        foreach (QuestBase quest in Current)
        {
            if (quest.GetCurrentEvent(quest.FindFirstEvent()).Count == 0)
            {
                Temp   = quest;
                IfMove = true;
            }
            else
            {
                foreach (QuestEventBase questEvent in quest.GetCurrentEvent(quest.FindFirstEvent()))
                {
                    if (!CurrentEvents.Contains(questEvent))
                    {
                        if (questEvent.eventType == EventType.FindObject)
                        {
                            FindObjectEvent findObjectEvent = (FindObjectEvent)questEvent;
                            foreach (ItemObj item in inventoryData.GetItems())
                            {
                                if (item.ItemName == findObjectEvent.ItemName)
                                {
                                    findObjectEvent.FinishedAmount++;
                                }
                            }
                            CurrentEvents.Add(questEvent);
                            if (findObjectEvent.FinishedAmount >= findObjectEvent.Amount)
                            {
                                IfAlreadyFinished = true;
                                TempEvent         = findObjectEvent;
                            }
                        }
                        else
                        {
                            CurrentEvents.Add(questEvent);
                        }
                    }
                }
            }
        }


        if (IfMove)
        {
            MoveQuestToFinishend(Temp);
        }


        if (IfAlreadyFinished)
        {
            RemoveQuestEvent(TempEvent);
        }
    }
예제 #3
0
 public void RemoveItem(ItemObj item)
 {
     foreach (QuestEventBase questEvent in currentQuests.GetEvents())
     {
         if (questEvent.eventType == EventType.FindObject)
         {
             FindObjectEvent findObjectEvent = (FindObjectEvent)questEvent;
             if (findObjectEvent.ItemName == item.ItemName)
             {
                 findObjectEvent.FinishedAmount--;
             }
         }
     }
     items.Remove(item);
 }