SusHudUnitCard

Тактический портрет юнита — image или icon fallback, overlay name / rank, ряд status-effect; click выбирает.
Пакет
SusGame · HUD (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
UnitId | Prop<string> | "" | |
UnitName | Prop<string> | "" | |
Rank | Prop<string> | "" | |
ImageSrc | Prop<string> | "" | |
Icon | Prop<string> | "" | |
Active | Prop<bool> | false | |
Ally | Prop<bool> | true | |
Hp | Prop<float> | 0f | |
MaxHp | Prop<float> | 0f | |
EffectsPlacement | Prop<string> | "below" | |
EffectSize | Prop<string> | "auto" | |
NameWrap | Prop<string> | "wrap" |
Слоты
Слотов нет.
События
| Имя | Поле | Payload |
|---|---|---|
Selected | OnSelected | SusHudUnitCard |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
breakpoint-smsus-hiddensus-hud-unit-cardsus-hud-unit-card__active-linesus-hud-unit-card__effectssus-hud-unit-card__fallbacksus-hud-unit-card__imgsus-hud-unit-card__namesus-hud-unit-card__name-linesus-hud-unit-card__name-linessus-hud-unit-card__overlaysus-hud-unit-card__portraitsus-hud-unit-card__ranksus-hud-unit-card--activesus-hud-unit-card--allysus-hud-unit-card--effects-abovesus-hud-unit-card--enemysus-hud-unit-card--name-words
Использование
Управляйте через пропы либо заполняйте через ApplyData / SetEffects (rail использует путь через данные).
csharp
var card = new SusHudUnitCard();
card.ApplyData(new SusHudUnitCardData
{
Id = "u1",
Name = "Mara",
Rank = "Sergeant",
ImageSrc = "portraits/mara",
Icon = "",
Active = true,
Ally = true,
Hp = 42f,
MaxHp = 50f,
Effects = new List<SusStatusEffectData>
{
new() { Id = "regen", Icon = "heart", Title = "Regen", Stacks = 2, TurnsLeft = 3 },
},
});
card.OnSelected += c => { /* focus unit */ };xml
<template>
<sus:SusHudUnitCard :UnitId="Id.Value"
:UnitName="Name.Value"
:Rank="Rank.Value"
:ImageSrc="Img.Value"
:Icon="Icon.Value"
:Active="Active.Value"
:Ally="Ally.Value"
:Hp="Hp.Value"
:MaxHp="MaxHp.Value"
@selected="OnSelected" />
</template>
<script>
public Prop<string> Id = new("u1");
public Prop<string> Name = new("Mara");
public Prop<string> Rank = new("Sergeant");
public Prop<string> Img = new("portraits/mara");
public Prop<string> Icon = new("");
public Prop<bool> Active = new(true);
public Prop<bool> Ally = new(true);
public Prop<float> Hp = new(42f);
public Prop<float> MaxHp = new(50f);
void OnSelected(SusHudUnitCard card) { /* … */ }
// Prefer ApplyData + SetEffects when syncing from combat state.
</script>| Prop / API | Роль |
|---|---|
UnitId | Стабильный id (ключ сверки rail) |
UnitName · Rank | Подписи оверлея |
ImageSrc | Ключ каталога портретов (SusGameMedia) |
Icon | Fallback-ключ иконки, когда изображение пусто |
Active | Увеличенное оформление --active; размер эффекта normal vs mini |
Ally | Классы рамки союзник/враг |
Hp · MaxHp | Только тултип (MaxHp ≤ 0 скрывает строку HP) |
ApplyData(SusHudUnitCardData) | Полная синхронизация + эффекты |
SetEffects / ClearEffects | Строка статусов (SusStatusEffect) |
OnSelected | Payload = эта карточка |
EffectsPlacement | "below" (по умолчанию) или "above" |
EffectSize | "auto" (по умолчанию), "mini" или "normal" |
NameWrap | "wrap" (по умолчанию) или "words" |
Props раскладки
EffectsPlacement = "above"переносит статус-эффекты перед портретом; root получаетsus-hud-unit-card--effects-above. Используйте это вместо правила скина сcolumn-reverse.EffectSize:"auto"показывает обычные иконки на активной карточке и мини-иконки на остальных."mini"или"normal"задаёт один размер всем эффектам карточки — размеры иконок в таблице стилей не нужны.NameWrap = "words"ставит по одному слову на строку (каждая строка —sus-hud-unit-card__name-line, root получаетsus-hud-unit-card--name-words); слово длиннее карточки обрывается многоточием. Используйте это вместо\nв именах юнитов."wrap"по умолчанию не добавляет лишних узлов.
csharp
card.EffectsPlacement.Value = "above";
card.EffectSize.Value = "mini";
card.NameWrap.Value = "words";Заметки
- Нет плейсхолдеров Phosphor skull/user — только ключи каталога
ImageSrc/Icon. - Для списков союзник/враг предпочитайте хостинг через SusHudUnitRail.
- Смежная молекула SusUnitCard — другой компонент (roster / shop), не эта HUD-карточка.