Install uv .
Go to the project directory.
uv sync --all-packages
uv run server -v # or
uv run server --verbose
uv run client -v # or
uv run client --verbose
Task/Feature
Justin Ryan Uy
Adrian Nathaniel Co
Jayhan Charlizze Esparas
Ethan Jude Reyes
TCP Server: connection handling, framing, dispatch
✅
✅
✅
✅
Game lifecycle: LOBBY, GAME_SETUP, MULLIGAN logic
✅
✅
✅
✅
Turn & phase engine (all phases/steps, transitions)
✅
✅
✅
✅
Priority & Stack logic, spell/ability resolution
✅
✅
✅
✅
Combat system (attackers, blockers, damage)
✅
✅
✅
✅
Client implementation & state rendering
✅
✅
✅
✅
PDU serialisation/deserialisation (all 25 PDU types)
✅
✅
✅
✅
Error handling, PING/PONG heartbeat, disconnect logic
✅
✅
✅
✅
Verbose mode (client + server PDU logging, toggle on/off)
✅
✅
✅
✅
Testing & interoperability
✅
✅
✅
✅
README / documentation / AI disclosure
✅
✅
✅
✅
NotebookLM was used to understand the game rules and flow.
Used Google AI Studio as an additional reference to get ideas when figuring out and understanding the logic.
Gemini AI was used to verify consistency and documentation (comments). Also, used to help identifying certain logic in code-writing.
Library
Version Requirement
Purpose
Rich
>= 15.0.0
Terminal coloring/UI (both client & server)
Pydantic
>= 2.13.4
PDU validation and serialization.
Prompt Toolkit
>= 3.0.53
Prevents terminal display corruption during user input.
Questionary
>= 2.1.1
Dropdown/checkbox prompts for game actions
Implemented Card Abilities and Effects
Deal damage to target(s) (e.g., Lightning Bolt 3 damage, Shock 2 damage, Lava Spike 3 damage)
Destroy target creature/artifact (e.g., Terror, Doom Blade, Naturalize)
Exile target creature (e.g., Swords to Plowshares, Path to Exile, Graveyard Return)
Draw cards (e.g., Ponder, Merfolk Looter)
Discard cards (e.g., Mind Rot)
Mill cards (e.g., Millstone)
Gain life (e.g., Healing Salve, Gray Merchant of Asphodel)
Counter target spell (e.g., Counterspell, Cancel, Negate, Mana Leak)
Return target creature to hand (e.g., Raise Dead, Gravedigger)
Pump power/toughness (e.g., Giant Growth +3/+3, Vines of Vastwood +4/+4)
Search library (e.g., Rampant Growth, Path to Exile)
Special triggered abilities (e.g., Goblin Guide reveal land on attack, Monastery Swiftspear prowess, White/Black Knight protection, Gravekeeper's Discipline
First Strike (White Knight, Black Knight)
Flying (Air Elemental, Serra Angel)
Hexproof (Troll Ascetic)
Defender (Wall of Stone)
Haste (Goblin Guide, Monastery Swiftspear
Trample (Reckless Wurm)
Madness (Reckless Wurm discard for reduce
Cast details text defines the effect (e.g., "Deal 3 damage to target", "Exile target creature", "Put top 2 cards of library into hand")
Limitations and Deviations
None as of the current version of this application.