mirror of
https://github.com/kwsch/pkNX.git
synced 2026-09-13 04:55:35 -05:00
LZA 1.0.2
Cumulative changes from the team. Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com> Co-Authored-By: SciresM <8676005+SciresM@users.noreply.github.com> Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
namespace pkNX.Structures.FlatBuffers.SV;
|
||||
|
||||
/// <summary>
|
||||
/// Personal Info class with values from the <see cref="GameVersion.PLA"/> games.
|
||||
/// Personal Info class with values from the <see cref="GameVersion.SV"/> games.
|
||||
/// </summary>
|
||||
public sealed class PersonalInfo9SV(PersonalInfo fb) : IPersonalInfo
|
||||
{
|
||||
|
||||
@@ -56,22 +56,27 @@ public byte[] GetData(ulong offset, ulong length)
|
||||
return Reader.ReadBytes((int)length);
|
||||
}
|
||||
|
||||
public void GetData(ulong offset, ulong length, Span<byte> data)
|
||||
{
|
||||
Reader.BaseStream.Seek((long)offset, SeekOrigin.Begin);
|
||||
_ = Reader.Read(data[..(int)length]);
|
||||
}
|
||||
|
||||
public TrinityPak GetPak(int index)
|
||||
{
|
||||
var data = GetPakData(index);
|
||||
return TrinityPak.Serializer.Parse(data, FlatBufferDeserializationOption.GreedyMutable);
|
||||
}
|
||||
|
||||
public ulong GetPakHash(int index) => FnvHash.HashFnv1a_64(GetPackPath(index));
|
||||
public ulong GetPakLength(int index) => FileData.FileInfos[index].FileSize;
|
||||
public ulong GetPakOffset(ulong hash) => Meta.GetFileOffset(hash);
|
||||
|
||||
public byte[] GetPakData(int index)
|
||||
{
|
||||
var path = GetPackPath(index);
|
||||
var hash = FnvHash.HashFnv1a_64(path);
|
||||
var offset = Meta.GetFileOffset(hash);
|
||||
var info = FileData.FileInfos[index];
|
||||
var size = info.FileSize;
|
||||
|
||||
//Debug.WriteLine($"Found {index} at 0x{offset:X12}, Size={info.FileSize:X}, SubFileCount={info.FileCount}");
|
||||
|
||||
var size = GetPakLength(index);
|
||||
var hash = GetPakHash(index);
|
||||
var offset = GetPakOffset(hash);
|
||||
return GetData(offset, size);
|
||||
}
|
||||
|
||||
@@ -80,7 +85,7 @@ public byte[] GetPackedFile(ulong hash)
|
||||
var index = FileData.GetSubFileIndex(hash);
|
||||
var pak = GetPak((int)index);
|
||||
var file = pak.GetFileData(hash);
|
||||
return file.GetUncompressedData();
|
||||
return file.Decompress();
|
||||
}
|
||||
|
||||
public byte[] GetPackedFile(string path) => GetPackedFile(FnvHash.HashFnv1a_64(path));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Diagnostics;
|
||||
using pkNX.Containers;
|
||||
using System.IO.Compression; // Added for Zlib support
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.SV.Trinity;
|
||||
|
||||
@@ -34,17 +35,39 @@ private int BinarySearch(ulong hash)
|
||||
|
||||
public partial class TrinityPakFileData
|
||||
{
|
||||
public byte[] GetUncompressedData() => CompressionType switch
|
||||
{ // TODO: What specific ID is zlib?
|
||||
3 => Oodle.Decompress(Data.Span, (long)UncompressedSize)!, // Oodle
|
||||
0xFF => Data.ToArray(), // Uncompressed
|
||||
public byte[] Decompress() => CompressionType switch
|
||||
{
|
||||
DataCompressionType.None => Data.ToArray(), // Uncompressed
|
||||
DataCompressionType.Zlib => Zlib.Decompress(Data.Span, (int)UncompressedSize),
|
||||
DataCompressionType.Lz4 => LZ4.Decode(Data.Span, (int)UncompressedSize),
|
||||
>= DataCompressionType.OodleKraken and <= DataCompressionType.OodleHydra => Oodle.Decompress(Data.Span, (long)UncompressedSize)!, // Oodle
|
||||
_ => throw new ArgumentException($"Unknown compression type {CompressionType}"),
|
||||
};
|
||||
|
||||
public ReadOnlySpan<byte> GetUncompressedDataReadOnly() => CompressionType switch
|
||||
{ // TODO: What specific ID is zlib?
|
||||
3 => Oodle.Decompress(Data.Span, (long)UncompressedSize)!, // Oodle
|
||||
0xFF => Data.ToArray(), // Uncompressed
|
||||
_ => throw new ArgumentException($"Unknown compression type {CompressionType}"),
|
||||
public void DecompressTo(Span<byte> result)
|
||||
{
|
||||
if (CompressionType == DataCompressionType.None)
|
||||
Data.Span.CopyTo(result); // Uncompressed
|
||||
else if (CompressionType == DataCompressionType.Zlib)
|
||||
Zlib.Decompress(Data.Span, result);
|
||||
else if (CompressionType == DataCompressionType.Lz4)
|
||||
LZ4.Decode(Data.Span, result);
|
||||
else if (CompressionType is >= DataCompressionType.OodleKraken and <= DataCompressionType.OodleHydra)
|
||||
Oodle.TryDecompress(Data.Span, result, out _);
|
||||
else
|
||||
throw new ArgumentException($"Unknown compression type {CompressionType}");
|
||||
}
|
||||
|
||||
public static ReadOnlySpan<byte> Compress(ReadOnlySpan<byte> data, DataCompressionType type, OodleCompressionLevel level = OodleCompressionLevel.Optimal2) => type switch
|
||||
{
|
||||
DataCompressionType.None => data,
|
||||
DataCompressionType.Zlib => Zlib.Compress(data),
|
||||
DataCompressionType.Lz4 => LZ4.Encode(data),
|
||||
DataCompressionType.OodleKraken => Oodle.Compress(data, out _, OodleFormat.Kraken, level),
|
||||
DataCompressionType.OodleLeviathan => Oodle.Compress(data, out _, OodleFormat.Leviathan, level),
|
||||
DataCompressionType.OodleMermaid => Oodle.Compress(data, out _, OodleFormat.Mermaid, level),
|
||||
DataCompressionType.OodleSelkie => Oodle.Compress(data, out _, OodleFormat.Selkie, level),
|
||||
DataCompressionType.OodleHydra => Oodle.Compress(data, out _, OodleFormat.Hydra, level),
|
||||
_ => throw new NotImplementedException($"Compression type {type} is not implemented."),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using pkNX.Containers;
|
||||
using static System.Buffers.Binary.BinaryPrimitives;
|
||||
using System.Buffers;
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.SV.Trinity;
|
||||
|
||||
@@ -8,44 +8,69 @@ public static class TrinityPakExtractor
|
||||
public const string DumpArchiveExtracted = "extracted";
|
||||
private const string DumpArchivePak = "paks";
|
||||
|
||||
public static void DumpArchives(string pathRomFS, string outbasedir)
|
||||
public static void DumpArchives(string pathRomFS, string dirRootDump)
|
||||
{
|
||||
var pathFs = Path.Combine(pathRomFS, "arc", "data.trpfs");
|
||||
var pathFd = Path.Combine(pathRomFS, "arc", "data.trpfd");
|
||||
var reader = new TrinityFileSystemManager(pathFs, pathFd);
|
||||
Extract(outbasedir, reader);
|
||||
Extract(dirRootDump, reader);
|
||||
reader.Dispose();
|
||||
}
|
||||
|
||||
private static void Extract(string outbasedir, TrinityFileSystemManager manager)
|
||||
private static void Extract(string dirRoot, TrinityFileSystemManager manager)
|
||||
{
|
||||
var outpakdir = Path.Combine(outbasedir, DumpArchivePak);
|
||||
var outexdir = Path.Combine(outbasedir, DumpArchiveExtracted);
|
||||
Directory.CreateDirectory(outbasedir);
|
||||
Directory.CreateDirectory(outpakdir);
|
||||
Directory.CreateDirectory(outexdir);
|
||||
Directory.CreateDirectory(dirRoot);
|
||||
|
||||
var dirPak = Path.Combine(dirRoot, DumpArchivePak);
|
||||
Directory.CreateDirectory(dirPak);
|
||||
|
||||
var dirExtract = Path.Combine(dirRoot, DumpArchiveExtracted);
|
||||
Directory.CreateDirectory(dirExtract);
|
||||
|
||||
var count = manager.FileCount;
|
||||
for (var i = 0; i < count; i++)
|
||||
ExportArc(manager, i, outpakdir, outexdir);
|
||||
ExportArc(manager, i, dirPak, dirExtract);
|
||||
}
|
||||
|
||||
private static void ExportArc(TrinityFileSystemManager reader, int packIndex, string outpakdir, string outexdir)
|
||||
private static void ExportArc(TrinityFileSystemManager reader, int packIndex, string dirPak, string dirExtract)
|
||||
{
|
||||
var packFilePath = reader.GetPackPath(packIndex);
|
||||
var outpakpath = Path.Combine(outpakdir, packFilePath);
|
||||
var dirName = Path.GetDirectoryName(outpakpath);
|
||||
var pool = ArrayPool<byte>.Shared;
|
||||
var hash = reader.GetPakHash(packIndex);
|
||||
var length = reader.GetPakLength(packIndex);
|
||||
var offset = reader.GetPakOffset(hash);
|
||||
var rent = pool.Rent((int)length);
|
||||
var data = rent.AsMemory(0, (int)length);
|
||||
try
|
||||
{
|
||||
reader.GetData(offset, length, data.Span);
|
||||
var packFilePath = reader.GetPackPath(packIndex);
|
||||
ExportPackFile(data.Span, dirPak, packFilePath);
|
||||
ExportPackExtract(data, dirExtract, packFilePath);
|
||||
}
|
||||
finally
|
||||
{
|
||||
data.Span.Clear();
|
||||
pool.Return(rent);
|
||||
}
|
||||
}
|
||||
|
||||
private static void ExportPackFile(ReadOnlySpan<byte> data, string dir, string pakFilePath)
|
||||
{
|
||||
var fileName = Path.Combine(dir, pakFilePath);
|
||||
var dirName = Path.GetDirectoryName(fileName);
|
||||
if (string.IsNullOrEmpty(dirName))
|
||||
throw new Exception($"{outpakpath} directory name is null");
|
||||
throw new Exception($"{fileName} directory name is null");
|
||||
Directory.CreateDirectory(dirName);
|
||||
|
||||
var data = reader.GetPakData(packIndex);
|
||||
File.WriteAllBytes(outpakpath, data);
|
||||
File.WriteAllBytes(fileName, data);
|
||||
}
|
||||
|
||||
var outexpakdir = Path.Combine(outexdir, packFilePath);
|
||||
Directory.CreateDirectory(outexpakdir);
|
||||
var trpak = FlatBufferConverter.DeserializeFrom<TrinityPak>(data);
|
||||
ExtractPack(trpak, outexpakdir);
|
||||
private static void ExportPackExtract(Memory<byte> data, string dir, string pakFilePath)
|
||||
{
|
||||
var folder = Path.Combine(dir, pakFilePath);
|
||||
Directory.CreateDirectory(folder);
|
||||
var obj = FlatBufferConverter.DeserializeFrom<TrinityPak>(data);
|
||||
ExtractPack(obj, folder);
|
||||
}
|
||||
|
||||
private static void ExtractPack(TrinityPak trpak, string outexpakdir)
|
||||
@@ -54,33 +79,28 @@ private static void ExtractPack(TrinityPak trpak, string outexpakdir)
|
||||
WriteFile(trpak.Files[i], trpak.Hashes[i], outexpakdir, i);
|
||||
}
|
||||
|
||||
private static void WriteFile(TrinityPakFileData file, ulong hash, string outexpakdir, int fileIndex)
|
||||
private static void WriteFile(TrinityPakFileData file, ulong hash, string dir, int fileIndex)
|
||||
{
|
||||
var decompressed = file.GetUncompressedDataReadOnly();
|
||||
var ext = GuessExtension(decompressed);
|
||||
if (file.CompressionType is DataCompressionType.None)
|
||||
{
|
||||
WriteFile(file.Data.Span, hash, dir, fileIndex);
|
||||
return;
|
||||
}
|
||||
|
||||
var filepath = Path.Combine(outexpakdir, $"{fileIndex:0000} - {hash:X16}.{ext}");
|
||||
//Debug.WriteLine($" * File, CompressionType={file.CompressionType}, CompressedSize={file.Data.Length:X}, UncompressedSize={file.UncompressedSize}, Field_00={file.Field_00}, Field_01={file.Field_01}");
|
||||
|
||||
using var fs = File.Create(filepath);
|
||||
fs.Write(decompressed);
|
||||
var pool = ArrayPool<byte>.Shared;
|
||||
var length = (int)file.UncompressedSize;
|
||||
var rent = pool.Rent(length);
|
||||
var decompressed = rent.AsSpan(0, length);
|
||||
file.DecompressTo(decompressed);
|
||||
WriteFile(decompressed, hash, dir, fileIndex);
|
||||
decompressed.Clear();
|
||||
pool.Return(rent);
|
||||
}
|
||||
|
||||
private static string GuessExtension(ReadOnlySpan<byte> data)
|
||||
private static void WriteFile(ReadOnlySpan<byte> decompressed, ulong hash, string dir, int fileIndex)
|
||||
{
|
||||
const string defaultExtension = "bin";
|
||||
if (data.Length < 8)
|
||||
return defaultExtension;
|
||||
var u32 = ReadUInt32LittleEndian(data);
|
||||
if (ReadUInt32LittleEndian(data[4..8]) == 0x53424642)
|
||||
return "bfbs";
|
||||
return u32 switch
|
||||
{
|
||||
AHTB.Magic => "ahtb",
|
||||
0x43524153 => "sarc",
|
||||
0x58544E42 => "bntx",
|
||||
0x63726173 => "sarc",
|
||||
_ => defaultExtension,
|
||||
};
|
||||
var ext = TrinityUtil.GuessExtension(decompressed);
|
||||
var filepath = Path.Combine(dir, $"{fileIndex:0000} - {hash:X16}.{ext}");
|
||||
File.WriteAllBytes(filepath, decompressed);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -259,8 +259,8 @@ private static void DumpParticleComponent(Memory<byte> data, TextWriter tw, int
|
||||
{
|
||||
var props = FlatBufferConverter.DeserializeFrom<TrinityParticleComponent>(data);
|
||||
Write(tw, depth, $"{nameof(props.ParticleFile)}: {props.ParticleFile}");
|
||||
Write(tw, depth, $"{nameof(props.ParticleName)}: {props.ParticleName}");
|
||||
Write(tw, depth, $"{nameof(props.ParticleParent)}: {props.ParticleParent}");
|
||||
Write(tw, depth, $"{nameof(props.ParticleName)}: {props.ParticleName} ({FnvHash.HashFnv1a_64(props.ParticleName):X16})");
|
||||
Write(tw, depth, $"{nameof(props.ParticleParent)}: {props.ParticleParent} ({FnvHash.HashFnv1a_64(props.ParticleParent):X16})");
|
||||
}
|
||||
|
||||
private static void DumpCollisionComponent(Memory<byte> data, TextWriter tw, int depth)
|
||||
@@ -321,7 +321,7 @@ private static void DumpObjectSwitcher(Memory<byte> data, TextWriter tw, int dep
|
||||
private static void DumpObjectTemplate(Memory<byte> data, TextWriter tw, int depth)
|
||||
{
|
||||
var props = FlatBufferConverter.DeserializeFrom<TrinitySceneObjectTemplateData>(data);
|
||||
Write(tw, depth, $"{nameof(props.ObjectTemplateName)}: {props.ObjectTemplateName}");
|
||||
Write(tw, depth, $"{nameof(props.ObjectTemplateName)}: {props.ObjectTemplateName} ({FnvHash.HashFnv1a_64(props.ObjectTemplateName):X16})");
|
||||
Write(tw, depth, $"{nameof(props.ObjectTemplatePath)}: {props.ObjectTemplatePath}");
|
||||
Write(tw, depth, $"{nameof(props.ObjectTemplateExtra)}: {props.ObjectTemplateExtra}");
|
||||
Write(tw, depth, $"{nameof(props.Field03)}: {props.Field03}");
|
||||
@@ -331,7 +331,7 @@ private static void DumpObjectTemplate(Memory<byte> data, TextWriter tw, int dep
|
||||
private static void DumpScenePoint(Memory<byte> data, TextWriter tw, int depth)
|
||||
{
|
||||
var props = FlatBufferConverter.DeserializeFrom<TrinityScenePoint>(data);
|
||||
Write(tw, depth, $"{nameof(props.Name)}: {props.Name}");
|
||||
Write(tw, depth, $"{nameof(props.Name)}: {props.Name} ({FnvHash.HashFnv1a_64(props.Name):X16})");
|
||||
Write(tw, depth, $"{nameof(props.Position)}: {props.Position}");
|
||||
Write(tw, depth, $"{nameof(props.Field02)}: {props.Field02}");
|
||||
}
|
||||
@@ -339,7 +339,7 @@ private static void DumpScenePoint(Memory<byte> data, TextWriter tw, int depth)
|
||||
private static void DumpSceneObject(Memory<byte> data, TextWriter tw, int depth)
|
||||
{
|
||||
var props = FlatBufferConverter.DeserializeFrom<TrinitySceneObject>(data);
|
||||
Write(tw, depth, $"{nameof(props.ObjectName)}: {props.ObjectName}");
|
||||
Write(tw, depth, $"{nameof(props.ObjectName)}: {props.ObjectName} ({FnvHash.HashFnv1a_64(props.ObjectName):X16})");
|
||||
Write(tw, depth, $"{nameof(props.ObjectPosition)}:");
|
||||
Dump(props.ObjectPosition, tw, depth + 1);
|
||||
Write(tw, depth, $"{nameof(props.Field02)}: {props.Field02}");
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
namespace pkNX.Structures.FlatBuffers.SV.Trinity;
|
||||
attribute "fs_serializer";
|
||||
|
||||
enum CompressionType : ushort
|
||||
enum DataCompressionType : byte
|
||||
{
|
||||
None = 0,
|
||||
None = -1,
|
||||
Invalid = 0,
|
||||
Zlib = 1,
|
||||
Lz4 = 2,
|
||||
OodleKraken = 3,
|
||||
@@ -15,8 +16,8 @@ enum CompressionType : ushort
|
||||
|
||||
table TrinityPakFileData {
|
||||
Field_00:uint;
|
||||
CompressionType:ubyte;
|
||||
Field_02:ubyte;
|
||||
CompressionType:DataCompressionType;
|
||||
CompressionLevel:ubyte;
|
||||
UncompressedSize:ulong;
|
||||
Data:[ubyte] (required);
|
||||
}
|
||||
|
||||
57
FlatBuffers/ZA/Battle/Schemas/BattleSetting.fbs
Normal file
57
FlatBuffers/ZA/Battle/Schemas/BattleSetting.fbs
Normal file
@@ -0,0 +1,57 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_vector";
|
||||
attribute "fs_serializer";
|
||||
attribute "fs_valueStruct";
|
||||
attribute "fs_nonVirtual";
|
||||
attribute "fs_unsafeStructVector";
|
||||
|
||||
struct StealthRockDamageRatio {
|
||||
DemonType_1:int;
|
||||
DemonType_1_2:int;
|
||||
DemonType_1_4:int;
|
||||
DemonType_1_8:int;
|
||||
DemonType_1_16:int;
|
||||
DemonType_1_32:int;
|
||||
DemonType_2:int;
|
||||
DemonType_4:int;
|
||||
DemonType_8:int;
|
||||
DemonType_16:int;
|
||||
DemonType_32:int;
|
||||
}
|
||||
|
||||
struct DamagePerTypeAff {
|
||||
PerType_1_8:int;
|
||||
PerType_1_4:int;
|
||||
PerType_1_2:int;
|
||||
PerType_1:int;
|
||||
PerType_2:int;
|
||||
PerType_4:int;
|
||||
PerType_8:int;
|
||||
}
|
||||
|
||||
table BattleSetting (fs_serializer) {
|
||||
Damage_Per_Mega_Aura:int;
|
||||
Damage_Per_Random_Amplitude:int;
|
||||
Damage_Per_Trainer_Battle:int;
|
||||
Damage_Per_Wild_Battle:int;
|
||||
Damage_Per_Weather_Advantage:int;
|
||||
Damage_Per_Weather_Disadvantage:int;
|
||||
Damage_Per_Critical:int;
|
||||
Damage_Per_Critical_Plus:int;
|
||||
Damage_Per_Type_Match:int;
|
||||
Damage_Per_Type_Match_Plus:int;
|
||||
Damage_Per_Mamoru_Through_Plus:int;
|
||||
Damage_Per_Type_Aff:DamagePerTypeAff;
|
||||
Damage_Per_Type_Aff_Plus:DamagePerTypeAff;
|
||||
Damage_Per_Mega_Type_Aff:DamagePerTypeAff;
|
||||
Damage_Per_Mega_Type_Aff_Plus:DamagePerTypeAff;
|
||||
Reflector_Damage_Cut_Ratio:int;
|
||||
Hikarinokabe_Damage_Cut_Ratio:int;
|
||||
Needle_Guard_Damage_Demon:int;
|
||||
Stealth_Rock_Damage_Demon:StealthRockDamageRatio;
|
||||
Stealth_Rock_Damage_Demon_Plus:StealthRockDamageRatio;
|
||||
Critical_Rank_Ratio:[int] (required);
|
||||
}
|
||||
|
||||
root_type BattleSetting;
|
||||
27
FlatBuffers/ZA/Battle/Schemas/LockonDesc.fbs
Normal file
27
FlatBuffers/ZA/Battle/Schemas/LockonDesc.fbs
Normal file
@@ -0,0 +1,27 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
struct LockonDescRange {
|
||||
Width:float;
|
||||
Top:float;
|
||||
Bottom:float;
|
||||
Near:float;
|
||||
Far:float;
|
||||
}
|
||||
|
||||
struct LockonDescRangePreset {
|
||||
Enter:LockonDescRange;
|
||||
Change:LockonDescRange;
|
||||
Leave:LockonDescRange;
|
||||
}
|
||||
|
||||
table LockonDesc (fs_serializer) {
|
||||
Presets:[LockonDescRangePreset] (required);
|
||||
ReticleRange:float;
|
||||
UpdateCycle:ubyte;
|
||||
Target:ulong;
|
||||
UnlockDelay:float;
|
||||
}
|
||||
|
||||
root_type LockonDesc;
|
||||
28
FlatBuffers/ZA/Battle/Schemas/PlayerDamage.fbs
Normal file
28
FlatBuffers/ZA/Battle/Schemas/PlayerDamage.fbs
Normal file
@@ -0,0 +1,28 @@
|
||||
include "Shared/DevID.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
struct WazaDamage {
|
||||
WazaPower:uint;
|
||||
Damage:uint;
|
||||
}
|
||||
|
||||
struct PokemonDamageRatio {
|
||||
TotalPower:uint;
|
||||
Ratio:float;
|
||||
}
|
||||
|
||||
table MegaPokemonRatio {
|
||||
DevNo:DevID;
|
||||
Ratio:float;
|
||||
}
|
||||
|
||||
table PlayerDamage (fs_serializer) {
|
||||
Move:[WazaDamage] (required);
|
||||
PokemonRatio:[PokemonDamageRatio] (required);
|
||||
MegaPokemon:[MegaPokemonRatio] (required);
|
||||
}
|
||||
|
||||
root_type PlayerDamage;
|
||||
@@ -0,0 +1 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk" />
|
||||
26
FlatBuffers/ZA/Directory.Build.props
Normal file
26
FlatBuffers/ZA/Directory.Build.props
Normal file
@@ -0,0 +1,26 @@
|
||||
<Project>
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)..\'))" />
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\pkNX.Structures\pkNX.Structures.csproj" />
|
||||
<ProjectReference Include="..\..\pkNX.Structures.FlatBuffers\pkNX.Structures.FlatBuffers.csproj" />
|
||||
<FlatSharpSchema Include="Schemas\**\*.fbs">
|
||||
<IncludePath>..\..\pkNX.Structures.FlatBuffers\Schemas\</IncludePath>
|
||||
</FlatSharpSchema>
|
||||
</ItemGroup>
|
||||
|
||||
<Choose>
|
||||
<When Condition="'$(MSBuildProjectName)' != 'pkNX.Structures.FlatBuffers.ZA.Shared'">
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)Shared\pkNX.Structures.FlatBuffers.ZA.Shared.csproj" />
|
||||
<FlatSharpSchema Include="Schemas\**\*.fbs">
|
||||
<IncludePath>..\Shared\Schemas\</IncludePath>
|
||||
</FlatSharpSchema>
|
||||
</ItemGroup>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<PropertyGroup>
|
||||
</PropertyGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
</Project>
|
||||
14
FlatBuffers/ZA/Item/Schemas/Enums/ItemType.fbs
Normal file
14
FlatBuffers/ZA/Item/Schemas/Enums/ItemType.fbs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum ItemType : int {
|
||||
ITEMTYPE_0 = 0,
|
||||
ITEMTYPE_1 = 1,
|
||||
ITEMTYPE_2 = 2,
|
||||
ITEMTYPE_3 = 3,
|
||||
ITEMTYPE_4 = 4,
|
||||
ITEMTYPE_5 = 5,
|
||||
ITEMTYPE_6 = 6,
|
||||
ITEMTYPE_7 = 7,
|
||||
ITEMTYPE_8 = 8,
|
||||
ITEMTYPE_9 = 9,
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
include "Shared/ActivationConditionParam.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table ExtensionParam {
|
||||
PokemonPopId:string (required);
|
||||
ItemPopId:string;
|
||||
QuestId:string;
|
||||
WarpParamId:string;
|
||||
ImpactAroundId:string;
|
||||
}
|
||||
|
||||
table FieldWazaGimmickPrivate {
|
||||
GroupId:string;
|
||||
ObjectName:[string] (required);
|
||||
GimmickId:string;
|
||||
RepopInterval:int;
|
||||
RepopOffset:int;
|
||||
Spawner:bool;
|
||||
Extension:ExtensionParam (required);
|
||||
ActivationConditionParamList:[ActivationConditionParam];
|
||||
}
|
||||
|
||||
table FieldWazaGimmickPrivateDB {
|
||||
Table:[FieldWazaGimmickPrivate] (required);
|
||||
}
|
||||
|
||||
table FieldWazaGimmickPrivateDBArray (fs_serializer) {
|
||||
Table:[FieldWazaGimmickPrivateDB] (required);
|
||||
}
|
||||
|
||||
root_type FieldWazaGimmickPrivateDBArray;
|
||||
21
FlatBuffers/ZA/Item/Schemas/HudLineupArray.fbs
Normal file
21
FlatBuffers/ZA/Item/Schemas/HudLineupArray.fbs
Normal file
@@ -0,0 +1,21 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table HudInventory {
|
||||
Field00:uint;
|
||||
Items:[uint] (required);
|
||||
}
|
||||
|
||||
table HudLineup {
|
||||
Name:string (required);
|
||||
Field01:uint;
|
||||
Field02:uint;
|
||||
Inventory:[HudInventory] (required);
|
||||
}
|
||||
|
||||
table HudLineupArray (fs_serializer) {
|
||||
Table:[HudLineup] (required);
|
||||
}
|
||||
|
||||
root_type HudLineupArray;
|
||||
64
FlatBuffers/ZA/Item/Schemas/ItemDataArray.fbs
Normal file
64
FlatBuffers/ZA/Item/Schemas/ItemDataArray.fbs
Normal file
@@ -0,0 +1,64 @@
|
||||
include "Shared/WazaID.fbs";
|
||||
include "Enums/ItemType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table ItemData {
|
||||
Id:int (key);
|
||||
ItemType:ItemType;
|
||||
InternalName:string (required);
|
||||
IconName:string (required);
|
||||
Price:int;
|
||||
Pocket:int;
|
||||
SlotMaxNum:int;
|
||||
SortNum:int;
|
||||
PriceMegaShard:int;
|
||||
PriceColorfulScrew:int;
|
||||
CanNotHold:bool;
|
||||
MachineWaza:WazaID;
|
||||
MachineIndex:int;
|
||||
WorkRecvSleep:bool;
|
||||
WorkRecvPoison:bool;
|
||||
WorkRecvBurn:bool;
|
||||
WorkRecvFreeze:bool;
|
||||
WorkRecvParalyze:bool;
|
||||
WorkRecvConfuse:bool;
|
||||
WorkRecvMero:bool;
|
||||
WorkAttack:int;
|
||||
WorkDefense:int;
|
||||
WorkSpAttack:int;
|
||||
WorkSpDefense:int;
|
||||
WorkSpeed:int;
|
||||
WorkAccuracy:int;
|
||||
WorkCritical:int;
|
||||
WorkEffectGuard:int;
|
||||
MintNature:int;
|
||||
WorkRecvPower:int;
|
||||
HealPercentage:int;
|
||||
WorkRevival:int;
|
||||
RevivePercentage:int;
|
||||
ExpPointGain:int;
|
||||
MaxUseLevel:int; // 100 for Rare Candy, otherwise 0
|
||||
WorkFriendly1:int;
|
||||
WorkFriendly2:int;
|
||||
WorkFriendly3:int;
|
||||
WorkEvolutional:bool;
|
||||
WorkFormChange:bool;
|
||||
WorkStatusHp:int;
|
||||
WorkStatusAtk:int;
|
||||
WorkStatusDef:int;
|
||||
WorkStatusSpd:int;
|
||||
WorkStatusSAtk:int;
|
||||
WorkStatusSDef:int;
|
||||
EquipPower:int;
|
||||
AutoHealPriority:int;
|
||||
CanUseInBattle:bool;
|
||||
SwapIntoId:int; // only used for Pebble -> Zygardite
|
||||
}
|
||||
|
||||
table ItemDataArray (fs_serializer) {
|
||||
Table:[ItemData] (required);
|
||||
}
|
||||
|
||||
root_type ItemDataArray;
|
||||
27
FlatBuffers/ZA/Item/Schemas/ItemTableDataDBArray.fbs
Normal file
27
FlatBuffers/ZA/Item/Schemas/ItemTableDataDBArray.fbs
Normal file
@@ -0,0 +1,27 @@
|
||||
include "Shared/ActivationCondition.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table ItemLotteryData {
|
||||
ItemId:string (required);
|
||||
Weight:int;
|
||||
MaxCount:int;
|
||||
Type:int;
|
||||
ActivationConditionArray:[ActivationCondition];
|
||||
}
|
||||
|
||||
table ItemTableData {
|
||||
Id:string (required);
|
||||
ItemLotteryDataList:[ItemLotteryData] (required);
|
||||
}
|
||||
|
||||
table ItemTableDataDB {
|
||||
Data:[ItemTableData] (required);
|
||||
}
|
||||
|
||||
table ItemTableDataDBArray (fs_serializer) {
|
||||
Table:[ItemTableDataDB] (required);
|
||||
}
|
||||
|
||||
root_type ItemTableDataDBArray;
|
||||
@@ -0,0 +1,35 @@
|
||||
include "Shared/ActivationCondition.fbs";
|
||||
include "Shared/AppearanceInfo.fbs";
|
||||
include "Shared/CoolTimeInfo.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table RandomPopItemTableInfo {
|
||||
TableId:string (required);
|
||||
TableInfoActivationConditionArray:[ActivationCondition];
|
||||
}
|
||||
|
||||
table AppearanceSpawnerObjectInfo {
|
||||
ObjectName:string (required);
|
||||
CreateScenePath:string;
|
||||
AppearanceInfoData:AppearanceInfo;
|
||||
}
|
||||
|
||||
table RandomPopItemSpawnerData {
|
||||
Id:string (required);
|
||||
AppearanceSpawnerObjectInfoList:[AppearanceSpawnerObjectInfo] (required);
|
||||
CoolTime:CoolTimeInfo;
|
||||
ActivationConditionArray:[ActivationCondition] (required);
|
||||
TableInfoList:[RandomPopItemTableInfo] (required);
|
||||
}
|
||||
|
||||
table RandomPopItemSpawnerDataDB {
|
||||
Table:[RandomPopItemSpawnerData] (required);
|
||||
}
|
||||
|
||||
table RandomPopItemSpawnerDataDBArray (fs_serializer) {
|
||||
Table:[RandomPopItemSpawnerDataDB] (required);
|
||||
}
|
||||
|
||||
root_type RandomPopItemSpawnerDataDBArray;
|
||||
33
FlatBuffers/ZA/Item/Schemas/ShopLineupArray.fbs
Normal file
33
FlatBuffers/ZA/Item/Schemas/ShopLineupArray.fbs
Normal file
@@ -0,0 +1,33 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table ShopLineupArray (fs_serializer) {
|
||||
Table:[ShopLineup] (required);
|
||||
}
|
||||
|
||||
table ShopLineup {
|
||||
Name:string (required);
|
||||
Inventory:[ShopInventory] (required);
|
||||
}
|
||||
|
||||
table ShopInventory {
|
||||
Item:uint;
|
||||
DisplayIndex:uint;
|
||||
Conditions:[ShopInventoryCondition] (required);
|
||||
}
|
||||
|
||||
table ShopInventoryCondition {
|
||||
Table:[ShopInventoryConditionHolder] (required);
|
||||
}
|
||||
|
||||
table ShopInventoryConditionHolder {
|
||||
Table:[ShopInventoryAppearConditionsHolder] (required);
|
||||
}
|
||||
|
||||
table ShopInventoryAppearConditionsHolder {
|
||||
Condition:string;
|
||||
Comparison:uint;
|
||||
Arguments:[string];
|
||||
}
|
||||
|
||||
root_type ShopLineupArray;
|
||||
22
FlatBuffers/ZA/Item/Schemas/ZARewardItemDataArray.fbs
Normal file
22
FlatBuffers/ZA/Item/Schemas/ZARewardItemDataArray.fbs
Normal file
@@ -0,0 +1,22 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table ZARewardItem {
|
||||
ItemID:string (required);
|
||||
Quantity:uint;
|
||||
Weight:uint;
|
||||
}
|
||||
|
||||
table ZARewardItemData {
|
||||
ID:string (required);
|
||||
MinWinStreak:uint;
|
||||
MaxWinStreak:uint;
|
||||
Field03:byte;
|
||||
RewardItem:[ZARewardItem] (required);
|
||||
}
|
||||
|
||||
table ZARewardItemDataArray (fs_serializer) {
|
||||
Table:[ZARewardItemData] (required);
|
||||
}
|
||||
|
||||
root_type ZARewardItemDataArray;
|
||||
@@ -0,0 +1,2 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
</Project>
|
||||
25
FlatBuffers/ZA/Misc/Schemas/DressUpDataArray.fbs
Normal file
25
FlatBuffers/ZA/Misc/Schemas/DressUpDataArray.fbs
Normal file
@@ -0,0 +1,25 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table DressUpData {
|
||||
MagicValue:uint;
|
||||
Name:string (required);
|
||||
Field02:uint;
|
||||
Field03:string (required);
|
||||
Field04:uint;
|
||||
Field05:uint;
|
||||
Color1:string (required); // color
|
||||
Color2:string (required); // color
|
||||
Flag08:bool;
|
||||
Field09:uint;
|
||||
Field10:uint;
|
||||
Field11:string; // not required
|
||||
Flag12:bool;
|
||||
}
|
||||
|
||||
table DressUpDataArray (fs_serializer) {
|
||||
Table:[DressUpData] (required);
|
||||
}
|
||||
|
||||
root_type DressUpDataArray;
|
||||
23
FlatBuffers/ZA/Misc/Schemas/DressUpEnsembleDataArray.fbs
Normal file
23
FlatBuffers/ZA/Misc/Schemas/DressUpEnsembleDataArray.fbs
Normal file
@@ -0,0 +1,23 @@
|
||||
include "Shared/ActivationCondition.fbs";
|
||||
include "Shared/ActivationConditionElement.fbs";
|
||||
include "Shared/ActivationConditionParam.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table DressUpEnsemble {
|
||||
MagicValue:uint;
|
||||
Condition:[ActivationCondition] (required);
|
||||
}
|
||||
|
||||
table DressUpEnsembleData {
|
||||
MagicValue:uint;
|
||||
Ensemble:[DressUpEnsemble] (required);
|
||||
}
|
||||
|
||||
table DressUpEnsembleDataArray (fs_serializer) {
|
||||
Table:[DressUpEnsembleData] (required);
|
||||
}
|
||||
|
||||
root_type DressUpEnsembleDataArray;
|
||||
15
FlatBuffers/ZA/Misc/Schemas/DressUpGroupDataArray.fbs
Normal file
15
FlatBuffers/ZA/Misc/Schemas/DressUpGroupDataArray.fbs
Normal file
@@ -0,0 +1,15 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table DressUpGroupData {
|
||||
Name:string (required);
|
||||
Value:uint;
|
||||
Group:string (required);
|
||||
}
|
||||
|
||||
table DressUpGroupDataArray (fs_serializer) {
|
||||
Table:[DressUpGroupData] (required);
|
||||
}
|
||||
|
||||
root_type DressUpGroupDataArray;
|
||||
14
FlatBuffers/ZA/Misc/Schemas/EventConst.fbs
Normal file
14
FlatBuffers/ZA/Misc/Schemas/EventConst.fbs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table EventConst {
|
||||
Name:string (required);
|
||||
Value:string (required);
|
||||
}
|
||||
|
||||
table EventConstArray (fs_serializer) {
|
||||
Table:[EventConst] (required);
|
||||
}
|
||||
|
||||
root_type EventConstArray;
|
||||
36
FlatBuffers/ZA/Misc/Schemas/EventControl.fbs
Normal file
36
FlatBuffers/ZA/Misc/Schemas/EventControl.fbs
Normal file
@@ -0,0 +1,36 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table EventControl {
|
||||
Name:string (required);
|
||||
Field01:uint;
|
||||
Field02:bool;
|
||||
Field03:bool;
|
||||
Field04:bool; // unused?
|
||||
Field05:bool;
|
||||
Field06:bool;
|
||||
Field07:bool;
|
||||
Field08:string;
|
||||
Field09:bool; // unused?
|
||||
Field10:bool; // unused?
|
||||
Field11:bool;
|
||||
Field12:string;
|
||||
Field13:bool;
|
||||
Field14:bool;
|
||||
Field15:bool;
|
||||
Field16:bool;
|
||||
Field17:bool;
|
||||
Field18:string;
|
||||
Field19:string;
|
||||
Field20:bool;
|
||||
Field21:bool;
|
||||
Field22:bool;
|
||||
Field23:bool;
|
||||
}
|
||||
|
||||
table EventControlArray (fs_serializer) {
|
||||
Table:[EventControl] (required);
|
||||
}
|
||||
|
||||
root_type EventControlArray;
|
||||
13
FlatBuffers/ZA/Misc/Schemas/EventLabel.fbs
Normal file
13
FlatBuffers/ZA/Misc/Schemas/EventLabel.fbs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table EventLabel {
|
||||
Name:string (required);
|
||||
}
|
||||
|
||||
table EventLabelArray (fs_serializer) {
|
||||
Table:[EventLabel] (required);
|
||||
}
|
||||
|
||||
root_type EventLabelArray;
|
||||
100
FlatBuffers/ZA/Misc/Schemas/FieldWeatherTable.fbs
Normal file
100
FlatBuffers/ZA/Misc/Schemas/FieldWeatherTable.fbs
Normal file
@@ -0,0 +1,100 @@
|
||||
include "FieldWeatherType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
enum FieldClimateType : int
|
||||
{
|
||||
None = -1,
|
||||
Normal = 0,
|
||||
Cold = 1,
|
||||
Hot = 2,
|
||||
}
|
||||
|
||||
enum StringForStruct : int
|
||||
{
|
||||
NONE = -1,
|
||||
weather_table_main = 0,
|
||||
desert = 1,
|
||||
snowy = 2,
|
||||
room = 3,
|
||||
}
|
||||
|
||||
struct WeatherTimeZone {
|
||||
From:float;
|
||||
To:float;
|
||||
}
|
||||
|
||||
table WeatherSoundParam {
|
||||
SoundStateEventName:string;
|
||||
SoundRTPCValue:float;
|
||||
}
|
||||
|
||||
table WeatherSoundTable {
|
||||
Sunny:WeatherSoundParam;
|
||||
Cloudy:WeatherSoundParam;
|
||||
Rain:WeatherSoundParam;
|
||||
Storm:WeatherSoundParam;
|
||||
Mist:WeatherSoundParam;
|
||||
ClearSunny:WeatherSoundParam;
|
||||
Rainbow:WeatherSoundParam;
|
||||
}
|
||||
|
||||
struct WeatherReplace {
|
||||
OrgWeather:FieldWeatherType;
|
||||
ReplaceWeather:FieldWeatherType;
|
||||
ValidTimeZone:[WeatherTimeZone:3];
|
||||
}
|
||||
|
||||
struct FieldWeatherDefine {
|
||||
Type:FieldWeatherType;
|
||||
Prob:int;
|
||||
}
|
||||
|
||||
struct FieldWeatherDefineSub {
|
||||
MainWeather:FieldWeatherType;
|
||||
SubWeather:[FieldWeatherDefine:9];
|
||||
}
|
||||
|
||||
struct FieldWeatherSpecialTransition {
|
||||
Type:FieldWeatherType;
|
||||
TransitionFrom:FieldWeatherType;
|
||||
TransitionTo:FieldWeatherType;
|
||||
MinDuration:int;
|
||||
MaxDuration:int;
|
||||
}
|
||||
|
||||
struct FieldWeatherStructSub {
|
||||
Tag:StringForStruct;
|
||||
Climate:FieldClimateType;
|
||||
MinDuration:int;
|
||||
MaxDuration:int;
|
||||
OutdoorWeatherTable:StringForStruct;
|
||||
Weather:[FieldWeatherDefineSub:11];
|
||||
SpecialTransition:[FieldWeatherSpecialTransition:4];
|
||||
}
|
||||
|
||||
struct FieldWeatherStructSubList {
|
||||
List:[FieldWeatherStructSub:8];
|
||||
}
|
||||
|
||||
struct FieldWeatherStructMain {
|
||||
Tag:StringForStruct;
|
||||
Climate:FieldClimateType;
|
||||
MinDuration:int;
|
||||
MaxDuration:int;
|
||||
Weather:[FieldWeatherDefine:9];
|
||||
SpecialTransition:[FieldWeatherSpecialTransition:4];
|
||||
Replace:[WeatherReplace:4];
|
||||
}
|
||||
|
||||
table FieldWeatherTable (fs_serializer) {
|
||||
TransitionSpan:float;
|
||||
TransitionSpanForFix:float;
|
||||
Main:FieldWeatherStructMain;
|
||||
Sub:FieldWeatherStructSubList;
|
||||
Sound:WeatherSoundTable;
|
||||
}
|
||||
|
||||
root_type FieldWeatherTable;
|
||||
19
FlatBuffers/ZA/Misc/Schemas/FieldWeatherType.fbs
Normal file
19
FlatBuffers/ZA/Misc/Schemas/FieldWeatherType.fbs
Normal file
@@ -0,0 +1,19 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum FieldWeatherType : int
|
||||
{
|
||||
None = -1,
|
||||
Sunny = 0,
|
||||
Cloudy = 1,
|
||||
Rain = 2,
|
||||
Storm = 3,
|
||||
Snow = 4,
|
||||
SnowStorm = 5,
|
||||
DiamondDust = 6,
|
||||
SandStorm = 7,
|
||||
Mist = 8,
|
||||
ClearSunny = 9,
|
||||
Rainbow = 10,
|
||||
Count = 11,
|
||||
RainToSunny = 12,
|
||||
}
|
||||
21
FlatBuffers/ZA/Misc/Schemas/HairMakeDataArray.fbs
Normal file
21
FlatBuffers/ZA/Misc/Schemas/HairMakeDataArray.fbs
Normal file
@@ -0,0 +1,21 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table HairMakeData {
|
||||
Value:uint;
|
||||
Resource:string (required);
|
||||
Type:uint;
|
||||
Bool03:bool;
|
||||
Color:string;
|
||||
Name:string;
|
||||
SortOrder:uint;
|
||||
Pattern1:int;
|
||||
Pattern2:int;
|
||||
}
|
||||
|
||||
table HairMakeDataArray (fs_serializer) {
|
||||
Table:[HairMakeData] (required);
|
||||
}
|
||||
|
||||
root_type HairMakeDataArray;
|
||||
29
FlatBuffers/ZA/Misc/Schemas/TitleArray.fbs
Normal file
29
FlatBuffers/ZA/Misc/Schemas/TitleArray.fbs
Normal file
@@ -0,0 +1,29 @@
|
||||
include "Shared/ActivationConditionElement.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table Medal {
|
||||
Name:string;
|
||||
Requirement:[ActivationConditionElement];
|
||||
}
|
||||
|
||||
table Title {
|
||||
Index:uint;
|
||||
Name:string (required);
|
||||
Text:string (required);
|
||||
Count:string;
|
||||
Complete:string;
|
||||
Type:uint;
|
||||
Requirement:[ActivationConditionElement] (required);
|
||||
Bronze:Medal;
|
||||
Silver:Medal;
|
||||
Gold:Medal;
|
||||
}
|
||||
|
||||
table TitleArray (fs_serializer) {
|
||||
Table:[Title] (required);
|
||||
}
|
||||
|
||||
root_type TitleArray;
|
||||
17
FlatBuffers/ZA/Misc/Schemas/TitleCountArray.fbs
Normal file
17
FlatBuffers/ZA/Misc/Schemas/TitleCountArray.fbs
Normal file
@@ -0,0 +1,17 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table TitleCount {
|
||||
Index:string (required);
|
||||
Type1:uint;
|
||||
Type2:int;
|
||||
Type3:uint;
|
||||
Flag4:bool;
|
||||
}
|
||||
|
||||
table TitleCountArray (fs_serializer) {
|
||||
Table:[TitleCount] (required);
|
||||
}
|
||||
|
||||
root_type TitleCountArray;
|
||||
38
FlatBuffers/ZA/Misc/Schemas/WeatherHappeningParamArray.fbs
Normal file
38
FlatBuffers/ZA/Misc/Schemas/WeatherHappeningParamArray.fbs
Normal file
@@ -0,0 +1,38 @@
|
||||
include "FieldWeatherType.fbs";
|
||||
include "Math/PackedVec3f.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
struct TimeZone {
|
||||
From:int;
|
||||
To:int;
|
||||
}
|
||||
|
||||
table WeatherHappeningParam {
|
||||
Name:string;
|
||||
TemplatePath:string;
|
||||
SceneName:string;
|
||||
PrevWeather0:FieldWeatherType;
|
||||
PrevWeather1:FieldWeatherType;
|
||||
PrevWeather2:FieldWeatherType;
|
||||
CurWeather0:FieldWeatherType;
|
||||
CurWeather1:FieldWeatherType;
|
||||
CurWeather2:FieldWeatherType;
|
||||
TimeZone0:TimeZone;
|
||||
TimeZone1:TimeZone;
|
||||
TimeZone2:TimeZone;
|
||||
Prob:int;
|
||||
MinDuration:int;
|
||||
MaxDuration:int;
|
||||
FollowCamera:bool;
|
||||
Offset:PackedVec3f;
|
||||
FollowSun:bool;
|
||||
}
|
||||
|
||||
table WeatherHappeningParamArray (fs_serializer) {
|
||||
Table:[WeatherHappeningParam] (required);
|
||||
}
|
||||
|
||||
root_type WeatherHappeningParamArray;
|
||||
@@ -0,0 +1,5 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<ItemGroup>
|
||||
<Content Remove="Schemas\WeatherHappeningParamArray.fbs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
379
FlatBuffers/ZA/Personal/Dumpers/PersonalDumper9a.cs
Normal file
379
FlatBuffers/ZA/Personal/Dumpers/PersonalDumper9a.cs
Normal file
@@ -0,0 +1,379 @@
|
||||
using pkNX.Containers;
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
public class PersonalDumper9a
|
||||
{
|
||||
public const bool HasAbilities = true;
|
||||
|
||||
public required IReadOnlyList<string> Abilities { private get; init; }
|
||||
public required IReadOnlyList<string> Types { private get; init; }
|
||||
public required IReadOnlyList<string> Items { private get; init; }
|
||||
public required IReadOnlyList<string> Colors { private get; init; }
|
||||
public required IReadOnlyList<string> EggGroups { private get; init; }
|
||||
public required IReadOnlyList<string> ExpGroups { private get; init; }
|
||||
public required IReadOnlyList<string> Moves { protected get; init; }
|
||||
public required IReadOnlyList<string> Species { private get; init; }
|
||||
public required IReadOnlyList<string> ZukanA { private get; init; }
|
||||
public required IReadOnlyList<string> ZukanB { private get; init; }
|
||||
public required AHTB ZukanAHTB { private get; init; }
|
||||
|
||||
public static ReadOnlySpan<ushort> TMIndexes => PersonalInfo9ZA.TMIndexes;
|
||||
|
||||
private static readonly string[] AbilitySuffix = [" (1)", " (2)", " (H)"];
|
||||
|
||||
public IReadOnlyList<List<string>> MoveSpeciesLearn { get; private set; } = [];
|
||||
|
||||
public readonly PersonalDumperSettings Settings = new();
|
||||
|
||||
public List<string> Dump(PersonalTable9ZA table)
|
||||
{
|
||||
var lines = new List<string>();
|
||||
var ml = new List<string>[Moves.Count];
|
||||
for (int i = 0; i < ml.Length; i++)
|
||||
ml[i] = [];
|
||||
MoveSpeciesLearn = ml;
|
||||
|
||||
for (ushort species = 0; species <= table.MaxSpeciesID; species++)
|
||||
{
|
||||
var pi = table[species];
|
||||
var specInternal = SpeciesConverterZA.GetInternal9(species);
|
||||
for (byte form = 0; form < pi.FormCount; form++)
|
||||
AddDump(lines, table, specInternal, species, form);
|
||||
}
|
||||
return lines;
|
||||
}
|
||||
|
||||
private string GetSpeciesName(ushort internalIndex) => Species[internalIndex];
|
||||
|
||||
public void AddDump(List<string> lines, PersonalTable9ZA table, ushort speciesInternal, ushort species, byte form)
|
||||
{
|
||||
var index = table.GetFormIndex(species, form);
|
||||
var entry = table[index];
|
||||
string name = GetSpeciesName(speciesInternal);
|
||||
if (form != 0)
|
||||
name += $"-{form}";
|
||||
name += $" #{entry.DexIndex:000}";
|
||||
AddDump(lines, entry, index, name, speciesInternal, form);
|
||||
}
|
||||
|
||||
private void AddDump(List<string> lines, PersonalInfo9ZA pi, int entry, string name, ushort speciesInternal, byte form)
|
||||
{
|
||||
if (pi is { IsPresentInGame: false })
|
||||
return;
|
||||
|
||||
var specName = GetSpeciesName(speciesInternal);
|
||||
var specCode = pi.FormCount > 1 ? $"{specName}-{form}" : $"{specName}";
|
||||
|
||||
if (Settings.Stats)
|
||||
AddPersonalLines(lines, pi, entry, name, specCode);
|
||||
|
||||
if (pi.SpeciesClassMajor is not 0 || pi.SpeciesClassMinor is not 0)
|
||||
{
|
||||
var classification = pi.SpeciesClassMajor is not 0 && pi.SpeciesClassMinor is 0 ? $"Classifications: {GetClassificationDisplayNameMajor(pi.SpeciesClassMajor)}"
|
||||
: pi.SpeciesClassMinor is not 0 && pi.SpeciesClassMajor is 0 ? $"Classifications: {GetClassificationDisplayNameMinor(pi.SpeciesClassMinor, speciesInternal)}"
|
||||
: $"Classifications: {GetClassificationDisplayNameMajor(pi.SpeciesClassMajor)} / {GetClassificationDisplayNameMinor(pi.SpeciesClassMinor, speciesInternal)}";
|
||||
|
||||
lines.Add(classification);
|
||||
}
|
||||
|
||||
lines.Add($"Alpha Move: {Moves[pi.AlphaMove]}");
|
||||
if (!pi.FB.TechnicalMachine.Contains(pi.AlphaMove))
|
||||
lines.Add("ALPHA MOVE NOT IN TM LIST");
|
||||
if (Settings.Learn)
|
||||
AddLearnsets(pi.FB, lines, specCode);
|
||||
if (Settings.Evo)
|
||||
AddEvolutions(pi.FB, lines);
|
||||
if (Settings.Dex)
|
||||
AddZukan(lines, ZukanA, speciesInternal, form);
|
||||
|
||||
lines.Add("");
|
||||
}
|
||||
|
||||
private void AddZukan(List<string> lines, IReadOnlyList<string> zukanA, ushort speciesInternal, byte form)
|
||||
{
|
||||
if (speciesInternal >= Species.Count)
|
||||
return;
|
||||
var hash = FnvHash.HashFnv1a_64($"ZKN_COMMENT_A_{speciesInternal:000}_{form:000}"); // no need to check for B, only one version
|
||||
var line = ZukanAHTB.GetString(hash, zukanA);
|
||||
lines.Add(line.Replace("\\n", " "));
|
||||
}
|
||||
|
||||
private void AddLearnsets(PersonalInfo fb, List<string> lines, string specCode)
|
||||
{
|
||||
var learn = fb.Learnset;
|
||||
lines.Add("Level Up Moves:");
|
||||
foreach (var x in learn)
|
||||
{
|
||||
var move = x.Move;
|
||||
var level = x.Level switch
|
||||
{
|
||||
-3 => "EVO",
|
||||
-2 => "RELEARN",
|
||||
_ => $"{x.Level:00}",
|
||||
};
|
||||
lines.Add($"- [{level}] {Moves[move]} {{{x.LevelPlus}}}");
|
||||
MoveSpeciesLearn[move].Add(specCode);
|
||||
}
|
||||
|
||||
if (TMIndexes.Length != 0)
|
||||
{
|
||||
var tmMoveIDs = fb.TechnicalMachine;
|
||||
if (tmMoveIDs.Count != 0)
|
||||
{
|
||||
lines.Add("TM Learn:");
|
||||
foreach (var move in tmMoveIDs.OrderBy(z => TMIndexes.IndexOf(z)))
|
||||
{
|
||||
var tmID = TMIndexes.IndexOf(move);
|
||||
if (tmID < 0)
|
||||
continue;
|
||||
lines.Add($"- [TM{tmID+1:000}] {Moves[move]}");
|
||||
MoveSpeciesLearn[move].Add(specCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
var egg = fb.EggMoves;
|
||||
if (egg.Count != 0)
|
||||
{
|
||||
lines.Add("Egg Moves:");
|
||||
foreach (var move in egg)
|
||||
{
|
||||
lines.Add($"- {Moves[move]}");
|
||||
MoveSpeciesLearn[move].Add(specCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
var tmMoveIDs = fb.ReminderMoves;
|
||||
if (tmMoveIDs.Count != 0)
|
||||
{
|
||||
lines.Add("Reminder:");
|
||||
foreach (var move in tmMoveIDs)
|
||||
{
|
||||
lines.Add($"- {Moves[move]}");
|
||||
MoveSpeciesLearn[move].Add(specCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddEvolutions(PersonalInfo fb, List<string> lines)
|
||||
{
|
||||
var evo = fb.Evolutions;
|
||||
if (evo.Count == 0)
|
||||
return;
|
||||
|
||||
foreach (var z in evo)
|
||||
{
|
||||
if (z.Reserved3 != 0 || z.Reserved4 != 0 || z.Reserved5 != 0)
|
||||
throw new Exception("Reserved fields not 0");
|
||||
|
||||
var method = (EvolutionType)z.Method;
|
||||
string arg = GetArgTypeDisplayValue(method, z.Argument);
|
||||
var line = $"Evolves into {GetSpeciesName(z.SpeciesInternal)}-{z.Form} @ lv{z.Level} ({method}) [{arg}]";
|
||||
lines.Add(line);
|
||||
}
|
||||
}
|
||||
|
||||
private string GetArgTypeDisplayValue(EvolutionType type, ushort value)
|
||||
{
|
||||
if (type.IsPlibUseItemType())
|
||||
{
|
||||
var item = Plib9.PlibToItem[value];
|
||||
return Items[item];
|
||||
}
|
||||
var argType = type.GetArgType();
|
||||
return GetArgTypeDisplayValue(argType, value);
|
||||
}
|
||||
|
||||
private string GetArgTypeDisplayValue(EvolutionTypeArgumentType argType, ushort value) => argType switch
|
||||
{
|
||||
EvolutionTypeArgumentType.Level => value.ToString(),
|
||||
EvolutionTypeArgumentType.NoArg => value.ToString(),
|
||||
EvolutionTypeArgumentType.Items => Items[value],
|
||||
EvolutionTypeArgumentType.Moves => Moves[value],
|
||||
EvolutionTypeArgumentType.Species => GetSpeciesName(value),
|
||||
EvolutionTypeArgumentType.Type => Types[value],
|
||||
EvolutionTypeArgumentType.Stat => value.ToString(),
|
||||
EvolutionTypeArgumentType.Version => value.ToString(),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(argType), argType, null),
|
||||
};
|
||||
|
||||
private string GetClassificationDisplayNameMajor(byte classification) => classification switch
|
||||
{
|
||||
(byte)SpeciesClassificationMajor.Legend => "Legendary",
|
||||
(byte)SpeciesClassificationMajor.SubLegend => "Sub-Legendary",
|
||||
(byte)SpeciesClassificationMajor.Mythical => "Mythical",
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(classification), classification, null),
|
||||
};
|
||||
|
||||
private string GetClassificationDisplayNameMinor(uint classification, ushort species) => classification switch
|
||||
{
|
||||
(ushort)SpeciesClassificationMinor.UltraBeast => "Ultra Beast",
|
||||
(ushort)SpeciesClassificationMinor.ParadoxPast => "Paradox (Past)",
|
||||
(ushort)SpeciesClassificationMinor.ParadoxFuture => "Paradox (Future)",
|
||||
(ushort)SpeciesClassificationMinor.SpecialBattleForm when species is 0382 or 0383 => "Primal Reversion",
|
||||
(ushort)SpeciesClassificationMinor.SpecialBattleForm => "Mega Evolution",
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(classification), classification, null),
|
||||
};
|
||||
|
||||
private void AddPersonalLines(List<string> lines, IPersonalInfo pi, int entry, string name, string specCode)
|
||||
{
|
||||
lines.Add("======");
|
||||
lines.Add($"{entry:000} - {name} (Stage: {pi.EvoStage})");
|
||||
lines.Add("======");
|
||||
if (pi is IPersonalMisc_SWSH { IsPresentInGame: false })
|
||||
lines.Add("Present: No");
|
||||
lines.Add($"Base Stats: {pi.HP}.{pi.ATK}.{pi.DEF}.{pi.SPA}.{pi.SPD}.{pi.SPE} (BST: {pi.GetBaseStatTotal()})");
|
||||
lines.Add($"EV Yield: {pi.EV_HP}.{pi.EV_ATK}.{pi.EV_DEF}.{pi.EV_SPA}.{pi.EV_SPD}.{pi.EV_SPE}");
|
||||
lines.Add($"Gender Ratio: {pi.Gender}");
|
||||
lines.Add($"Catch Rate: {pi.CatchRate}");
|
||||
|
||||
if (HasAbilities)
|
||||
{
|
||||
var abils = new int[pi.GetNumAbilities()];
|
||||
pi.GetAbilities(abils);
|
||||
var msg = string.Join(" | ", abils.Select((z, j) => Abilities[z] + AbilitySuffix[j]));
|
||||
lines.Add($"Abilities: {msg}");
|
||||
}
|
||||
|
||||
lines.Add(string.Format(pi.Type1 != pi.Type2
|
||||
? "Type: {0} / {1}"
|
||||
: "Type: {0}", Types[(int)pi.Type1], Types[(int)pi.Type2]));
|
||||
|
||||
lines.Add($"EXP Group: {ExpGroups[pi.EXPGrowth]}");
|
||||
lines.Add(string.Format(pi.EggGroup1 != pi.EggGroup2
|
||||
? "Egg Group: {0} / {1}"
|
||||
: "Egg Group: {0}", EggGroups[pi.EggGroup1], EggGroups[pi.EggGroup2]));
|
||||
lines.Add($"Height: {(decimal)pi.Height / 100:00.00}m, Weight: {(decimal)pi.Weight / 10:000.0}kg, Color: {Colors[pi.Color]}");
|
||||
}
|
||||
}
|
||||
|
||||
public static class Plib9
|
||||
{
|
||||
public static bool IsPlibUseItemType(this EvolutionType method) => method switch
|
||||
{
|
||||
EvolutionType.UseItem => true,
|
||||
EvolutionType.UseItemMale => true,
|
||||
EvolutionType.UseItemFemale => true,
|
||||
EvolutionType.LevelUpHeldItemDay => true,
|
||||
EvolutionType.LevelUpHeldItemNight => true,
|
||||
//EvolutionType.UseItemWormhole => true,
|
||||
//EvolutionType.UseItemFullMoon => true,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
// plib_item_conversion_array
|
||||
// inverted {a,b} => {b,a} so we can get the item ID from plib evo arg.
|
||||
|
||||
public static readonly Dictionary<ushort, ushort> PlibToItem = new()
|
||||
{
|
||||
{ 0001, 0080 }, // Sun Stone
|
||||
{ 0002, 0081 }, // Moon Stone
|
||||
{ 0003, 0082 }, // Fire Stone
|
||||
{ 0004, 0083 }, // Thunder Stone
|
||||
{ 0005, 0084 }, // Water Stone
|
||||
{ 0006, 0085 }, // Leaf Stone
|
||||
{ 0007, 0107 }, // Shiny Stone
|
||||
{ 0008, 0108 }, // Dusk Stone
|
||||
{ 0009, 0110 }, // Oval Stone
|
||||
{ 0010, 1779 }, // Griseous Core
|
||||
{ 0011, 0000 },
|
||||
{ 0012, 0000 },
|
||||
{ 0013, 0000 },
|
||||
{ 0014, 0000 },
|
||||
{ 0015, 0229 }, // Everstone
|
||||
{ 0016, 0236 }, // Light Ball
|
||||
{ 0017, 0000 },
|
||||
{ 0018, 0000 },
|
||||
{ 0019, 0280 }, // Destiny Knot
|
||||
{ 0020, 0289 }, // Power Bracer
|
||||
{ 0021, 0290 }, // Power Belt
|
||||
{ 0022, 0291 }, // Power Lens
|
||||
{ 0023, 0292 }, // Power Band
|
||||
{ 0024, 0293 }, // Power Anklet
|
||||
{ 0025, 0294 }, // Power Weight
|
||||
{ 0026, 0298 }, // Flame Plate
|
||||
{ 0027, 0299 }, // Splash Plate
|
||||
{ 0028, 0300 }, // Zap Plate
|
||||
{ 0029, 0301 }, // Meadow Plate
|
||||
{ 0030, 0302 }, // Icicle Plate
|
||||
{ 0031, 0303 }, // Fist Plate
|
||||
{ 0032, 0304 }, // Toxic Plate
|
||||
{ 0033, 0305 }, // Earth Plate
|
||||
{ 0034, 0306 }, // Sky Plate
|
||||
{ 0035, 0307 }, // Mind Plate
|
||||
{ 0036, 0308 }, // Insect Plate
|
||||
{ 0037, 0309 }, // Stone Plate
|
||||
{ 0038, 0310 }, // Spooky Plate
|
||||
{ 0039, 0311 }, // Draco Plate
|
||||
{ 0040, 0312 }, // Dread Plate
|
||||
{ 0041, 0313 }, // Iron Plate
|
||||
{ 0042, 0000 },
|
||||
{ 0043, 0000 },
|
||||
{ 0044, 0000 },
|
||||
{ 0045, 0000 },
|
||||
{ 0046, 0000 },
|
||||
{ 0047, 0000 },
|
||||
{ 0048, 0000 },
|
||||
{ 0049, 0326 }, // Razor Claw
|
||||
{ 0050, 0327 }, // Razor Fang
|
||||
{ 0051, 0644 }, // Pixie Plate
|
||||
{ 0052, 0849 }, // Ice Stone
|
||||
{ 0053, 0000 },
|
||||
{ 0054, 0000 },
|
||||
{ 0055, 0000 },
|
||||
{ 0056, 0000 },
|
||||
{ 0057, 0000 },
|
||||
{ 0058, 0000 },
|
||||
{ 0059, 0000 },
|
||||
{ 0060, 0000 },
|
||||
{ 0061, 0000 },
|
||||
{ 0062, 0000 },
|
||||
{ 0063, 0000 },
|
||||
{ 0064, 0000 },
|
||||
{ 0065, 0000 },
|
||||
{ 0066, 0000 },
|
||||
{ 0067, 0000 },
|
||||
{ 0068, 0000 },
|
||||
{ 0069, 0000 },
|
||||
{ 0070, 1103 }, // Rusted Sword
|
||||
{ 0071, 1104 }, // Rusted Shield
|
||||
{ 0072, 1109 }, // Strawberry Sweet
|
||||
{ 0073, 1110 }, // Love Sweet
|
||||
{ 0074, 1111 }, // Berry Sweet
|
||||
{ 0075, 1112 }, // Clover Sweet
|
||||
{ 0076, 1113 }, // Flower Sweet
|
||||
{ 0077, 1114 }, // Star Sweet
|
||||
{ 0078, 1115 }, // Ribbon Sweet
|
||||
{ 0079, 1116 }, // Sweet Apple
|
||||
{ 0080, 1117 }, // Tart Apple
|
||||
{ 0081, 1253 }, // Cracked Pot
|
||||
{ 0082, 1254 }, // Chipped Pot
|
||||
{ 0083, 1582 }, // Galarica Cuff
|
||||
{ 0084, 1592 }, // Galarica Wreath
|
||||
{ 0085, 2344 }, // Auspicious Armor
|
||||
{ 0086, 1861 }, // Malicious Armor
|
||||
{ 0087, 2345 }, // Leader’s Crest
|
||||
{ 0088, 1857 }, // Scroll of Darkness
|
||||
{ 0089, 1858 }, // Scroll of Waters
|
||||
{ 0090, 0000 },
|
||||
{ 0091, 0000 },
|
||||
{ 0092, 0218 }, // Soothe Bell
|
||||
{ 0093, 0109 }, // Dawn Stone
|
||||
{ 0094, 2403 }, // Unremarkable Teacup
|
||||
{ 0095, 2404 }, // Masterpiece Teacup
|
||||
{ 0096, 2402 }, // Syrupy Apple
|
||||
{ 0111, 0537 }, // Prism Scale
|
||||
{ 0112, 0325 }, // Reaper Cloth
|
||||
{ 0113, 0252 }, // Upgrade
|
||||
{ 0114, 0324 }, // Dubious Disc
|
||||
{ 0115, 0322 }, // Electirizer
|
||||
{ 0116, 0323 }, // Magmarizer
|
||||
{ 0117, 0321 }, // Protector
|
||||
{ 0118, 0235 }, // Dragon Scale
|
||||
{ 0119, 2482 }, // Metal Alloy
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
public partial class PersonalInfoDex;
|
||||
@@ -0,0 +1,3 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
public partial class PersonalInfoEvolution;
|
||||
24
FlatBuffers/ZA/Personal/Personal/Types/PersonalInfoGender.cs
Normal file
24
FlatBuffers/ZA/Personal/Personal/Types/PersonalInfoGender.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
public partial class PersonalInfoGender
|
||||
{
|
||||
public const int RatioMagicMale = 0;
|
||||
public const int RatioMagicFemale = 254;
|
||||
public const int RatioMagicGenderless = 255;
|
||||
public byte RatioMagicEquivalent() => Group switch
|
||||
{
|
||||
0 => Ratio switch
|
||||
{
|
||||
12 => 0x1F, // 12.5%
|
||||
25 => 0x3F, // 25%
|
||||
50 => 0x7F, // 50%
|
||||
75 => 0xBF, // 75%
|
||||
89 => 0xE1, // 87.5%
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(Ratio)),
|
||||
},
|
||||
SexGroup.MALE => RatioMagicMale,
|
||||
SexGroup.FEMALE => RatioMagicFemale,
|
||||
SexGroup.UNKNOWN => RatioMagicGenderless,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(Group)),
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
public partial class PersonalInfoStats
|
||||
{
|
||||
public ushort U16() => (ushort)((HP & 0b11) | ((ATK & 0b11) << 2) | ((DEF & 0b11) << 4) | ((SPE & 0b11) << 6) | ((SPA & 0b11) << 8) | ((SPD & 0b11) << 10));
|
||||
}
|
||||
148
FlatBuffers/ZA/Personal/Personal/Wrapper/PersonalInfo9ZA.cs
Normal file
148
FlatBuffers/ZA/Personal/Personal/Wrapper/PersonalInfo9ZA.cs
Normal file
@@ -0,0 +1,148 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
/// <summary>
|
||||
/// Personal Info class with values from the <see cref="GameVersion.ZA"/> games.
|
||||
/// </summary>
|
||||
public sealed class PersonalInfo9ZA(PersonalInfo fb) : IPersonalInfo
|
||||
{
|
||||
public PersonalInfo FB { get; } = fb;
|
||||
|
||||
public int HP { get => FB.Base.HP; set => FB.Base.HP = (byte)value; }
|
||||
public int ATK { get => FB.Base.ATK; set => FB.Base.ATK = (byte)value; }
|
||||
public int DEF { get => FB.Base.DEF; set => FB.Base.DEF = (byte)value; }
|
||||
public int SPE { get => FB.Base.SPE; set => FB.Base.SPE = (byte)value; }
|
||||
public int SPA { get => FB.Base.SPA; set => FB.Base.SPA = (byte)value; }
|
||||
public int SPD { get => FB.Base.SPD; set => FB.Base.SPD = (byte)value; }
|
||||
public Types Type1 { get => (Types)FB.Type1; set => FB.Type1 = (byte)value; }
|
||||
public Types Type2 { get => (Types)FB.Type2; set => FB.Type2 = (byte)value; }
|
||||
public int Ability1 { get => FB.Ability1; set => FB.Ability1 = (ushort)value; }
|
||||
public int Ability2 { get => FB.Ability2; set => FB.Ability2 = (ushort)value; }
|
||||
public int AbilityH { get => FB.AbilityH; set => FB.AbilityH = (ushort)value; }
|
||||
public int CatchRate { get => FB.CatchRate; set => FB.CatchRate = (byte)value; }
|
||||
public int EvoStage { get => FB.EvoStage; set => FB.EvoStage = (byte)value; }
|
||||
public int EV_HP { get => FB.EVYield.HP; set => FB.EVYield.HP = (byte)value; }
|
||||
public int EV_ATK { get => FB.EVYield.ATK; set => FB.EVYield.ATK = (byte)value; }
|
||||
public int EV_DEF { get => FB.EVYield.DEF; set => FB.EVYield.DEF = (byte)value; }
|
||||
public int EV_SPE { get => FB.EVYield.SPE; set => FB.EVYield.SPE = (byte)value; }
|
||||
public int EV_SPA { get => FB.EVYield.SPA; set => FB.EVYield.SPA = (byte)value; }
|
||||
public int EV_SPD { get => FB.EVYield.SPD; set => FB.EVYield.SPD = (byte)value; }
|
||||
public byte GenderGroup { get => (byte)FB.Gender.Group; set => FB.Gender.Group = (SexGroup)value; }
|
||||
public byte GenderRatio { get => FB.Gender.Ratio; set => FB.Gender.Ratio = value; }
|
||||
public int Gender
|
||||
{
|
||||
get => FB.Gender.RatioMagicEquivalent();
|
||||
set { }
|
||||
}
|
||||
|
||||
public int BaseFriendship { get => FB.BaseFriendship; set => FB.BaseFriendship = (byte)value; }
|
||||
public int EXPGrowth { get => FB.EXPGrowth; set => FB.EXPGrowth = (byte)value; }
|
||||
public int EggGroup1 { get => FB.EggGroup1; set => FB.EggGroup1 = (byte)value; }
|
||||
public int EggGroup2 { get => FB.EggGroup2; set => FB.EggGroup2 = (byte)value; }
|
||||
public int Color { get => FB.Info.Color; set => FB.Info.Color = (byte)value; }
|
||||
public bool IsPresentInGame { get => FB.IsPresentInGame; set => FB.IsPresentInGame = value; }
|
||||
public int Height { get => FB.Info.Height; set => FB.Info.Height = (ushort)value; }
|
||||
public int Weight { get => FB.Info.Weight; set => FB.Info.Weight = (ushort)value; }
|
||||
public byte DebutVersion { get => FB.Info.DebutVersion; set => FB.Info.DebutVersion = value; }
|
||||
public byte SpeciesClassMajor { get => FB.Info.SpeciesClassMajor; set => FB.Info.SpeciesClassMajor = value; }
|
||||
public uint SpeciesClassMinor { get => FB.Info.SpeciesClassMinor; set => FB.Info.SpeciesClassMinor = value; }
|
||||
|
||||
public ushort HatchedSpecies { get => SpeciesConverterZA.GetNational9(FB.Hatch.SpeciesInternal); set => FB.Hatch.SpeciesInternal = SpeciesConverterZA.GetInternal9(value); }
|
||||
public ushort LocalFormIndex { get => FB.Hatch.Form; set => FB.Hatch.Form = value; }
|
||||
public bool RegionalFlags { get => FB.Hatch.RegionalFlags == 1; set => FB.Hatch.RegionalFlags = value ? (ushort)1 : (ushort)0; }
|
||||
public ushort EverstoneForm { get => FB.Hatch.EverstoneForm; set => FB.Hatch.EverstoneForm = value; }
|
||||
|
||||
public ushort Form { get => FB.Info.Form; set => FB.Info.Form = value; }
|
||||
|
||||
public ushort DexIndex
|
||||
{
|
||||
get => FB.Dex;
|
||||
set => FB.Dex = value;
|
||||
}
|
||||
|
||||
public int Item1 { get => 0; set { } }
|
||||
public int Item2 { get => 0; set { } }
|
||||
public int Item3 { get => 0; set { } }
|
||||
public int BaseEXP { get => 0; set { } }
|
||||
public int EscapeRate { get => 0; set { } }
|
||||
public int FormSprite { get => 0; set { } }
|
||||
public int FormStatsIndex { get; set; }
|
||||
public byte FormCount { get; set; } = 1;
|
||||
|
||||
public int BST => FB.Base.HP + FB.Base.ATK + FB.Base.DEF + FB.Base.SPE + FB.Base.SPA + FB.Base.SPD;
|
||||
public ushort AlphaMove { get; set; }
|
||||
|
||||
public void Write(BinaryWriter bw)
|
||||
{
|
||||
bw.Write(FB.Base.HP);
|
||||
bw.Write(FB.Base.ATK);
|
||||
bw.Write(FB.Base.DEF);
|
||||
bw.Write(FB.Base.SPE);
|
||||
bw.Write(FB.Base.SPA);
|
||||
bw.Write(FB.Base.SPD);
|
||||
bw.Write(FB.Type1);
|
||||
bw.Write(FB.Type2);
|
||||
bw.Write(FB.CatchRate);
|
||||
bw.Write(FB.EvoStage);
|
||||
bw.Write(FB.EVYield.U16());
|
||||
bw.Write(FB.Gender.RatioMagicEquivalent());
|
||||
bw.Write(FB.HatchCycles);
|
||||
bw.Write(FB.BaseFriendship);
|
||||
bw.Write(FB.EXPGrowth);
|
||||
bw.Write(FB.EggGroup1);
|
||||
bw.Write(FB.EggGroup2);
|
||||
bw.Write(FB.Ability1);
|
||||
bw.Write(FB.Ability2);
|
||||
bw.Write(FB.AbilityH);
|
||||
bw.Write((ushort)FormStatsIndex);
|
||||
bw.Write(FormCount);
|
||||
bw.Write(FB.Info.Color);
|
||||
bw.Write(FB.IsPresentInGame);
|
||||
|
||||
bw.Write((byte)0);
|
||||
bw.Write((ushort)DexIndex);
|
||||
bw.Write(FB.Info.Height);
|
||||
bw.Write(FB.Info.Weight);
|
||||
bw.Write(SpeciesConverterZA.GetNational9(FB.Hatch.SpeciesInternal));
|
||||
bw.Write(FB.Hatch.Form);
|
||||
bw.Write(FB.Hatch.RegionalFlags);
|
||||
bw.Write(FB.Hatch.EverstoneForm);
|
||||
// 0x2C
|
||||
|
||||
// TMs
|
||||
byte[] tmFlags = new byte[0x1E];
|
||||
if (IsPresentInGame)
|
||||
{
|
||||
foreach (ushort tm in FB.TechnicalMachine)
|
||||
{
|
||||
// Get the index within TMIndexes, then set the bitflag within tmFlags
|
||||
var bitIndex = TMIndexes.IndexOf(tm);
|
||||
if (bitIndex < 0)
|
||||
continue;
|
||||
tmFlags[bitIndex / 8] |= (byte)(1 << (bitIndex % 8));
|
||||
}
|
||||
}
|
||||
bw.Write(tmFlags);
|
||||
bw.Write((ushort)0); // align 0x50
|
||||
bw.Write(GetEXP(BST, FB.EvoStage, FB.BaseEXPAddend));
|
||||
bw.Write(AlphaMove); // align
|
||||
}
|
||||
|
||||
private static ushort GetEXP(int bst, byte evoStage, short add)
|
||||
=> (ushort)(Math.Ceiling(bst * (1 + (3 * evoStage)) / 20d) + add);
|
||||
|
||||
public static ReadOnlySpan<ushort> TMIndexes =>
|
||||
[
|
||||
// Bit Index order
|
||||
029, 337, 473, 249, 046, 347, 092, 086, 812, 280,
|
||||
339, 157, 058, 424, 423, 113, 182, 612, 408, 583,
|
||||
422, 332, 009, 008, 242, 412, 129, 091, 007, 014,
|
||||
115, 104, 034, 400, 203, 317, 446, 126, 435, 331,
|
||||
352, 202, 019, 063, 282, 341, 097, 120, 196, 315,
|
||||
219, 414, 188, 434, 416, 038, 261, 442, 428, 248,
|
||||
421, 053, 094, 076, 444, 521, 085, 257, 089, 250,
|
||||
304, 083, 057, 247, 406, 710, 398, 523, 542, 334,
|
||||
404, 369, 417, 430, 164, 528, 231, 191, 390, 399,
|
||||
174, 605, 200, 018, 269, 056, 377, 127, 118, 441,
|
||||
527, 411, 526, 394, 059, 087, 370,
|
||||
];
|
||||
}
|
||||
123
FlatBuffers/ZA/Personal/Personal/Wrapper/PersonalTable9ZA.cs
Normal file
123
FlatBuffers/ZA/Personal/Personal/Wrapper/PersonalTable9ZA.cs
Normal file
@@ -0,0 +1,123 @@
|
||||
using System.Collections;
|
||||
using pkNX.Containers;
|
||||
using FlatSharp;
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
/// <summary>
|
||||
/// Personal Table storing <see cref="PersonalInfo9ZA"/> used in <see cref="GameVersion.ZA"/>.
|
||||
/// </summary>
|
||||
public sealed class PersonalTable9ZA : IPersonalTable, IPersonalTable<PersonalInfo9ZA>
|
||||
{
|
||||
public PersonalInfo9ZA[] Table { get; }
|
||||
private const ushort MaxSpecies = Legal.MaxSpeciesID_9a;
|
||||
public int MaxSpeciesID => MaxSpecies;
|
||||
|
||||
private readonly IFileContainer File;
|
||||
public PersonalTable Root { get; }
|
||||
|
||||
public PersonalTable9ZA(IFileContainer file)
|
||||
{
|
||||
File = file;
|
||||
Root = PersonalTable.Serializer.Parse(file[0], FlatBufferDeserializationOption.GreedyMutable);
|
||||
|
||||
var baseForms = new PersonalInfo9ZA[MaxSpecies + 1];
|
||||
var formTable = new List<PersonalInfo9ZA>();
|
||||
|
||||
var formGrouped = Root.Table
|
||||
.GroupBy(x => x.Info.SpeciesNational)
|
||||
.OrderBy(x => x.Key).ToArray();
|
||||
|
||||
for (int i = 0; i <= MaxSpecies; i++)
|
||||
{
|
||||
var item = formGrouped[i];
|
||||
var forms = item.ToArray();
|
||||
|
||||
baseForms[i] = GetObj(forms[0], forms, MaxSpecies, formTable);
|
||||
for (int f = 1; f < forms.Length; f++)
|
||||
formTable.Add(GetObj(forms[f], forms, MaxSpecies, formTable, f));
|
||||
}
|
||||
|
||||
Table = [.. baseForms, .. formTable];
|
||||
}
|
||||
|
||||
private static PersonalInfo9ZA GetObj(PersonalInfo e, ICollection forms, ushort max, ICollection formTable, int f = 0)
|
||||
{
|
||||
return new PersonalInfo9ZA(e)
|
||||
{
|
||||
FormCount = (byte)forms.Count,
|
||||
FormStatsIndex = (f != 0 ? 0 : forms.Count == 1 ? 0 : max + formTable.Count + 1),
|
||||
};
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
var pool = System.Buffers.ArrayPool<byte>.Shared;
|
||||
var serializer = PersonalTable.Serializer;
|
||||
var size = serializer.GetMaxSize(Root);
|
||||
var arr = pool.Rent(size);
|
||||
var len = serializer.Write(arr, Root);
|
||||
var data = arr.AsSpan(0, len).ToArray();
|
||||
pool.Return(arr);
|
||||
File[0] = data;
|
||||
}
|
||||
|
||||
public PersonalInfo9ZA this[int index] => Table[(uint)index < Table.Length ? index : 0];
|
||||
public PersonalInfo9ZA this[ushort species, byte form] => Table[GetFormIndex(species, form)];
|
||||
public PersonalInfo9ZA GetFormEntry(ushort species, byte form) => Table[GetFormIndex(species, form)];
|
||||
|
||||
public int GetFormIndex(ushort species, byte form)
|
||||
{
|
||||
if ((uint)species <= MaxSpecies)
|
||||
return Table[species].FormIndex(species, form);
|
||||
return 0;
|
||||
}
|
||||
|
||||
public bool IsSpeciesInGame(ushort species)
|
||||
{
|
||||
if ((uint)species > MaxSpecies)
|
||||
return false;
|
||||
|
||||
var form0 = Table[species];
|
||||
if (form0.IsPresentInGame)
|
||||
return true;
|
||||
|
||||
var fc = form0.FormCount;
|
||||
for (byte i = 1; i < fc; i++)
|
||||
{
|
||||
var entry = GetFormEntry(species, i);
|
||||
if (entry.IsPresentInGame)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool IsPresentInGame(ushort species, byte form)
|
||||
{
|
||||
if ((uint)species > MaxSpecies)
|
||||
return false;
|
||||
|
||||
var form0 = Table[species];
|
||||
if (form == 0)
|
||||
return form0.IsPresentInGame;
|
||||
if (!form0.HasForm(form))
|
||||
return false;
|
||||
|
||||
var entry = GetFormEntry(species, form);
|
||||
return entry.IsPresentInGame;
|
||||
}
|
||||
|
||||
IPersonalInfo[] IPersonalTable.Table => Table;
|
||||
IPersonalInfo IPersonalTable.this[int index] => this[index];
|
||||
IPersonalInfo IPersonalTable.this[ushort species, byte form] => this[species, form];
|
||||
IPersonalInfo IPersonalTable.GetFormEntry(ushort species, byte form) => GetFormEntry(species, form);
|
||||
|
||||
public byte[] Write()
|
||||
{
|
||||
using var ms = new MemoryStream();
|
||||
using var bw = new BinaryWriter(ms);
|
||||
foreach (var entry in Table)
|
||||
entry.Write(bw);
|
||||
return ms.ToArray();
|
||||
}
|
||||
}
|
||||
30
FlatBuffers/ZA/Personal/Schemas/PersonalInfoDetail.fbs
Normal file
30
FlatBuffers/ZA/Personal/Schemas/PersonalInfoDetail.fbs
Normal file
@@ -0,0 +1,30 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_valueStruct";
|
||||
|
||||
enum SpeciesClassificationMajor : ubyte {
|
||||
None = 0,
|
||||
Legend = 1,
|
||||
SubLegend = 2,
|
||||
Mythical = 3,
|
||||
}
|
||||
|
||||
enum SpeciesClassificationMinor : uint {
|
||||
None = 0,
|
||||
UltraBeast = 1,
|
||||
ParadoxPast = 2,
|
||||
ParadoxFuture = 4,
|
||||
SpecialBattleForm = 8,
|
||||
}
|
||||
|
||||
struct PersonalInfoDetail { // give me a class, not struct.
|
||||
SpeciesInternal : ushort;
|
||||
Form : ushort;
|
||||
SpeciesNational : ushort;
|
||||
Color : ubyte ;
|
||||
BodyType : ubyte ;
|
||||
Height : ushort;
|
||||
Weight : ushort;
|
||||
DebutVersion : ubyte ;
|
||||
SpeciesClassMajor : ubyte ;
|
||||
SpeciesClassMinor : uint ;
|
||||
}
|
||||
13
FlatBuffers/ZA/Personal/Schemas/PersonalInfoEvolution.fbs
Normal file
13
FlatBuffers/ZA/Personal/Schemas/PersonalInfoEvolution.fbs
Normal file
@@ -0,0 +1,13 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_valueStruct";
|
||||
|
||||
struct PersonalInfoEvolution { // give me a class, not struct.
|
||||
Level:ushort;
|
||||
Method:ushort;
|
||||
Argument:ushort;
|
||||
Reserved3:ushort;
|
||||
Reserved4:ushort;
|
||||
Reserved5:ushort;
|
||||
SpeciesInternal:ushort;
|
||||
Form:ushort;
|
||||
}
|
||||
14
FlatBuffers/ZA/Personal/Schemas/PersonalInfoGender.fbs
Normal file
14
FlatBuffers/ZA/Personal/Schemas/PersonalInfoGender.fbs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_valueStruct";
|
||||
|
||||
enum SexGroup : ubyte {
|
||||
BOTH = 0,
|
||||
MALE = 1,
|
||||
FEMALE = 2,
|
||||
UNKNOWN = 3,
|
||||
}
|
||||
|
||||
struct PersonalInfoGender { // give me a class, not struct.
|
||||
Group:SexGroup = BOTH;
|
||||
Ratio:ubyte; // {rand(100) < value} => gender.
|
||||
}
|
||||
9
FlatBuffers/ZA/Personal/Schemas/PersonalInfoHatch.fbs
Normal file
9
FlatBuffers/ZA/Personal/Schemas/PersonalInfoHatch.fbs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_valueStruct";
|
||||
|
||||
struct PersonalInfoHatch { // give me a class, not struct.
|
||||
SpeciesInternal:ushort;
|
||||
Form:ushort;
|
||||
RegionalFlags:ushort;
|
||||
EverstoneForm:ushort;
|
||||
}
|
||||
8
FlatBuffers/ZA/Personal/Schemas/PersonalInfoMove.fbs
Normal file
8
FlatBuffers/ZA/Personal/Schemas/PersonalInfoMove.fbs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_valueStruct";
|
||||
|
||||
struct PersonalInfoMove { // give me a class, not struct.
|
||||
Move:ushort;
|
||||
Level:byte;
|
||||
LevelPlus:byte;
|
||||
}
|
||||
11
FlatBuffers/ZA/Personal/Schemas/PersonalInfoStats.fbs
Normal file
11
FlatBuffers/ZA/Personal/Schemas/PersonalInfoStats.fbs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_valueStruct";
|
||||
|
||||
struct PersonalInfoStats { // give me a class, not struct.
|
||||
HP :ubyte;
|
||||
ATK:ubyte;
|
||||
DEF:ubyte;
|
||||
SPA:ubyte;
|
||||
SPD:ubyte;
|
||||
SPE:ubyte;
|
||||
}
|
||||
47
FlatBuffers/ZA/Personal/Schemas/PersonalTable.fbs
Normal file
47
FlatBuffers/ZA/Personal/Schemas/PersonalTable.fbs
Normal file
@@ -0,0 +1,47 @@
|
||||
include "PersonalInfoDetail.fbs";
|
||||
include "PersonalInfoEvolution.fbs";
|
||||
include "PersonalInfoGender.fbs";
|
||||
include "PersonalInfoHatch.fbs";
|
||||
include "PersonalInfoMove.fbs";
|
||||
include "PersonalInfoStats.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table PersonalInfo {
|
||||
Info:PersonalInfoDetail (required);
|
||||
IsPresentInGame:bool;
|
||||
Dex:ushort; // No need to group. Changed from SV.
|
||||
// Dex:PersonalInfoDex; // not required
|
||||
// KitakamiDex:ushort; // NOT USED IN DATA
|
||||
// BlueberryDex:ushort; // NOT USED IN DATA
|
||||
Type1:ubyte;
|
||||
Type2:ubyte;
|
||||
Ability1:ushort;
|
||||
Ability2:ushort;
|
||||
AbilityH:ushort;
|
||||
EXPGrowth:ubyte;
|
||||
CatchRate:ubyte;
|
||||
Gender:PersonalInfoGender (required);
|
||||
EggGroup1:ubyte;
|
||||
EggGroup2:ubyte;
|
||||
Hatch:PersonalInfoHatch (required);
|
||||
HatchCycles:ubyte;
|
||||
BaseFriendship:ubyte;
|
||||
BaseEXPAddend:short;
|
||||
EvoStage:ubyte;
|
||||
IsTypeChangeDisallowed:bool; // Silvally, Arceus (and Sylveon in 1.0.0, fixed)
|
||||
EVYield:PersonalInfoStats (required);
|
||||
Base:PersonalInfoStats (required);
|
||||
Evolutions:[PersonalInfoEvolution] (required);
|
||||
TechnicalMachine:[ushort] (required);
|
||||
EggMoves:[ushort] (required);
|
||||
ReminderMoves:[ushort] (required);
|
||||
Learnset:[PersonalInfoMove] (required);
|
||||
}
|
||||
|
||||
table PersonalTable (fs_serializer) {
|
||||
Table:[PersonalInfo] (required);
|
||||
}
|
||||
|
||||
root_type PersonalTable;
|
||||
@@ -0,0 +1,2 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
</Project>
|
||||
8
FlatBuffers/ZA/Shared/Gen9/PokeData/ParamSet.cs
Normal file
8
FlatBuffers/ZA/Shared/Gen9/PokeData/ParamSet.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
public partial class ParamSet
|
||||
{
|
||||
public string SlashSeparated() => $"{HP}/{ATK}/{DEF}/{SPA}/{SPD}/{SPE}";
|
||||
|
||||
public int[] ToArray() => [HP, ATK, DEF, SPA, SPD, SPE];
|
||||
}
|
||||
26
FlatBuffers/ZA/Shared/Gen9/PokeData/PokeDataBattle.cs
Normal file
26
FlatBuffers/ZA/Shared/Gen9/PokeData/PokeDataBattle.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
public partial class PokeDataBattle
|
||||
{
|
||||
public void SerializePKHeX(BinaryWriter bw, sbyte captureLv)
|
||||
{
|
||||
// flag BallId if not none
|
||||
if (BallId != BallID.BALL_NULL)
|
||||
throw new ArgumentOutOfRangeException(nameof(BallId), BallId, $"No {nameof(BallId)} allowed!");
|
||||
|
||||
ushort species = SpeciesConverterZA.GetNational9((ushort)DevId);
|
||||
byte form = species switch
|
||||
{
|
||||
//(ushort)Species.Vivillon or (ushort)Species.Spewpa or (ushort)Species.Scatterbug => 30,
|
||||
(ushort)Species.Minior when FormId < 7 => (byte)(FormId + 7),
|
||||
_ => (byte)FormId,
|
||||
};
|
||||
|
||||
bw.Write(species);
|
||||
bw.Write(form);
|
||||
bw.Write((byte)Sex);
|
||||
bw.Write((byte)Tokusei);
|
||||
bw.Write((byte)RareType);
|
||||
bw.Write((byte)captureLv);
|
||||
}
|
||||
}
|
||||
88
FlatBuffers/ZA/Shared/Gen9/SpeciesConverterZA.cs
Normal file
88
FlatBuffers/ZA/Shared/Gen9/SpeciesConverterZA.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
/// <summary>
|
||||
/// <see cref="DevID"/> does not match National Dex ID.
|
||||
/// </summary>
|
||||
public static class SpeciesConverterZA
|
||||
{
|
||||
public static T[] GetRearrangedAsNational<T>(T[] specNames)
|
||||
{
|
||||
var result = new T[specNames.Length];
|
||||
for (ushort indexInternal = 0; indexInternal < specNames.Length; indexInternal++)
|
||||
{
|
||||
var indexNational = GetNational9(indexInternal);
|
||||
if (indexNational >= specNames.Length) continue;
|
||||
result[indexNational] = specNames[indexInternal];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts a National Dex ID to Generation 9 internal species ID.
|
||||
/// </summary>
|
||||
/// <param name="species">National Dex ID</param>
|
||||
/// <returns>Generation 9 species ID.</returns>
|
||||
public static ushort GetInternal9(ushort species)
|
||||
{
|
||||
var shift = species - FirstUnalignedNational9;
|
||||
var table = Table9NationalToInternal;
|
||||
if ((uint)shift >= table.Length)
|
||||
return species;
|
||||
return (ushort)(species + table[shift]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Converts a Generation 9 internal species ID to National Dex ID.
|
||||
/// </summary>
|
||||
/// <param name="raw">Generation 9 species ID.</param>
|
||||
/// <returns>National Dex ID.</returns>
|
||||
public static ushort GetNational9(ushort raw)
|
||||
{
|
||||
var table = Table9InternalToNational;
|
||||
var shift = raw - FirstUnalignedInternal9;
|
||||
if ((uint)shift >= table.Length)
|
||||
return raw;
|
||||
return (ushort)(raw + table[shift]);
|
||||
}
|
||||
|
||||
private const int FirstUnalignedNational9 = 917;
|
||||
private const int FirstUnalignedInternal9 = FirstUnalignedNational9;
|
||||
|
||||
/// <summary>
|
||||
/// Difference of National Dex IDs (index) and the associated Gen9 Species IDs (value)
|
||||
/// </summary>
|
||||
private static ReadOnlySpan<sbyte> Table9NationalToInternal =>
|
||||
[
|
||||
001, 001, 001,
|
||||
001, 033, 033, 033, 021, 021, 044, 044, 007, 007,
|
||||
007, 029, 031, 031, 031, 068, 068, 068, 002, 002,
|
||||
017, 017, 030, 030, 024, 024, 028, 028, 058, 058,
|
||||
012, -13, -13, -31, -31, -29, -29, 043, 043, 043,
|
||||
-31, -31, -03, -30, -30, -23, -23, -14, -24, -03,
|
||||
-03, -47, -47, -12, -27, -27, -44, -46, -26, 031,
|
||||
029, -53, -65, 025, -06, -03, -07, -04, -04, -08,
|
||||
-04, 001, -03, -03, -06, -04, -47, -47, -47, -23,
|
||||
-23, -05, -07, -09, -07, -20, -13, -09, -09, -29,
|
||||
-23, 001, 012, 012, 000, 000, 000, -06, 005, -06,
|
||||
-03, -03, -02, -04, -03, -03,
|
||||
];
|
||||
|
||||
/// <summary>
|
||||
/// Difference of Gen9 Species IDs (index) and the associated National Dex IDs (value)
|
||||
/// </summary>
|
||||
private static ReadOnlySpan<sbyte> Table9InternalToNational =>
|
||||
[
|
||||
065, -01, -01,
|
||||
-01, -01, 031, 031, 047, 047, 029, 029, 053, 031,
|
||||
031, 046, 044, 030, 030, -07, -07, -07, 013, 013,
|
||||
-02, -02, 023, 023, 024, -21, -21, 027, 027, 047,
|
||||
047, 047, 026, 014, -33, -33, -33, -17, -17, 003,
|
||||
-29, 012, -12, -31, -31, -31, 003, 003, -24, -24,
|
||||
-44, -44, -30, -30, -28, -28, 023, 023, 006, 007,
|
||||
029, 008, 003, 004, 004, 020, 004, 023, 006, 003,
|
||||
003, 004, -01, 013, 009, 007, 005, 007, 009, 009,
|
||||
-43, -43, -43, -68, -68, -68, -58, -58, -25, -29,
|
||||
-31, 006, -01, 006, 000, 000, 000, 003, 003, 004,
|
||||
002, 003, 003, -05, -12, -12,
|
||||
];
|
||||
}
|
||||
8
FlatBuffers/ZA/Shared/Schemas/Entity/CollisionShape.fbs
Normal file
8
FlatBuffers/ZA/Shared/Schemas/Entity/CollisionShape.fbs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum CollisionShape : int {
|
||||
NONE = 0,
|
||||
SPHERE = 1,
|
||||
BOX = 2,
|
||||
CAPSULE = 3,
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum ComparisonOperatorType : int {
|
||||
EQUAL = 0,
|
||||
NOT_EQUAL = 1,
|
||||
GREATER_THAN = 2,
|
||||
GREATER_THAN_EQUAL = 3,
|
||||
LESS_THAN = 4,
|
||||
LESS_THAN_EQUAL = 5,
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
include "PokemonTriggerID.fbs";
|
||||
include "ComparisonOperatorType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table ConditionSimpleAutoBattleHecklerAreaArray (fs_serializer) {
|
||||
Table:[ConditionSimpleAutoBattleHecklerArea] (required);
|
||||
}
|
||||
|
||||
table ConditionSimpleAutoBattleHecklerArea {
|
||||
TriggerID:PokemonTriggerID;
|
||||
ComparisonOperatorType:ComparisonOperatorType;
|
||||
}
|
||||
12
FlatBuffers/ZA/Shared/Schemas/Entity/OwnerInfo.fbs
Normal file
12
FlatBuffers/ZA/Shared/Schemas/Entity/OwnerInfo.fbs
Normal file
@@ -0,0 +1,12 @@
|
||||
include "../Shared/SexType.fbs";
|
||||
include "../Shared/LangType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table OwnerInfo {
|
||||
TrainerId:int;
|
||||
Sex:SexType;
|
||||
LangId:LangType;
|
||||
Name:string (required);
|
||||
}
|
||||
11
FlatBuffers/ZA/Shared/Schemas/Entity/ParamSet.fbs
Normal file
11
FlatBuffers/ZA/Shared/Schemas/Entity/ParamSet.fbs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table ParamSet {
|
||||
HP:int;
|
||||
ATK:int;
|
||||
DEF:int;
|
||||
SPA:int;
|
||||
SPD:int;
|
||||
SPE:int;
|
||||
}
|
||||
61
FlatBuffers/ZA/Shared/Schemas/Entity/PokeObjArray.fbs
Normal file
61
FlatBuffers/ZA/Shared/Schemas/Entity/PokeObjArray.fbs
Normal file
@@ -0,0 +1,61 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "Math/Vec3f.fbs";
|
||||
include "CollisionShape.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
attribute "fs_serializer";
|
||||
|
||||
table GrassCollision {
|
||||
OffsetY:float;
|
||||
Radius:float;
|
||||
}
|
||||
|
||||
table CGemParam {
|
||||
Pos:Vec3f (required);
|
||||
Rot:Vec3f (required);
|
||||
Scale:Vec3f (required);
|
||||
}
|
||||
|
||||
table PokeParameter {
|
||||
ReachDistance:float;
|
||||
AcceleStartDistance:float;
|
||||
DeceleStartDistance:float;
|
||||
MoveAccele:float;
|
||||
RotationSpeed:float;
|
||||
MinWaterDepthThreshold:float;
|
||||
MaxWaterDepthThreshold:float;
|
||||
MinAltitudeThreshold:float;
|
||||
MaxAltitudeThreshold:float;
|
||||
}
|
||||
|
||||
table NamedFlatBuffer {
|
||||
FileName:string (required);
|
||||
}
|
||||
|
||||
table CharaCollision {
|
||||
Shape:CollisionShape = NONE;
|
||||
Pos:Vec3f (required);
|
||||
Radius:float;
|
||||
}
|
||||
|
||||
table BodyCollision {
|
||||
Shape:CollisionShape = NONE;
|
||||
Pos:Vec3f (required);
|
||||
Radius:float;
|
||||
}
|
||||
|
||||
table PokeObj {
|
||||
DevId:DevID = DEV_NULL;
|
||||
Body:BodyCollision;
|
||||
Chara:CharaCollision;
|
||||
Grass:GrassCollision;
|
||||
FlatBuffer:NamedFlatBuffer;
|
||||
GemParam:CGemParam;
|
||||
Poke:PokeParameter;
|
||||
}
|
||||
|
||||
table PokeObjArray (fs_serializer) {
|
||||
Table:[PokeObj] (required);
|
||||
}
|
||||
|
||||
root_type PokeObjArray;
|
||||
1005
FlatBuffers/ZA/Shared/Schemas/Entity/PokemonTriggerID.fbs
Normal file
1005
FlatBuffers/ZA/Shared/Schemas/Entity/PokemonTriggerID.fbs
Normal file
File diff suppressed because it is too large
Load Diff
1105
FlatBuffers/ZA/Shared/Schemas/Entity/PokemonUniquePathData.fbs
Normal file
1105
FlatBuffers/ZA/Shared/Schemas/Entity/PokemonUniquePathData.fbs
Normal file
File diff suppressed because it is too large
Load Diff
35
FlatBuffers/ZA/Shared/Schemas/Misc/CaptureBallData.fbs
Normal file
35
FlatBuffers/ZA/Shared/Schemas/Misc/CaptureBallData.fbs
Normal file
@@ -0,0 +1,35 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
struct TimerBallData {
|
||||
Count:uint;
|
||||
Ratio:float;
|
||||
}
|
||||
|
||||
table CaptureBallData (fs_serializer) {
|
||||
Poke:float;
|
||||
Great:float;
|
||||
Ultra:float;
|
||||
Net:float;
|
||||
Repeat:float;
|
||||
Timer:[TimerBallData];
|
||||
Nest:float;
|
||||
Luxury:float;
|
||||
Heal:float;
|
||||
Dive:float;
|
||||
Quick:float;
|
||||
Dusk:float;
|
||||
Premier:float;
|
||||
Beast:float;
|
||||
Dream:float;
|
||||
Fast:float;
|
||||
Friend:float;
|
||||
Heavy:[float];
|
||||
Moon:float;
|
||||
Love:float;
|
||||
Lure:float;
|
||||
Level:[float];
|
||||
}
|
||||
|
||||
root_type CaptureBallData;
|
||||
40
FlatBuffers/ZA/Shared/Schemas/Misc/CaptureData.fbs
Normal file
40
FlatBuffers/ZA/Shared/Schemas/Misc/CaptureData.fbs
Normal file
@@ -0,0 +1,40 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table CaptureSick {
|
||||
Koori:float;
|
||||
Nemuri:float;
|
||||
Doku:float;
|
||||
Yakedo:float;
|
||||
Mahi:float;
|
||||
}
|
||||
|
||||
table CaptureBackStrike {
|
||||
Cowardice:float;
|
||||
NotCowardice:float;
|
||||
}
|
||||
|
||||
table CaptureAiState {
|
||||
Normal:float;
|
||||
NotAware:float;
|
||||
Eating:float;
|
||||
Sleeping:float;
|
||||
Resting:float;
|
||||
}
|
||||
|
||||
table CaptureData (fs_serializer) {
|
||||
Sick:CaptureSick;
|
||||
Rare:float;
|
||||
BackStrike:CaptureBackStrike;
|
||||
Cowardice:CaptureAiState;
|
||||
NotCowardice:CaptureAiState;
|
||||
Chance:float;
|
||||
Oyabun:float;
|
||||
OyabunChance:float;
|
||||
Coef:float;
|
||||
backStrikeAngle:int;
|
||||
backStrikeHeight:int;
|
||||
}
|
||||
|
||||
root_type CaptureData;
|
||||
32
FlatBuffers/ZA/Shared/Schemas/Misc/CaptureZARankData.fbs
Normal file
32
FlatBuffers/ZA/Shared/Schemas/Misc/CaptureZARankData.fbs
Normal file
@@ -0,0 +1,32 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
attribute "fs_valueStruct";
|
||||
attribute "fs_nonVirtual";
|
||||
|
||||
table CaptureZARankData (fs_serializer) {
|
||||
LevelThreshold:ZARankLevelThreshold (required);
|
||||
ZRank:ZARankArray (required);
|
||||
YRank:ZARankArray (required);
|
||||
XRank:ZARankArray (required);
|
||||
WRank:ZARankArray (required);
|
||||
VRank:ZARankArray (required);
|
||||
GRank:ZARankArray (required);
|
||||
FRank:ZARankArray (required);
|
||||
ERank:ZARankArray (required);
|
||||
DRank:ZARankArray (required);
|
||||
CRank:ZARankArray (required);
|
||||
BRank:ZARankArray (required);
|
||||
ARank:ZARankArray (required);
|
||||
InfRank:ZARankArray (required);
|
||||
}
|
||||
|
||||
struct ZARankLevelThreshold {
|
||||
Level:[int:10] (fs_nonVirtual);
|
||||
}
|
||||
|
||||
struct ZARankArray {
|
||||
Ratio:[float:10] (fs_nonVirtual);
|
||||
}
|
||||
|
||||
root_type CaptureZARankData;
|
||||
21
FlatBuffers/ZA/Shared/Schemas/Misc/MegaEvoArray.fbs
Normal file
21
FlatBuffers/ZA/Shared/Schemas/Misc/MegaEvoArray.fbs
Normal file
@@ -0,0 +1,21 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "../Shared/ItemID.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
attribute "fs_serializer";
|
||||
|
||||
table MegaEvo {
|
||||
Species:DevID;
|
||||
Item:ItemID;
|
||||
FromForm:uint;
|
||||
ToForm:uint;
|
||||
Type:string (required);
|
||||
Short:string (required);
|
||||
}
|
||||
|
||||
table MegaEvoArray (fs_serializer) {
|
||||
Table:[MegaEvo] (required);
|
||||
}
|
||||
|
||||
root_type MegaEvoArray;
|
||||
34
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataBattle.fbs
Normal file
34
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataBattle.fbs
Normal file
@@ -0,0 +1,34 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "../Shared/SexType.fbs";
|
||||
include "../Shared/ItemID.fbs";
|
||||
include "../Shared/SeikakuType.fbs";
|
||||
include "../Shared/TokuseiType.fbs";
|
||||
include "../Shared/TalentType.fbs";
|
||||
include "../Shared/RareType.fbs";
|
||||
include "../Shared/SizeType.fbs";
|
||||
include "../Shared/BallID.fbs";
|
||||
|
||||
include "../PokeData/WazaSetBattle.fbs";
|
||||
include "../Entity/ParamSet.fbs";
|
||||
include "../Shared/WazaType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table PokeDataBattle {
|
||||
DevId:DevID;
|
||||
FormId:short;
|
||||
Sex:SexType;
|
||||
Item:ItemID;
|
||||
Level:int;
|
||||
BallId:BallID;
|
||||
Waza1:WazaSetBattle (required);
|
||||
Waza2:WazaSetBattle (required);
|
||||
Waza3:WazaSetBattle (required);
|
||||
Waza4:WazaSetBattle (required);
|
||||
Seikaku:SeikakuType;
|
||||
Tokusei:TokuseiType;
|
||||
TalentValue:ParamSet (required);
|
||||
EffortValue:ParamSet (required);
|
||||
RareType:RareType;
|
||||
ScaleValue:short;
|
||||
}
|
||||
43
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataDLCGift.fbs
Normal file
43
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataDLCGift.fbs
Normal file
@@ -0,0 +1,43 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "../Shared/SexType.fbs";
|
||||
include "../Shared/ItemID.fbs";
|
||||
include "../Shared/SeikakuType.fbs";
|
||||
include "../Shared/TokuseiType.fbs";
|
||||
include "../Shared/TalentType.fbs";
|
||||
include "../Shared/RareType.fbs";
|
||||
include "../Shared/SizeType.fbs";
|
||||
include "../Shared/BallID.fbs";
|
||||
include "../Shared/RibbonType.fbs";
|
||||
|
||||
include "../Entity/ParamSet.fbs";
|
||||
include "../PokeData/WazaSet.fbs";
|
||||
include "../Shared/WazaType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table PokeDataDLCGift {
|
||||
DevId:DevID = DEV_NULL;
|
||||
FormId:short;
|
||||
Level:int;
|
||||
Sex:SexType;
|
||||
Tokusei:TokuseiType;
|
||||
RareType:RareType;
|
||||
ScaleType:SizeType;
|
||||
ScaleValue:short;
|
||||
TalentType:TalentType;
|
||||
TalentVnum:byte;
|
||||
TalentValue:ParamSet;
|
||||
EffortValue:ParamSet;
|
||||
Item:ItemID = ITEMID_NONE;
|
||||
Seikaku:SeikakuType;
|
||||
SeikakuHosei:SeikakuType;
|
||||
WazaType:WazaType;
|
||||
Waza1:WazaSet;
|
||||
Waza2:WazaSet;
|
||||
Waza3:WazaSet;
|
||||
Waza4:WazaSet;
|
||||
BallId:BallID;
|
||||
UseNickName:bool;
|
||||
NicknameLabel:ulong;
|
||||
ParentSex:SexType;
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "../Shared/SexType.fbs";
|
||||
include "../Shared/ItemID.fbs";
|
||||
include "../Shared/SeikakuType.fbs";
|
||||
include "../Shared/TokuseiType.fbs";
|
||||
include "../Shared/TalentType.fbs";
|
||||
include "../Shared/RareType.fbs";
|
||||
include "../Shared/SizeType.fbs";
|
||||
include "../Shared/RibbonType.fbs";
|
||||
|
||||
include "../PokeData/WazaSet.fbs";
|
||||
include "../Entity/ParamSet.fbs";
|
||||
include "../Shared/WazaType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table PokeDataEventBattle {
|
||||
DevId:DevID = DEV_NULL;
|
||||
FormId:short;
|
||||
Sex:SexType;
|
||||
Level:int;
|
||||
RareType:RareType;
|
||||
TalentType:TalentType;
|
||||
TalentVnum:byte;
|
||||
TalentValue:ParamSet (required);
|
||||
EffortValue:ParamSet (required);
|
||||
Item:ItemID = ITEMID_NONE;
|
||||
DropItem:ItemID = ITEMID_NONE;
|
||||
DropItemNum:byte;
|
||||
Seikaku:SeikakuType;
|
||||
SeikakuHosei:SeikakuType;
|
||||
Tokusei:TokuseiType;
|
||||
WazaType:WazaType;
|
||||
Waza1:WazaSet (required);
|
||||
Waza2:WazaSet (required);
|
||||
Waza3:WazaSet (required);
|
||||
Waza4:WazaSet (required);
|
||||
ScaleType:SizeType;
|
||||
ScaleValue:short;
|
||||
SetRibbon:RibbonType;
|
||||
}
|
||||
64
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataFull.fbs
Normal file
64
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataFull.fbs
Normal file
@@ -0,0 +1,64 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "../Shared/SexType.fbs";
|
||||
include "../Shared/ItemID.fbs";
|
||||
include "../Shared/SeikakuType.fbs";
|
||||
include "../Shared/TokuseiType.fbs";
|
||||
include "../Shared/TalentType.fbs";
|
||||
include "../Shared/RareType.fbs";
|
||||
include "../Shared/SizeType.fbs";
|
||||
|
||||
include "../Entity/ParamSet.fbs";
|
||||
include "../Shared/LangType.fbs";
|
||||
include "../Shared/BallID.fbs";
|
||||
include "../Shared/RibbonType.fbs";
|
||||
include "../Shared/PokeMemoType.fbs";
|
||||
include "../Shared/WazaType.fbs";
|
||||
include "../PokeData/WazaSet.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table PokeDataFull {
|
||||
DevId:DevID = DEV_NULL;
|
||||
FormId:short;
|
||||
Item:ItemID = ITEMID_NONE;
|
||||
Level:int;
|
||||
Sex:SexType;
|
||||
Seikaku:SeikakuType;
|
||||
SeikakuHosei:SeikakuType;
|
||||
Tokusei:TokuseiType;
|
||||
RareType:RareType;
|
||||
RareTryCount:int;
|
||||
TalentType:TalentType;
|
||||
TalentValue:ParamSet;
|
||||
TalentVnum:byte;
|
||||
EffortValue:ParamSet;
|
||||
Friendship:int;
|
||||
ScaleType:SizeType;
|
||||
ScaleValue:short;
|
||||
SetPersonalRand:bool;
|
||||
PersonalRand:ulong;
|
||||
SetRandSeed:bool;
|
||||
RandSeed:ulong;
|
||||
WazaType:WazaType;
|
||||
Waza1:WazaSet;
|
||||
Waza2:WazaSet;
|
||||
Waza3:WazaSet;
|
||||
Waza4:WazaSet;
|
||||
UseNickName:bool;
|
||||
NicknameLabel:ulong;
|
||||
ParentNameLabel:ulong;
|
||||
ParentSex:SexType;
|
||||
ParentLangId:LangType;
|
||||
ParentMemoryCode:int;
|
||||
ParentMemoryData:int;
|
||||
ParentMemoryFeel:int;
|
||||
ParentMemoryLevel:int;
|
||||
LangId:LangType;
|
||||
BallId:BallID;
|
||||
SetRibbon:RibbonType;
|
||||
EventFlg:bool;
|
||||
WazaConfirmLevel:byte;
|
||||
PokeMemo:PokeMemoType;
|
||||
PokeMemoPlace:int;
|
||||
TrainerId:long;
|
||||
}
|
||||
31
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataSymbol.fbs
Normal file
31
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataSymbol.fbs
Normal file
@@ -0,0 +1,31 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "../Shared/SexType.fbs";
|
||||
include "../Shared/RareType.fbs";
|
||||
include "../Shared/TalentType.fbs";
|
||||
include "../Shared/TokuseiType.fbs";
|
||||
include "../Shared/SizeType.fbs";
|
||||
|
||||
include "../PokeData/WazaSet.fbs";
|
||||
include "../Entity/ParamSet.fbs";
|
||||
include "../Shared/WazaType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table PokeDataSymbol {
|
||||
DevId:DevID = DEV_NULL;
|
||||
FormId:short;
|
||||
Level:int;
|
||||
Sex:SexType;
|
||||
RareType:RareType;
|
||||
TalentType:TalentType;
|
||||
TalentValue:ParamSet (required);
|
||||
TalentVNum:byte;
|
||||
WazaType:WazaType;
|
||||
Waza1:WazaSet (required);
|
||||
Waza2:WazaSet (required);
|
||||
Waza3:WazaSet (required);
|
||||
Waza4:WazaSet (required);
|
||||
TokuseiIndex:TokuseiType;
|
||||
ScaleType:SizeType;
|
||||
ScaleValue:short;
|
||||
}
|
||||
45
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataTrade.fbs
Normal file
45
FlatBuffers/ZA/Shared/Schemas/PokeData/PokeDataTrade.fbs
Normal file
@@ -0,0 +1,45 @@
|
||||
include "../Shared/DevID.fbs";
|
||||
include "../Shared/SexType.fbs";
|
||||
include "../Shared/ItemID.fbs";
|
||||
include "../Shared/SeikakuType.fbs";
|
||||
include "../Shared/TokuseiType.fbs";
|
||||
include "../Shared/TalentType.fbs";
|
||||
include "../Shared/RareType.fbs";
|
||||
include "../Shared/SizeType.fbs";
|
||||
include "../Shared/BallID.fbs";
|
||||
include "../Shared/RibbonType.fbs";
|
||||
|
||||
include "../Entity/ParamSet.fbs";
|
||||
include "../PokeData/WazaSet.fbs";
|
||||
include "../Shared/WazaType.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table PokeDataTrade {
|
||||
DevId:DevID = DEV_NULL;
|
||||
FormId:short;
|
||||
Level:int;
|
||||
Sex:SexType;
|
||||
Tokusei:TokuseiType;
|
||||
RareType:RareType;
|
||||
ScaleType:SizeType;
|
||||
ScaleValue:short;
|
||||
TalentType:TalentType;
|
||||
TalentVnum:byte;
|
||||
TalentValue:ParamSet;
|
||||
EffortValue:ParamSet;
|
||||
Item:ItemID = ITEMID_NONE;
|
||||
Seikaku:SeikakuType;
|
||||
SeikakuHosei:SeikakuType;
|
||||
WazaType:WazaType;
|
||||
Waza1:WazaSet;
|
||||
Waza2:WazaSet;
|
||||
Waza3:WazaSet;
|
||||
Waza4:WazaSet;
|
||||
BallId:BallID;
|
||||
UseNickName:bool;
|
||||
NicknameLabel:ulong;
|
||||
ParentNameLabel:ulong;
|
||||
TrainerId:long;
|
||||
ParentSex:SexType;
|
||||
}
|
||||
9
FlatBuffers/ZA/Shared/Schemas/PokeData/WazaSet.fbs
Normal file
9
FlatBuffers/ZA/Shared/Schemas/PokeData/WazaSet.fbs
Normal file
@@ -0,0 +1,9 @@
|
||||
include "../Shared/WazaID.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table WazaSet {
|
||||
WazaId:WazaID;
|
||||
PointUp:byte;
|
||||
IsPlusWaza:bool;
|
||||
}
|
||||
8
FlatBuffers/ZA/Shared/Schemas/PokeData/WazaSetBattle.fbs
Normal file
8
FlatBuffers/ZA/Shared/Schemas/PokeData/WazaSetBattle.fbs
Normal file
@@ -0,0 +1,8 @@
|
||||
include "../Shared/WazaID.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table WazaSetBattle {
|
||||
WazaId:WazaID;
|
||||
IsPlusWaza:bool;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
include "../Shared/ActivationConditionElement.fbs";
|
||||
include "../Shared/TriggerCommand.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table ActivationCondition {
|
||||
Element:[ActivationConditionElement];
|
||||
Triggers:[TriggerCommand];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
include "../Shared/ActivationConditionParam.fbs";
|
||||
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table ActivationConditionElement {
|
||||
Param:[ActivationConditionParam];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table ActivationConditionParam {
|
||||
Condition:string (required);
|
||||
Op:int;
|
||||
Param:[string]; // not required; null instead of count:0
|
||||
}
|
||||
6
FlatBuffers/ZA/Shared/Schemas/Shared/AppearanceInfo.fbs
Normal file
6
FlatBuffers/ZA/Shared/Schemas/Shared/AppearanceInfo.fbs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table AppearanceInfo {
|
||||
MinCount:int;
|
||||
MaxCount:int;
|
||||
}
|
||||
43
FlatBuffers/ZA/Shared/Schemas/Shared/BallID.fbs
Normal file
43
FlatBuffers/ZA/Shared/Schemas/Shared/BallID.fbs
Normal file
@@ -0,0 +1,43 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum BallID : ubyte
|
||||
{
|
||||
BALL_NULL = 0,
|
||||
MASUTAABOORU = 1,
|
||||
HAIPAABOORU = 2,
|
||||
SUUPAABOORU = 3,
|
||||
MONSUTAABOORU = 4,
|
||||
SAFARIBOORU = 5,
|
||||
NETTOBOORU = 6,
|
||||
DAIBUBOORU = 7,
|
||||
NESUTOBOORU = 8,
|
||||
RIPIITOBOORU = 9,
|
||||
TAIMAABOORU = 10,
|
||||
GOOZYASUBOORU = 11,
|
||||
PUREMIABOORU = 12,
|
||||
DAAKUBOORU = 13,
|
||||
HIIRUBOORU = 14,
|
||||
KUIKKUBOORU = 15,
|
||||
PURESYASUBOORU = 16,
|
||||
SUPIIDOBOORU = 17,
|
||||
REBERUBOORU = 18,
|
||||
RUAABOORU = 19,
|
||||
HEBIIBOORU = 20,
|
||||
RABURABUBOORU = 21,
|
||||
HURENDOBOORU = 22,
|
||||
MUUNBOORU = 23,
|
||||
KONPEBOORU = 24,
|
||||
DORIIMUBOORU = 25,
|
||||
URUTORABOORU = 26,
|
||||
SUTORENZIBOORU = 27,
|
||||
MONSUTAABOORU_HA = 28,
|
||||
SUUPAABOORU_HA = 29,
|
||||
HAIPAABOORU_HA = 30,
|
||||
HUHEZAABOORU = 31,
|
||||
UINGUBOORU = 32,
|
||||
ZIHETOBOORU = 33,
|
||||
HEBIIBOORU_HA = 34,
|
||||
MEGATONBOORU = 35,
|
||||
GIGANTOBOORU = 36,
|
||||
ORIZINBOORU = 37,
|
||||
}
|
||||
7
FlatBuffers/ZA/Shared/Schemas/Shared/BattleType.fbs
Normal file
7
FlatBuffers/ZA/Shared/Schemas/Shared/BattleType.fbs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum BattleType : int {
|
||||
SINGLE = 0,
|
||||
DOUBLE = 1,
|
||||
MULTI = 2,
|
||||
}
|
||||
6
FlatBuffers/ZA/Shared/Schemas/Shared/ClerkType.fbs
Normal file
6
FlatBuffers/ZA/Shared/Schemas/Shared/ClerkType.fbs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum ClerkType : int {
|
||||
CLERK = 0,
|
||||
NO_CLERK = 1,
|
||||
}
|
||||
8
FlatBuffers/ZA/Shared/Schemas/Shared/CondEnum.fbs
Normal file
8
FlatBuffers/ZA/Shared/Schemas/Shared/CondEnum.fbs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum CondEnum : int {
|
||||
NONE = 0,
|
||||
SYSTEM_FLAG = 1,
|
||||
SCENARIO = 2,
|
||||
GYMBADGENUM = 3,
|
||||
}
|
||||
5
FlatBuffers/ZA/Shared/Schemas/Shared/CoolTimeInfo.fbs
Normal file
5
FlatBuffers/ZA/Shared/Schemas/Shared/CoolTimeInfo.fbs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table CoolTimeInfo {
|
||||
Time:float;
|
||||
}
|
||||
8
FlatBuffers/ZA/Shared/Schemas/Shared/DataType.fbs
Normal file
8
FlatBuffers/ZA/Shared/Schemas/Shared/DataType.fbs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum DataType : int {
|
||||
NORMAL = 0,
|
||||
ITEM = 1,
|
||||
WAZA = 2,
|
||||
MULTI = 3,
|
||||
}
|
||||
1031
FlatBuffers/ZA/Shared/Schemas/Shared/DevID.fbs
Normal file
1031
FlatBuffers/ZA/Shared/Schemas/Shared/DevID.fbs
Normal file
File diff suppressed because it is too large
Load Diff
5
FlatBuffers/ZA/Shared/Schemas/Shared/HoldItem.fbs
Normal file
5
FlatBuffers/ZA/Shared/Schemas/Shared/HoldItem.fbs
Normal file
@@ -0,0 +1,5 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
table HoldItem {
|
||||
ItemId:int;
|
||||
}
|
||||
571
FlatBuffers/ZA/Shared/Schemas/Shared/ItemID.fbs
Normal file
571
FlatBuffers/ZA/Shared/Schemas/Shared/ItemID.fbs
Normal file
@@ -0,0 +1,571 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum ItemID : int
|
||||
{
|
||||
ITEMID_NONE = 0,
|
||||
ITEMID_MASUTAABOORU = 1,
|
||||
ITEMID_HAIPAABOORU = 2,
|
||||
ITEMID_SUUPAABOORU = 3,
|
||||
ITEMID_MONSUTAABOORU = 4,
|
||||
ITEMID_SAFARIBOORU = 5,
|
||||
ITEMID_NETTOBOORU = 6,
|
||||
ITEMID_DAIBUBOORU = 7,
|
||||
ITEMID_NESUTOBOORU = 8,
|
||||
ITEMID_RIPIITOBOORU = 9,
|
||||
ITEMID_TAIMAABOORU = 10,
|
||||
ITEMID_GOOZYASUBOORU = 11,
|
||||
ITEMID_PUREMIABOORU = 12,
|
||||
ITEMID_DAAKUBOORU = 13,
|
||||
ITEMID_HIIRUBOORU = 14,
|
||||
ITEMID_KUIKKUBOORU = 15,
|
||||
ITEMID_PURESYASUBOORU = 16,
|
||||
ITEMID_KIZUGUSURI = 17,
|
||||
ITEMID_DOKUKESI = 18,
|
||||
ITEMID_YAKEDONAOSI = 19,
|
||||
ITEMID_KOORINAOSI = 20,
|
||||
ITEMID_NEMUKEZAMASI = 21,
|
||||
ITEMID_MAHINAOSI = 22,
|
||||
ITEMID_KAIHUKUNOKUSURI = 23,
|
||||
ITEMID_MANTANNOKUSURI = 24,
|
||||
ITEMID_SUGOIKIZUGUSURI = 25,
|
||||
ITEMID_IIKIZUGUSURI = 26,
|
||||
ITEMID_NANDEMONAOSI = 27,
|
||||
ITEMID_GENKINOKAKERA = 28,
|
||||
ITEMID_GENKINOKATAMARI = 29,
|
||||
ITEMID_OISIIMIZU = 30,
|
||||
ITEMID_SAIKOSOODA = 31,
|
||||
ITEMID_MIKKUSUORE = 32,
|
||||
ITEMID_MOOMOOMIRUKU = 33,
|
||||
ITEMID_MAKKUSUAPPU = 45,
|
||||
ITEMID_TAURIN = 46,
|
||||
ITEMID_BUROMUHEKISIN = 47,
|
||||
ITEMID_INDOMETASIN = 48,
|
||||
ITEMID_RIZOTIUMU = 49,
|
||||
ITEMID_HUSIGINAAME = 50,
|
||||
ITEMID_KITOSAN = 52,
|
||||
ITEMID_EFEKUTOGAADO = 55,
|
||||
ITEMID_KURITHIKATTO = 56,
|
||||
ITEMID_PURASUPAWAA = 57,
|
||||
ITEMID_DHIFENDAA = 58,
|
||||
ITEMID_SUPIIDAA = 59,
|
||||
ITEMID_YOKUATAARU = 60,
|
||||
ITEMID_SUPESYARUAPPU = 61,
|
||||
ITEMID_SUPESYARUGAADO = 62,
|
||||
ITEMID_SIRUBAASUPUREE = 76,
|
||||
ITEMID_GOORUDOSUPUREE = 77,
|
||||
ITEMID_MUSIYOKESUPUREE = 79,
|
||||
ITEMID_TAIYOUNOISI = 80,
|
||||
ITEMID_TUKINOISI = 81,
|
||||
ITEMID_HONOONOISI = 82,
|
||||
ITEMID_KAMINARINOISI = 83,
|
||||
ITEMID_MIZUNOISI = 84,
|
||||
ITEMID_RIIHUNOISI = 85,
|
||||
ITEMID_TIISANAKINOKO = 86,
|
||||
ITEMID_SINZYU = 88,
|
||||
ITEMID_OOKINASINZYU = 89,
|
||||
ITEMID_KINNOTAMA = 92,
|
||||
ITEMID_HIMITUNOKOHAKU = 103,
|
||||
ITEMID_HIKARINOISI = 107,
|
||||
ITEMID_YAMINOISI = 108,
|
||||
ITEMID_MEZAMEISI = 109,
|
||||
ITEMID_KURABONOMI = 149,
|
||||
ITEMID_KAGONOMI = 150,
|
||||
ITEMID_MOMONNOMI = 151,
|
||||
ITEMID_TIIGONOMI = 152,
|
||||
ITEMID_NANASINOMI = 153,
|
||||
ITEMID_ORENNOMI = 155,
|
||||
ITEMID_KIINOMI = 156,
|
||||
ITEMID_RAMUNOMI = 157,
|
||||
ITEMID_OBONNOMI = 158,
|
||||
ITEMID_FIRANOMI = 159,
|
||||
ITEMID_UINOMI = 160,
|
||||
ITEMID_MAGONOMI = 161,
|
||||
ITEMID_BANZINOMI = 162,
|
||||
ITEMID_IANOMI = 163,
|
||||
ITEMID_ZAROKUNOMI = 169,
|
||||
ITEMID_NEKOBUNOMI = 170,
|
||||
ITEMID_TAPORUNOMI = 171,
|
||||
ITEMID_ROMENOMI = 172,
|
||||
ITEMID_UBUNOMI = 173,
|
||||
ITEMID_MATOMANOMI = 174,
|
||||
ITEMID_OKKANOMI = 184,
|
||||
ITEMID_ITOKENOMI = 185,
|
||||
ITEMID_SOKUNONOMI = 186,
|
||||
ITEMID_RINDONOMI = 187,
|
||||
ITEMID_YATHENOMI = 188,
|
||||
ITEMID_YOPUNOMI = 189,
|
||||
ITEMID_BIAANOMI = 190,
|
||||
ITEMID_SYUKANOMI = 191,
|
||||
ITEMID_BAKOUNOMI = 192,
|
||||
ITEMID_UTANNOMI = 193,
|
||||
ITEMID_TANGANOMI = 194,
|
||||
ITEMID_YOROGINOMI = 195,
|
||||
ITEMID_KASIBUNOMI = 196,
|
||||
ITEMID_HABANNOMI = 197,
|
||||
ITEMID_NAMONOMI = 198,
|
||||
ITEMID_RIRIBANOMI = 199,
|
||||
ITEMID_HOZUNOMI = 200,
|
||||
ITEMID_TIIRANOMI = 201,
|
||||
ITEMID_RYUGANOMI = 202,
|
||||
ITEMID_KAMURANOMI = 203,
|
||||
ITEMID_YATAPINOMI = 204,
|
||||
ITEMID_ZUANOMI = 205,
|
||||
ITEMID_SANNOMI = 206,
|
||||
ITEMID_SUTAANOMI = 207,
|
||||
ITEMID_MIKURUNOMI = 209,
|
||||
ITEMID_IBANNOMI = 210,
|
||||
ITEMID_HIKARINOKONA = 213,
|
||||
ITEMID_SIROIHAABU = 214,
|
||||
ITEMID_SENSEINOTUME = 217,
|
||||
ITEMID_YASURAGINOSUZU = 218,
|
||||
ITEMID_MENTARUHAABU = 219,
|
||||
ITEMID_KODAWARIHATIMAKI = 220,
|
||||
ITEMID_OUZYANOSIRUSI = 221,
|
||||
ITEMID_GINNOKONA = 222,
|
||||
ITEMID_OMAMORIKOBAN = 223,
|
||||
ITEMID_KOKORONOSIZUKU = 225,
|
||||
ITEMID_KIAINOHATIMAKI = 230,
|
||||
ITEMID_SIAWASETAMAGO = 231,
|
||||
ITEMID_PINTORENZU = 232,
|
||||
ITEMID_METARUKOOTO = 233,
|
||||
ITEMID_TABENOKOSI = 234,
|
||||
ITEMID_DENKIDAMA = 236,
|
||||
ITEMID_YAWARAKAISUNA = 237,
|
||||
ITEMID_KATAIISI = 238,
|
||||
ITEMID_KISEKINOTANE = 239,
|
||||
ITEMID_KUROIMEGANE = 240,
|
||||
ITEMID_KUROOBI = 241,
|
||||
ITEMID_ZISYAKU = 242,
|
||||
ITEMID_SINPINOSIZUKU = 243,
|
||||
ITEMID_SURUDOIKUTIBASI = 244,
|
||||
ITEMID_DOKUBARI = 245,
|
||||
ITEMID_TOKENAIKOORI = 246,
|
||||
ITEMID_NOROINOOHUDA = 247,
|
||||
ITEMID_MAGATTASUPUUN = 248,
|
||||
ITEMID_MOKUTAN = 249,
|
||||
ITEMID_RYUUNOKIBA = 250,
|
||||
ITEMID_SIRUKUNOSUKAAHU = 251,
|
||||
ITEMID_KAIGARANOSUZU = 253,
|
||||
ITEMID_KOUKAKURENZU = 265,
|
||||
ITEMID_TIKARANOHATIMAKI = 266,
|
||||
ITEMID_MONOSIRIMEGANE = 267,
|
||||
ITEMID_TATUZINNOOBI = 268,
|
||||
ITEMID_INOTINOTAMA = 270,
|
||||
ITEMID_PAWAHURUHAABU = 271,
|
||||
ITEMID_KIAINOTASUKI = 275,
|
||||
ITEMID_METORONOOMU = 277,
|
||||
ITEMID_KUROITEKKYUU = 278,
|
||||
ITEMID_KOUKOUNOSIPPO = 279,
|
||||
ITEMID_AKAIITO = 280,
|
||||
ITEMID_KUROIHEDORO = 281,
|
||||
ITEMID_TUMETAIIWA = 282,
|
||||
ITEMID_SARASARAIWA = 283,
|
||||
ITEMID_ATUIIWA = 284,
|
||||
ITEMID_SIMETTAIWA = 285,
|
||||
ITEMID_NEBARINOKAGIDUME = 286,
|
||||
ITEMID_KODAWARISUKAAHU = 287,
|
||||
ITEMID_KUTTUKIBARI = 288,
|
||||
ITEMID_PAWAARISUTO = 289,
|
||||
ITEMID_PAWAABERUTO = 290,
|
||||
ITEMID_PAWAARENZU = 291,
|
||||
ITEMID_PAWAABANDO = 292,
|
||||
ITEMID_PAWAAANKURU = 293,
|
||||
ITEMID_PAWAAUEITO = 294,
|
||||
ITEMID_KIREINANUKEGARA = 295,
|
||||
ITEMID_OOKINANEKKO = 296,
|
||||
ITEMID_KODAWARIMEGANE = 297,
|
||||
ITEMID_WAZAMASIN01 = 328,
|
||||
ITEMID_WAZAMASIN02 = 329,
|
||||
ITEMID_WAZAMASIN03 = 330,
|
||||
ITEMID_WAZAMASIN04 = 331,
|
||||
ITEMID_WAZAMASIN05 = 332,
|
||||
ITEMID_WAZAMASIN06 = 333,
|
||||
ITEMID_WAZAMASIN07 = 334,
|
||||
ITEMID_WAZAMASIN08 = 335,
|
||||
ITEMID_WAZAMASIN09 = 336,
|
||||
ITEMID_WAZAMASIN10 = 337,
|
||||
ITEMID_WAZAMASIN11 = 338,
|
||||
ITEMID_WAZAMASIN12 = 339,
|
||||
ITEMID_WAZAMASIN13 = 340,
|
||||
ITEMID_WAZAMASIN14 = 341,
|
||||
ITEMID_WAZAMASIN15 = 342,
|
||||
ITEMID_WAZAMASIN16 = 343,
|
||||
ITEMID_WAZAMASIN17 = 344,
|
||||
ITEMID_WAZAMASIN18 = 345,
|
||||
ITEMID_WAZAMASIN19 = 346,
|
||||
ITEMID_WAZAMASIN20 = 347,
|
||||
ITEMID_WAZAMASIN21 = 348,
|
||||
ITEMID_WAZAMASIN22 = 349,
|
||||
ITEMID_WAZAMASIN23 = 350,
|
||||
ITEMID_WAZAMASIN24 = 351,
|
||||
ITEMID_WAZAMASIN25 = 352,
|
||||
ITEMID_WAZAMASIN26 = 353,
|
||||
ITEMID_WAZAMASIN27 = 354,
|
||||
ITEMID_WAZAMASIN28 = 355,
|
||||
ITEMID_WAZAMASIN29 = 356,
|
||||
ITEMID_WAZAMASIN30 = 357,
|
||||
ITEMID_WAZAMASIN31 = 358,
|
||||
ITEMID_WAZAMASIN32 = 359,
|
||||
ITEMID_WAZAMASIN33 = 360,
|
||||
ITEMID_WAZAMASIN34 = 361,
|
||||
ITEMID_WAZAMASIN35 = 362,
|
||||
ITEMID_WAZAMASIN36 = 363,
|
||||
ITEMID_WAZAMASIN37 = 364,
|
||||
ITEMID_WAZAMASIN38 = 365,
|
||||
ITEMID_WAZAMASIN39 = 366,
|
||||
ITEMID_WAZAMASIN40 = 367,
|
||||
ITEMID_WAZAMASIN41 = 368,
|
||||
ITEMID_WAZAMASIN42 = 369,
|
||||
ITEMID_WAZAMASIN43 = 370,
|
||||
ITEMID_WAZAMASIN44 = 371,
|
||||
ITEMID_WAZAMASIN45 = 372,
|
||||
ITEMID_WAZAMASIN46 = 373,
|
||||
ITEMID_WAZAMASIN47 = 374,
|
||||
ITEMID_WAZAMASIN48 = 375,
|
||||
ITEMID_WAZAMASIN49 = 376,
|
||||
ITEMID_WAZAMASIN50 = 377,
|
||||
ITEMID_WAZAMASIN51 = 378,
|
||||
ITEMID_WAZAMASIN52 = 379,
|
||||
ITEMID_WAZAMASIN53 = 380,
|
||||
ITEMID_WAZAMASIN54 = 381,
|
||||
ITEMID_WAZAMASIN55 = 382,
|
||||
ITEMID_WAZAMASIN56 = 383,
|
||||
ITEMID_WAZAMASIN57 = 384,
|
||||
ITEMID_WAZAMASIN58 = 385,
|
||||
ITEMID_WAZAMASIN59 = 386,
|
||||
ITEMID_WAZAMASIN60 = 387,
|
||||
ITEMID_WAZAMASIN61 = 388,
|
||||
ITEMID_WAZAMASIN62 = 389,
|
||||
ITEMID_WAZAMASIN63 = 390,
|
||||
ITEMID_WAZAMASIN64 = 391,
|
||||
ITEMID_WAZAMASIN65 = 392,
|
||||
ITEMID_WAZAMASIN66 = 393,
|
||||
ITEMID_WAZAMASIN67 = 394,
|
||||
ITEMID_WAZAMASIN68 = 395,
|
||||
ITEMID_WAZAMASIN69 = 396,
|
||||
ITEMID_WAZAMASIN70 = 397,
|
||||
ITEMID_WAZAMASIN71 = 398,
|
||||
ITEMID_WAZAMASIN72 = 399,
|
||||
ITEMID_WAZAMASIN73 = 400,
|
||||
ITEMID_WAZAMASIN74 = 401,
|
||||
ITEMID_WAZAMASIN75 = 402,
|
||||
ITEMID_WAZAMASIN76 = 403,
|
||||
ITEMID_WAZAMASIN77 = 404,
|
||||
ITEMID_WAZAMASIN78 = 405,
|
||||
ITEMID_WAZAMASIN79 = 406,
|
||||
ITEMID_WAZAMASIN80 = 407,
|
||||
ITEMID_WAZAMASIN81 = 408,
|
||||
ITEMID_WAZAMASIN82 = 409,
|
||||
ITEMID_WAZAMASIN83 = 410,
|
||||
ITEMID_WAZAMASIN84 = 411,
|
||||
ITEMID_WAZAMASIN85 = 412,
|
||||
ITEMID_WAZAMASIN86 = 413,
|
||||
ITEMID_WAZAMASIN87 = 414,
|
||||
ITEMID_WAZAMASIN88 = 415,
|
||||
ITEMID_WAZAMASIN89 = 416,
|
||||
ITEMID_WAZAMASIN90 = 417,
|
||||
ITEMID_WAZAMASIN91 = 418,
|
||||
ITEMID_WAZAMASIN92 = 419,
|
||||
ITEMID_SUPIIDOBOORU = 492,
|
||||
ITEMID_REBERUBOORU = 493,
|
||||
ITEMID_RUAABOORU = 494,
|
||||
ITEMID_HEBIIBOORU = 495,
|
||||
ITEMID_RABURABUBOORU = 496,
|
||||
ITEMID_HURENDOBOORU = 497,
|
||||
ITEMID_MUUNBOORU = 498,
|
||||
ITEMID_KONPEBOORU = 499,
|
||||
ITEMID_SINKANOKISEKI = 538,
|
||||
ITEMID_KARUISI = 539,
|
||||
ITEMID_GOTUGOTUMETTO = 540,
|
||||
ITEMID_HUUSEN = 541,
|
||||
ITEMID_REDDOKAADO = 542,
|
||||
ITEMID_NERAINOMATO = 543,
|
||||
ITEMID_SIMETUKEBANDO = 544,
|
||||
ITEMID_KYUUKON = 545,
|
||||
ITEMID_ZYUUDENTI = 546,
|
||||
ITEMID_DASSYUTUBOTAN = 547,
|
||||
ITEMID_NOOMARUZYUERU = 564,
|
||||
ITEMID_TAIRYOKUNOHANE = 565,
|
||||
ITEMID_KINRYOKUNOHANE = 566,
|
||||
ITEMID_TEIKOUNOHANE = 567,
|
||||
ITEMID_TIRYOKUNOHANE = 568,
|
||||
ITEMID_SEISINNOHANE = 569,
|
||||
ITEMID_SYUNPATUNOHANE = 570,
|
||||
ITEMID_KIREINAHANE = 571,
|
||||
ITEMID_DORIIMUBOORU = 576,
|
||||
ITEMID_DEKAIKINNOTAMA = 581,
|
||||
ITEMID_ODANGOSINZYU = 582,
|
||||
ITEMID_WAZAMASIN93 = 618,
|
||||
ITEMID_WAZAMASIN94 = 619,
|
||||
ITEMID_WAZAMASIN95 = 620,
|
||||
ITEMID_HIKARUOMAMORI = 632,
|
||||
ITEMID_ZYAKUTENHOKEN = 639,
|
||||
ITEMID_TOTUGEKITYOKKI = 640,
|
||||
ITEMID_TOKUSEIKAPUSERU = 645,
|
||||
ITEMID_HOIPPUPOPPU = 646,
|
||||
ITEMID_NIOIBUKURO = 647,
|
||||
ITEMID_HIKARIGOKE = 648,
|
||||
ITEMID_YUKIDAMA = 649,
|
||||
ITEMID_BOUZINGOOGURU = 650,
|
||||
ITEMID_GENGANAITO = 656,
|
||||
ITEMID_SAANAITONAITO = 657,
|
||||
ITEMID_DENRYUUNAITO = 658,
|
||||
ITEMID_HUSIGIBANAITO = 659,
|
||||
ITEMID_RIZAADONAITOx = 660,
|
||||
ITEMID_KAMEKKUSUNAITO = 661,
|
||||
ITEMID_MYUUTUNAITOx = 662,
|
||||
ITEMID_MYUUTUNAITOy = 663,
|
||||
ITEMID_BASYAAMONAITO = 664,
|
||||
ITEMID_TYAAREMUNAITO = 665,
|
||||
ITEMID_HERUGANAITO = 666,
|
||||
ITEMID_BOSUGODORANAITO = 667,
|
||||
ITEMID_ZYUPETTANAITO = 668,
|
||||
ITEMID_BANGIRASUNAITO = 669,
|
||||
ITEMID_HASSAMUNAITO = 670,
|
||||
ITEMID_KAIROSUNAITO = 671,
|
||||
ITEMID_PUTERANAITO = 672,
|
||||
ITEMID_RUKARIONAITO = 673,
|
||||
ITEMID_YUKINOONAITO = 674,
|
||||
ITEMID_GARUURANAITO = 675,
|
||||
ITEMID_GYARADOSUNAITO = 676,
|
||||
ITEMID_ABUSORUNAITO = 677,
|
||||
ITEMID_RIZAADONAITOy = 678,
|
||||
ITEMID_HUUDHINAITO = 679,
|
||||
ITEMID_HERAKUROSUNAITO = 680,
|
||||
ITEMID_KUTIITONAITO = 681,
|
||||
ITEMID_RAIBORUTONAITO = 682,
|
||||
ITEMID_GABURIASUNAITO = 683,
|
||||
ITEMID_RATHIASUNAITO = 684,
|
||||
ITEMID_RATHIOSUNAITO = 685,
|
||||
ITEMID_ROZERUNOMI = 686,
|
||||
ITEMID_WAZAMASIN96 = 690,
|
||||
ITEMID_WAZAMASIN97 = 691,
|
||||
ITEMID_WAZAMASIN98 = 692,
|
||||
ITEMID_WAZAMASIN99 = 693,
|
||||
ITEMID_EREBEETANOKII = 700,
|
||||
ITEMID_MIAREGARETTO = 708,
|
||||
ITEMID_AGONOKASEKI = 710,
|
||||
ITEMID_HIRENOKASEKI = 711,
|
||||
ITEMID_RAGURAAZINAITO = 752,
|
||||
ITEMID_ZYUKAINNAITO = 753,
|
||||
ITEMID_YAMIRAMINAITO = 754,
|
||||
ITEMID_TIRUTARISUNAITO = 755,
|
||||
ITEMID_ERUREIDONAITO = 756,
|
||||
ITEMID_TABUNNENAITO = 757,
|
||||
ITEMID_METAGUROSUNAITO = 758,
|
||||
ITEMID_SAMEHADANAITO = 759,
|
||||
ITEMID_YADORANNAITO = 760,
|
||||
ITEMID_HAGANEERUNAITO = 761,
|
||||
ITEMID_PIZYOTTONAITO = 762,
|
||||
ITEMID_ONIGOORINAITO = 763,
|
||||
ITEMID_DHIANSINAITO = 764,
|
||||
ITEMID_IMASIMENOTUBO = 765,
|
||||
ITEMID_BAKUUDANAITO = 767,
|
||||
ITEMID_MIMIROPPUNAITO = 768,
|
||||
ITEMID_BOOMANDANAITO = 769,
|
||||
ITEMID_SUPIANAITO = 770,
|
||||
ITEMID_GINNOOUKAN = 795,
|
||||
ITEMID_KINNOOUKAN = 796,
|
||||
ITEMID_BIBIRIDAMA = 846,
|
||||
ITEMID_ZIGARUDEKYUUBU = 847,
|
||||
ITEMID_KOORINOISI = 849,
|
||||
ITEMID_URUTORABOORU = 851,
|
||||
ITEMID_GURANDOKOOTO = 879,
|
||||
ITEMID_BOUGOPATTO = 880,
|
||||
ITEMID_EREKISIIDO = 881,
|
||||
ITEMID_SAIKOSIIDO = 882,
|
||||
ITEMID_MISUTOSIIDO = 883,
|
||||
ITEMID_GURASUSIIDO = 884,
|
||||
ITEMID_NODOAME = 1118,
|
||||
ITEMID_DASSYUTUPAKKU = 1119,
|
||||
ITEMID_ATUZOKOBUUTU = 1120,
|
||||
ITEMID_KARABURIHOKEN = 1121,
|
||||
ITEMID_RUUMUSAABISU = 1122,
|
||||
ITEMID_BANNOUGASA = 1123,
|
||||
ITEMID_KEIKENTIAME_1 = 1124,
|
||||
ITEMID_KEIKENTIAME_2 = 1125,
|
||||
ITEMID_KEIKENTIAME_3 = 1126,
|
||||
ITEMID_KEIKENTIAME_4 = 1127,
|
||||
ITEMID_KEIKENTIAME_5 = 1128,
|
||||
ITEMID_SAMISIGARIMINTO = 1231,
|
||||
ITEMID_IZIPPARIMINTO = 1232,
|
||||
ITEMID_YANTYAMINTO = 1233,
|
||||
ITEMID_YUKANMINTO = 1234,
|
||||
ITEMID_ZUBUTOIMINTO = 1235,
|
||||
ITEMID_WANPAKUMINTO = 1236,
|
||||
ITEMID_NOUTENKIMINTO = 1237,
|
||||
ITEMID_NONKIMINTO = 1238,
|
||||
ITEMID_HIKAEMEMINTO = 1239,
|
||||
ITEMID_OTTORIMINTO = 1240,
|
||||
ITEMID_UKKARIMINTO = 1241,
|
||||
ITEMID_REISEIMINTO = 1242,
|
||||
ITEMID_ODAYAKAMINTO = 1243,
|
||||
ITEMID_OTONASIIMINTO = 1244,
|
||||
ITEMID_SINTYOUMINTO = 1245,
|
||||
ITEMID_NAMAIKIMINTO = 1246,
|
||||
ITEMID_OKUBYOUMINTO = 1247,
|
||||
ITEMID_SEKKTIMINTO = 1248,
|
||||
ITEMID_YOUKIMINTO = 1249,
|
||||
ITEMID_MUJYAKIMINTO = 1250,
|
||||
ITEMID_MAZIMEMINTO = 1251,
|
||||
ITEMID_GARANATUBURESU = 1582,
|
||||
ITEMID_AKASINOOMAMORI = 1589,
|
||||
ITEMID_GARANATURIISU = 1592,
|
||||
ITEMID_TOKUSEIPATTI = 1606,
|
||||
ITEMID_SENTOUBAFFA1 = 1881,
|
||||
ITEMID_SENTOUBAFFA2 = 1882,
|
||||
ITEMID_SENTOUBAFFA3 = 1883,
|
||||
ITEMID_SENTOUBAFFA4 = 1884,
|
||||
ITEMID_SENTOUBAFFA5 = 1885,
|
||||
ITEMID_SENTOUBAFFA6 = 1886,
|
||||
ITEMID_WAZAMASIN100 = 2160,
|
||||
ITEMID_WAZAMASIN101 = 2161,
|
||||
ITEMID_WAZAMASIN102 = 2162,
|
||||
ITEMID_WAZAMASIN103 = 2163,
|
||||
ITEMID_WAZAMASIN104 = 2164,
|
||||
ITEMID_WAZAMASIN105 = 2165,
|
||||
ITEMID_WAZAMASIN106 = 2166,
|
||||
ITEMID_WAZAMASIN107 = 2167,
|
||||
ITEMID_WAZAMASIN108 = 2168,
|
||||
ITEMID_WAZAMASIN109 = 2169,
|
||||
ITEMID_WAZAMASIN110 = 2170,
|
||||
ITEMID_WAZAMASIN111 = 2171,
|
||||
ITEMID_WAZAMASIN112 = 2172,
|
||||
ITEMID_WAZAMASIN113 = 2173,
|
||||
ITEMID_WAZAMASIN114 = 2174,
|
||||
ITEMID_WAZAMASIN115 = 2175,
|
||||
ITEMID_WAZAMASIN116 = 2176,
|
||||
ITEMID_WAZAMASIN117 = 2177,
|
||||
ITEMID_WAZAMASIN118 = 2178,
|
||||
ITEMID_WAZAMASIN119 = 2179,
|
||||
ITEMID_WAZAMASIN120 = 2180,
|
||||
ITEMID_WAZAMASIN121 = 2181,
|
||||
ITEMID_WAZAMASIN122 = 2182,
|
||||
ITEMID_WAZAMASIN123 = 2183,
|
||||
ITEMID_WAZAMASIN124 = 2184,
|
||||
ITEMID_WAZAMASIN125 = 2185,
|
||||
ITEMID_WAZAMASIN126 = 2186,
|
||||
ITEMID_WAZAMASIN127 = 2187,
|
||||
ITEMID_WAZAMASIN128 = 2188,
|
||||
ITEMID_WAZAMASIN129 = 2189,
|
||||
ITEMID_WAZAMASIN130 = 2190,
|
||||
ITEMID_WAZAMASIN131 = 2191,
|
||||
ITEMID_WAZAMASIN132 = 2192,
|
||||
ITEMID_WAZAMASIN133 = 2193,
|
||||
ITEMID_WAZAMASIN134 = 2194,
|
||||
ITEMID_WAZAMASIN135 = 2195,
|
||||
ITEMID_WAZAMASIN136 = 2196,
|
||||
ITEMID_WAZAMASIN137 = 2197,
|
||||
ITEMID_WAZAMASIN138 = 2198,
|
||||
ITEMID_WAZAMASIN139 = 2199,
|
||||
ITEMID_WAZAMASIN140 = 2200,
|
||||
ITEMID_WAZAMASIN141 = 2201,
|
||||
ITEMID_WAZAMASIN142 = 2202,
|
||||
ITEMID_WAZAMASIN143 = 2203,
|
||||
ITEMID_WAZAMASIN144 = 2204,
|
||||
ITEMID_WAZAMASIN145 = 2205,
|
||||
ITEMID_WAZAMASIN146 = 2206,
|
||||
ITEMID_WAZAMASIN147 = 2207,
|
||||
ITEMID_WAZAMASIN148 = 2208,
|
||||
ITEMID_WAZAMASIN149 = 2209,
|
||||
ITEMID_WAZAMASIN150 = 2210,
|
||||
ITEMID_WAZAMASIN151 = 2211,
|
||||
ITEMID_WAZAMASIN152 = 2212,
|
||||
ITEMID_WAZAMASIN153 = 2213,
|
||||
ITEMID_WAZAMASIN154 = 2214,
|
||||
ITEMID_WAZAMASIN155 = 2215,
|
||||
ITEMID_WAZAMASIN156 = 2216,
|
||||
ITEMID_WAZAMASIN157 = 2217,
|
||||
ITEMID_WAZAMASIN158 = 2218,
|
||||
ITEMID_WAZAMASIN159 = 2219,
|
||||
ITEMID_WAZAMASIN160 = 2220,
|
||||
ITEMID_WAZAMASIN161 = 2221,
|
||||
ITEMID_WAZAMASIN162 = 2222,
|
||||
ITEMID_WAZAMASIN163 = 2223,
|
||||
ITEMID_WAZAMASIN164 = 2224,
|
||||
ITEMID_WAZAMASIN165 = 2225,
|
||||
ITEMID_WAZAMASIN166 = 2226,
|
||||
ITEMID_WAZAMASIN167 = 2227,
|
||||
ITEMID_WAZAMASIN168 = 2228,
|
||||
ITEMID_WAZAMASIN169 = 2229,
|
||||
ITEMID_WAZAMASIN170 = 2230,
|
||||
ITEMID_WAZAMASIN171 = 2231,
|
||||
ITEMID_YOUSEINOHANE = 2401,
|
||||
ITEMID_KAIDENNOTANE = 2558,
|
||||
ITEMID_PIKUSINAITO = 2559,
|
||||
ITEMID_UTUBOTTONAITO = 2560,
|
||||
ITEMID_STAAMIINAITO = 2561,
|
||||
ITEMID_KAIRYUNAITO = 2562,
|
||||
ITEMID_MEGANIUMUNAITO = 2563,
|
||||
ITEMID_OODAIRUNAITO = 2564,
|
||||
ITEMID_EAAMUDONAITO = 2565,
|
||||
ITEMID_YUKIMENOKONAITO = 2566,
|
||||
ITEMID_HIIDORANAITO = 2567,
|
||||
ITEMID_DAAKURANAITO = 2568,
|
||||
ITEMID_ENBUONAITO = 2569,
|
||||
ITEMID_DORYUUZUNAITO = 2570,
|
||||
ITEMID_PENDORANAITO = 2571,
|
||||
ITEMID_ZURUZUKINAITO = 2572,
|
||||
ITEMID_SIBIRUDONAITO = 2573,
|
||||
ITEMID_SYANDERANAITO = 2574,
|
||||
ITEMID_BURIGARONAITO = 2575,
|
||||
ITEMID_MAFOKUSINAITO = 2576,
|
||||
ITEMID_GEKKOUGANAITO = 2577,
|
||||
ITEMID_KAENZISINAITO = 2578,
|
||||
ITEMID_HURAETTENAITO = 2579,
|
||||
ITEMID_KARAMANERONAITO = 2580,
|
||||
ITEMID_GAMENODESUNAITO = 2581,
|
||||
ITEMID_DORAMIDORONAITO = 2582,
|
||||
ITEMID_RUTYABURUNAITO = 2583,
|
||||
ITEMID_ZIGARUDENAITO = 2584,
|
||||
ITEMID_ZIZIIRONAITO = 2585,
|
||||
ITEMID_ZERAORANAITO = 2586,
|
||||
ITEMID_TAIREETUNAITO = 2587,
|
||||
ITEMID_202GOUSITUNOKAGI = 2588,
|
||||
ITEMID_SUGOIMIAREGARETTO = 2589,
|
||||
ITEMID_RABONOKAADOKIIA = 2590,
|
||||
ITEMID_RABONOKAADOKIIB = 2591,
|
||||
ITEMID_RABONOKAADOKIIC = 2592,
|
||||
ITEMID_RABONOKAADOKIIM = 2593,
|
||||
ITEMID_RABONOKAADOKIIX = 2594,
|
||||
ITEMID_ISHIKORO = 2595,
|
||||
ITEMID_OMOIDENOYUBIWA = 2596,
|
||||
ITEMID_SAINIRINONUI = 2597,
|
||||
ITEMID_OISHIIGOMI = 2598,
|
||||
ITEMID_GENKINOKOEDA = 2599,
|
||||
ITEMID_DEURONOWASUREMONO = 2600,
|
||||
ITEMID_DAIZINAMONO14 = 2601,
|
||||
ITEMID_DAIZINAMONO15 = 2602,
|
||||
ITEMID_DAIZINAMONO16 = 2603,
|
||||
ITEMID_DAIZINAMONO17 = 2604,
|
||||
ITEMID_DAIZINAMONO18 = 2605,
|
||||
ITEMID_DAIZINAMONO19 = 2606,
|
||||
ITEMID_DAIZINAMONO20 = 2607,
|
||||
ITEMID_DAIZINAMONO21 = 2608,
|
||||
ITEMID_DAIZINAMONO22 = 2609,
|
||||
ITEMID_DAIZINAMONO23 = 2610,
|
||||
ITEMID_DAIZINAMONO24 = 2611,
|
||||
ITEMID_DAIZINAMONO25 = 2612,
|
||||
ITEMID_DAIZINAMONO26 = 2613,
|
||||
ITEMID_DAIZINAMONO27 = 2614,
|
||||
ITEMID_DAIZINAMONO28 = 2615,
|
||||
ITEMID_DAIZINAMONO29 = 2616,
|
||||
ITEMID_DAIZINAMONO30 = 2617,
|
||||
ITEMID_MEGAKAKERA = 2618,
|
||||
ITEMID_OMAMORISOZAI = 2619,
|
||||
ITEMID_AKANOKANARYINUI1 = 2620,
|
||||
ITEMID_AKANOKANARYINUI2 = 2621,
|
||||
ITEMID_AKANOKANARYINUI3 = 2622,
|
||||
ITEMID_KINNOKANARYINUI1 = 2623,
|
||||
ITEMID_KINNOKANARYINUI2 = 2624,
|
||||
ITEMID_KINNOKANARYINUI3 = 2625,
|
||||
ITEMID_PINKUNOKANARYINUI1 = 2626,
|
||||
ITEMID_PINKUNOKANARYINUI2 = 2627,
|
||||
ITEMID_PINKUNOKANARYINUI3 = 2628,
|
||||
ITEMID_MIDORINOKANARYINUI1 = 2629,
|
||||
ITEMID_MIDORINOKANARYINUI2 = 2630,
|
||||
ITEMID_MIDORINOKANARYINUI3 = 2631,
|
||||
ITEMID_AONOKANARYINUI1 = 2632,
|
||||
ITEMID_AONOKANARYINUI2 = 2633,
|
||||
ITEMID_AONOKANARYINUI3 = 2634,
|
||||
}
|
||||
14
FlatBuffers/ZA/Shared/Schemas/Shared/LangType.fbs
Normal file
14
FlatBuffers/ZA/Shared/Schemas/Shared/LangType.fbs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum LangType : int {
|
||||
ROM_LANG = 0,
|
||||
JAPAN = 1,
|
||||
ENGLISH = 2,
|
||||
FRANCE = 3,
|
||||
ITALY = 4,
|
||||
GERMANY = 5,
|
||||
SPAIN = 6,
|
||||
KOREA = 7,
|
||||
SIMPLIFIED_CHINESE = 8,
|
||||
TRADITIONAL_CHINESE = 9,
|
||||
}
|
||||
11
FlatBuffers/ZA/Shared/Schemas/Shared/MahoippuViewID.fbs
Normal file
11
FlatBuffers/ZA/Shared/Schemas/Shared/MahoippuViewID.fbs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum MahoippuViewID : int {
|
||||
STRAWBERRY = 0,
|
||||
BERRY = 1,
|
||||
HEART = 2,
|
||||
STAR = 3,
|
||||
CLOVER = 4,
|
||||
FLOWER = 5,
|
||||
RIBBON = 6,
|
||||
}
|
||||
23
FlatBuffers/ZA/Shared/Schemas/Shared/MoveType.fbs
Normal file
23
FlatBuffers/ZA/Shared/Schemas/Shared/MoveType.fbs
Normal file
@@ -0,0 +1,23 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum MoveType : byte {
|
||||
Normal = 0,
|
||||
Kakutou = 1,
|
||||
Hikou = 2,
|
||||
Doku = 3,
|
||||
Jimen = 4,
|
||||
Iwa = 5,
|
||||
Mushi = 6,
|
||||
Ghost = 7,
|
||||
Hagane = 8,
|
||||
Honoo = 9,
|
||||
Mizu = 10,
|
||||
Kusa = 11,
|
||||
Denki = 12,
|
||||
Esper = 13,
|
||||
Koori = 14,
|
||||
Dragon = 15,
|
||||
Aku = 16,
|
||||
Fairy = 17,
|
||||
Null = 18,
|
||||
}
|
||||
7
FlatBuffers/ZA/Shared/Schemas/Shared/PayType.fbs
Normal file
7
FlatBuffers/ZA/Shared/Schemas/Shared/PayType.fbs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum PayType : int {
|
||||
OKOZUKAI = 0,
|
||||
LP = 1,
|
||||
BP = 2,
|
||||
}
|
||||
14
FlatBuffers/ZA/Shared/Schemas/Shared/PokeMemoType.fbs
Normal file
14
FlatBuffers/ZA/Shared/Schemas/Shared/PokeMemoType.fbs
Normal file
@@ -0,0 +1,14 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum PokeMemoType : byte { NONE = 0,
|
||||
Capture = 1,
|
||||
EventGet = 2,
|
||||
EventCapture = 3,
|
||||
InnerTrade = 4,
|
||||
NetTrade = 5,
|
||||
EggHatch = 6,
|
||||
Bank = 7,
|
||||
MysteryGift = 8,
|
||||
EggTakenFirst = 9,
|
||||
EggTakenTrade = 10,
|
||||
}
|
||||
6
FlatBuffers/ZA/Shared/Schemas/Shared/RareType.fbs
Normal file
6
FlatBuffers/ZA/Shared/Schemas/Shared/RareType.fbs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum RareType : int { DEFAULT = 0,
|
||||
NO_RARE = 1,
|
||||
RARE = 2,
|
||||
}
|
||||
116
FlatBuffers/ZA/Shared/Schemas/Shared/RibbonType.fbs
Normal file
116
FlatBuffers/ZA/Shared/Schemas/Shared/RibbonType.fbs
Normal file
@@ -0,0 +1,116 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum RibbonType : int
|
||||
{ NONE = 0,
|
||||
CAROS_CHAMP = 1,
|
||||
HOUEN_CHAMP = 2,
|
||||
SINOU_CHAMP = 3,
|
||||
KAWAIGARI = 4,
|
||||
TRAINING = 5,
|
||||
SUPER_BATTLE = 6,
|
||||
MASTER_BATTLE = 7,
|
||||
GANBA = 8,
|
||||
SYAKKIRI = 9,
|
||||
DOKKIRI = 10,
|
||||
SYONBORI = 11,
|
||||
UKKARI = 12,
|
||||
SUKKIRI = 13,
|
||||
GUSSURI = 14,
|
||||
NIKKORI = 15,
|
||||
GORGEOUS = 16,
|
||||
ROYAL = 17,
|
||||
GORGEOUS_ROYAL = 18,
|
||||
BROMIDE = 19,
|
||||
ASHIATO = 20,
|
||||
RECORD = 21,
|
||||
LEGEND = 22,
|
||||
COUNTRY = 23,
|
||||
NATIONAL = 24,
|
||||
EARTH = 25,
|
||||
WORLD = 26,
|
||||
CLASSIC = 27,
|
||||
PREMIERE = 28,
|
||||
EVENT = 29,
|
||||
BIRTHDAY = 30,
|
||||
SPECIAL = 31,
|
||||
MEMORIAL = 32,
|
||||
WISH = 33,
|
||||
BATTLE_CHAMP = 34,
|
||||
AREA_CHAMP = 35,
|
||||
NATIONAL_CHAMP = 36,
|
||||
WORLD_CHAMP = 37,
|
||||
LUMPING_CONTEST = 38,
|
||||
LUMPING_TOWER = 39,
|
||||
SANGO_CHAMP = 40,
|
||||
CONTEST_STAR = 41,
|
||||
STYLE_MASTER = 42,
|
||||
BEAUTIFUL_MASTER = 43,
|
||||
CUTE_MASTER = 44,
|
||||
CLEVER_MASTER = 45,
|
||||
STRONG_MASTER = 46,
|
||||
NIJI_CROWN = 47,
|
||||
NIJI_ROYAL = 48,
|
||||
NIJI_BTLTOWER = 49,
|
||||
NIJI_MASTER = 50,
|
||||
ORION_GARAL = 51,
|
||||
ORION_MASTER_TOWER = 52,
|
||||
ORION_MASTER_RANK = 53,
|
||||
ORION_NOON = 54,
|
||||
ORION_MIDNIGHT = 55,
|
||||
ORION_TWILIGHT = 56,
|
||||
ORION_DAYBREAK = 57,
|
||||
ORION_CLOUDY_WEATHER = 58,
|
||||
ORION_RAIN = 59,
|
||||
ORION_THUNDER = 60,
|
||||
ORION_SNOWFALL = 61,
|
||||
ORION_HEAVY_SONWFALL = 62,
|
||||
ORION_DRYING = 63,
|
||||
ORION_SAND_DUST = 64,
|
||||
ORION_DENSE_FOG = 65,
|
||||
ORION_FATE = 66,
|
||||
ORION_FISH = 67,
|
||||
ORION_CURRY = 68,
|
||||
ORION_SOMETIMES = 69,
|
||||
ORION_NOTLOOKING = 70,
|
||||
ORION_NAUGHTINESS = 71,
|
||||
ORION_CAREFREE = 72,
|
||||
ORION_TENSION = 73,
|
||||
ORION_EXPECTATION = 74,
|
||||
ORION_CHARISMA = 75,
|
||||
ORION_CALM = 76,
|
||||
ORION_PASSION = 77,
|
||||
ORION_CARELESSNESS = 78,
|
||||
ORION_EUPHORIA = 79,
|
||||
ORION_FURY = 80,
|
||||
ORION_SMILE = 81,
|
||||
ORION_SAD = 82,
|
||||
ORION_GOOD_CONDITION = 83,
|
||||
ORION_EMERGENCY = 84,
|
||||
ORION_REASON = 85,
|
||||
ORION_INSTINCT = 86,
|
||||
ORION_CUNNING = 87,
|
||||
ORION_STRENGTH = 88,
|
||||
ORION_WEAK = 89,
|
||||
ORION_UPSET = 90,
|
||||
ORION_ELEVATION = 91,
|
||||
ORION_FATIGUE = 92,
|
||||
ORION_CONFIDENCE = 93,
|
||||
ORION_DISTRUST = 94,
|
||||
ORION_ARTLESSNESS = 95,
|
||||
ORION_IMPURITY = 96,
|
||||
ORION_VIM = 97,
|
||||
ORION_SLUMP = 98,
|
||||
PIONEER = 99,
|
||||
TWINKLE_STAR = 100,
|
||||
TITAN_PALDEA_CHAMP = 101,
|
||||
TITAN_HUGE = 102,
|
||||
TITAN_TINY = 103,
|
||||
TITAN_PICKING_UP_THINGS = 104,
|
||||
TITAN_PARTNER = 105,
|
||||
TITAN_GOURM = 106,
|
||||
TITAN_ONE_CHANCE_IN_A_MILLION = 107,
|
||||
TITAN_OYABUN = 108,
|
||||
TITAN_STRONGEST = 109,
|
||||
TITAN_NUSHI = 110,
|
||||
SUDACHI_PARTNER = 111,
|
||||
}
|
||||
30
FlatBuffers/ZA/Shared/Schemas/Shared/SeikakuType.fbs
Normal file
30
FlatBuffers/ZA/Shared/Schemas/Shared/SeikakuType.fbs
Normal file
@@ -0,0 +1,30 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum SeikakuType : int
|
||||
{ DEFAULT = 0,
|
||||
GANBARIYA = 1,
|
||||
SAMISIGARIYA = 2,
|
||||
YUUKAN = 3,
|
||||
IJIPPARI = 4,
|
||||
YANTYA = 5,
|
||||
ZUBUTOI = 6,
|
||||
SUNAO = 7,
|
||||
NONKI = 8,
|
||||
WANPAKU = 9,
|
||||
NOUTENKI = 10,
|
||||
OKUBYOU = 11,
|
||||
SEKKATI = 12,
|
||||
MAJIME = 13,
|
||||
YOUKI = 14,
|
||||
MUJYAKI = 15,
|
||||
HIKAEME = 16,
|
||||
OTTORI = 17,
|
||||
REISEI = 18,
|
||||
TEREYA = 19,
|
||||
UKKARIYA = 20,
|
||||
ODAYAKA = 21,
|
||||
OTONASII = 22,
|
||||
NAMAIKI = 23,
|
||||
SINNTYOU = 24,
|
||||
KIMAGURE = 25,
|
||||
}
|
||||
6
FlatBuffers/ZA/Shared/Schemas/Shared/SellType.fbs
Normal file
6
FlatBuffers/ZA/Shared/Schemas/Shared/SellType.fbs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum SellType : int {
|
||||
SELL_BUY = 0,
|
||||
BUY_ONLY = 1,
|
||||
}
|
||||
8
FlatBuffers/ZA/Shared/Schemas/Shared/Sex.fbs
Normal file
8
FlatBuffers/ZA/Shared/Schemas/Shared/Sex.fbs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
/// Actual Gender
|
||||
enum Sex : int {
|
||||
MALE = 0,
|
||||
FEMALE = 1,
|
||||
UNKNOWN = 2,
|
||||
}
|
||||
8
FlatBuffers/ZA/Shared/Schemas/Shared/SexType.fbs
Normal file
8
FlatBuffers/ZA/Shared/Schemas/Shared/SexType.fbs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
/// Gender Spec
|
||||
enum SexType : int {
|
||||
DEFAULT = 0,
|
||||
MALE = 1,
|
||||
FEMALE = 2,
|
||||
}
|
||||
22
FlatBuffers/ZA/Shared/Schemas/Shared/ShopKind.fbs
Normal file
22
FlatBuffers/ZA/Shared/Schemas/Shared/ShopKind.fbs
Normal file
@@ -0,0 +1,22 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum ShopKind : int {
|
||||
NONE = 0,
|
||||
FRIENDLYSHOP = 1,
|
||||
RESTAURANT = 2,
|
||||
HAIRMAKE = 3,
|
||||
WAZAMACHINEMACHINE = 4,
|
||||
DRESSUP = 5,
|
||||
LUXURYRESTAURANT = 6,
|
||||
DELIBIRD = 7,
|
||||
DELICATESSEN = 8,
|
||||
DRUG_STORE = 9,
|
||||
KANZUME = 10,
|
||||
BAKERY = 11,
|
||||
SUPERMARKET = 12,
|
||||
KOUBAI = 13,
|
||||
PICNIC = 14,
|
||||
SYOUTEN = 15,
|
||||
BBKOUBAI = 16,
|
||||
BBZIHANKI = 17,
|
||||
}
|
||||
11
FlatBuffers/ZA/Shared/Schemas/Shared/SizeType.fbs
Normal file
11
FlatBuffers/ZA/Shared/Schemas/Shared/SizeType.fbs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum SizeType : int {
|
||||
RANDOM = 0,
|
||||
XS = 1,
|
||||
S = 2,
|
||||
M = 3,
|
||||
L = 4,
|
||||
XL = 5,
|
||||
VALUE = 6,
|
||||
}
|
||||
7
FlatBuffers/ZA/Shared/Schemas/Shared/TalentType.fbs
Normal file
7
FlatBuffers/ZA/Shared/Schemas/Shared/TalentType.fbs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum TalentType : int {
|
||||
RANDOM = 0,
|
||||
V_NUM = 1,
|
||||
VALUE = 2,
|
||||
}
|
||||
311
FlatBuffers/ZA/Shared/Schemas/Shared/TokuseiID.fbs
Normal file
311
FlatBuffers/ZA/Shared/Schemas/Shared/TokuseiID.fbs
Normal file
@@ -0,0 +1,311 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum TokuseiID : ushort {
|
||||
TOKUSEI_NULL = 0,
|
||||
TOKUSEI_AKUSYUU = 1,
|
||||
TOKUSEI_AMEHURASI = 2,
|
||||
TOKUSEI_KASOKU = 3,
|
||||
TOKUSEI_KABUTOAAMAA = 4,
|
||||
TOKUSEI_GANZYOU = 5,
|
||||
TOKUSEI_SIMERIKE = 6,
|
||||
TOKUSEI_ZYUUNAN = 7,
|
||||
TOKUSEI_SUNAGAKURE = 8,
|
||||
TOKUSEI_SEIDENKI = 9,
|
||||
TOKUSEI_TIKUDEN = 10,
|
||||
TOKUSEI_TYOSUI = 11,
|
||||
TOKUSEI_DONKAN = 12,
|
||||
TOKUSEI_NOOTENKI = 13,
|
||||
TOKUSEI_HUKUGAN = 14,
|
||||
TOKUSEI_HUMIN = 15,
|
||||
TOKUSEI_HENSYOKU = 16,
|
||||
TOKUSEI_MENEKI = 17,
|
||||
TOKUSEI_MORAIBI = 18,
|
||||
TOKUSEI_RINPUN = 19,
|
||||
TOKUSEI_MAIPEESU = 20,
|
||||
TOKUSEI_KYUUBAN = 21,
|
||||
TOKUSEI_IKAKU = 22,
|
||||
TOKUSEI_KAGEHUMI = 23,
|
||||
TOKUSEI_SAMEHADA = 24,
|
||||
TOKUSEI_HUSIGINAMAMORI = 25,
|
||||
TOKUSEI_HUYUU = 26,
|
||||
TOKUSEI_HOUSI = 27,
|
||||
TOKUSEI_SINKURO = 28,
|
||||
TOKUSEI_KURIABODHI = 29,
|
||||
TOKUSEI_SIZENKAIHUKU = 30,
|
||||
TOKUSEI_HIRAISIN = 31,
|
||||
TOKUSEI_TENNOMEGUMI = 32,
|
||||
TOKUSEI_SUISUI = 33,
|
||||
TOKUSEI_YOURYOKUSO = 34,
|
||||
TOKUSEI_HAKKOU = 35,
|
||||
TOKUSEI_TOREESU = 36,
|
||||
TOKUSEI_TIKARAMOTI = 37,
|
||||
TOKUSEI_DOKUNOTOGE = 38,
|
||||
TOKUSEI_SEISINRYOKU = 39,
|
||||
TOKUSEI_MAGUMANOYOROI = 40,
|
||||
TOKUSEI_MIZUNOBEERU = 41,
|
||||
TOKUSEI_ZIRYOKU = 42,
|
||||
TOKUSEI_BOUON = 43,
|
||||
TOKUSEI_AMEUKEZARA = 44,
|
||||
TOKUSEI_SUNAOKOSI = 45,
|
||||
TOKUSEI_PURESSYAA = 46,
|
||||
TOKUSEI_ATUISIBOU = 47,
|
||||
TOKUSEI_HAYAOKI = 48,
|
||||
TOKUSEI_HONOONOKARADA = 49,
|
||||
TOKUSEI_NIGEASI = 50,
|
||||
TOKUSEI_SURUDOIME = 51,
|
||||
TOKUSEI_KAIRIKIBASAMI = 52,
|
||||
TOKUSEI_MONOHIROI = 53,
|
||||
TOKUSEI_NAMAKE = 54,
|
||||
TOKUSEI_HARIKIRI = 55,
|
||||
TOKUSEI_MEROMEROBODHI = 56,
|
||||
TOKUSEI_PURASU = 57,
|
||||
TOKUSEI_MAINASU = 58,
|
||||
TOKUSEI_TENKIYA = 59,
|
||||
TOKUSEI_NENTYAKU = 60,
|
||||
TOKUSEI_DAPPI = 61,
|
||||
TOKUSEI_KONZYOU = 62,
|
||||
TOKUSEI_HUSIGINAUROKO = 63,
|
||||
TOKUSEI_HEDOROEKI = 64,
|
||||
TOKUSEI_SINRYOKU = 65,
|
||||
TOKUSEI_MOUKA = 66,
|
||||
TOKUSEI_GEKIRYUU = 67,
|
||||
TOKUSEI_MUSINOSIRASE = 68,
|
||||
TOKUSEI_ISIATAMA = 69,
|
||||
TOKUSEI_HIDERI = 70,
|
||||
TOKUSEI_ARIZIGOKU = 71,
|
||||
TOKUSEI_YARUKI = 72,
|
||||
TOKUSEI_SIROIKEMURI = 73,
|
||||
TOKUSEI_YOGAPAWAA = 74,
|
||||
TOKUSEI_SHERUAAMAA = 75,
|
||||
TOKUSEI_EAROKKU = 76,
|
||||
TOKUSEI_TIDORIASI = 77,
|
||||
TOKUSEI_DENKIENZIN = 78,
|
||||
TOKUSEI_TOUSOUSIN = 79,
|
||||
TOKUSEI_HUKUTUNOKOKORO = 80,
|
||||
TOKUSEI_YUKIGAKURE = 81,
|
||||
TOKUSEI_KUISINBOU = 82,
|
||||
TOKUSEI_IKARINOTUBO = 83,
|
||||
TOKUSEI_KARUWAZA = 84,
|
||||
TOKUSEI_TAINETU = 85,
|
||||
TOKUSEI_TANZYUN = 86,
|
||||
TOKUSEI_KANSOUHADA = 87,
|
||||
TOKUSEI_DAUNROODO = 88,
|
||||
TOKUSEI_TETUNOKOBUSI = 89,
|
||||
TOKUSEI_POIZUNHIIRU = 90,
|
||||
TOKUSEI_TEKIOURYOKU = 91,
|
||||
TOKUSEI_SUKIRURINKU = 92,
|
||||
TOKUSEI_URUOIBODHI = 93,
|
||||
TOKUSEI_SANPAWAA = 94,
|
||||
TOKUSEI_HAYAASI = 95,
|
||||
TOKUSEI_NOOMARUSUKIN = 96,
|
||||
TOKUSEI_SUNAIPAA = 97,
|
||||
TOKUSEI_MAZIKKUGAADO = 98,
|
||||
TOKUSEI_NOOGAADO = 99,
|
||||
TOKUSEI_ATODASI = 100,
|
||||
TOKUSEI_TEKUNISYAN = 101,
|
||||
TOKUSEI_RIIHUGAADO = 102,
|
||||
TOKUSEI_BUKIYOU = 103,
|
||||
TOKUSEI_KATAYABURI = 104,
|
||||
TOKUSEI_KYOUUN = 105,
|
||||
TOKUSEI_YUUBAKU = 106,
|
||||
TOKUSEI_KIKENYOTI = 107,
|
||||
TOKUSEI_YOTIMU = 108,
|
||||
TOKUSEI_TENNEN = 109,
|
||||
TOKUSEI_IROMEGANE = 110,
|
||||
TOKUSEI_FIRUTAA = 111,
|
||||
TOKUSEI_SUROOSUTAATO = 112,
|
||||
TOKUSEI_KIMOTTAMA = 113,
|
||||
TOKUSEI_YOBIMIZU = 114,
|
||||
TOKUSEI_AISUBODHI = 115,
|
||||
TOKUSEI_HAADOROKKU = 116,
|
||||
TOKUSEI_YUKIHURASI = 117,
|
||||
TOKUSEI_MITUATUME = 118,
|
||||
TOKUSEI_OMITOOSI = 119,
|
||||
TOKUSEI_SUTEMI = 120,
|
||||
TOKUSEI_MARUTITAIPU = 121,
|
||||
TOKUSEI_HURAWAAGIHUTO = 122,
|
||||
TOKUSEI_NAITOMEA = 123,
|
||||
TOKUSEI_WARUITEGUSE = 124,
|
||||
TOKUSEI_TIKARAZUKU = 125,
|
||||
TOKUSEI_AMANOZYAKU = 126,
|
||||
TOKUSEI_KINTYOUKAN = 127,
|
||||
TOKUSEI_MAKENKI = 128,
|
||||
TOKUSEI_YOWAKI = 129,
|
||||
TOKUSEI_NOROWAREBODHI = 130,
|
||||
TOKUSEI_IYASINOKOKORO = 131,
|
||||
TOKUSEI_HURENDOGAADO = 132,
|
||||
TOKUSEI_KUDAKERUYOROI = 133,
|
||||
TOKUSEI_HEVHIMETARU = 134,
|
||||
TOKUSEI_RAITOMETARU = 135,
|
||||
TOKUSEI_MARUTISUKEIRU = 136,
|
||||
TOKUSEI_DOKUBOUSOU = 137,
|
||||
TOKUSEI_NETUBOUSOU = 138,
|
||||
TOKUSEI_SYUUKAKU = 139,
|
||||
TOKUSEI_TEREPASII = 140,
|
||||
TOKUSEI_MURAKKE = 141,
|
||||
TOKUSEI_BOUZIN = 142,
|
||||
TOKUSEI_DOKUSYU = 143,
|
||||
TOKUSEI_SAISEIRYOKU = 144,
|
||||
TOKUSEI_HATOMUNE = 145,
|
||||
TOKUSEI_SUNAKAKI = 146,
|
||||
TOKUSEI_MIRAKURUSUKIN = 147,
|
||||
TOKUSEI_ANARAIZU = 148,
|
||||
TOKUSEI_IRYUUZYON = 149,
|
||||
TOKUSEI_KAWARIMONO = 150,
|
||||
TOKUSEI_SURINUKE = 151,
|
||||
TOKUSEI_MIIRA = 152,
|
||||
TOKUSEI_ZISINKAZYOU = 153,
|
||||
TOKUSEI_SEIGINOKOKORO = 154,
|
||||
TOKUSEI_BIBIRI = 155,
|
||||
TOKUSEI_MAZIKKUMIRAA = 156,
|
||||
TOKUSEI_SOUSYOKU = 157,
|
||||
TOKUSEI_ITAZURAGOKORO = 158,
|
||||
TOKUSEI_SUNANOTIKARA = 159,
|
||||
TOKUSEI_TETUNOTOGE = 160,
|
||||
TOKUSEI_DARUMAMOODO = 161,
|
||||
TOKUSEI_SYOURINOHOSI = 162,
|
||||
TOKUSEI_TAABOBUREIZU = 163,
|
||||
TOKUSEI_TERABORUTEEZI = 164,
|
||||
TOKUSEI_AROMABEERU = 165,
|
||||
TOKUSEI_HURAWAABEERU = 166,
|
||||
TOKUSEI_HOOBUKURO = 167,
|
||||
TOKUSEI_HENGENZIZAI = 168,
|
||||
TOKUSEI_FAAKOOTO = 169,
|
||||
TOKUSEI_MAZISYAN = 170,
|
||||
TOKUSEI_BOUDAN = 171,
|
||||
TOKUSEI_KATIKI = 172,
|
||||
TOKUSEI_GANZYOUAGO = 173,
|
||||
TOKUSEI_HURIIZUSUKIN = 174,
|
||||
TOKUSEI_SUIITOBEERU = 175,
|
||||
TOKUSEI_BATORUSUITTI = 176,
|
||||
TOKUSEI_HAYATENOTUBASA = 177,
|
||||
TOKUSEI_MEGARANTYAA = 178,
|
||||
TOKUSEI_KUSANOKEGAWA = 179,
|
||||
TOKUSEI_KYOUSEI = 180,
|
||||
TOKUSEI_KATAITUME = 181,
|
||||
TOKUSEI_FEARIISUKIN = 182,
|
||||
TOKUSEI_NUMENUME = 183,
|
||||
TOKUSEI_SUKAISUKIN = 184,
|
||||
TOKUSEI_OYAKOAI = 185,
|
||||
TOKUSEI_DAAKUOORA = 186,
|
||||
TOKUSEI_FEARIIOORA = 187,
|
||||
TOKUSEI_OORABUREIKU = 188,
|
||||
TOKUSEI_HAZIMARINOUMI = 189,
|
||||
TOKUSEI_OWARINODAITI = 190,
|
||||
TOKUSEI_DERUTASUTORIIMU = 191,
|
||||
TOKUSEI_ZIKYUURYOKU = 192,
|
||||
TOKUSEI_NIGEGOSI = 193,
|
||||
TOKUSEI_KIKIKAIHI = 194,
|
||||
TOKUSEI_MIZUGATAME = 195,
|
||||
TOKUSEI_HITODENASI = 196,
|
||||
TOKUSEI_RIMITTOSIIRUDO = 197,
|
||||
TOKUSEI_HARIKOMI = 198,
|
||||
TOKUSEI_SUIHOU = 199,
|
||||
TOKUSEI_HAGANETUKAI = 200,
|
||||
TOKUSEI_GYAKUZYOU = 201,
|
||||
TOKUSEI_YUKIKAKI = 202,
|
||||
TOKUSEI_ENKAKU = 203,
|
||||
TOKUSEI_URUOIBOISU = 204,
|
||||
TOKUSEI_HIIRINGUSIHUTO = 205,
|
||||
TOKUSEI_EREKISUKIN = 206,
|
||||
TOKUSEI_SAAHUTEERU = 207,
|
||||
TOKUSEI_GYOGUN = 208,
|
||||
TOKUSEI_BAKENOKAWA = 209,
|
||||
TOKUSEI_KIZUNAHENGE = 210,
|
||||
TOKUSEI_SUWAAMUTHENZI = 211,
|
||||
TOKUSEI_HUSYOKU = 212,
|
||||
TOKUSEI_ZETTAINEMURI = 213,
|
||||
TOKUSEI_ZYOOUNOIGEN = 214,
|
||||
TOKUSEI_TOBIDASUNAKAMI = 215,
|
||||
TOKUSEI_ODORIKO = 216,
|
||||
TOKUSEI_BATTERII = 217,
|
||||
TOKUSEI_MOHUMOHU = 218,
|
||||
TOKUSEI_BIBIDDOBODHI = 219,
|
||||
TOKUSEI_SOURUHAATO = 220,
|
||||
TOKUSEI_KAARIIHEAA = 221,
|
||||
TOKUSEI_RESIIBAA = 222,
|
||||
TOKUSEI_KAGAKUNOTIKARA = 223,
|
||||
TOKUSEI_BIISUTOBUUSUTO = 224,
|
||||
TOKUSEI_arSISUTEMU = 225,
|
||||
TOKUSEI_EREKIMEIKAA = 226,
|
||||
TOKUSEI_SAIKOMEIKAA = 227,
|
||||
TOKUSEI_MISUTOMEIKAA = 228,
|
||||
TOKUSEI_GURASUMEIKAA = 229,
|
||||
TOKUSEI_METARUPUROTEKUTO = 230,
|
||||
TOKUSEI_FANTOMUGAADO = 231,
|
||||
TOKUSEI_PURIZUMUAAMAA = 232,
|
||||
TOKUSEI_BUREINFOOSU = 233,
|
||||
TOKUSEI_HUTOUNOTURUGI = 234,
|
||||
TOKUSEI_HUKUTUNOTATE = 235,
|
||||
TOKUSEI_RIBERO = 236,
|
||||
TOKUSEI_TAMAHIROI = 237,
|
||||
TOKUSEI_WATAGE = 238,
|
||||
TOKUSEI_SUKURYUUOBIRE = 239,
|
||||
TOKUSEI_MIRAAAAMAA = 240,
|
||||
TOKUSEI_UNOMISAIRU = 241,
|
||||
TOKUSEI_SUZIGANEIRI = 242,
|
||||
TOKUSEI_ZYOUKIKIKAN = 243,
|
||||
TOKUSEI_PANKUROKKU = 244,
|
||||
TOKUSEI_SUNAHAKI = 245,
|
||||
TOKUSEI_KOORINORINPUN = 246,
|
||||
TOKUSEI_ZYUKUSEI = 247,
|
||||
TOKUSEI_AISUFEISU = 248,
|
||||
TOKUSEI_PAWAASUPOTTO = 249,
|
||||
TOKUSEI_GITAI = 250,
|
||||
TOKUSEI_BARIAHURII = 251,
|
||||
TOKUSEI_HAGANENOSEISIN = 252,
|
||||
TOKUSEI_HOROBINOBODHI = 253,
|
||||
TOKUSEI_SAMAYOUTAMASII = 254,
|
||||
TOKUSEI_GORIMUTYUU = 255,
|
||||
TOKUSEI_KAGAKUHENKAGASU = 256,
|
||||
TOKUSEI_PASUTERUBEERU = 257,
|
||||
TOKUSEI_HARAPEKOSUITTI = 258,
|
||||
TOKUSEI_KUIKKUDOROU = 259,
|
||||
TOKUSEI_HUKASINOKOBUSI = 260,
|
||||
TOKUSEI_KIMYOUNAKUSURI = 261,
|
||||
TOKUSEI_TORANZISUTA = 262,
|
||||
TOKUSEI_RYUUNOAGITO = 263,
|
||||
TOKUSEI_SIRONOINANAKI = 264,
|
||||
TOKUSEI_KURONOINANAKI = 265,
|
||||
TOKUSEI_ZINBAITTAISIRO = 266,
|
||||
TOKUSEI_ZINBAITTAIKURO = 267,
|
||||
TOKUSEI_TORENAINIOI = 268,
|
||||
TOKUSEI_KOBOREDANE = 269,
|
||||
TOKUSEI_NETUKOUKAN = 270,
|
||||
TOKUSEI_IKARINOKOURA = 271,
|
||||
TOKUSEI_KIYOMENOSIO = 272,
|
||||
TOKUSEI_KONGARIBODHI = 273,
|
||||
TOKUSEI_KAZENORI = 274,
|
||||
TOKUSEI_BANKEN = 275,
|
||||
TOKUSEI_IWAHAKOBI = 276,
|
||||
TOKUSEI_HUURYOKUDENKI = 277,
|
||||
TOKUSEI_MAITHITHENZI = 278,
|
||||
TOKUSEI_SIREITOU = 279,
|
||||
TOKUSEI_DENKINIKAERU = 280,
|
||||
TOKUSEI_KODAIKASSEI = 281,
|
||||
TOKUSEI_KWOOKUTYAAZI = 282,
|
||||
TOKUSEI_OUGONNOKARADA = 283,
|
||||
TOKUSEI_WAZAWAINOUTUWA = 284,
|
||||
TOKUSEI_WAZAWAINOTURUGI = 285,
|
||||
TOKUSEI_WAZAWAINOOHUDA = 286,
|
||||
TOKUSEI_WAZAWAINOTAMA = 287,
|
||||
TOKUSEI_HIHIIRONOKODOU = 288,
|
||||
TOKUSEI_HADORONENZIN = 289,
|
||||
TOKUSEI_BINZYOU = 290,
|
||||
TOKUSEI_HANSUU = 291,
|
||||
TOKUSEI_KIREAZI = 292,
|
||||
TOKUSEI_SOUDAISYOU = 293,
|
||||
TOKUSEI_KYOUEN = 294,
|
||||
TOKUSEI_DOKUGESYOU = 295,
|
||||
TOKUSEI_TEIRUAAMAA = 296,
|
||||
TOKUSEI_DOSYOKU = 297,
|
||||
TOKUSEI_KINSINOTIKARA = 298,
|
||||
TOKUSEI_MOTENASHINOKOKORO = 299,
|
||||
TOKUSEI_HISUINOHITOMI = 300,
|
||||
TOKUSEI_KAMENNOSHINKAMIDORI = 301,
|
||||
TOKUSEI_KAMENNOSHINKAKAMADO = 302,
|
||||
TOKUSEI_KAMENNOSHINKAIDO = 303,
|
||||
TOKUSEI_KAMENNOOSHINKAISHIZUE = 304,
|
||||
TOKUSEI_KUSARIEN = 305,
|
||||
TOKUSEI_KANRONAMITUAME = 306,
|
||||
}
|
||||
9
FlatBuffers/ZA/Shared/Schemas/Shared/TokuseiType.fbs
Normal file
9
FlatBuffers/ZA/Shared/Schemas/Shared/TokuseiType.fbs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace pkNX.Structures.FlatBuffers.ZA;
|
||||
|
||||
enum TokuseiType : int {
|
||||
RANDOM_12 = 0,
|
||||
RANDOM_123 = 1,
|
||||
SET_1 = 2,
|
||||
SET_2 = 3,
|
||||
SET_3 = 4,
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user