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

SusAbilityBar

SusAbilityBar

Горизонтальная полоса способностей — пересобирает дочерние SusAbilitySlot, заполняет из SusHudAbilityData, цифры 1…N активируют вне hold-режима.

Пакет

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

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

SusGame · HUD

Свойства

ИмяТипПо умолчанию
SlotCountProp<int>4
UseHoldProp<bool>false

Слоты

Слотов нет.

События

ИмяПолеPayload
AbilityActivatedOnAbilityActivatedint
AbilityHoldCompleteOnAbilityHoldCompleteint

Хуки стиля

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

  • breakpoint-sm
  • sus-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, когда нужен общий контракт клавиш.