public void RemoveQuestEvent(QuestEventBase questEvent)
    {
        List <QuestEventBase> Index = new List <QuestEventBase>();

        //int i = 0;
        //while(i<CurrentEvents.Count)
        //{
        //    if (Event.Index == questEvent.Index)
        //    {
        //        Event.Finished = true;
        //        CurrentEvents.Remove(questEvent);
        //    }
        //}
        foreach (QuestEventBase Event in CurrentEvents)
        {
            if (Event.Index == questEvent.Index)
            {
                Event.Finished = true;
                Index.Add(Event);
            }
        }
        int Number = Index.Count;

        for (int i = 0; i < Number; i++)
        {
            CurrentEvents.Remove(Index[0]);
            Index.RemoveAt(0);
        }

        SetCurrentEvents();
    }
Exemplo n.º 2
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 AddAmount(MonsterType monsterType)
    {
        int  value    = dictionary[monsterType];
        bool IfRemove = false;

        value++;
        dictionary[monsterType] = value;
        foreach (QuestEventBase questEvent in currentQuests.GetEvents())
        {
            if (questEvent.eventType == EventType.Combat)
            {
                BattleEvent battle = (BattleEvent)questEvent;
                if (battle.monsterType == monsterType)
                {
                    battle.FinishedNumber++;
                    if (battle.Number <= battle.FinishedNumber)
                    {
                        IfRemove = true;
                        events   = battle;
                    }
                }
            }
        }

        if (IfRemove)
        {
            currentQuests.RemoveQuestEvent(events);
        }
    }
    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);
        }
    }
Exemplo n.º 5
0
    public List <QuestEventBase> NextEvent(QuestEventBase currentEvent)//it is used to get the next event
    {
        int NewIndex = currentEvent.Index + 1;
        List <QuestEventBase> TempEvents = new List <QuestEventBase>();

        foreach (QuestEventBase questEvent in questEventBases)
        {
            if (NewIndex == questEvent.Index)
            {
                Debug.Log("1");
                TempEvents.Add(questEvent);
            }
        }
        return(TempEvents);
    }