package net.sf.bloodball.fit.system;

import net.sf.bloodball.BloodballGame;
import net.sf.bloodball.confguration.team.ITeam;
import net.sf.bloodball.gameflow.TurnFlowController;
import net.sf.bloodball.model.player.ITeamFormation;
import net.sf.bloodball.presenter.BloodballPresenter;
import net.sf.bloodball.presenter.event.IGameBoardController;

public class TestGame {

  private TestConfiguration configuration = new TestConfiguration();
  private BloodballPresenter presenter;
  private IGameBoardController gameBoardController;
  private TurnFlowController turnFlowController;
  private BloodballGame game;

  public TestGame(String beginningTeam) {
    this.configuration.setBeginningTeam(beginningTeam);
    this.game = new BloodballGame(null, configuration);
    this.presenter = game.getPresenter();
    this.gameBoardController = game.getPresenter().getGameBoardController();
    this.turnFlowController = game.getPresenter().getTurnFlowController();
  }

  public BloodballPresenter getPresenter() {
    return presenter;
  }

  public TurnFlowController getTurnFlowController() {
    return turnFlowController;
  }

  public ITeamFormation getActiveTeam() {
    return presenter.getGameFlowController().getActiveTeam();
  }

  public IGameBoardController getGameBoardController() {
    return gameBoardController;
  }

  public ITeam getTeam(String name) {
    return configuration.getTeam(name);
  }

}