Beispiel #1
0
        private static Quest CreateQuest(
            QuestSheet.Row row,
            QuestReward reward,
            EquipmentItemRecipeSheet equipmentItemRecipeSheet)
        {
            Quest quest = default;

            switch (row)
            {
            case CollectQuestSheet.Row r:
                quest = new CollectQuest(r, reward);
                break;

            case CombinationQuestSheet.Row r:
                quest = new CombinationQuest(r, reward);
                break;

            case GeneralQuestSheet.Row r:
                quest = new GeneralQuest(r, reward);
                break;

            case ItemEnhancementQuestSheet.Row r:
                quest = new ItemEnhancementQuest(r, reward);
                break;

            case ItemGradeQuestSheet.Row r:
                quest = new ItemGradeQuest(r, reward);
                break;

            case MonsterQuestSheet.Row r:
                quest = new MonsterQuest(r, reward);
                break;

            case TradeQuestSheet.Row r:
                quest = new TradeQuest(r, reward);
                break;

            case WorldQuestSheet.Row r:
                quest = new WorldQuest(r, reward);
                break;

            case ItemTypeCollectQuestSheet.Row r:
                quest = new ItemTypeCollectQuest(r, reward);
                break;

            case GoldQuestSheet.Row r:
                quest = new GoldQuest(r, reward);
                break;

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

                stageId = recipeRow.UnlockStage;
                quest   = new CombinationEquipmentQuest(r, reward, stageId);
                break;
            }

            return(quest);
        }
Beispiel #2
0
 protected Quest(QuestSheet.Row data, QuestReward reward)
 {
     Id     = data.Id;
     Goal   = data.Goal;
     Reward = reward;
 }