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(); }
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); } }
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); }