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); } }
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); }
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; } } }