public CombinationEquipmentQuest(QuestSheet.Row data, QuestReward reward, int stageId) : base(data, reward)
        {
            var row = (CombinationEquipmentQuestSheet.Row)data;

            RecipeId = row.RecipeId;
            StageId  = stageId;
        }
Exemple #2
0
 protected Quest(Dictionary serialized)
 {
     Complete       = ((Bencodex.Types.Boolean)serialized["complete"]).Value;
     Goal           = (int)((Integer)serialized["goal"]).Value;
     _current       = (int)((Integer)serialized["current"]).Value;
     Id             = (int)((Integer)serialized["id"]).Value;
     Reward         = new QuestReward((Dictionary)serialized["reward"]);
     IsPaidInAction = serialized["isPaidInAction"].ToNullableBoolean() ?? false;
 }
Exemple #3
0
 protected Quest(QuestSheet.Row data, QuestReward reward)
 {
     Id     = data.Id;
     Goal   = data.Goal;
     Reward = reward;
 }
Exemple #4
0
 public ItemGradeQuest(ItemGradeQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     Grade = data.Grade;
 }
Exemple #5
0
 public ItemTypeCollectQuest(ItemTypeCollectQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     ItemType = data.ItemType;
 }
 public ItemEnhancementQuest(ItemEnhancementQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     _count = data.Count;
     Grade  = data.Grade;
 }
Exemple #7
0
 public MonsterQuest(MonsterQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     MonsterId = data.MonsterId;
 }
Exemple #8
0
 public TradeQuest(TradeQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     Type = data.Type;
 }
Exemple #9
0
 public WorldQuest(WorldQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
 }
Exemple #10
0
 public GeneralQuest(GeneralQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     Event = data.Event;
 }
Exemple #11
0
 public GoldQuest(GoldQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     Type = data.Type;
 }
Exemple #12
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;
                }
            }
        }
Exemple #13
0
 public CollectQuest(CollectQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     ItemId = data.ItemId;
 }
Exemple #14
0
 public CombinationQuest(CombinationQuestSheet.Row data, QuestReward reward)
     : base(data, reward)
 {
     ItemType    = data.ItemType;
     ItemSubType = data.ItemSubType;
 }
Exemple #15
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);
        }