ZodiacFinder/RelicNote.cs

111 lines
4.0 KiB
C#
Raw Normal View History

2024-05-28 23:20:15 +00:00
using Lumina;
using Lumina.Data;
using Lumina.Excel;
using Lumina.Excel.GeneratedSheets;
namespace ZodiacFinder.Excel
{
[Sheet("RelicNote", columnHash: 0xb557320e)]
public partial class RelicNote : ExcelRow
{
public class RelicNoteMonsterNoteTargetCommon
{
public LazyRow<MonsterNoteTarget> MonsterNoteTargetCommon { get; set; }
public byte MonsterCount { get; set; }
}
public class RelicNoteFate
{
public LazyRow<Fate> Fate { get; set; }
public LazyRow<PlaceName> PlaceName { get; set; }
}
public LazyRow<EventItem> EventItem { get; set; }
public RelicNoteMonsterNoteTargetCommon[] MonsterNoteTargetCommon { get; set; }
public LazyRow<MonsterNoteTarget>[] MonsterNoteTargetNM { get; set; }
public ushort Unknown24 { get; set; }
public RelicNoteFate[] Fate { get; set; }
public LazyRow<Leve>[] Leve { get; set; }
/// <inheritdoc/>
public override void PopulateData(RowParser parser, GameData gameData, Language language)
{
base.PopulateData(parser, gameData, language);
this.EventItem = new LazyRow<EventItem>(gameData, parser.ReadColumn<uint>(0), language);
this.MonsterNoteTargetCommon = new RelicNoteMonsterNoteTargetCommon[10];
for (var i = 0; i < 10; i++)
{
this.MonsterNoteTargetCommon[i] = new RelicNoteMonsterNoteTargetCommon
{
MonsterNoteTargetCommon = new LazyRow<MonsterNoteTarget>(gameData, parser.ReadColumn<ushort>(1 + (i * 2) + 0), language),
MonsterCount = parser.ReadColumn<byte>(1 + (i * 2) + 1),
};
}
this.MonsterNoteTargetNM = new LazyRow<MonsterNoteTarget>[3];
for (var i = 0; i < 3; i++)
this.MonsterNoteTargetNM[i] = new LazyRow<MonsterNoteTarget>(gameData, parser.ReadColumn<ushort>(21 + i), language);
this.Unknown24 = parser.ReadColumn<ushort>(24);
this.Fate = new RelicNoteFate[3];
for (var i = 0; i < 3; i++)
{
this.Fate[i] = new RelicNoteFate
{
Fate = new LazyRow<Fate>(gameData, parser.ReadColumn<ushort>(25 + (i * 2) + 0), language),
PlaceName = new LazyRow<PlaceName>(gameData, parser.ReadColumn<ushort>(25 + (i * 2) + 1), language),
};
}
this.Leve = new LazyRow<Leve>[3];
for (var i = 0; i < 3; i++)
this.Leve[i] = new LazyRow<Leve>(gameData, parser.ReadColumn<ushort>(31 + i), language);
}
}
[Sheet("MonsterNoteTarget", columnHash: 0x4157404f)]
public partial class MonsterNoteTarget : ExcelRow
{
public class MonsterNoteTargetPlaceName
{
public LazyRow<PlaceName> Zone { get; set; }
public LazyRow<PlaceName> Location { get; set; }
}
public LazyRow<BNpcName> BNpcName { get; set; }
public int Icon { get; set; }
public LazyRow<Town> Town { get; set; }
public MonsterNoteTargetPlaceName[] PlaceName { get; set; }
public override void PopulateData(RowParser parser, GameData gameData, Language language)
{
base.PopulateData(parser, gameData, language);
this.BNpcName = new LazyRow<BNpcName>(gameData, parser.ReadColumn<ushort>(0), language);
this.Icon = parser.ReadColumn<int>(1);
this.Town = new LazyRow<Town>(gameData, parser.ReadColumn<byte>(2), language);
this.PlaceName = new MonsterNoteTargetPlaceName[3];
for (var i = 0; i < 3; i++)
{
this.PlaceName[i] = new MonsterNoteTargetPlaceName
{
Zone = new LazyRow<PlaceName>(gameData, parser.ReadColumn<ushort>(3 + (i * 2) + 0), language),
Location = new LazyRow<PlaceName>(gameData, parser.ReadColumn<ushort>(3 + (i * 2) + 1), language),
};
}
}
}
}