Boss Status Effects and Animations - UQcsse3200/2026-studio-3 GitHub Wiki

Team 1 — Boss Status Effects and Animations

Overview

The boss uses two special status effects to change how the player approaches combat:

  • Silence — prevents the player from playing cards while active.
  • Damage on Card Play — damages the player whenever a card is successfully played.

Both effects use the existing player status-effect system and are applied through:

CombatStatsComponent.applyStatusEffect(...)

Their duration is managed through:

StatusEffect.tickAndCheckExpired()

Silence

Silence blocks card plays before the card enters the normal resolution process.

The check is handled in the existing BattleActions card-play guard.

Player attempts card
        ↓
BattleActions guard
        ↓
Silence active?
     ↙       ↘
   Yes        No
    ↓          ↓
 Reject     Continue

When a card is rejected, the reason is reported through:

BATTLE_LOG_EVENT

A rejected card should not execute its effects or trigger "cardPlayed".


Damage on Card Play

This effect listens to the existing:

"cardPlayed"

event in BattleActions.

Whenever a card is successfully played, the player's active status effects are checked.

If Damage-on-Play is active, the configured amount of damage is applied to the player.

Card successfully played
        ↓
"cardPlayed"
        ↓
Check status
        ↓
Damage-on-Play active
        ↓
Damage player

Rejected card attempts do not trigger this effect.


Status Duration

Both effects use the normal StatusEffect lifecycle.

Effect applied
    ↓
Active
    ↓
tickAndCheckExpired()
    ↓
Duration decreases
    ↓
Effect expires

Once expired, Silence no longer blocks cards and Damage-on-Play no longer reacts to "cardPlayed".


Boss Intent Integration

The effects are triggered through the boss intent system.

Boss AI
    ↓
EnemyIntent
    ↓
executeIntent()
    ↓
DEBUFF
    ↓
applyStatusEffect()

The intent provides the effect type, duration, and effect value where required.


Boss Animations

The boss also supports Cast and Death animations.

Cast animations are used when the boss performs special actions such as applying a debuff.

IDLE
  ↓
CAST
  ↓
IDLE

When the boss reaches zero health, it enters the death animation:

IDLE / CAST
     ↓
   DEATH

DEATH is treated as a final animation state and should not return to normal idle or cast animations.

Cast and death frames are stored in the boss animation atlas and should use the same sprite size, alignment, and visual style as the other boss animations.


Integration Summary

Boss Intent
    ↓
DEBUFF
    ↓
applyStatusEffect()
    ↓
Player Status
   ↙        ↘
Silence   Damage-on-Play
   ↓            ↓
Card Guard   "cardPlayed"
   ↓            ↓
Reject       Damage Player

This keeps the boss mechanics integrated with the existing combat, status-effect, event, and animation systems.