Example #1
0
        private static int GetTaskCount(FLD_QuestTask questTask)
        {
            switch (questTask._TaskID1)
            {
            case FLD_QuestBattle task:
                return(task.Count);

            case FLD_QuestCollect task:
                return(task.Count);

            case FLD_QuestUse task:
                return(task.ItemNumber);

            case FLD_QuestCondition task:
                var condition = task._ConditionID._Condition1 as FLD_ConditionIdea;
                return(condition?.TrustPoint ?? -1);

            case FLD_QuestFieldSkillCount task:
                return(task.Count);

            case FLD_Achievement task:
                return((int)task.Count);

            default:
                return(-1);
            }
        }
Example #2
0
        public static QuestChild ReadChildQuest(FLD_QuestList childQuest)
        {
            var quest = new QuestChild();

            quest.Id   = childQuest.Id;
            quest.Flag = childQuest.FlagCLD;

            FLD_QuestTask purpose = childQuest._PurposeID;

            if (purpose?.TaskType1 > 0)
            {
                var task = new QuestTask();
                task.Type      = purpose._TaskType1;
                task.Id        = purpose.TaskID1;
                task.Log       = purpose._TaskLog1?.name;
                task.Condition = purpose._TaskCondition1;
                task.Task      = purpose._TaskID1;

                quest.Tasks.Add(task);
            }

            if (purpose?.TaskType2 > 0)
            {
                var task = new QuestTask();
                task.Type      = purpose._TaskType2;
                task.Id        = purpose.TaskID2;
                task.Log       = purpose._TaskLog2?.name;
                task.Condition = purpose._TaskCondition2;
                task.Task      = purpose._TaskID2;

                quest.Tasks.Add(task);
            }

            return(quest);
        }
Example #3
0
        private static IEnumerable <Achievement> GetAchievementSet(CHR_Bl blade, FLD_AchievementSet set, string skillName, string type, int column)
        {
            var achievements = new List <Achievement>();
            int level        = 1;

            for (int i = 0; i < set._AchievementID.Length; i++)
            {
                FLD_AchievementList achieve = set._AchievementID[i];
                var output = new Achievement();
                achievements.Add(output);

                output.BladeId   = blade.Id;
                output.BladeName = blade._Name.name;
                output.Skill     = skillName;
                output.Type      = type;
                output.Col       = column;
                output.Row       = i + 1;
                if (achieve == null)
                {
                    continue;
                }

                output.Level = level++.ToString();
                FLD_QuestList quest = achieve._Task;
                if (quest == null)
                {
                    continue;
                }

                FLD_QuestTask task         = quest._NextQuestA._PurposeID;
                int           ideaPoints   = quest._RewardSetA?.IdeaValue ?? 0;
                var           ideaCategory = (IdeaCategory)(quest._RewardSetA?.IdeaCategory ?? 0);

                output.IdeaCategory = ideaPoints > 0 ? ideaCategory.ToString() : "";
                output.IdeaPoints   = ideaPoints > 0 ? ideaPoints.ToString() : "";
                output.Condition    = task._TaskLog1.name;
                output.Count        = GetTaskCount(task) > 0 ? GetTaskCount(task).ToString() : "";
                output.Result       = achieve._Task._ResultA.name;
            }

            return(achievements);
        }