50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
|
# Defense of the SnederDome
|
||
|
|
||
|
A quick and dirty prototype of a game server for snengame.
|
||
|
|
||
|
Written in-between concussion dizzy spells; some decisions made to minimize having to think hard about them.
|
||
|
Other decisions made to ease the Soon(tm) networkification of this code.
|
||
|
|
||
|
## What's implemented
|
||
|
* Most cards (Jokers are Valkyires)
|
||
|
* Playing, moving, attacking cards
|
||
|
* A hacky loop to test out game commands
|
||
|
|
||
|
## What's not implemented
|
||
|
* Actually winning or losing
|
||
|
* Ready checking
|
||
|
* Second player draws an extra card
|
||
|
|
||
|
## How to test
|
||
|
Run the snengame binary to use the built in game loop.
|
||
|
|
||
|
Commands are entered like so:
|
||
|
s|a <player id> <command character> arguments
|
||
|
|
||
|
State Commands:
|
||
|
d: Print debug screen
|
||
|
g: Print game screen
|
||
|
b: Begin game
|
||
|
s: Start turn
|
||
|
e: End turn
|
||
|
Action Commands:
|
||
|
s: Scry your life points in cards
|
||
|
d <x>: Draw card at position x from your most recent scry
|
||
|
p <x> <y>: play card at postion x in your hand to postion y on your side of the board (from the left)
|
||
|
m <x> <y>: move card at position x on the board to position y on the board
|
||
|
a <x> <y>: attack position y with card at position x on the board
|
||
|
|
||
|
Example Commands:
|
||
|
s 1 d: (available to both players at any time) show debug screen
|
||
|
s 1 g: (available to both players at any time) show game screen
|
||
|
s 1 s: Start Player 1 (Sentinal)'s turn
|
||
|
a 2 p 0 1: Player 2 (Scourge) places the card at hand position 0 on board position 1
|
||
|
a 2 d 2: Player 2 (Scourge) draws the card at position 2 of their most recent scry
|
||
|
|
||
|
## Other notes:
|
||
|
Player 1 (the top side of the board) is known as Sentinal.
|
||
|
Player 2 (the bottom side of the board) is known as Scourge.
|
||
|
Yes these are from DOTA Allstars
|
||
|
|
||
|
Any player can begin the game; whichever player presses the start command first goes first
|