204 lines
3.1 KiB
C#
204 lines
3.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using LLib.GameData;
|
|
using Lumina.Excel.Sheets;
|
|
|
|
namespace Questionable.Model;
|
|
|
|
internal static class QuestInfoUtils
|
|
{
|
|
private static readonly Dictionary<uint, IReadOnlyList<EClassJob>> CachedClassJobs = new Dictionary<uint, IReadOnlyList<EClassJob>>();
|
|
|
|
internal static IReadOnlyList<EClassJob> AsList(ClassJobCategory? optionalClassJobCategory)
|
|
{
|
|
if (!optionalClassJobCategory.HasValue)
|
|
{
|
|
return Enum.GetValues<EClassJob>();
|
|
}
|
|
ClassJobCategory value = optionalClassJobCategory.Value;
|
|
if (CachedClassJobs.TryGetValue(value.RowId, out IReadOnlyList<EClassJob> value2))
|
|
{
|
|
return value2;
|
|
}
|
|
value2 = (from y in new Dictionary<EClassJob, bool>
|
|
{
|
|
{
|
|
EClassJob.Adventurer,
|
|
value.ADV
|
|
},
|
|
{
|
|
EClassJob.Gladiator,
|
|
value.GLA
|
|
},
|
|
{
|
|
EClassJob.Pugilist,
|
|
value.PGL
|
|
},
|
|
{
|
|
EClassJob.Marauder,
|
|
value.MRD
|
|
},
|
|
{
|
|
EClassJob.Lancer,
|
|
value.LNC
|
|
},
|
|
{
|
|
EClassJob.Archer,
|
|
value.ARC
|
|
},
|
|
{
|
|
EClassJob.Conjurer,
|
|
value.CNJ
|
|
},
|
|
{
|
|
EClassJob.Thaumaturge,
|
|
value.THM
|
|
},
|
|
{
|
|
EClassJob.Carpenter,
|
|
value.CRP
|
|
},
|
|
{
|
|
EClassJob.Blacksmith,
|
|
value.BSM
|
|
},
|
|
{
|
|
EClassJob.Armorer,
|
|
value.ARM
|
|
},
|
|
{
|
|
EClassJob.Goldsmith,
|
|
value.GSM
|
|
},
|
|
{
|
|
EClassJob.Leatherworker,
|
|
value.LTW
|
|
},
|
|
{
|
|
EClassJob.Weaver,
|
|
value.WVR
|
|
},
|
|
{
|
|
EClassJob.Alchemist,
|
|
value.ALC
|
|
},
|
|
{
|
|
EClassJob.Culinarian,
|
|
value.CUL
|
|
},
|
|
{
|
|
EClassJob.Miner,
|
|
value.MIN
|
|
},
|
|
{
|
|
EClassJob.Botanist,
|
|
value.BTN
|
|
},
|
|
{
|
|
EClassJob.Fisher,
|
|
value.FSH
|
|
},
|
|
{
|
|
EClassJob.Paladin,
|
|
value.PLD
|
|
},
|
|
{
|
|
EClassJob.Monk,
|
|
value.MNK
|
|
},
|
|
{
|
|
EClassJob.Warrior,
|
|
value.WAR
|
|
},
|
|
{
|
|
EClassJob.Dragoon,
|
|
value.DRG
|
|
},
|
|
{
|
|
EClassJob.Bard,
|
|
value.BRD
|
|
},
|
|
{
|
|
EClassJob.WhiteMage,
|
|
value.WHM
|
|
},
|
|
{
|
|
EClassJob.BlackMage,
|
|
value.BLM
|
|
},
|
|
{
|
|
EClassJob.Arcanist,
|
|
value.ACN
|
|
},
|
|
{
|
|
EClassJob.Summoner,
|
|
value.SMN
|
|
},
|
|
{
|
|
EClassJob.Scholar,
|
|
value.SCH
|
|
},
|
|
{
|
|
EClassJob.Rogue,
|
|
value.ROG
|
|
},
|
|
{
|
|
EClassJob.Ninja,
|
|
value.NIN
|
|
},
|
|
{
|
|
EClassJob.Machinist,
|
|
value.MCH
|
|
},
|
|
{
|
|
EClassJob.DarkKnight,
|
|
value.DRK
|
|
},
|
|
{
|
|
EClassJob.Astrologian,
|
|
value.AST
|
|
},
|
|
{
|
|
EClassJob.Samurai,
|
|
value.SAM
|
|
},
|
|
{
|
|
EClassJob.RedMage,
|
|
value.RDM
|
|
},
|
|
{
|
|
EClassJob.BlueMage,
|
|
value.BLU
|
|
},
|
|
{
|
|
EClassJob.Gunbreaker,
|
|
value.GNB
|
|
},
|
|
{
|
|
EClassJob.Dancer,
|
|
value.DNC
|
|
},
|
|
{
|
|
EClassJob.Reaper,
|
|
value.RPR
|
|
},
|
|
{
|
|
EClassJob.Sage,
|
|
value.SGE
|
|
},
|
|
{
|
|
EClassJob.Viper,
|
|
value.VPR
|
|
},
|
|
{
|
|
EClassJob.Pictomancer,
|
|
value.PCT
|
|
}
|
|
}
|
|
where y.Value
|
|
select y.Key).ToList().AsReadOnly();
|
|
CachedClassJobs[value.RowId] = value2;
|
|
return value2;
|
|
}
|
|
}
|