protected override TubeDefinition[] getRewards(RewardDefinition rewardDefinition)
 {
     return(AbstractStaticGameDataRewardDefinition <TubeDefinition> .ToDefinitionArray(rewardDefinition.GetDefinitions <TubeRewardDefinition>()));
 }
Beispiel #2
0
 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);
                }
            }
        }