private void loadQuests(ITextDataStore textDataStore, dynamic resource) { foreach (dynamic questRes in resource.QuestList) { var quest = new Quest(); quest.Index = questRes.Index; quest.Enable = questRes.Enable == "1"; quest.Event = questRes.Event == "1"; quest.NameLabel = textDataStore[questRes.QuestNameLabel]; quest.SuccessCondition = textDataStore[questRes.SuccessCondition]; quest.QuestDetail = questRes.QuestDetail; quest.QuestPreRequisite = ((string)questRes.QuestPreReq).Split(',').Select(int.Parse).ToList(); quest.RewardExperience = questRes.RewardEXP; quest.RewardGold = questRes.RewardGOLD; quest.QuestRepeat = questRes.QuestRepeat != "No"; quest.ItemRewardRepeat = questRes.ItemRewardRepeat != "No"; if (questRes.Members.ContainsKey("EmblemGrade")) { quest.EmblemGrade = questRes.EmblemGrade; } int rewardIndex = 1; while (questRes.Members.ContainsKey("RewardItem" + rewardIndex)) { quest.RewardItems.Add(questRes.Members["RewardItem" + rewardIndex]); rewardIndex++; } _quests.Add(quest.Index, quest); } }
public EmblemQuestDataStore(IResourceManager resourceManager, ITextDataStore textDataStore, ILogger <EmblemQuestDataStore> logger) { logger.LogInformation("loading..."); var resource = XmlSlurper.ParseText(resourceManager.ReadResource(Resource)); _quests = new Dictionary <int, Quest>(); _questDetails = new Dictionary <int, QuestDetail>(); _rewards = new List <RewardItem>(); loadQuests(textDataStore, resource); loadQuestDetails(resource); loadRewards(resource); logger.LogInformation("loaded."); }