public void PickQuest([NotNull] IQuest quest)
 {
     if (quest == null) throw new ArgumentNullException(nameof(quest));
     var idx = PickableQuests.FindIndex(q => q == quest);
     if (idx < 0) return;
     PickableQuests.Remove(quest);
     quest.Activate();
     SaveDataManager.instance.SaveData.currentQuests.Add(quest);
     SaveDataManager.instance.ApplyToFile();
     OnQuestPicked();
     //new UnityTask(TestComplete(quest, 2f));
 }
 public void AddNewPickableQuest(Type type)
 {
     if (PickableQuests.Count >= 3) return;
     if (Activator.CreateInstance(type) is Quest quest)
     {
         switch (quest)
         {
             case LevelUpQuest levelUpQuest:
                 levelUpQuest.Prepare(0, (uint)Random.Range(1, 4));
                 break;
             case MonsterDamageQuest monsterDamageQuest:
                 monsterDamageQuest.Prepare(0, (uint)(Random.Range(250, 500) * 100));
                 break;
             case MonsterKillQuest monsterKillQuest:
                 monsterKillQuest.Prepare(0, (uint)Random.Range(5, 10));
                 break;
         }
         quest.QuestCompleted += OnQuestCompleted;
         quest.ProgressChanged += OnQuestProgressChanged;
         PickableQuests.Add(quest);
         SaveDataManager.instance.ApplyToFile();
     }
 }