Example #1
0
        public QuestList(QuestSheet questSheet,
                         QuestRewardSheet questRewardSheet,
                         QuestItemRewardSheet questItemRewardSheet,
                         EquipmentItemRecipeSheet equipmentItemRecipeSheet,
                         EquipmentItemSubRecipeSheet equipmentItemSubRecipeSheet
                         )
        {
            _quests = new List <Quest>();
            foreach (var questData in questSheet.OrderedList)
            {
                var reward = GetQuestReward(
                    questData.QuestRewardId,
                    questRewardSheet,
                    questItemRewardSheet
                    );

                var quest = CreateQuest(questData, reward, equipmentItemRecipeSheet);
                if (quest is null)
                {
                    continue;
                }

                _quests.Add(quest);
            }
        }
Example #2
0
 public AvatarSheets(
     WorldSheet worldSheet,
     QuestSheet questSheet,
     QuestRewardSheet questRewardSheet,
     QuestItemRewardSheet questItemRewardSheet,
     EquipmentItemRecipeSheet equipmentItemRecipeSheet,
     EquipmentItemSubRecipeSheet equipmentItemSubRecipeSheet
     )
 {
     WorldSheet                  = worldSheet;
     QuestSheet                  = questSheet;
     QuestRewardSheet            = questRewardSheet;
     QuestItemRewardSheet        = questItemRewardSheet;
     EquipmentItemRecipeSheet    = equipmentItemRecipeSheet;
     EquipmentItemSubRecipeSheet = equipmentItemSubRecipeSheet;
 }
        public void Set()
        {
            var sheet = new EquipmentItemSubRecipeSheet();

            sheet.Set(_csv);
            Assert.Equal(2, sheet.Count);
            Assert.NotNull(sheet.First);
            Assert.NotNull(sheet.Last);

            var row = sheet.First;

            Assert.Equal(row.Id, row.Key);
            Assert.Equal(1, row.Id);
            Assert.Equal(0, row.RequiredActionPoint);
            Assert.Equal(0, row.RequiredGold);
            Assert.Equal(0, row.RequiredBlockIndex);

            Assert.Equal(3, row.Materials.Count);
            Assert.Equal(306040, row.Materials[0].Id);
            Assert.Equal(1, row.Materials[0].Count);
            Assert.Equal(306041, row.Materials[1].Id);
            Assert.Equal(1, row.Materials[1].Count);
            Assert.Equal(306023, row.Materials[2].Id);
            Assert.Equal(1, row.Materials[2].Count);

            Assert.Equal(3, row.Options.Count);
            Assert.Equal(1, row.Options[0].Id);
            Assert.Equal(0.74m, row.Options[0].Ratio);
            Assert.Equal(2, row.Options[1].Id);
            Assert.Equal(0.2m, row.Options[1].Ratio);
            Assert.Equal(3, row.Options[2].Id);
            Assert.Equal(0.06m, row.Options[2].Ratio);

            Assert.Equal(1, row.MaxOptionLimit);

            row = sheet.Last;
            Assert.Equal(row.Id, row.Key);
            Assert.Equal(2, row.Id);
            Assert.Equal(0, row.RequiredActionPoint);
            Assert.Equal(150, row.RequiredGold);
            Assert.Equal(0, row.RequiredBlockIndex);

            Assert.Equal(3, row.Materials.Count);
            Assert.Equal(306040, row.Materials[0].Id);
            Assert.Equal(2, row.Materials[0].Count);
            Assert.Equal(306041, row.Materials[1].Id);
            Assert.Equal(1, row.Materials[1].Count);
            Assert.Equal(306024, row.Materials[2].Id);
            Assert.Equal(1, row.Materials[2].Count);

            Assert.Equal(4, row.Options.Count);
            Assert.Equal(4, row.Options[0].Id);
            Assert.Equal(0.46m, row.Options[0].Ratio);
            Assert.Equal(5, row.Options[1].Id);
            Assert.Equal(0.35m, row.Options[1].Ratio);
            Assert.Equal(6, row.Options[2].Id);
            Assert.Equal(0.11m, row.Options[2].Ratio);
            Assert.Equal(7, row.Options[3].Id);
            Assert.Equal(0.08m, row.Options[3].Ratio);

            Assert.Equal(1, row.MaxOptionLimit);
        }
Example #4
0
        public QuestList(QuestSheet questSheet,
                         QuestRewardSheet questRewardSheet,
                         QuestItemRewardSheet questItemRewardSheet,
                         EquipmentItemRecipeSheet equipmentItemRecipeSheet,
                         EquipmentItemSubRecipeSheet equipmentItemSubRecipeSheet
                         )
        {
            _quests = new List <Quest>();
            foreach (var questData in questSheet.OrderedList)
            {
                Quest       quest;
                QuestReward reward = GetQuestReward(
                    questData.QuestRewardId,
                    questRewardSheet,
                    questItemRewardSheet
                    );
                switch (questData)
                {
                case CollectQuestSheet.Row row:
                    quest = new CollectQuest(row, reward);
                    _quests.Add(quest);
                    break;

                case CombinationQuestSheet.Row row1:
                    quest = new CombinationQuest(row1, reward);
                    _quests.Add(quest);
                    break;

                case GeneralQuestSheet.Row row2:
                    quest = new GeneralQuest(row2, reward);
                    _quests.Add(quest);
                    break;

                case ItemEnhancementQuestSheet.Row row3:
                    quest = new ItemEnhancementQuest(row3, reward);
                    _quests.Add(quest);
                    break;

                case ItemGradeQuestSheet.Row row4:
                    quest = new ItemGradeQuest(row4, reward);
                    _quests.Add(quest);
                    break;

                case MonsterQuestSheet.Row row5:
                    quest = new MonsterQuest(row5, reward);
                    _quests.Add(quest);
                    break;

                case TradeQuestSheet.Row row6:
                    quest = new TradeQuest(row6, reward);
                    _quests.Add(quest);
                    break;

                case WorldQuestSheet.Row row7:
                    quest = new WorldQuest(row7, reward);
                    _quests.Add(quest);
                    break;

                case ItemTypeCollectQuestSheet.Row row8:
                    quest = new ItemTypeCollectQuest(row8, reward);
                    _quests.Add(quest);
                    break;

                case GoldQuestSheet.Row row9:
                    quest = new GoldQuest(row9, reward);
                    _quests.Add(quest);
                    break;

                case CombinationEquipmentQuestSheet.Row row10:
                    int stageId;
                    var recipeRow = equipmentItemRecipeSheet.Values
                                    .FirstOrDefault(r => r.Id == row10.RecipeId);
                    if (recipeRow is null)
                    {
                        throw new ArgumentException($"Invalid Recipe Id : {row10.RecipeId}");
                    }

                    stageId = recipeRow.UnlockStage;
                    if (row10.SubRecipeId.HasValue)
                    {
                        var subRow = equipmentItemSubRecipeSheet.Values
                                     .FirstOrDefault(r => r.Id == row10.SubRecipeId);
                        if (subRow is null)
                        {
                            throw new ArgumentException($"Invalid Sub Recipe Id : {row10.SubRecipeId}");
                        }
                        stageId = Math.Max(stageId, subRow.UnlockStage);
                    }
                    quest = new CombinationEquipmentQuest(row10, reward, stageId);
                    _quests.Add(quest);
                    break;
                }
            }
        }