-
Notifications
You must be signed in to change notification settings - Fork 0
Match Gameplay & Card Flow
The purpose of this Wiki page is to maintain an up to date and accurate description of how cards are able to be manipulated within a match. This is based on the current design found in the gameplay ruleset
The page include a brief overview of the relevant entities which contain and control cards within the game including their roles and responsibilities. Additionally the current flow of cards through the system and the interaction between these entities is described.
The MatchPlayer Deck is a complete copy of the Users Deck and contains all the cards in their currently active deck (at the moment only 1 Deckslot). The purpose of MatchDeck is to ensure that when the user is playing a game the collection of Cards which they own are not directly manipulated or altered within a match.
This is designed to separate out the fact that a User may have many Decks in future implementations of the game. These Decks will be a subset of a users Collection. When a User is in a match they become a player and so have a MatchPlayer Deck which is manipulated by the other entities within the match. The responsibilities of MatchDeck is to provide a starting list of cards for the other entities to drawn cards out of.
Note the AI also has access to a Deck during a match which is separate to the MatchPlayer deck.
For more information regarding MatchPlayer and Deck refer the to their respective Wiki pages.
##Pyramid (Representation of a traditional hand)
The Pyramid class is used to represent cards which a MatchPlayer has drawn from their Deck and can access. It is a subset of the MatchPlayer's Deck and contains a finite numbers of Cards (Currently 6) which are arranged graphically in the scene into the pyramid shape.
The purpose of the Pyramid is to hold cards which a MatchPlayer has drawn from their Deck but has not yet played onto the game Board. The Pyramid is used to interface with the Board, Deck, Graveyard and DucklingFarm (Not yet Implemented). The Pyramid is responsible for drawing cards out of the Deck & Graveyard, shuffling cards in the Pyramid, discarding cards from the Pyramid into the Graveyard & Duckling Farm and transferring control of cards which have been played to the Board.
Note the AI also makes use of the Pyramid class which it uses for a hand, however the AI Pyramid is not rendered on the screen.
For a full description of the Pyramid class and methods available find the Wiki page here (currently undergoing revision) alternatively for questions related to the Pyramid comment on ticket #22
This section refers specifically to RecBoard which is currently the only implemented board system, leaving open the potential for multiple board types. The RecBoard is made up of numerous tiles or in this case RecTile. The purpose of the board is to store Cards that have been 'played' from the Pyramid. The Board is responsible for receiving cards from the Pyramid (or potentially the Graveyard in future), monitoring the state of cards in the play area, and clearing the Board of Cards which have been destroyed.
Note The AI make use of the same Board to monitor the moves of the MatchPlayer and adjust its strategy.
For a full description of the Board class and methods available find the Wiki page here alternatively for questions to the board team comment on ticket #14
##Graveyard (Not Yet Implemented)
The Graveyard is an extension of the generic Deck class and contains a Subset of the MatchPlayer Deck. The purpose of the Graveyard is to store Cards which are a part of a match that have been (somehow) removed from the Board. The Graveyard can be manipulated by methods that affect decks and so can be drawn from, discarded into, and shuffled (to leave design choices open for action cards). The Graveyard is responsible for ensuring that no Card information is lost by maintaining the order in which cards exit either the Pyramid or Board
Note the AI will have its own Graveyard which it is able to manipulate which is also hidden from view
The Duckling Farm is another special extension of the generic Deck class. Currently it is expected that Cards will only enter the Duckling Farm by being played out of the pyramid with a limit of one Card per turn. The purpose of the Duckling Farm is to implement constraints on MatchPlayers and the AIs ability to play cards during their turn. The currently envisioned system will allow users to 'sacrifice' a Card from their Pyramid to gain a point of 'mana' in the form of a duckling.
The Ducking Farm is responsible for keeping track of a MatchPlayer or AIs 'duckling pool' and passing control to the relevant entity when an action card interact with the Duckling pool when it is placed into the pool. E.g. A Card when sacrificed as a bonus effect allows you to draw an additional card into your Pyramid. The Duckling Farm would read that effect and notify the Pyramid that it needs to change its state.
Note The Duckling Farm is still an infant system any comments on its implementation would be greatly appreciated on ticket 48
- 2x MatchPlayer deck (AI currently extends MatchPlayer so both have an exact copy of the Users deck)
- 2x Pyramid's are created one for the MatchPlayer and one for the AI
- 1x RecBoard is created for the game to be played on
- 2x Graveyard NOT YET IMPLEMENTED
- 2x Duckling Farms NOT YET IMPLEMENTED
User and AI Pyramid must both be 'loaded' or drawn at the beginning of the game
- Pyramid requests Cards from the users deck using Pyramid.loadCards(List cards)
- The request is handled by MatchPlayer which calls MatchPlayer.getNextReplenish(7)
- MatchPlayer.getNextReplenish(x) makes use of the Deck.takeCards(x) method
- This Removes the cards from a the players MatchDeck and places it into the relevant Pyramid
Currently Control of Cards can be transferred between the Pyramid and the Board (Graveyard and Duckling farm still to be implemented which will have implication here).
- Clicking on a card allows it to be 'held'
- The transfer is coordinated by BasicMatchController.handleCanvasClick(MouseEvent)
- When a card is clicked it value is read from the pyramid using Pyramid.yankMatchCardAt(x,y)
- At this point the card will follow the mouse but is still technically part of the Pyramid
- Card is not removed from the Pyramid until another valid entity is clicked on and the transfer can be resolved
- Clicking on the board while a card is 'held' will transfer the card control from Pyramid to Board
- Board Takes control using RecTile.setContents
- Once the transfer is resolved Pyramid.confirmRemoval() removes the Card from the Pyramid
Currently cards are only removed from the Board and cannot be destroyed or discarded directly from the Pyramid.
- BasicMatchController runs a cleanUpStep which executes RecBoard.cleanup() and redraws the canvas
- RecBoard.cleanup() Checks the contents of each tile on the board to see if it contains a card
- If the tile contains a card and should be killed then Tile.removeContents() is called on that tile
This page is directly related to ticket number #29 -Unified Gameplay Ruleset and is currently being maintained by team Leave Britney Alone.
Saving and Loading
Statistics tracking
- Statistics Tracking Overview
- Statistics Tracking
- User Statistics
- Champion Statistics
- Common Statistics
Game Play
APIs
- Section One: Pyramid Scheme Beginner's Guide
- Section Two: Getting Started
- Section Three: The Pyramid
- Section Four: Game Layout Explanation
- Section Five: Cards
- Section Six: Champions
- Section Seven: DuckDust
- Section: Eight: How to play Pyramid Scheme
- Section Nine: Ways to play
- Section Ten: Deck Building
- Section Eleven: How to Acquire Cards
- Section Twelve: Achievements
- Section Thirteen: Accessories
Other Guides
Design Guides
Overviews
- Architecture Overview
- UI Overview
- Main Menu Screen Overview
- Standardised Screen Graphics
- Overview of Graphics
Features
- Story Mode
- Cutscenes
- Beginners Guide Tutorial
- Clock
- Deckbuilding
- Card Deck Gallery
- Champion Roster
- Market Place
- Card Packs
- Game Settings
- Tool-tips
Animations
Splash Screen & Create Account Screen
Player Account Settings
AI
Duck Dust
Brainstorming
- Brainstorming - General
- Brainstorming - UI
- Brainstorming - Mechanics
- Brainstorming - Pyramid Design Discussion
- Brainstorming - Champions, Abilities and Design Mock-up
- Brainstorming - Achievement
Future Development