44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
namespace Pf2e.Scrapper.Importers.Implementations.Aonprd.Compendium;
|
|
|
|
/// <summary>
|
|
/// Ссылка на сущность с указанием файла, в котором она хранится.
|
|
/// </summary>
|
|
/// <param name="id">Идентификатор сущности.</param>
|
|
/// <param name="file">Имя файла.</param>
|
|
public class AonprdCompendiumItem(string id, string file) : AbstractCompendiumItem
|
|
{
|
|
/// <summary>
|
|
/// Идентификатор сущности.
|
|
/// </summary>
|
|
public override string Id { get; } = id;
|
|
|
|
/// <summary>
|
|
/// Тип сущности.
|
|
/// </summary>
|
|
public override string Type { get; } = ResolveType(id);
|
|
|
|
/// <summary>
|
|
/// Имя файла, в котором хранится сущность.
|
|
/// </summary>
|
|
public string File { get; } = file;
|
|
|
|
/// <summary>
|
|
/// Определение типа сущности как префикса идентификатора.
|
|
/// </summary>
|
|
public static string ResolveType(string id)
|
|
{
|
|
string type = string.Join('-', id.Split('-')[..^1]);
|
|
|
|
return SubType(type, "equipment") ?? SubType(type, "weapon") ?? type;
|
|
|
|
static string? SubType(string type, string cat)
|
|
{
|
|
return type.StartsWith($"{cat}-") && type != cat
|
|
? type.EndsWith("-bonus")
|
|
? $"{cat}-bonus"
|
|
: $"{cat}-sub"
|
|
: null;
|
|
}
|
|
}
|
|
}
|