protected override TubeDefinition[] getRewards(RewardDefinition rewardDefinition) { return(AbstractStaticGameDataRewardDefinition <TubeDefinition> .ToDefinitionArray(rewardDefinition.GetDefinitions <TubeRewardDefinition>())); }
protected override PropDefinition[] getRewards(RewardDefinition rewardDefinition) { return(AbstractStaticGameDataRewardDefinition <PropDefinition> .ToDefinitionArray(rewardDefinition.GetDefinitions <ConsumableRewardDefinition>())); }
private void parseItemGroups() { progressionService = Service.Get <ProgressionService>(); TemplateDefinition[] unlockedDefinitionsForCategory = progressionService.GetUnlockedDefinitionsForCategory <TemplateDefinition>(ProgressionUnlockCategory.equipmentTemplates); progressionUnlockedRewards = new HashSet <TemplateDefinition>(unlockedDefinitionsForCategory); userLevel = progressionService.Level; for (int i = 0; i <= progressionService.MaxUnlockLevel; i++) { TemplateDefinition[] array = progressionService.GetUnlockedDefinitionsForLevel(i, ProgressionUnlockCategory.equipmentTemplates).Definitions as TemplateDefinition[]; if (array == null || array.Length <= 0) { continue; } bool isProgressionLocked = i > userLevel; for (int j = 0; j < array.Length; j++) { if (array[j] != null && array[j].IsEditable) { DisplayedTemplate newDisplayTemplate = new DisplayedTemplate(array[j], i, null); addRewardTemplate(newDisplayTemplate, isProgressionLocked); if (progressionUnlockedRewards.Contains(array[j])) { progressionUnlockedRewards.Remove(array[j]); } } } } QuestService questService = Service.Get <QuestService>(); Dictionary <string, Mascot> questToMascotMap = questService.QuestToMascotMap; foreach (QuestDefinition knownQuest in questService.KnownQuests) { questToMascotMap.TryGetValue(knownQuest.name, out var value); if (value == null) { continue; } string mascotName = value.Name; Quest quest = questService.GetQuest(knownQuest); if (knownQuest.StartReward != null) { if (quest.State == Quest.QuestState.Active || quest.State == Quest.QuestState.Completed || quest.TimesCompleted > 0) { mascotName = ""; } parseRewardDefinition(AbstractStaticGameDataRewardDefinition <TemplateDefinition> .ToDefinitionArray(knownQuest.StartReward.GetDefinitions <EquipmentTemplateRewardDefinition>()), mascotName); } if (knownQuest.CompleteReward != null) { if (quest.State == Quest.QuestState.Completed || quest.TimesCompleted > 0) { mascotName = ""; } parseRewardDefinition(AbstractStaticGameDataRewardDefinition <TemplateDefinition> .ToDefinitionArray(knownQuest.CompleteReward.GetDefinitions <EquipmentTemplateRewardDefinition>()), mascotName); } if (knownQuest.ObjectiveRewards != null) { if (quest.State == Quest.QuestState.Completed || quest.TimesCompleted > 0) { mascotName = ""; } for (int j = 0; j < knownQuest.ObjectiveRewards.Length; j++) { parseRewardDefinition(AbstractStaticGameDataRewardDefinition <TemplateDefinition> .ToDefinitionArray(knownQuest.ObjectiveRewards[j].GetDefinitions <EquipmentTemplateRewardDefinition>()), mascotName); } } } if (progressionUnlockedRewards.Count <= 0) { return; } TemplateDefinition[] array2 = new TemplateDefinition[progressionUnlockedRewards.Count]; progressionUnlockedRewards.CopyTo(array2); for (int j = 0; j < array2.Length; j++) { if (array2[j].IsEditable) { DisplayedTemplate newDisplayTemplate = new DisplayedTemplate(array2[j], -1, null); lastUnlockedIndex++; rewardTemplates.Insert(lastUnlockedIndex, newDisplayTemplate); } } }