package com.hearthsim.results; import com.hearthsim.card.minion.Hero; import com.hearthsim.model.BoardModel; import com.hearthsim.model.PlayerModel; import com.hearthsim.model.PlayerSide; import com.hearthsim.util.HearthActionBoardPair; import org.json.JSONObject; import java.util.List; public class GameSimpleRecord implements GameRecord { final int maxTurns_; final byte[][][] numMinions_; final byte[][][] numCards_; final byte[][][] heroHealth_; final byte[][][] heroArmor_; public GameSimpleRecord() { this(50); } public GameSimpleRecord(int maxTurns) { maxTurns_ = maxTurns; numMinions_ = new byte[2][maxTurns][2]; numCards_ = new byte[2][maxTurns][2]; heroHealth_ = new byte[2][maxTurns][2]; heroArmor_ = new byte[2][maxTurns][2]; } @Override public void put(int turn, PlayerSide activePlayerSide, BoardModel board, List<HearthActionBoardPair> plays) { PlayerModel playerModel = board.modelForSide(activePlayerSide); int currentPlayerId = playerModel.getPlayerId(); int waitingPlayerId = board.modelForSide(activePlayerSide.getOtherPlayer()).getPlayerId(); numMinions_[currentPlayerId][turn][currentPlayerId] = (byte)board.getCurrentPlayer().getNumMinions(); numMinions_[currentPlayerId][turn][waitingPlayerId] = (byte)board.getWaitingPlayer().getNumMinions(); numCards_[currentPlayerId][turn][currentPlayerId] = (byte)board.getCurrentPlayer().getHand().size(); numCards_[currentPlayerId][turn][waitingPlayerId] = (byte)board.getWaitingPlayer().getHand().size(); Hero currentPlayerHero = board.getCurrentPlayer().getHero(); heroHealth_[currentPlayerId][turn][currentPlayerId] = currentPlayerHero.getHealth(); Hero waitingPlayerHero = board.getWaitingPlayer().getHero(); heroHealth_[currentPlayerId][turn][waitingPlayerId] = waitingPlayerHero.getHealth(); heroArmor_[currentPlayerId][turn][currentPlayerId] = currentPlayerHero.getArmor(); heroArmor_[currentPlayerId][turn][waitingPlayerId] = waitingPlayerHero.getArmor(); } @Override public int getRecordLength(int playerId) { return maxTurns_; } @Override public int getNumMinions(int playerId, int turn, int currentPlayerId) { return numMinions_[currentPlayerId][turn][playerId]; } @Override public int getNumCardsInHand(int playerId, int turn, int currentPlayerId) { return numCards_[currentPlayerId][turn][playerId]; } @Override public int getHeroHealth(int playerId, int turn, int currentPlayerId) { return heroHealth_[currentPlayerId][turn][playerId]; } @Override public int getHeroArmor(int playerId, int turn, int currentPlayerId) { return heroArmor_[currentPlayerId][turn][playerId]; } @Override public JSONObject toJSON() { // TODO Auto-generated method stub return null; } }