SusHudUnitRail

Верхняя полоса юнитов — союзники слева, враги справа; сверяет дочерние SusHudUnitCard по id.
Пакет
SusGame · HUD (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
ShowEnemies | Prop<bool> | true | |
Orientation | Prop<string> | "row" |
Слоты
Слотов нет.
События
| Имя | Поле | Payload |
|---|---|---|
UnitSelected | OnUnitSelected | SusHudUnitCard |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
breakpoint-smsus-hud-unit-cardsus-hud-unit-card__portraitsus-hud-unit-card--activesus-hud-unit-railsus-hud-unit-rail__scrollsus-hud-unit-rail__sidesus-hud-unit-rail__side--alliessus-hud-unit-rail__side--enemiessus-hud-unit-rail__spacersus-hud-unit-rail__spacer--emptysus-hud-unit-rail--allies-onlysus-hud-unit-rail--belt-tightsus-hud-unit-rail--columnsus-hud-unit-rail--tight
Использование
Управляется списком: SetUnits / SetAllies / SetEnemies. XML только переключает сторону врагов.
csharp
var rail = new SusHudUnitRail();
rail.ShowEnemies.Value = true;
rail.OnUnitSelected += card => { /* select */ };
rail.SetUnits(new List<SusHudUnitCardData>
{
new() { Id = "a1", Name = "Mara", Ally = true, Active = true, ImageSrc = "portraits/mara" },
new() { Id = "e1", Name = "Raider", Ally = false, Icon = "units/raider" },
});
rail.SetActiveUnit("a1");
rail.UpdateUnit(new SusHudUnitCardData { Id = "a1", Name = "Mara", Hp = 30f, MaxHp = 50f, Ally = true });
rail.SetUnitEffects("a1", new List<SusStatusEffectData>
{
new() { Id = "burn", Icon = "flame", IsDebuff = true, TurnsLeft = 2 },
});xml
<template>
<sus:SusHudUnitRail :ShowEnemies="ShowEnemies.Value"
@unit-selected="OnUnitSelected" />
</template>
<script>
public Prop<bool> ShowEnemies = new(true);
void OnUnitSelected(SusHudUnitCard card) { /* … */ }
// Call SetUnits / SetAllies / SetEnemies after mount.
</script>| Prop / API | Роль |
|---|---|
ShowEnemies | Скрывает сторону врагов + спейсер (деплой / только союзники) |
SetUnits(list) | Разделяет по Ally → на обе стороны |
SetAllies / SetEnemies | Частичные обновления одной стороны |
SetActiveUnit(id) | Переключает Active на подходящих карточках |
UpdateUnit(data) | Патчит одну существующую карточку |
SetUnitEffects(id, effects) | Пробрасывает в карточку |
FindCard / ClearUnits | Поиск / очистка |
AllyCards · EnemyCards | Живые списки карточек |
OnUnitSelected | Всплывает от дочернего OnSelected |
Заметки
- Пуст, пока не вызван fill API — сверка на месте избегает штормов remount на
SusImg/ иконках. SetUnitsпринудительно задаётAllytrue/false для каждой стороны при сверке.- Сочетайте с документацией SusHudUnitCard по полям payload.