public void CheckForFinishedQuests(float travelledDistance, int numberOfKilledEnemies, int numberOfBarellRolls) { for (int i = 0; i < currentQuests.Length; i++) { Quest quest = currentQuests[i]; if (quest == null) { continue; } bool questFinished = false; switch (quest.questType) { case QuestType.TravelDistance: questFinished = quest.AddCurrentValue(travelledDistance); break; case QuestType.KillEnemies: questFinished = quest.AddCurrentValue(numberOfKilledEnemies); break; case QuestType.DoBarellRoll: questFinished = quest.AddCurrentValue(numberOfBarellRolls); break; } if (questFinished) { finishedQuests.Add(quest); if (quest.rewardWeapon != null) { unlockedWeapons.Add(quest.rewardWeapon); } //currentQuests[i] = null; } } }