package com.hearthsim.results;
import com.hearthsim.model.BoardModel;
import com.hearthsim.model.PlayerSide;
import com.hearthsim.util.HearthActionBoardPair;
import org.json.JSONObject;
import java.util.List;
public interface GameRecord {
/**
* Put a record
* @param turn The turn number
* @param activePlayerSide Index of the player that just played a turn
* @param board
*/
public void put(int turn, PlayerSide activePlayerSide, BoardModel board, List<HearthActionBoardPair> plays);
/**
* Return the number of turns recorded for each player
*
* @param playerIndex
* @return
*/
public int getRecordLength(int playerIndex);
/**
* Returns the number of minions on a player's board
*
* @param playerId The id of the player for which to return the data
* @param turn Turn number
* @param currentPlayerId The id of the player that just played a turn
* @return
*/
public int getNumMinions(int playerId, int turn, int currentPlayerId);
/**
* Returns the number of cards in the hand of a given player
*
* @param playerId The id of the player for which to return the data
* @param turn Turn number
* @param currentPlayerId The id of the player that just played a turn
* @return
*/
public int getNumCardsInHand(int playerId, int turn, int currentPlayerId);
/**
* Get the health of a given player's hero
*
* @param playerId The id of the player for which to return the data
* @param turn Turn number
* @param currentPlayerId The id of the player that just played a turn
* @return
*/
public int getHeroHealth(int playerId, int turn, int currentPlayerId);
/**
* Get the armor of a given player's hero
*
* @param playerId The id of the player for which to return the data
* @param turn Turn number
* @param currentPlayerId The id of the player that just played a turn
* @return
*/
public int getHeroArmor(int playerId, int turn, int currentPlayerId);
/**
* Returns the JSON representation of this record
* @return
*/
public JSONObject toJSON();
}