SusAbilityBar

Горизонтальная полоса способностей — пересобирает дочерние SusAbilitySlot, заполняет из SusHudAbilityData, цифры 1…N активируют вне hold-режима.
Пакет
SusGame · HUD (коммерческий)
SusGame · HUD
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
SlotCount | Prop<int> | 4 | |
UseHold | Prop<bool> | false |
Слоты
Слотов нет.
События
| Имя | Поле | Payload |
|---|---|---|
AbilityActivated | OnAbilityActivated | int |
AbilityHoldComplete | OnAbilityHoldComplete | int |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
breakpoint-smsus-ability-bar
Использование
Управляйте содержимым слотов из кода через SetAbilities. XML задаёт только пропы layout/режима.
csharp
var bar = new SusAbilityBar();
bar.SlotCount.Value = 4;
bar.UseHold.Value = false;
bar.OnAbilityActivated += index => { /* cast / spend AP */ };
bar.OnAbilityHoldComplete += index => { /* charged cast */ };
bar.SetAbilities(new List<SusHudAbilityData>
{
new() { Id = "strike", Icon = "sword", Title = "Strike", Keybind = "1" },
new() { Id = "heal", Icon = "plus", Title = "Heal", Cooldown01 = 0.4f, CooldownText = "2s" },
new() { Id = "shield", Icon = "shield", Title = "Guard", Disabled = true },
});xml
<template>
<sus:SusAbilityBar :SlotCount="Slots.Value"
:UseHold="Hold.Value"
@ability-activated="OnAbilityActivated"
@ability-hold-complete="OnAbilityHoldComplete" />
</template>
<script>
public Prop<int> Slots = new(4);
public Prop<bool> Hold = new(false);
void OnAbilityActivated(int index) { /* … */ }
void OnAbilityHoldComplete(int index) { /* … */ }
// Call SetAbilities / UpdateAbility from combat code after mount.
</script>| Prop / API | Роль |
|---|---|
SlotCount | Количество слотов (1…10, по умолчанию 4) |
UseHold | Транслирует hold-режим на каждый слот |
SetAbilities(list) | Меняет размер и заполняет из SusHudAbilityData |
UpdateAbility(i, data) | Патчит один слот |
GetSlot(i) | Доступ к дочернему SusAbilitySlot |
OnAbilityActivated | Индекс активированного слота |
OnAbilityHoldComplete | Индекс после завершения hold |
Заметки
- Пуст, пока не вызван
SetAbilities(или слоты не заполнит host/Assembler). Вызов до монтирования ставится в очередь доMounted. SusHudAbilityData:Id,Icon,Title,Description,Cooldown01(0готово …1полный кулдаун),CooldownText,Disabled, опциональныйKeybind(пусто → index+1).- Предпочитайте эту полосу ручной сборке множества SusAbilitySlot, когда нужен общий контракт клавиш.