1259 lines
26 KiB
C#
1259 lines
26 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using Dalamud.Plugin.Services;
|
|
using Lumina.Excel.Sheets;
|
|
|
|
namespace LLib.GameData;
|
|
|
|
public static class EClassJobExtensions
|
|
{
|
|
public static bool IsClass(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob < EClassJob.Gladiator) ? (-1021997813) : (-1021997816));
|
|
bool flag = default(bool);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1021997812;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 7:
|
|
flag = false;
|
|
num = -1021997809;
|
|
break;
|
|
case 4:
|
|
num = ((classJob <= EClassJob.Thaumaturge) ? (-1021997810) : (-1021997819));
|
|
break;
|
|
case 5:
|
|
num = ((classJob != EClassJob.Rogue) ? (-1021997813) : (-1021997810));
|
|
break;
|
|
case 8:
|
|
return true;
|
|
case 2:
|
|
flag = true;
|
|
num = -1021997809;
|
|
break;
|
|
case 3:
|
|
num = (flag ? (-1021997820) : (-1021997812));
|
|
break;
|
|
case 0:
|
|
num = (classJob.IsCrafter() ? (-1021997820) : (-1021997811));
|
|
break;
|
|
case 1:
|
|
return classJob.IsGatherer();
|
|
case 6:
|
|
num = -1021997816;
|
|
break;
|
|
case 9:
|
|
num = ((classJob == EClassJob.Arcanist) ? (-1021997810) : (-1021997815));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool HasBaseClass(this EClassJob classJob)
|
|
{
|
|
return classJob.GetBaseClass().HasValue;
|
|
}
|
|
|
|
public static EClassJob? GetBaseClass(this EClassJob classJob)
|
|
{
|
|
int num;
|
|
EClassJob? result = default(EClassJob?);
|
|
switch (classJob)
|
|
{
|
|
default:
|
|
num = 1515021;
|
|
goto IL_0044;
|
|
case EClassJob.Bard:
|
|
result = EClassJob.Archer;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
case EClassJob.Paladin:
|
|
goto IL_00ac;
|
|
case EClassJob.Dragoon:
|
|
goto IL_00be;
|
|
case EClassJob.BlackMage:
|
|
goto IL_00d0;
|
|
case EClassJob.Summoner:
|
|
goto IL_00e2;
|
|
case EClassJob.Arcanist:
|
|
case EClassJob.Rogue:
|
|
goto IL_00f5;
|
|
case EClassJob.Scholar:
|
|
goto IL_010a;
|
|
case EClassJob.Ninja:
|
|
goto IL_0128;
|
|
case EClassJob.Monk:
|
|
goto IL_013b;
|
|
case EClassJob.Warrior:
|
|
goto IL_0158;
|
|
case EClassJob.WhiteMage:
|
|
goto IL_016a;
|
|
IL_0044:
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1515022;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 1:
|
|
goto end_IL_0044;
|
|
case 4:
|
|
return result;
|
|
case 7:
|
|
goto IL_00ac;
|
|
case 10:
|
|
goto IL_00be;
|
|
case 0:
|
|
goto IL_00d0;
|
|
case 11:
|
|
goto IL_00e2;
|
|
case 8:
|
|
goto IL_00f5;
|
|
case 2:
|
|
goto IL_010a;
|
|
case 3:
|
|
num = 1515014;
|
|
break;
|
|
case 5:
|
|
goto IL_0128;
|
|
case 9:
|
|
goto IL_013b;
|
|
case 13:
|
|
num = 1515021;
|
|
break;
|
|
case 12:
|
|
goto IL_0158;
|
|
case 6:
|
|
goto IL_016a;
|
|
}
|
|
continue;
|
|
end_IL_0044:
|
|
break;
|
|
}
|
|
goto case EClassJob.Bard;
|
|
IL_016a:
|
|
result = EClassJob.Conjurer;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_0158:
|
|
result = EClassJob.Marauder;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_013b:
|
|
result = EClassJob.Pugilist;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_0128:
|
|
result = EClassJob.Rogue;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_010a:
|
|
result = EClassJob.Arcanist;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_00f5:
|
|
result = null;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_00e2:
|
|
result = EClassJob.Arcanist;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_00d0:
|
|
result = EClassJob.Thaumaturge;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_00be:
|
|
result = EClassJob.Lancer;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
IL_00ac:
|
|
result = EClassJob.Gladiator;
|
|
num = 1515018;
|
|
goto IL_0044;
|
|
}
|
|
}
|
|
|
|
public static EClassJob AsJob(this EClassJob classJob)
|
|
{
|
|
int num;
|
|
EClassJob result = default(EClassJob);
|
|
switch (classJob)
|
|
{
|
|
default:
|
|
num = 2104859750;
|
|
goto IL_002f;
|
|
case EClassJob.Archer:
|
|
result = EClassJob.Bard;
|
|
num = 2104859754;
|
|
goto IL_002f;
|
|
case EClassJob.Marauder:
|
|
goto IL_0094;
|
|
case EClassJob.Lancer:
|
|
goto IL_00a2;
|
|
case EClassJob.Conjurer:
|
|
goto IL_00d4;
|
|
case EClassJob.Pugilist:
|
|
goto IL_00e2;
|
|
case EClassJob.Gladiator:
|
|
goto IL_00f0;
|
|
case EClassJob.Thaumaturge:
|
|
goto IL_0155;
|
|
IL_002f:
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 2104859745;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 11:
|
|
return result;
|
|
case 4:
|
|
goto end_IL_002f;
|
|
case 14:
|
|
goto IL_0094;
|
|
case 9:
|
|
goto IL_00a2;
|
|
case 10:
|
|
num = 2104859757;
|
|
break;
|
|
case 1:
|
|
result = EClassJob.Ninja;
|
|
num = 2104859754;
|
|
break;
|
|
case 13:
|
|
num = 2104859750;
|
|
break;
|
|
case 5:
|
|
goto IL_00d4;
|
|
case 0:
|
|
goto IL_00e2;
|
|
case 3:
|
|
goto IL_00f0;
|
|
case 7:
|
|
goto IL_00fe;
|
|
case 6:
|
|
goto IL_011c;
|
|
case 2:
|
|
result = EClassJob.Summoner;
|
|
num = 2104859754;
|
|
break;
|
|
case 12:
|
|
result = classJob;
|
|
num = 2104859754;
|
|
break;
|
|
case 8:
|
|
goto IL_0155;
|
|
}
|
|
continue;
|
|
IL_011c:
|
|
num = ((classJob == EClassJob.Rogue) ? 2104859744 : 2104859755);
|
|
continue;
|
|
IL_00fe:
|
|
num = ((classJob == EClassJob.Arcanist) ? 2104859747 : 2104859751);
|
|
continue;
|
|
end_IL_002f:
|
|
break;
|
|
}
|
|
goto case EClassJob.Archer;
|
|
IL_0155:
|
|
result = EClassJob.BlackMage;
|
|
num = 2104859754;
|
|
goto IL_002f;
|
|
IL_00f0:
|
|
result = EClassJob.Paladin;
|
|
num = 2104859754;
|
|
goto IL_002f;
|
|
IL_00e2:
|
|
result = EClassJob.Monk;
|
|
num = 2104859754;
|
|
goto IL_002f;
|
|
IL_00d4:
|
|
result = EClassJob.WhiteMage;
|
|
num = 2104859754;
|
|
goto IL_002f;
|
|
IL_00a2:
|
|
result = EClassJob.Dragoon;
|
|
num = 2104859754;
|
|
goto IL_002f;
|
|
IL_0094:
|
|
result = EClassJob.Warrior;
|
|
num = 2104859754;
|
|
goto IL_002f;
|
|
}
|
|
}
|
|
|
|
public static bool IsTank(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob > EClassJob.Paladin) ? 2088962462 : 2088962449);
|
|
bool result = default(bool);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 2088962455;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 7:
|
|
num = 2088962449;
|
|
break;
|
|
case 6:
|
|
num = ((classJob == EClassJob.Gladiator) ? 2088962452 : 2088962461);
|
|
break;
|
|
case 9:
|
|
num = ((classJob == EClassJob.Warrior) ? 2088962452 : 2088962451);
|
|
break;
|
|
case 2:
|
|
result = false;
|
|
num = 2088962463;
|
|
break;
|
|
case 5:
|
|
num = 2088962453;
|
|
break;
|
|
case 3:
|
|
result = true;
|
|
num = 2088962463;
|
|
break;
|
|
case 4:
|
|
num = ((classJob == EClassJob.DarkKnight) ? 2088962452 : 2088962455);
|
|
break;
|
|
case 10:
|
|
num = ((classJob == EClassJob.Marauder) ? 2088962452 : 2088962454);
|
|
break;
|
|
case 8:
|
|
return result;
|
|
case 0:
|
|
num = ((classJob != EClassJob.Gunbreaker) ? 2088962453 : 2088962452);
|
|
break;
|
|
case 1:
|
|
num = ((classJob == EClassJob.Paladin) ? 2088962452 : 2088962450);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool IsHealer(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob > EClassJob.WhiteMage) ? (-693082528) : (-693082517));
|
|
bool result = default(bool);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -693082519;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 7:
|
|
num = ((classJob == EClassJob.Astrologian) ? (-693082515) : (-693082520));
|
|
break;
|
|
case 3:
|
|
result = false;
|
|
num = -693082519;
|
|
break;
|
|
case 8:
|
|
num = ((classJob == EClassJob.WhiteMage) ? (-693082515) : (-693082513));
|
|
break;
|
|
case 2:
|
|
num = ((classJob == EClassJob.Conjurer) ? (-693082515) : (-693082527));
|
|
break;
|
|
case 0:
|
|
return result;
|
|
case 1:
|
|
num = ((classJob != EClassJob.Sage) ? (-693082518) : (-693082515));
|
|
break;
|
|
case 5:
|
|
num = -693082517;
|
|
break;
|
|
case 6:
|
|
num = -693082518;
|
|
break;
|
|
case 4:
|
|
result = true;
|
|
num = -693082519;
|
|
break;
|
|
case 9:
|
|
num = ((classJob == EClassJob.Scholar) ? (-693082515) : (-693082514));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool IsMelee(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob > EClassJob.Monk) ? 1922031772 : 1922031771);
|
|
bool result = default(bool);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1922031765;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 3:
|
|
num = ((classJob == EClassJob.Samurai) ? 1922031774 : 1922031769);
|
|
break;
|
|
case 11:
|
|
result = true;
|
|
num = 1922031767;
|
|
break;
|
|
case 4:
|
|
num = ((classJob == EClassJob.Dragoon) ? 1922031774 : 1922031765);
|
|
break;
|
|
case 13:
|
|
num = ((classJob == EClassJob.Monk) ? 1922031774 : 1922031762);
|
|
break;
|
|
case 7:
|
|
num = 1922031775;
|
|
break;
|
|
case 9:
|
|
num = ((classJob > EClassJob.Ninja) ? 1922031766 : 1922031761);
|
|
break;
|
|
case 6:
|
|
num = 1922031771;
|
|
break;
|
|
case 5:
|
|
num = 1922031775;
|
|
break;
|
|
case 1:
|
|
num = ((classJob == EClassJob.Lancer) ? 1922031774 : 1922031768);
|
|
break;
|
|
case 8:
|
|
num = 1922031775;
|
|
break;
|
|
case 12:
|
|
switch (classJob)
|
|
{
|
|
case EClassJob.Reaper:
|
|
case EClassJob.Viper:
|
|
case EClassJob.Beastmaster:
|
|
break;
|
|
default:
|
|
goto IL_015e;
|
|
case EClassJob.Sage:
|
|
case EClassJob.Pictomancer:
|
|
goto IL_016b;
|
|
}
|
|
goto case 11;
|
|
case 2:
|
|
return result;
|
|
case 10:
|
|
goto IL_016b;
|
|
case 0:
|
|
num = ((classJob - 29 <= EClassJob.Gladiator) ? 1922031774 : 1922031773);
|
|
break;
|
|
case 14:
|
|
{
|
|
num = ((classJob == EClassJob.Pugilist) ? 1922031774 : 1922031764);
|
|
break;
|
|
}
|
|
IL_016b:
|
|
result = false;
|
|
num = 1922031767;
|
|
break;
|
|
IL_015e:
|
|
num = 1922031760;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool IsPhysicalRanged(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob > EClassJob.Bard) ? 361445859 : 361445862);
|
|
bool result = default(bool);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 361445858;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 3:
|
|
num = 361445862;
|
|
break;
|
|
case 7:
|
|
num = ((classJob != EClassJob.Dancer) ? 361445856 : 361445863);
|
|
break;
|
|
case 6:
|
|
num = ((classJob == EClassJob.Bard) ? 361445863 : 361445858);
|
|
break;
|
|
case 2:
|
|
result = false;
|
|
num = 361445866;
|
|
break;
|
|
case 1:
|
|
num = ((classJob == EClassJob.Machinist) ? 361445863 : 361445861);
|
|
break;
|
|
case 5:
|
|
result = true;
|
|
num = 361445866;
|
|
break;
|
|
case 0:
|
|
num = 361445856;
|
|
break;
|
|
case 4:
|
|
num = ((classJob == EClassJob.Archer) ? 361445863 : 361445860);
|
|
break;
|
|
case 8:
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool IsCaster(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob > EClassJob.Summoner) ? (-152910150) : (-152910151));
|
|
bool result = default(bool);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -152910147;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 5:
|
|
num = ((classJob - 25 <= EClassJob.Pugilist) ? (-152910149) : (-152910145));
|
|
break;
|
|
case 7:
|
|
num = ((classJob - 35 <= EClassJob.Gladiator) ? (-152910149) : (-152910148));
|
|
break;
|
|
case 3:
|
|
return result;
|
|
case 6:
|
|
result = true;
|
|
num = -152910146;
|
|
break;
|
|
case 2:
|
|
num = -152910155;
|
|
break;
|
|
case 8:
|
|
result = false;
|
|
num = -152910146;
|
|
break;
|
|
case 1:
|
|
num = ((classJob != EClassJob.Pictomancer) ? (-152910155) : (-152910149));
|
|
break;
|
|
case 4:
|
|
num = ((classJob == EClassJob.Thaumaturge) ? (-152910149) : (-152910152));
|
|
break;
|
|
case 0:
|
|
num = -152910151;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool IsDps(this EClassJob classJob)
|
|
{
|
|
int num = (classJob.IsMelee() ? 652988313 : 652988314);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 652988315;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
return true;
|
|
case 1:
|
|
num = (classJob.IsPhysicalRanged() ? 652988313 : 652988315);
|
|
break;
|
|
case 3:
|
|
num = 652988314;
|
|
break;
|
|
case 0:
|
|
return classJob.IsCaster();
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool DealsPhysicalDamage(this EClassJob classJob)
|
|
{
|
|
int num = (classJob.IsTank() ? (-1539913949) : (-1539913950));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1539913951;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
num = -1539913950;
|
|
break;
|
|
case 2:
|
|
return true;
|
|
case 1:
|
|
return classJob.IsPhysicalRanged();
|
|
case 3:
|
|
num = (classJob.IsMelee() ? (-1539913949) : (-1539913952));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static bool DealsMagicDamage(this EClassJob classJob)
|
|
{
|
|
int num = (classJob.IsHealer() ? (-686525847) : (-686525846));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -686525845;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
return true;
|
|
case 1:
|
|
return classJob.IsCaster();
|
|
case 0:
|
|
goto IL_004f;
|
|
}
|
|
continue;
|
|
IL_004f:
|
|
num = -686525846;
|
|
}
|
|
}
|
|
|
|
public static bool IsCrafter(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob < EClassJob.Carpenter) ? 1685178901 : 1685178902);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1685178903;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_0042;
|
|
case 1:
|
|
return classJob <= EClassJob.Culinarian;
|
|
case 2:
|
|
return false;
|
|
}
|
|
continue;
|
|
IL_0042:
|
|
num = 1685178902;
|
|
}
|
|
}
|
|
|
|
public static bool IsGatherer(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob < EClassJob.Miner) ? (-1618937167) : (-1618937166));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1618937168;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 0:
|
|
goto IL_0043;
|
|
case 1:
|
|
return false;
|
|
case 2:
|
|
return classJob <= EClassJob.Fisher;
|
|
}
|
|
continue;
|
|
IL_0043:
|
|
num = -1618937166;
|
|
}
|
|
}
|
|
|
|
public static bool IsLimitedJob(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob == EClassJob.BlueMage) ? 421326945 : 421326949);
|
|
bool result = default(bool);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 421326945;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
num = 421326949;
|
|
break;
|
|
case 1:
|
|
return result;
|
|
case 0:
|
|
result = true;
|
|
num = 421326944;
|
|
break;
|
|
case 4:
|
|
num = ((classJob != EClassJob.Beastmaster) ? 421326946 : 421326945);
|
|
break;
|
|
case 3:
|
|
result = false;
|
|
num = 421326944;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.NoInlining)]
|
|
public static string ToFriendlyString(this EClassJob classJob)
|
|
{
|
|
int num = ((classJob == EClassJob.WhiteMage) ? 1982513328 : 1982513340);
|
|
string result = default(string);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 1982513334;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
default:
|
|
continue;
|
|
case 8:
|
|
num = 1982513340;
|
|
continue;
|
|
case 0:
|
|
result = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(1101047022);
|
|
num = 1982513330;
|
|
continue;
|
|
case 6:
|
|
result = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(-1414195190);
|
|
num = 1982513330;
|
|
continue;
|
|
case 5:
|
|
result = global::_003CModule_003E._206A_202C_200C_206F_202A_200C_200F_206F_202B_202B_200D_206F_206D_200E_206A_206B_202A_200F_200B_206C_202B_202A_202B_206C_200F_206C_202C_202C_200C_206C_206F_200C_200B_202D_200E_202A_202A_206B_206B_200F_202E<string>(-1506629366);
|
|
num = 1982513330;
|
|
continue;
|
|
case 2:
|
|
num = 1982513329;
|
|
continue;
|
|
case 3:
|
|
goto IL_00bb;
|
|
case 10:
|
|
num = ((classJob == EClassJob.BlackMage) ? 1982513331 : 1982513343);
|
|
continue;
|
|
case 4:
|
|
return result;
|
|
case 1:
|
|
goto IL_00f1;
|
|
case 9:
|
|
switch (classJob)
|
|
{
|
|
case EClassJob.RedMage:
|
|
break;
|
|
case EClassJob.BlueMage:
|
|
goto IL_00bb;
|
|
case EClassJob.DarkKnight:
|
|
goto IL_00f1;
|
|
default:
|
|
goto IL_0124;
|
|
case EClassJob.Astrologian:
|
|
case EClassJob.Samurai:
|
|
goto end_IL_002d;
|
|
}
|
|
goto case 0;
|
|
case 7:
|
|
break;
|
|
IL_0124:
|
|
num = 1982513332;
|
|
continue;
|
|
IL_00f1:
|
|
result = global::_003CModule_003E._206A_206D_202C_206E_206D_206E_202A_200F_200D_206A_200F_206C_202C_202D_206D_206A_200D_200F_206A_206C_202C_206D_206E_200F_200F_200C_206B_200B_206B_206E_202B_206B_200E_200E_200B_206F_200F_202E_200C_200C_202E<string>(2050012990);
|
|
num = 1982513330;
|
|
continue;
|
|
IL_00bb:
|
|
result = global::_003CModule_003E._202E_202C_206D_206B_202B_202D_206D_202E_206F_202E_202A_206A_206A_202B_206A_202D_202C_206C_206B_202C_206E_202B_200E_206E_206A_206C_200D_200D_200F_200B_202C_200B_200E_206F_202C_200F_202D_202A_206E_202B_202E<string>(656115751);
|
|
num = 1982513330;
|
|
continue;
|
|
end_IL_002d:
|
|
break;
|
|
}
|
|
result = classJob.ToString();
|
|
num = 1982513330;
|
|
}
|
|
}
|
|
|
|
public static bool IsInCategory(this EClassJob classJob, ClassJobCategory category)
|
|
{
|
|
int num;
|
|
bool result = default(bool);
|
|
switch (classJob)
|
|
{
|
|
default:
|
|
num = -1564064857;
|
|
goto IL_00c1;
|
|
case EClassJob.Dragoon:
|
|
result = category.DRG;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
case EClassJob.Samurai:
|
|
goto IL_01af;
|
|
case EClassJob.Miner:
|
|
goto IL_01c2;
|
|
case EClassJob.Beastmaster:
|
|
goto IL_01d5;
|
|
case EClassJob.Carpenter:
|
|
goto IL_01e8;
|
|
case EClassJob.Astrologian:
|
|
goto IL_01fb;
|
|
case EClassJob.Fisher:
|
|
goto IL_020e;
|
|
case EClassJob.Sage:
|
|
goto IL_022c;
|
|
case EClassJob.Goldsmith:
|
|
goto IL_023f;
|
|
case EClassJob.Thaumaturge:
|
|
goto IL_0252;
|
|
case EClassJob.WhiteMage:
|
|
goto IL_0265;
|
|
case EClassJob.Lancer:
|
|
goto IL_0278;
|
|
case EClassJob.Leatherworker:
|
|
goto IL_028b;
|
|
case EClassJob.Pictomancer:
|
|
goto IL_029e;
|
|
case EClassJob.Botanist:
|
|
goto IL_02b1;
|
|
case EClassJob.Pugilist:
|
|
goto IL_02c4;
|
|
case EClassJob.Reaper:
|
|
goto IL_02d7;
|
|
case EClassJob.Viper:
|
|
goto IL_02ea;
|
|
case EClassJob.Paladin:
|
|
goto IL_02fd;
|
|
case EClassJob.Weaver:
|
|
goto IL_0310;
|
|
case EClassJob.Rogue:
|
|
goto IL_0323;
|
|
case EClassJob.Gunbreaker:
|
|
goto IL_0336;
|
|
case EClassJob.Culinarian:
|
|
goto IL_0354;
|
|
case EClassJob.Arcanist:
|
|
goto IL_0367;
|
|
case EClassJob.Blacksmith:
|
|
goto IL_037a;
|
|
case EClassJob.Summoner:
|
|
goto IL_038d;
|
|
case EClassJob.Marauder:
|
|
goto IL_03a0;
|
|
case EClassJob.BlueMage:
|
|
goto IL_03b3;
|
|
case EClassJob.Adventurer:
|
|
goto IL_03c6;
|
|
case EClassJob.Ninja:
|
|
goto IL_03d9;
|
|
case EClassJob.Monk:
|
|
goto IL_03ec;
|
|
case EClassJob.Archer:
|
|
goto IL_03ff;
|
|
case EClassJob.Alchemist:
|
|
goto IL_0412;
|
|
case EClassJob.Bard:
|
|
goto IL_0425;
|
|
case EClassJob.BlackMage:
|
|
goto IL_043a;
|
|
case EClassJob.Scholar:
|
|
goto IL_044d;
|
|
case EClassJob.Conjurer:
|
|
goto IL_0460;
|
|
case EClassJob.Machinist:
|
|
goto IL_0473;
|
|
case EClassJob.Gladiator:
|
|
goto IL_0486;
|
|
case EClassJob.Warrior:
|
|
goto IL_0499;
|
|
case EClassJob.Armorer:
|
|
goto IL_04ac;
|
|
case EClassJob.DarkKnight:
|
|
goto IL_04bf;
|
|
case EClassJob.Dancer:
|
|
goto IL_04d2;
|
|
case EClassJob.RedMage:
|
|
goto IL_04e5;
|
|
IL_00c1:
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -1564064836;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 31:
|
|
goto end_IL_00c1;
|
|
case 5:
|
|
goto IL_01af;
|
|
case 4:
|
|
goto IL_01c2;
|
|
case 45:
|
|
goto IL_01d5;
|
|
case 14:
|
|
goto IL_01e8;
|
|
case 34:
|
|
goto IL_01fb;
|
|
case 18:
|
|
goto IL_020e;
|
|
case 9:
|
|
num = -1564064857;
|
|
break;
|
|
case 6:
|
|
goto IL_022c;
|
|
case 41:
|
|
goto IL_023f;
|
|
case 11:
|
|
goto IL_0252;
|
|
case 21:
|
|
goto IL_0265;
|
|
case 12:
|
|
goto IL_0278;
|
|
case 39:
|
|
goto IL_028b;
|
|
case 16:
|
|
goto IL_029e;
|
|
case 25:
|
|
goto IL_02b1;
|
|
case 44:
|
|
goto IL_02c4;
|
|
case 1:
|
|
goto IL_02d7;
|
|
case 2:
|
|
goto IL_02ea;
|
|
case 47:
|
|
goto IL_02fd;
|
|
case 37:
|
|
goto IL_0310;
|
|
case 38:
|
|
goto IL_0323;
|
|
case 36:
|
|
goto IL_0336;
|
|
case 27:
|
|
num = -1564064867;
|
|
break;
|
|
case 46:
|
|
goto IL_0354;
|
|
case 20:
|
|
goto IL_0367;
|
|
case 30:
|
|
goto IL_037a;
|
|
case 23:
|
|
goto IL_038d;
|
|
case 17:
|
|
goto IL_03a0;
|
|
case 29:
|
|
goto IL_03b3;
|
|
case 10:
|
|
goto IL_03c6;
|
|
case 3:
|
|
goto IL_03d9;
|
|
case 35:
|
|
goto IL_03ec;
|
|
case 26:
|
|
goto IL_03ff;
|
|
case 13:
|
|
goto IL_0412;
|
|
case 7:
|
|
goto IL_0425;
|
|
case 40:
|
|
return result;
|
|
case 15:
|
|
goto IL_043a;
|
|
case 0:
|
|
goto IL_044d;
|
|
case 43:
|
|
goto IL_0460;
|
|
case 42:
|
|
goto IL_0473;
|
|
case 8:
|
|
goto IL_0486;
|
|
case 28:
|
|
goto IL_0499;
|
|
case 22:
|
|
goto IL_04ac;
|
|
case 32:
|
|
goto IL_04bf;
|
|
case 19:
|
|
goto IL_04d2;
|
|
case 24:
|
|
goto IL_04e5;
|
|
case 33:
|
|
result = false;
|
|
num = -1564064876;
|
|
break;
|
|
}
|
|
continue;
|
|
end_IL_00c1:
|
|
break;
|
|
}
|
|
goto case EClassJob.Dragoon;
|
|
IL_04e5:
|
|
result = category.RDM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_04d2:
|
|
result = category.DNC;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_04bf:
|
|
result = category.DRK;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_04ac:
|
|
result = category.ARM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0499:
|
|
result = category.WAR;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0486:
|
|
result = category.GLA;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0473:
|
|
result = category.MCH;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0460:
|
|
result = category.CNJ;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_044d:
|
|
result = category.SCH;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_043a:
|
|
result = category.BLM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0425:
|
|
result = category.BRD;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0412:
|
|
result = category.ALC;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_03ff:
|
|
result = category.ARC;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_03ec:
|
|
result = category.MNK;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_03d9:
|
|
result = category.NIN;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_03c6:
|
|
result = category.ADV;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_03b3:
|
|
result = category.BLU;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_03a0:
|
|
result = category.MRD;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_038d:
|
|
result = category.SMN;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_037a:
|
|
result = category.BSM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0367:
|
|
result = category.ACN;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0354:
|
|
result = category.CUL;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0336:
|
|
result = category.GNB;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0323:
|
|
result = category.ROG;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0310:
|
|
result = category.WVR;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_02fd:
|
|
result = category.PLD;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_02ea:
|
|
result = category.VPR;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_02d7:
|
|
result = category.RPR;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_02c4:
|
|
result = category.PGL;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_02b1:
|
|
result = category.BTN;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_029e:
|
|
result = category.PCT;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_028b:
|
|
result = category.LTW;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0278:
|
|
result = category.LNC;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0265:
|
|
result = category.WHM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_0252:
|
|
result = category.THM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_023f:
|
|
result = category.GSM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_022c:
|
|
result = category.SGE;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_020e:
|
|
result = category.FSH;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_01fb:
|
|
result = category.AST;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_01e8:
|
|
result = category.CRP;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_01d5:
|
|
result = category.Unknown0;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_01c2:
|
|
result = category.MIN;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
IL_01af:
|
|
result = category.SAM;
|
|
num = -1564064876;
|
|
goto IL_00c1;
|
|
}
|
|
}
|
|
|
|
public static int GetLevel(this EClassJob classJob, IDataManager dataManager)
|
|
{
|
|
ClassJob? rowOrDefault = dataManager.GetExcelSheet<ClassJob>().GetRowOrDefault((uint)classJob);
|
|
int num = ((!rowOrDefault.HasValue) ? (-2126726363) : (-2126726364));
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = -2126726361;
|
|
int num4 = num2;
|
|
switch ((num4 | num3) - (num4 & num3))
|
|
{
|
|
case 2:
|
|
return 0;
|
|
case 3:
|
|
num = ((rowOrDefault.Value.ExpArrayIndex >= 0) ? (-2126726362) : (-2126726363));
|
|
break;
|
|
case 1:
|
|
return PlayerStateHelper.GetClassJobLevel(rowOrDefault.Value.ExpArrayIndex);
|
|
case 0:
|
|
num = -2126726364;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static int GetExperience(this EClassJob classJob, IDataManager dataManager)
|
|
{
|
|
ClassJob? rowOrDefault = dataManager.GetExcelSheet<ClassJob>().GetRowOrDefault((uint)classJob);
|
|
int num = ((!rowOrDefault.HasValue) ? 638644957 : 638644959);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 638644958;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
num = 638644959;
|
|
break;
|
|
case 0:
|
|
return PlayerStateHelper.GetClassJobExperience(rowOrDefault.Value.ExpArrayIndex);
|
|
case 3:
|
|
return 0;
|
|
case 1:
|
|
num = ((rowOrDefault.Value.ExpArrayIndex >= 0) ? 638644958 : 638644957);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static List<Action> GetActions(this EClassJob classJob, IDataManager dataManager)
|
|
{
|
|
return (from a in dataManager.GetExcelSheet<Action>().Where(delegate(Action a)
|
|
{
|
|
int num = ((a.ClassJob.RowId != (uint)classJob) ? 783603201 : 783603202);
|
|
while (true)
|
|
{
|
|
int num2 = num;
|
|
int num3 = 783603203;
|
|
int num4 = num2;
|
|
int num5 = num4 + num3;
|
|
int num6 = num4 & num3;
|
|
switch (num5 - (num6 + num6))
|
|
{
|
|
case 2:
|
|
return false;
|
|
case 1:
|
|
return a.ClassJobLevel > 0;
|
|
case 0:
|
|
goto IL_0064;
|
|
}
|
|
continue;
|
|
IL_0064:
|
|
num = 783603202;
|
|
}
|
|
})
|
|
orderby a.ClassJobLevel
|
|
select a).ToList();
|
|
}
|
|
}
|