New Effect Definitions (Cards Expansion Round 2) - UQcsse3200/2026-studio-3 GitHub Wiki

Status: Definitions confirmed by Team 5. Maintainer: Team 6 coordinator (hezhenyu / Vincent). Code baseline: main at 6f5574ab (2026-09-16). File:line references are against this commit.

This page is the single source of truth for SUNDER, PIERCE, ENERGY_GAIN, CLEANSE and FORTIFY, plus FEEBLE (an existing effect used by a Round 2 card). It supersedes the earlier "New effects request" PDF.


1. How card effects actually resolve in live combat

Live path (verified on main):

  1. Team3CardPlayAdapter → BattleController.submitCardPlayRequest(...)
  2. BattleController.resolvePlayerCard() → CardPlayService.playCard(...) → EffectExecutor produces resolved effects
  3. BattleController.dispatchCardEffects() (BattleController.java:650) routes:
    • enemy-targeted effects → CardEffectHandler.applyEnemyEffects(...)
    • SELF effects → CardEffectHandler.applyPlayerEffects(...)

Team1EnemyStateAdapter.applyEnemyEffects() and Team7PlayerStateAdapter.applyPlayerEffects() also contain effect implementations, but no production code calls them. Only CardEffectHandler changes game state in live combat. A test that only exercises an adapter does not prove the effect works in battle.

Effects on the same card resolve in effects array order.

Target validation

CardValidator.isCompatibleWithTarget() (CardValidator.java:208) runs for base cards and upgrades (called at lines 54, 126, 192):

  • SELF accepts: BLOCK, HEAL, STRENGTH, ENERGY_GAIN, CLEANSE, FORTIFY
  • SINGLE_ENEMY / ALL_ENEMIES accept: DAMAGE, PIERCE, SUNDER, and any effect where usesDuration() is true

2. Live integration summary

Effect Target Live combat (CardEffectHandler) Card(s)
SUNDER Enemy ❌ Dropped (empty default branch, CardEffectHandler.java:45). Fix in progress. unseal_the_breach
PIERCE Enemy ❌ Dropped (same default branch). Fix in progress. poison_blade
ENERGY_GAIN SELF ✅ Applied (CardEffectHandler.java:72) astral_ward
CLEANSE SELF ✅ Applied (CardEffectHandler.java:78) purify
FORTIFY SELF ✅ Applied (CardEffectHandler.java:79) iron_oath
FEEBLE Enemy ⚠️ Status is stored (CardEffectHandler.java:41), but enemy attacks ignore it sentinels_rebuke

5. Change log

  • 2026-09-20 — Replaces the "New effects request" PDF. Updated validator behaviour (base cards are now validated), corrected unseal_the_breach order to SUNDER → DAMAGE, replaced branch commits with main references, added FEEBLE, and documented the live CardEffectHandler path and open issues.
⚠️ **GitHub.com Fallback** ⚠️