Skip to content

Boss Status Effects and Animations

1109TT edited this page Sep 9, 2026 · 1 revision

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.

Table of Contents

Home

Game Engine

Getting Started

Entities and Components

Service Locator

Loading Resources

Logging

Unit Testing

Debug Terminal

Input Handling

UI

Animations

Audio

AI

Physics

Game Screens and Areas

Terrain

Concurrency & Threading

Settings

Encounters
Tutorials and Contextual Help (Team 2)
Cards (Team 6)
Story (Team 6)
Level design, battle system, turn order, spawn (Team 3)
Cards, Save/Load & Bestiary (Team 5)
Rewards and Battle Settlement (Team 7)

Troubleshooting

MacOS Setup Guide

Clone this wiki locally