punish v6.8.18.0

This commit is contained in:
alydev 2025-10-09 07:47:19 +10:00
commit e786325cda
322 changed files with 554232 additions and 0 deletions

View file

@ -0,0 +1,52 @@
using System;
using Lumina.Excel.Sheets;
using Questionable.Model.Questing;
namespace Questionable.Model;
public abstract record ItemReward(ItemRewardDetails Item)
{
public uint ItemId => Item.ItemId;
public string Name => Item.Name;
public ElementId ElementId => Item.ElementId;
public TimeSpan CastTime => Item.CastTime;
public abstract EItemRewardType Type { get; }
internal static ItemReward? CreateFromItem(Item item, ElementId elementId)
{
ushort? num = item.ItemAction.ValueNullable?.Type;
if (num.HasValue && num == 1322)
{
return new MountReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]);
}
num = item.ItemAction.ValueNullable?.Type;
if (num.HasValue && num == 853)
{
return new MinionReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]);
}
Orchestrion? valueOrDefault = item.AdditionalData.GetValueOrDefault<Orchestrion>();
if (valueOrDefault.HasValue)
{
Orchestrion valueOrDefault2 = valueOrDefault.GetValueOrDefault();
return new OrchestrionRollReward(new ItemRewardDetails(item, elementId), valueOrDefault2.RowId);
}
TripleTriadCard? valueOrDefault3 = item.AdditionalData.GetValueOrDefault<TripleTriadCard>();
if (valueOrDefault3.HasValue)
{
TripleTriadCard valueOrDefault4 = valueOrDefault3.GetValueOrDefault();
return new TripleTriadCardReward(new ItemRewardDetails(item, elementId), (ushort)valueOrDefault4.RowId);
}
num = item.ItemAction.ValueNullable?.Type;
if (num.HasValue && num == 20086)
{
return new FashionAccessoryReward(new ItemRewardDetails(item, elementId), item.ItemAction.Value.Data[0]);
}
return null;
}
public abstract bool IsUnlocked();
}