К содержимому

SusHudUnitCard

SusHudUnitCard

Тактический портрет юнита — image или icon fallback, overlay name / rank, ряд status-effect; click выбирает.

Пакет

SusGame · HUD (коммерческий)

Открыть в песочнице

SusGame · HUD

Свойства

ИмяТипПо умолчанию
UnitIdProp<string>""
UnitNameProp<string>""
RankProp<string>""
ImageSrcProp<string>""
IconProp<string>""
ActiveProp<bool>false
AllyProp<bool>true
HpProp<float>0f
MaxHpProp<float>0f

Слоты

Слотов нет.

События

ИмяПолеPayload
SelectedOnSelectedSusHudUnitCard

Хуки стиля

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • breakpoint-sm
  • sus-hud-unit-card
  • sus-hud-unit-card__effects
  • sus-hud-unit-card__fallback
  • sus-hud-unit-card__img
  • sus-hud-unit-card__name
  • sus-hud-unit-card__overlay
  • sus-hud-unit-card__portrait
  • sus-hud-unit-card__rank
  • sus-hud-unit-card--active
  • sus-hud-unit-card--ally
  • sus-hud-unit-card--enemy

Использование

Управляйте через пропы либо заполняйте через 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)
IconFallback-ключ иконки, когда изображение пусто
ActiveУвеличенное оформление --active; размер эффекта normal vs mini
AllyКлассы рамки союзник/враг
Hp · MaxHpТолько тултип (MaxHp ≤ 0 скрывает строку HP)
ApplyData(SusHudUnitCardData)Полная синхронизация + эффекты
SetEffects / ClearEffectsСтрока статусов (SusStatusEffect)
OnSelectedPayload = эта карточка

Заметки

  • Нет плейсхолдеров Phosphor skull/user — только ключи каталога ImageSrc / Icon.
  • Для списков союзник/враг предпочитайте хостинг через SusHudUnitRail.
  • Смежная молекула SusUnitCard — другой компонент (roster / shop), не эта HUD-карточка.