public static Quest GenerateNewQuest() { ObstacleType goal = ChallengeTypes.Goals.getRandom(rand); IDeepGoal deepGoal = Main.instance.player.getActiveDeepGoal(); if (!deepGoal.isActive()) { deepGoal = DeepGoalsTypes.NONE; } if (rand.Next(4) == 0 && deepGoal.minQuestDifficulty() <= StatisticsTracker.maxQuestDifficulty.value) { //Debug.Log(Main.instance.player.getActiveDeepGoal().name); if (!QuestManager.availableQuests.Any(x => x.originalGoal == deepGoal.getQuestType()) && !QuestManager.activeQuests.Any(x => x.originalGoal == deepGoal.getQuestType())) { goal = deepGoal.getQuestType(); } } FantasyName[] names = fantasyNameGenerator.GetFantasyNames(1); Quest quest = GenerateNewQuest(goal, names[0].FirstName + " " + names[0].Land); if (goal == deepGoal.getQuestType()) { deepGoal.modifyQuest(quest); } return(quest); }
public static IDeepGoal getFirstActiveGoal() { if (recentlyActive != null && !recentlyActive.isActive()) { return(recentlyActive); } foreach (IDeepGoal goal in allDeepGoals) { if (goal != NONE && goal.isActive()) { if (recentlyActive == null) { recentlyActive = goal; } else if (goal != recentlyActive) { return(recentlyActive); } return(goal); } } return(NONE); }