SusGameSessionScreenContent

Full-bleed оболочка матча — монтирует SusHudRoot через HUD-пресет, session chrome (turn/phase/hint/quit), опциональный result-оверлей.
Пакет
SusGame · Экраны (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
TurnNumber | Prop<int> | 1 | |
TurnLabel | Prop<string> | "Turn 1" | |
Phase | Prop<string> | "deployment" | |
PhaseLabel | Prop<string> | "Deployment" | |
IsPlayerTurn | Prop<bool> | true | |
ActiveAction | Prop<string> | "" | |
ShowResult | Prop<bool> | false | |
ResultText | Prop<string> | "" | |
ActionHint | Prop<string> | "" | |
HudPresetId | Prop<string> | SusHudPresetRegistry.Tactical |
Слоты
Слотов нет.
События
Публичных событий нет.
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
sc-gs-actionbarsc-gs-result-overlaysc-gs-topbarsus-flow-hintsus-flow-hint--flushsus-game-session-action-btnsus-game-session-screensus-game-session-screen__hintsus-game-session-screen__phase-labelsus-game-session-screen__quit-btnsus-game-session-screen__turn-labelsus-menu-button
Использование
Привяжите пропы chrome; меняйте HudPresetId или вызывайте ApplyHudPreset, чтобы переключить модули. Подключите QuitBtn / ResultOkBtn со стороны хоста.
xml
<template>
<sus:SusGameSessionScreenContent
:TurnNumber="Turn.Value"
:TurnLabel="TurnLbl.Value"
:Phase="PhaseId.Value"
:PhaseLabel="PhaseLbl.Value"
:ActionHint="Hint.Value"
:ShowResult="ShowEnd.Value"
:ResultText="Result.Value"
:HudPresetId="Preset.Value"
/>
</template>
<script>
public Prop<int> Turn = new(1);
public Prop<string> TurnLbl = new("Turn 1");
public Prop<string> PhaseId = new("deployment");
public Prop<string> PhaseLbl = new("Deployment");
public Prop<string> Hint = new("");
public Prop<bool> ShowEnd = new(false);
public Prop<string> Result = new("");
public Prop<string> Preset = new(SusHudPresetRegistry.Deployment);
</script>csharp
var session = new SusGameSessionScreenContent();
session.HudPresetId.Value = SusHudPresetRegistry.Tactical;
session.ApplyHudPreset(SusHudPresetRegistry.Tactical);
// After mount — AbilityBar / MinimapFrame / ObjectivePanel from HudMount
session.TurnNumber.Value = 3;
session.PhaseLabel.Value = "Action";
session.ActionHint.Value = "Select a unit";
session.ShowResult.Value = true;
session.ResultText.Value = "Victory";
session.QuitBtn.OnClick += () => { /* confirm quit */ };
session.ResultOkBtn.OnClick += () => { /* dismiss result */ };| Prop / API | Роль |
|---|---|
TurnNumber / TurnLabel | Чип хода (TurnLabel побеждает, если не пусто) |
Phase / PhaseLabel | Подпись чипа фазы |
ActionHint | Chrome-alert с подсказкой; пусто → скрыт |
ShowResult / ResultText | Видимость оверлея результата + текст |
HudPresetId | При изменении вызывает ApplyHudPreset |
IsPlayerTurn / ActiveAction | Объявленные Prop<> — в текущем пине не подключены к chrome UI |
HudRoot / HudMount | Root + последний результат SusHudAssembler.Apply |
AbilityBar / MinimapFrame / ObjectivePanel | Ссылки из mount (могут быть null в зависимости от пресета) |
QuitBtn / ResultOkBtn / ActionBar | Подключение со стороны хоста |
ApplyHudPreset(id) | Повторно применяет assembler + пересобирает session chrome |
Заметки
- Пресет по умолчанию —
SusHudPresetRegistry.Deployment. Пустой id откатывается кTactical. ApplyHudPresetсеет демо-задачи (Deploy units/Complete the mission) на смонтированной панели — замените их со стороны хоста для реальных миссий.- Session chrome ожидает кастомный хост
session-chromeиз пресета; иначе монтируется вTL.