kwoolter / DungeonOfCards

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dungeon Of Cards

©️ 🐒 kwoolter 2021 Card game based on Guild of Dungeoneering concept. Thanks to GAMBRINOUS for inspiration and borrowing graphics.

Graphics Version

run_gui.py pygame GUI to play the game. Typical flow of the game:-

  • SPACE to start a game
  • 1 - 4 to select a card that you want to play next
  • Enter to play a round with the selected card
  • Repeat until someone dies

OR, use the mouse and just click on stuff.

CLI Version

run.py Command Line Interface to test out the Model. Typical flow of the game uses these commands:-

  • battle to start the battle
  • hand to see the player's hand and what the enemy has
  • pick to select which card in the player's hand you want to use
  • round play the round of the player versus the enemy
  • status see how the player and enemy are doing
  • Go back to the hand step
  • Repeat until someone dies

The Game

The game consists of Battles between a Player character and an Enemy character. Each character has their own deck of Battle Cards that they can play to determine the next action of their character. Each Battle starts by selecting a Player and an Enemy. A Battle consists of a number of Rounds where each character picks which card they are going to play in that Round then the outcome of the Round is determined.
If both character's survive the Round then new cards are dealt and a new Round starts If your Player survives a Battle then they move on to the next Battle with their health restored. If they defeat an Enemy of the same of higher level then the Player levels up. If a Player dies in battle then a new Player is created to take on the challenge in the next Battle.

Battle Cards

Battle cards have the following features:-

Melee Attack Attempt a melee attack on the opponent
Magic Attack Attempt a magic attack on the opponent
Melee Block Attempt to block an opponent's melee attack
Magic Block Attempt to block an opponent's magic attack
Unblockable Attack Indicates this attack connot be blocked by the opponent
Quick Attack The Player can perform a quick attack ahead of the Enemy
Healing The player is healed dependent on an outcome e.g. successful block
Dealing The player receives or loses cards in their hand

The BattleCard.generate(n) method will generate a random card with n features added.

Player Effects

In addition a Battle Card can have an effect on the Player that lasts a number of turns.

Blessed Gain 1 health per round
Blinded You can't see the enemy's card
Burning Lose 1 health per round
Confused You can't see the cards in your own hand
Decay Lose 1 health per round
Invincible Enemy attacks do no damage to the Player
Sleep The Player neither attacks nor blocks in the round

Decks

Both the player and an enemy have the following:-

  • Deck - a deck of hidden Battle Cards
  • Hand - The hand of cards that have been dealt from the deck to play with in a round
  • Discard pile - cards that have been used in a round and discarded

About


Languages

Language:Python 100.0%