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

SusGameSessionScreenContent

SusGameSessionScreenContent

Full-bleed оболочка матча — монтирует SusHudRoot через HUD-пресет, session chrome (turn/phase/hint/quit), опциональный result-оверлей.

Пакет

SusGame · Экраны (коммерческий)

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

SusGame · Screens

Свойства

ИмяТипПо умолчанию
TurnNumberProp<int>1
TurnLabelProp<string>"Turn 1"
PhaseProp<string>"deployment"
PhaseLabelProp<string>"Deployment"
IsPlayerTurnProp<bool>true
ActiveActionProp<string>""
ShowResultProp<bool>false
ResultTextProp<string>""
ActionHintProp<string>""
HudPresetIdProp<string>SusHudPresetRegistry.Tactical

Слоты

Слотов нет.

События

Публичных событий нет.

Хуки стиля

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

  • sc-gs-actionbar
  • sc-gs-result-overlay
  • sc-gs-topbar
  • sus-flow-hint
  • sus-flow-hint--flush
  • sus-game-session-action-btn
  • sus-game-session-screen
  • sus-game-session-screen__hint
  • sus-game-session-screen__phase-label
  • sus-game-session-screen__quit-btn
  • sus-game-session-screen__turn-label
  • sus-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Подпись чипа фазы
ActionHintChrome-alert с подсказкой; пусто → скрыт
ShowResult / ResultTextВидимость оверлея результата + текст
HudPresetIdПри изменении вызывает ApplyHudPreset
IsPlayerTurn / ActiveActionОбъявленные Prop<> — в текущем пине не подключены к chrome UI
HudRoot / HudMountRoot + последний результат 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.