Repository navigation
Initial Cards
wzyyy7777 edited this page Aug 30, 2026
·
2 revisions
Sprint 1 starter set for Team 6 (Feature #5). These six cards ship in source/core/assets/configs/cards.json and are used to exercise the full load → validate → register → retrieve path.
Related pages:
- Card Library API
- Source:
cards.json - End-to-end tests:
CardsEndToEndTeston branchFeature6
Member5 deliverables describe the set as 2 Attack / 2 Defence / 2 Utility. The data model uses Slay the Spire-style CardType values (ATTACK, SKILL, POWER, STATUS, CURSE). Mapping used for the initial set:
| Sprint group | Count | Card IDs | CardType |
Typical effects |
|---|---|---|---|---|
| Attack | 2 |
strike, poison_dagger
|
ATTACK |
DAMAGE (+ optional POISON) |
| Defence | 2 |
defend, bandage
|
SKILL |
BLOCK, HEAL
|
| Utility | 2 |
expose, inner_focus
|
SKILL / POWER
|
VULNERABLE, STRENGTH
|
Card category stays separate from effects: a card's type does not restrict which effect types it may carry.
| ID | Name | Cost | Type | Rarity | Target | Effects | Texture |
|---|---|---|---|---|---|---|---|
strike |
Strike | 1 | ATTACK |
COMMON |
SINGLE_ENEMY |
DAMAGE 6 |
images/cards/strike.png |
poison_dagger |
Poison Dagger | 1 | ATTACK |
UNCOMMON |
SINGLE_ENEMY |
DAMAGE 4; POISON 3 for 3 turns |
images/cards/poison_dagger.png |
defend |
Defend | 1 | SKILL |
COMMON |
SELF |
BLOCK 5 |
images/cards/defend.png |
bandage |
Bandage | 1 | SKILL |
COMMON |
SELF |
HEAL 6 |
images/cards/bandage.png |
expose |
Expose | 1 | SKILL |
UNCOMMON |
ALL_ENEMIES |
VULNERABLE 2 for 2 turns |
images/cards/expose.png |
inner_focus |
Inner Focus | 2 | POWER |
RARE |
SELF |
STRENGTH 2 (rest of combat) |
images/cards/inner_focus.png |
Descriptions and texture paths are temporary placeholders where final art/copy is not ready yet.
From the source/ directory:
./gradlew core:test --tests 'com.csse3200.game.cards.CardsEndToEndTest'CardsEndToEndTest covers:
- Load the real
configs/cards.jsonthroughCardConfigLoader - Register all loaded configs into
CardLibrary - Retrieve all six cards by ID
- Assert key fields for Attack / Defence / Utility groups
- Confirm unknown IDs return
Optional.empty()
Also run the full card suite before merging:
./gradlew core:test --tests 'com.csse3200.game.cards.*'List<CardConfig> cards = CardConfigLoader.loadCards();
CardLibrary library = new CardLibrary(cards);
library.getCard("strike").orElseThrow();
library.getAllCards().size(); // expect 6
library.getCard("nonexistent").isEmpty(); // expect true- Only six cards are defined for Sprint 1 integration and testing.
- Texture files under
images/cards/may not exist yet; paths are reserved for later asset work. - Descriptions are temporary and may change with design / Team 5 combat balancing.
- The set includes only one
POWERcard (inner_focus).STATUSandCURSEhave no initial representatives. - Runtime card entities (hand, draw pile, play resolution) are outside this page; ownership is coordinated with Team 5.
- Energy, damage, and status-effect semantics must stay compatible with Team 7 player/status representations.
-
configs/cards.jsonstill contains exactly these six unique IDs -
./gradlew core:testpasses, includingCardsEndToEndTest - Card Library API docs still match public method names (
getCard,getAllCards) - Cross-team notes for Team 5 / Team 7 are recorded on Feature #5 or linked issues