Example #1
0
    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;
            }
        }
    }