225 lines
3.9 KiB
C#
225 lines
3.9 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)
|
|
{
|
|
int num = (optionalClassJobCategory.HasValue ? (-1115834397) : (-1115834399));
|
|
ClassJobCategory value = default(ClassJobCategory);
|
|
IReadOnlyList<EClassJob> readOnlyList = default(IReadOnlyList<EClassJob>);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1115834400;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 0:
|
|
num = -1115834399;
|
|
break;
|
|
case 1:
|
|
return Enum.GetValues<EClassJob>();
|
|
case 4:
|
|
return readOnlyList;
|
|
case 3:
|
|
value = optionalClassJobCategory.Value;
|
|
num = ((!CachedClassJobs.TryGetValue(value.RowId, out readOnlyList)) ? (-1115834398) : (-1115834396));
|
|
break;
|
|
case 2:
|
|
readOnlyList = (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
|
|
},
|
|
{
|
|
EClassJob.Beastmaster,
|
|
value.Unknown0
|
|
}
|
|
}
|
|
where y.Value
|
|
select y.Key).ToList().AsReadOnly();
|
|
CachedClassJobs[value.RowId] = readOnlyList;
|
|
return readOnlyList;
|
|
}
|
|
}
|
|
}
|
|
}
|