SusAbilityBar

Horizontal ability strip — rebuilds SusAbilitySlot children, fills from SusHudAbilityData, digits 1…N activate when not in hold mode.
Package
SusGame · HUD (commercial)
SusGame · HUD
Props
| Name | Type | Default | |
|---|---|---|---|
SlotCount | Prop<int> | 4 | |
UseHold | Prop<bool> | false |
Slots
No slots.
Events
| Name | Field | Payload |
|---|---|---|
AbilityActivated | OnAbilityActivated | int |
AbilityHoldComplete | OnAbilityHoldComplete | int |
Style hooks
USS class contract — override appearance without touching C#. States toggle via these classes:
breakpoint-smsus-ability-bar
Usage
Drive slot contents from code with SetAbilities. XML only sets layout/mode props.
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 | Role |
|---|---|
SlotCount | Slot count (1…10, default 4) |
UseHold | Propagates hold mode to every slot |
SetAbilities(list) | Resize + fill from SusHudAbilityData |
UpdateAbility(i, data) | Patch one slot |
GetSlot(i) | Access child SusAbilitySlot |
OnAbilityActivated | Index of activated slot |
OnAbilityHoldComplete | Index after hold completes |
Notes
- Empty until
SetAbilities(or host/Assembler fills slots). Calling before mount queues untilMounted. SusHudAbilityData:Id,Icon,Title,Description,Cooldown01(0ready …1full),CooldownText,Disabled, optionalKeybind(empty → index+1).- Prefer the bar over hand-wiring many SusAbilitySlot instances when you need a shared key contract.