Corruption Cards and PIERCE Effect - UQcsse3200/2026-studio-3 GitHub Wiki

Overview

The Corruption card set was created for the Team 6 Sprint 2 card expansion. It adds four cards based on corrupted alchemy:

  • Poison Flask
  • Poison Blade
  • Poison Cloud
  • Poison Mark

These cards support sustained Poison damage, direct damage and target preparation. Each card has a complete data-driven configuration, automated configuration tests and an individual pixel-art illustration without embedded text. Card names, costs and descriptions are rendered separately by the card UI.

The implementation was delivered through:

Related work:

Card Collection

Card Cost Target Effects Intended role
Poison Flask 1 Single enemy 5 Poison for 3 turns Efficient setup for sustained Poison damage
Poison Blade 2 Single enemy 10 PIERCE damage and 4 Poison for 2 turns Immediate defence-bypassing damage combined with ongoing Poison
Poison Cloud 2 All enemies 3 Poison for 3 turns Multi-enemy Poison application
Poison Mark 1 Single enemy 2 Vulnerable and 2 Poison for 2 turns Prepares a priority target for follow-up attacks

Card Artwork

Poison Flask

Poison Flask artwork

Poison Blade

Poison Blade artwork

Poison Cloud

Poison Cloud artwork

Poison Mark

Poison Mark artwork

Card Design

Poison Flask

Poison Flask is a low-cost setup card. It applies Poison to one enemy over several turns, making it useful near the beginning of a fight or against enemies expected to survive multiple turns.

Its low energy cost allows it to be combined with another card during the same turn.

Poison Blade

Poison Blade combines immediate piercing damage with ongoing Poison. It provides a way to damage an enemy whose health is protected by block or armour while also contributing to a longer Poison strategy.

Because it provides both immediate and delayed value, it has a higher energy cost than Poison Flask or Poison Mark.

Poison Cloud

Poison Cloud applies Poison to all available enemies. It is designed for encounters containing multiple enemies and trades stronger single-target pressure for wider coverage.

The all-enemy target is handled through the existing enemy-state integration rather than by duplicating the effect for each enemy in the card configuration.

Poison Mark

Poison Mark applies both Vulnerable and Poison to one enemy. Its main purpose is to prepare a priority target before playing Poison Blade or another attack card.

The card provides limited immediate value by itself, but improves follow-up damage and supports combinations between Corruption cards and cards from other sets.

Deck Strategies

Sustained Poison

Poison Flask and Poison Cloud apply damage over several turns. This strategy is most effective when enemies survive long enough for Poison to resolve repeatedly.

A typical sequence is:

  1. Use Poison Flask against a priority target, or Poison Cloud against multiple enemies.
  2. Continue applying Poison while using defensive cards.
  3. Finish weakened enemies with direct-damage cards.

Marked Target

Poison Mark prepares one enemy by applying Vulnerable and Poison. Poison Blade or another attack can then be used as a follow-up.

A typical sequence is:

  1. Apply Poison Mark to a priority enemy.
  2. Use Poison Blade or another attack against that enemy.
  3. Allow the remaining Poison duration to continue applying pressure.

Defence Bypass

Poison Blade uses PIERCE damage to reduce health without consuming block or armour. This gives Corruption decks an option against heavily protected enemies.

PIERCE does not remove the target’s defences. Their block and armour remain available against later non-piercing attacks.

PIERCE Effect

Definition

PIERCE is an immediate enemy-targeted effect that reduces health directly. It ignores the target’s current block and armour.

For an effect configured as:

{
  "type": "PIERCE",
  "value": 10
}

the target loses 10 health, subject to the normal minimum-health boundary of zero. The target’s block and armour values are unchanged.

Rules

  • PIERCE uses its configured value as the amount of direct health damage.
  • It is an immediate effect and does not use a duration.
  • It is valid for enemy targets.
  • It is not valid for SELF.
  • It supports single-enemy resolution.
  • It supports all-enemy resolution where the card target allows it.
  • It ignores block and armour.
  • It does not remove or reduce block and armour.
  • It cannot reduce health below zero.
  • It triggers the existing death event when health reaches zero.

Difference from DAMAGE

Behaviour DAMAGE PIERCE
Reduces health Yes Yes
Block can absorb damage Yes No
Armour can absorb damage Yes No
Removes block or armour May consume them during resolution No
Can trigger death Yes Yes
Uses duration No No

Resolution Flow

PIERCE is supported through the existing card and combat pipeline:

  1. The card configuration is loaded from cards.json.
  2. CardValidator checks that the effect value and target combination are valid.
  3. EffectExecutor resolves the effect using its configured value.
  4. The battle integration identifies the selected enemy or available enemies.
  5. CombatStatsComponent.takePiercingDamage() reduces health directly.
  6. If health reaches zero, the existing death event is triggered.

Configuration and Assets

The four cards are defined through the shared card configuration system. Their configurations provide the information required by the card library and other game systems, including:

  • Unique card ID
  • Display name
  • Description
  • Energy cost
  • Card type
  • Rarity
  • Target
  • Ordered effects
  • Texture path

Each Corruption card references a different pixel-art asset. The illustrations contain no embedded card name, cost or rules text. This allows the UI to render dynamic card information independently of the artwork.

Validation

The card validation layer checks:

  • Required card fields are present.
  • Card IDs and names are not blank.
  • Energy costs are not negative.
  • Each card contains at least one effect.
  • Effect values and durations are valid.
  • Immediate effects do not incorrectly define durations.
  • Ongoing effects provide valid durations.
  • Effect types are compatible with the selected target.
  • PIERCE is accepted for enemy targets and rejected for self targets.

Automated Testing

The Corruption card tests verify the expected configuration of:

  • Poison Flask
  • Poison Blade
  • Poison Cloud
  • Poison Mark

The PIERCE tests verify:

  • Poison Blade loads with the expected PIERCE configuration.
  • PIERCE is accepted for enemy targets.
  • PIERCE is rejected for self targets.
  • Piercing damage reduces health by the configured amount.
  • Block and armour are not consumed.
  • Health is clamped at zero.
  • The existing death event is triggered.
  • Single-enemy resolution works correctly.
  • All-enemy resolution works correctly.
  • Existing effect and direct-health-change behaviour remains available.

Focused test command:

.\gradlew.bat :core:test `
  --tests "*CorruptionCardsTest" `
  --tests "*CardValidatorTest" `
  --tests "*EffectExecutorTest" `
  --tests "*CombatStatsComponentTest" `
  --tests "*Team1EnemyStateAdapterTest" `
  --console=plain

Full test command:

.\gradlew.bat :core:test --console=plain

Both the focused tests and the complete core test suite passed locally. GitHub’s unit-test and Java-format checks also passed for the merged pull requests.

Dependencies and Ownership

  • Team 5 – In-Combat Card Mechanics: Reviewed the new PIERCE behaviour and owns the wider card-play and combat-resolution pipeline.
  • Team 7 – Card Upgrade System: Owns the card-upgrade data structure and upgrade interaction. Upgrade implementation is outside the scope of the Corruption card task.
  • Team 1 – Enemy System: Provides the enemy state used by the adapter when applying single-enemy and all-enemy effects.
  • Card UI owners: Responsible for loading each configured texture path and rendering card information over the artwork.

Current Scope and Limitations

  • Card upgrade configurations are not included in this task because upgrade ownership belongs to Team 7.
  • The automated tests verify card configuration and combat behaviour.
  • Final visual confirmation of artwork, names, descriptions and costs at the actual in-game card size should be recorded separately as UI evidence.
  • Further numerical adjustments may be made after team playtesting and balance review.

Contribution

The Corruption cards, artwork, configuration tests and PIERCE integration were completed by Yu Zhu (@CHEPOO1)as part of Team 6’s Sprint 2 Cards Expansion.