Exemplo n.º 1
0
    public MultiQuest GenerateMultiProtectQuest()
    {
        MultiQuest MQ        = new MultiQuest();
        QuestType  questType = QuestType.Protect;

        int numFriendlies, numNonSuicide, numSuicide;

        GetObjectiveCounts(out numFriendlies, out numNonSuicide, out numSuicide);

        MQ.Objectives.Add(GenerateProtectQuest());
        MQ.Objectives.Add(GenerateDestroyQuest(numNonSuicide, numSuicide));
        MQ.Objectives.Add(new TimerObjective(31));

        var AvailableFriendlies = HouseStatusToFriendlyTypes(QuestParameters.DifficultyDefs[(int)CurrentDifficulty].houseStatus);

        MQ.Data = new QuestData(questType, numNonSuicide + numSuicide, numFriendlies, AvailableEnemies, AvailableFriendlies);

        // Adds sheep spawn.
        for (int i = 0; i < numFriendlies; i++)
        {
            MQ.Spawns.Add(new ProtectTargetObjective(21));
        }

        return(MQ);
    }
Exemplo n.º 2
0
 private void UpdateQuest(Quest.QuestUpdateType updateType)
 {
     foreach (Quest quest in quests)
     {
         if (quest as MultiQuest != null)
         {
             MultiQuest multiQuest = (MultiQuest)quest;
             multiQuest.UpdateCompletionState(updateType);
         }
         else
         {
             quest.UpdateCompletionState(updateType);
         }
     }
 }
Exemplo n.º 3
0
    public MultiQuest GenerateMultiDestroyQuest()
    {
        MultiQuest MQ        = new MultiQuest();
        QuestType  questType = QuestType.Destroy;

        int numFriendlies, numNonSuicide, numSuicide;

        GetObjectiveCounts(out numFriendlies, out numNonSuicide, out numSuicide);

        MQ.Data = new QuestData(questType, numNonSuicide + numSuicide, 0, AvailableEnemies, FriendlyTypes.None);

        MQ.Objectives.Add(GenerateDestroyQuest(numNonSuicide, numSuicide));
        MQ.Objectives.Add(new TimerObjective(31));

        // Adds sheep spawn.
        for (int i = 0; i < numFriendlies; i++)
        {
            MQ.Spawns.Add(new ProtectTargetObjective(21));
        }

        return(MQ);
    }