punish v6.8.18.0

This commit is contained in:
alydev 2025-10-09 07:47:19 +10:00
commit cfb4dea47e
316 changed files with 554088 additions and 0 deletions

View file

@ -0,0 +1,48 @@
namespace LLib.GameData;
public enum EClassJob : uint
{
Adventurer,
Gladiator,
Pugilist,
Marauder,
Lancer,
Archer,
Conjurer,
Thaumaturge,
Carpenter,
Blacksmith,
Armorer,
Goldsmith,
Leatherworker,
Weaver,
Alchemist,
Culinarian,
Miner,
Botanist,
Fisher,
Paladin,
Monk,
Warrior,
Dragoon,
Bard,
WhiteMage,
BlackMage,
Arcanist,
Summoner,
Scholar,
Rogue,
Ninja,
Machinist,
DarkKnight,
Astrologian,
Samurai,
RedMage,
BlueMage,
Gunbreaker,
Dancer,
Reaper,
Sage,
Viper,
Pictomancer
}

View file

@ -0,0 +1,188 @@
using System;
using System.Linq;
namespace LLib.GameData;
public static class EClassJobExtensions
{
public static bool IsClass(this EClassJob classJob)
{
bool flag;
switch (classJob)
{
case EClassJob.Gladiator:
case EClassJob.Pugilist:
case EClassJob.Marauder:
case EClassJob.Lancer:
case EClassJob.Archer:
case EClassJob.Conjurer:
case EClassJob.Thaumaturge:
case EClassJob.Arcanist:
case EClassJob.Rogue:
flag = true;
break;
default:
flag = false;
break;
}
if (!flag && !classJob.IsCrafter())
{
return classJob.IsGatherer();
}
return true;
}
public static bool HasBaseClass(this EClassJob classJob)
{
return (from x in Enum.GetValues<EClassJob>()
where x.IsClass()
select x).Any((EClassJob x) => x.AsJob() == classJob);
}
public static EClassJob AsJob(this EClassJob classJob)
{
return classJob switch
{
EClassJob.Gladiator => EClassJob.Paladin,
EClassJob.Marauder => EClassJob.Warrior,
EClassJob.Pugilist => EClassJob.Monk,
EClassJob.Lancer => EClassJob.Dragoon,
EClassJob.Rogue => EClassJob.Ninja,
EClassJob.Archer => EClassJob.Bard,
EClassJob.Conjurer => EClassJob.WhiteMage,
EClassJob.Thaumaturge => EClassJob.BlackMage,
EClassJob.Arcanist => EClassJob.Summoner,
_ => classJob,
};
}
public static bool IsTank(this EClassJob classJob)
{
switch (classJob)
{
case EClassJob.Gladiator:
case EClassJob.Marauder:
case EClassJob.Paladin:
case EClassJob.Warrior:
case EClassJob.DarkKnight:
case EClassJob.Gunbreaker:
return true;
default:
return false;
}
}
public static bool IsHealer(this EClassJob classJob)
{
switch (classJob)
{
case EClassJob.Conjurer:
case EClassJob.WhiteMage:
case EClassJob.Scholar:
case EClassJob.Astrologian:
case EClassJob.Sage:
return true;
default:
return false;
}
}
public static bool IsMelee(this EClassJob classJob)
{
switch (classJob)
{
case EClassJob.Pugilist:
case EClassJob.Lancer:
case EClassJob.Monk:
case EClassJob.Dragoon:
case EClassJob.Rogue:
case EClassJob.Ninja:
case EClassJob.Samurai:
case EClassJob.Reaper:
case EClassJob.Viper:
return true;
default:
return false;
}
}
public static bool IsPhysicalRanged(this EClassJob classJob)
{
switch (classJob)
{
case EClassJob.Archer:
case EClassJob.Bard:
case EClassJob.Machinist:
case EClassJob.Dancer:
return true;
default:
return false;
}
}
public static bool IsCaster(this EClassJob classJob)
{
switch (classJob)
{
case EClassJob.Thaumaturge:
case EClassJob.BlackMage:
case EClassJob.Arcanist:
case EClassJob.Summoner:
case EClassJob.RedMage:
case EClassJob.BlueMage:
case EClassJob.Pictomancer:
return true;
default:
return false;
}
}
public static bool DealsPhysicalDamage(this EClassJob classJob)
{
if (!classJob.IsTank() && !classJob.IsMelee())
{
return classJob.IsPhysicalRanged();
}
return true;
}
public static bool DealsMagicDamage(this EClassJob classJob)
{
if (!classJob.IsHealer())
{
return classJob.IsCaster();
}
return true;
}
public static bool IsCrafter(this EClassJob classJob)
{
if (classJob >= EClassJob.Carpenter)
{
return classJob <= EClassJob.Culinarian;
}
return false;
}
public static bool IsGatherer(this EClassJob classJob)
{
if (classJob >= EClassJob.Miner)
{
return classJob <= EClassJob.Fisher;
}
return false;
}
public static string ToFriendlyString(this EClassJob classJob)
{
return classJob switch
{
EClassJob.WhiteMage => "White Mage",
EClassJob.BlackMage => "Black Mage",
EClassJob.DarkKnight => "Dark Knight",
EClassJob.RedMage => "Red Mage",
EClassJob.BlueMage => "Blue Mage",
_ => classJob.ToString(),
};
}
}

View file

@ -0,0 +1,60 @@
namespace LLib.GameData;
public enum ETerritoryIntendedUse : byte
{
CityArea = 0,
OpenWorld = 1,
Inn = 2,
Dungeon = 3,
VariantDungeon = 4,
Gaol = 5,
StartingArea = 6,
QuestArea = 7,
AllianceRaid = 8,
QuestBattle = 9,
Trial = 10,
QuestArea2 = 12,
ResidentialArea = 13,
HousingInstances = 14,
QuestArea3 = 15,
Raid = 16,
Raid2 = 17,
Frontline = 18,
ChocoboSquare = 20,
RestorationEvent = 21,
Sanctum = 22,
GoldSaucer = 23,
LordOfVerminion = 25,
Diadem = 26,
HallOfTheNovice = 27,
CrystallineConflict = 28,
QuestBattle2 = 29,
Barracks = 30,
DeepDungeon = 31,
SeasonalEvent = 32,
TreasureMapDuty = 33,
SeasonalEventDuty = 34,
Battlehall = 35,
CrystallineConflict2 = 37,
Diadem2 = 38,
RivalWings = 39,
Unknown1 = 40,
Eureka = 41,
SeasonalEvent2 = 43,
LeapOfFaith = 44,
MaskedCarnivale = 45,
OceanFishing = 46,
Diadem3 = 47,
Bozja = 48,
IslandSanctuary = 49,
Battlehall2 = 50,
Battlehall3 = 51,
LargeScaleRaid = 52,
LargeScaleSavageRaid = 53,
QuestArea4 = 54,
TribalInstance = 56,
CriterionDuty = 57,
CriterionSavageDuty = 58,
Blunderville = 59,
CosmicExploration = 60
}