Skip to content

SusAbilityBar

SusAbilityBar

Horizontal ability strip — rebuilds SusAbilitySlot children, fills from SusHudAbilityData, digits 1…N activate when not in hold mode.

Package

SusGame · HUD (commercial)

Open in Playground

SusGame · HUD

Props

NameTypeDefault
SlotCountProp<int>4
UseHoldProp<bool>false

Slots

No slots.

Events

NameFieldPayload
AbilityActivatedOnAbilityActivatedint
AbilityHoldCompleteOnAbilityHoldCompleteint

Style hooks

USS class contract — override appearance without touching C#. States toggle via these classes:

  • breakpoint-sm
  • sus-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 / APIRole
SlotCountSlot count (1…10, default 4)
UseHoldPropagates hold mode to every slot
SetAbilities(list)Resize + fill from SusHudAbilityData
UpdateAbility(i, data)Patch one slot
GetSlot(i)Access child SusAbilitySlot
OnAbilityActivatedIndex of activated slot
OnAbilityHoldCompleteIndex after hold completes

Notes

  • Empty until SetAbilities (or host/Assembler fills slots). Calling before mount queues until Mounted.
  • SusHudAbilityData: Id, Icon, Title, Description, Cooldown01 (0 ready … 1 full), CooldownText, Disabled, optional Keybind (empty → index+1).
  • Prefer the bar over hand-wiring many SusAbilitySlot instances when you need a shared key contract.