コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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.");
        }