net.sf.colossus.server
Class CustomRecruitBase

java.lang.Object
  extended by net.sf.colossus.server.CustomRecruitBase
All Implemented Interfaces:
ICustomRecruitBase

public abstract class CustomRecruitBase
extends java.lang.Object
implements ICustomRecruitBase

Base class to implement custom recruiting functions (i.e. anything that is not a-number-of-creature to another creature)

Author:
Romain Dolbeau

Field Summary
private static java.util.List<Caretaker> allCaretakerInfo
           
private static java.util.List<CustomRecruitBase> allCustomRecruitBase
           
protected static java.util.List<Player> allPlayers
           
private static java.util.logging.Logger LOGGER
           
private static GameServerSide serverGame
           
 
Constructor Summary
CustomRecruitBase()
           
 
Method Summary
static void addCaretakerClientSide(Caretaker ci)
           
static void addPlayerClientSide(Player pi)
           
protected  void adjustAvailableCount(CreatureType type)
           
protected abstract  void changeOfTurn(int newActivePlayer)
          Bookkeeping function, called once after every player turn.
static void everyoneAdvanceTurn(int newActivePlayer)
           
abstract  java.util.List<CreatureType> getAllPossibleSpecialRecruiters(MasterBoardTerrain terrain)
          List all creatures that can recruit in this terrain in a special way.
abstract  java.util.List<CreatureType> getAllPossibleSpecialRecruits(MasterBoardTerrain terrain)
          List all creatures that can be recruited in this terrain in a special way.
protected  int getCount(CreatureType type)
           
protected  int getDeadCount(CreatureType type)
           
abstract  java.util.List<CreatureType> getPossibleSpecialRecruiters(MasterHex hex)
          List creatures that can recruit in this terrain in a special way now.
abstract  java.util.List<CreatureType> getPossibleSpecialRecruits(MasterHex hex)
          List creatures that can be recruited in this terrain in a special way now.
protected  void initCustomVariant()
           
static void initCustomVariantForAllCRBs()
           
abstract  int numberOfRecruiterNeeded(CreatureType recruiter, CreatureType recruit, MasterHex hex)
          Number of recruiters needed to get a recruit in a special way in this terrain now.
static void reset()
           
static void resetAllInstances()
           
protected abstract  void resetInstance()
          Reset, called at the beginning of a game.
protected  void setCount(CreatureType type, int newCount, boolean reset)
           
static void setGame(GameServerSide g)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

private static final java.util.logging.Logger LOGGER

allPlayers

protected static final java.util.List<Player> allPlayers

allCaretakerInfo

private static final java.util.List<Caretaker> allCaretakerInfo

serverGame

private static GameServerSide serverGame

allCustomRecruitBase

private static final java.util.List<CustomRecruitBase> allCustomRecruitBase
Constructor Detail

CustomRecruitBase

public CustomRecruitBase()
Method Detail

reset

public static final void reset()

resetAllInstances

public static final void resetAllInstances()

initCustomVariant

protected void initCustomVariant()

initCustomVariantForAllCRBs

public static final void initCustomVariantForAllCRBs()

everyoneAdvanceTurn

public static final void everyoneAdvanceTurn(int newActivePlayer)

addPlayerClientSide

public static final void addPlayerClientSide(Player pi)

addCaretakerClientSide

public static final void addCaretakerClientSide(Caretaker ci)

setGame

public static final void setGame(GameServerSide g)

setCount

protected final void setCount(CreatureType type,
                              int newCount,
                              boolean reset)

adjustAvailableCount

protected final void adjustAvailableCount(CreatureType type)

getCount

protected final int getCount(CreatureType type)

getDeadCount

protected final int getDeadCount(CreatureType type)

getAllPossibleSpecialRecruiters

public abstract java.util.List<CreatureType> getAllPossibleSpecialRecruiters(MasterBoardTerrain terrain)
List all creatures that can recruit in this terrain in a special way.

Specified by:
getAllPossibleSpecialRecruiters in interface ICustomRecruitBase

getAllPossibleSpecialRecruits

public abstract java.util.List<CreatureType> getAllPossibleSpecialRecruits(MasterBoardTerrain terrain)
List all creatures that can be recruited in this terrain in a special way.

Specified by:
getAllPossibleSpecialRecruits in interface ICustomRecruitBase

getPossibleSpecialRecruiters

public abstract java.util.List<CreatureType> getPossibleSpecialRecruiters(MasterHex hex)
List creatures that can recruit in this terrain in a special way now.

Specified by:
getPossibleSpecialRecruiters in interface ICustomRecruitBase
Parameters:
hex - The specific MasterHex considered for recruiting.
Returns:
A List of possible special Recruiters in this hex.

getPossibleSpecialRecruits

public abstract java.util.List<CreatureType> getPossibleSpecialRecruits(MasterHex hex)
List creatures that can be recruited in this terrain in a special way now.

Specified by:
getPossibleSpecialRecruits in interface ICustomRecruitBase
Parameters:
hex - The specific MasterHex considered for recruiting (for an example, see getPossibleSpecialRecruits() in BalrogRecruitment.java in Balrog variant directory)
Returns:
A List of possible special Recruits in this hex.

numberOfRecruiterNeeded

public abstract int numberOfRecruiterNeeded(CreatureType recruiter,
                                            CreatureType recruit,
                                            MasterHex hex)
Number of recruiters needed to get a recruit in a special way in this terrain now.

Specified by:
numberOfRecruiterNeeded in interface ICustomRecruitBase

changeOfTurn

protected abstract void changeOfTurn(int newActivePlayer)
Bookkeeping function, called once after every player turn. Protected as it should only be called from everyoneAdvanceTurn().


resetInstance

protected abstract void resetInstance()
Reset, called at the beginning of a game.