SusUnitCard

Сводка юнита в ростере / магазине — портрет, name / type, HP · AP · level, опциональный badge и слот actions.
Пакет
SusGame · Молекулы (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
UnitName | Prop<string> | "" | |
UnitType | Prop<string> | "" | |
Image | Prop<string> | "" | |
Icon | Prop<string> | "" | |
ImageSize | Prop<int> | 160 | |
IconSize | Prop<int> | 32 | |
Hp | Prop<int> | 100 | |
MaxHp | Prop<int> | 100 | |
Ap | Prop<int> | 0 | |
Level | Prop<int> | 1 | |
Selected | Prop<bool> | false | |
Disabled | Prop<bool> | false | |
Highlight | Prop<bool> | false | |
BadgeText | Prop<string> | "" |
Слоты
| Имя |
|---|
actions |
События
| Имя | Поле | Payload |
|---|---|---|
Clicked | OnClicked | SusUnitCard |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
sus-slotsus-unit-cardsus-unit-card__badgesus-unit-card__bodysus-unit-card__footersus-unit-card__headersus-unit-card__header-infosus-unit-card__iconsus-unit-card__imagesus-unit-card__namesus-unit-card__statsus-unit-card__stat-labelsus-unit-card__stat-valuesus-unit-card__subtitlesus-unit-card--disabledsus-unit-card--highlightsus-unit-card--selected
Использование
Props управляют chrome; медиа — через SusGameMedia. Клик вызывает OnClicked, если не задан Disabled.
csharp
var card = new SusUnitCard();
card.UnitName.Value = "Mara";
card.UnitType.Value = "Sergeant";
card.Image.Value = "portraits/mara";
card.Icon.Value = "";
card.Hp.Value = 42;
card.MaxHp.Value = 50;
card.Ap.Value = 4;
card.Level.Value = 3;
card.Selected.Value = true;
card.BadgeText.Value = "Turn";
card.OnClicked += c => { /* select unit */ };
// Optional: card.RefreshMedia();xml
<template>
<sus:SusUnitCard :UnitName="Name.Value"
:UnitType="Type.Value"
:Image="Img.Value"
:Icon="Icon.Value"
:IconSize="IcoSize.Value"
:Hp="Hp.Value"
:MaxHp="MaxHp.Value"
:Ap="Ap.Value"
:Level="Level.Value"
:Selected="Sel.Value"
:Disabled="Dis.Value"
:Highlight="Hi.Value"
:BadgeText="Badge.Value"
@clicked="OnClicked">
<!-- slot actions: e.g. SusButton row -->
</sus:SusUnitCard>
</template>
<script>
public Prop<string> Name = new("Mara");
public Prop<string> Type = new("Sergeant");
public Prop<string> Img = new("portraits/mara");
public Prop<string> Icon = new("");
public Prop<int> IcoSize = new(32);
public Prop<int> Hp = new(42);
public Prop<int> MaxHp = new(50);
public Prop<int> Ap = new(4);
public Prop<int> Level = new(3);
public Prop<bool> Sel = new(true);
public Prop<bool> Dis = new(false);
public Prop<bool> Hi = new(false);
public Prop<string> Badge = new("Turn");
void OnClicked(SusUnitCard card) { /* … */ }
</script>| Prop / API | Роль |
|---|---|
UnitName · UnitType | Заголовок + подзаголовок (UnitType → подпись подзаголовка) |
Image · Icon | Ключ портрета из каталога / fallback-иконка (предпочтителен Image) |
ImageSize | Заявленный размер (по умолчанию 160); portrait chrome — это USS 3:4 — отрисовка не сжимается через этот prop |
IconSize | Размер мета-иконки (по умолчанию 32) |
Hp · MaxHp | Строка HP как Hp / MaxHp |
Ap · Level | Строка статов |
Selected · Disabled · Highlight | Классы состояния BEM; Disabled блокирует OnClicked |
BadgeText | Угловой badge, если не пуст |
Слот actions | Ряд действий в подвале |
RefreshMedia() | Переприменить image/icon после позднего связывания |
OnClicked | Payload = эта карточка |
Заметки
- Отличается от SusHudUnitCard (тактическая панель / combat chrome).
- Связанная плитка сквада: SusSquadCard.