Created
October 10, 2023 03:16
-
-
Save lmcintyre/5562bca311f0b16ea0280136b37d9d43 to your computer and use it in GitHub Desktop.
BattleLeve.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ReSharper disable All | |
using Lumina.Text; | |
using Lumina.Data; | |
using Lumina.Data.Structs.Excel; | |
using Lumina.Excel; | |
using Lumina.Excel.GeneratedSheets; | |
namespace Lumina.Excel.GeneratedSheets2; | |
[Sheet( "BattleLeve", columnHash: 0x1ce99cea )] | |
public partial class BattleLeve : ExcelRow | |
{ | |
public struct LeveDataStruct | |
{ | |
public LazyRow< BNpcName > BNpcName { get; internal set; } | |
public uint ToDoNumberInvolved { get; internal set; } | |
public uint[] ToDoParam { get; internal set; } | |
public LazyRow< EventItem > BaseID { get; internal set; } | |
public LazyRow< EventItem > ItemsInvolved { get; internal set; } | |
public ushort EnemyLevel { get; internal set; } | |
public byte ItemsInvolvedQty { get; internal set; } | |
public byte ItemDropRate { get; internal set; } | |
public byte[] NumOfAppearance { get; internal set; } | |
} | |
public ushort[] Time { get; private set; } | |
public LeveDataStruct[] LeveData { get; private set; } | |
public byte[] ToDoSequence { get; private set; } | |
public LazyRow< BattleLeveRule > Rule { get; private set; } | |
public LazyRow< LeveString >[] Objectives { get; private set; } | |
public ushort[] Help { get; private set; } | |
public byte Variant { get; private set; } | |
public override void PopulateData( RowParser parser, GameData gameData, Language language ) | |
{ | |
base.PopulateData( parser, gameData, language ); | |
Time = new ushort[8]; | |
for (int i = 0; i < 8; i++) | |
Time[i] = parser.ReadOffset< ushort >( (ushort) ( 0 + i * 2 ) ); | |
LeveData = new LeveDataStruct[8]; | |
for (int i = 0; i < 8; i++) | |
{ | |
LeveData[i].BNpcName = new LazyRow< BNpcName >( gameData, parser.ReadOffset< uint >( 16 ), language ); | |
LeveData[i].ToDoNumberInvolved = parser.ReadOffset< uint >( 20 ); | |
LeveData[i].ToDoParam = new uint[5]; | |
for (int ToDoParamIndexer = 0; ToDoParamIndexer < 5; ToDoParamIndexer++) | |
LeveData[i].ToDoParam[ToDoParamIndexer] = parser.ReadOffset< uint >( (ushort) ( 24 + ToDoParamIndexer * 4 ) ); | |
LeveData[i].BaseID = new LazyRow< EventItem >( gameData, parser.ReadOffset< int >( 44 ), language ); | |
LeveData[i].ItemsInvolved = new LazyRow< EventItem >( gameData, parser.ReadOffset< int >( 48 ), language ); | |
LeveData[i].EnemyLevel = parser.ReadOffset< ushort >( 52 ); | |
LeveData[i].ItemsInvolvedQty = parser.ReadOffset< byte >( 54 ); | |
LeveData[i].ItemDropRate = parser.ReadOffset< byte >( 55 ); | |
LeveData[i].NumOfAppearance = new byte[8]; | |
for (int NumOfAppearanceIndexer = 0; NumOfAppearanceIndexer < 8; NumOfAppearanceIndexer++) | |
LeveData[i].NumOfAppearance[NumOfAppearanceIndexer] = parser.ReadOffset< byte >( (ushort) ( 56 + NumOfAppearanceIndexer * 1 ) ); | |
} | |
ToDoSequence = new byte[8]; | |
for (int i = 0; i < 8; i++) | |
ToDoSequence[i] = parser.ReadOffset< byte >( (ushort) ( 400 + i * 1 ) ); | |
Rule = new LazyRow< BattleLeveRule >( gameData, parser.ReadOffset< int >( 408 ), language ); | |
Objectives = new LazyRow< LeveString >[3]; | |
for (int i = 0; i < 3; i++) | |
Objectives[i] = new LazyRow< LeveString >( gameData, parser.ReadOffset< ushort >( (ushort) ( 412 + i * 2 ) ), language ); | |
Help = new ushort[2]; | |
for (int i = 0; i < 2; i++) | |
Help[i] = parser.ReadOffset< ushort >( (ushort) ( 418 + i * 2 ) ); | |
Variant = parser.ReadOffset< byte >( 422 ); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment