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