Package net.sf.freecol.server.control
Class InGameController
- java.lang.Object
-
- net.sf.freecol.server.control.FreeColServerHolder
-
- net.sf.freecol.server.control.Controller
-
- net.sf.freecol.server.control.InGameController
-
public final class InGameController extends Controller
The main server controller.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.function.Predicate<Player>coronadoPredprivate Monarch.MonarchActiondebugMonarchActionprivate ServerPlayerdebugMonarchPlayerprivate intdebugOnlyAITurnsDebug helpers, do not serialize.private static java.util.logging.Loggerloggerprivate java.util.RandomrandomThe server random number source.
-
Constructor Summary
Constructors Constructor Description InGameController(FreeColServer freeColServer)The constructor to use.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ChangeSetabandonSettlement(ServerPlayer serverPlayer, Settlement settlement)Abandon a settlement.voidaddFoundingFather(Player player, FoundingFather father)Public version of csAddFoundingFather so it can be used in the test code and DebugMenu.ChangeSetaskLearnSkill(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is)Ask about learning a skill at a native settlement.ChangeSetassignTeacher(ServerPlayer serverPlayer, Unit student, Unit teacher)Assign a student to a teacher.ChangeSetassignTradeRoute(ServerPlayer serverPlayer, Unit unit, TradeRoute tradeRoute)Assign a trade route to a unit.ChangeSetbuildSettlement(ServerPlayer serverPlayer, Unit unit, java.lang.String name)Build a settlement.private ChangeSetbuyGoods(ServerPlayer serverPlayer, GoodsType type, int amount, Unit carrier)Buy goods in Europe.ChangeSetcashInTreasureTrain(ServerPlayer serverPlayer, Unit unit)Cash in a treasure train.voidchangeStance(Player player, Stance stance, Player other, boolean symmetric)Public change stance and inform all routine.ChangeSetchangeState(ServerPlayer serverPlayer, Unit unit, Unit.UnitState state)Change a units state.ChangeSetchangeWorkImprovementType(ServerPlayer serverPlayer, Unit unit, TileImprovementType type)Change improvement work type.ChangeSetchangeWorkType(ServerPlayer serverPlayer, Unit unit, GoodsType type)Change work type.ChangeSetchat(ServerPlayer serverPlayer, java.lang.String message, boolean pri)Chat.ChangeSetchooseFoundingFather(ServerPlayer serverPlayer, FoundingFather ff)Choose a founding father.ChangeSetclaimLand(ServerPlayer serverPlayer, Tile tile, Settlement settlement, int price)Claim land.ChangeSetclearSpeciality(ServerPlayer serverPlayer, Unit unit)Clear the specialty of a unit.ChangeSetcombat(ServerPlayer attackerPlayer, FreeColGameObject attacker, FreeColGameObject defender, java.util.List<CombatModel.CombatResult> crs)Combat.ChangeSetcontinuePlaying(ServerPlayer serverPlayer)Continue playing after winning.ServerPlayercreateREFPlayer(ServerPlayer serverPlayer)Create the Royal Expeditionary Force player corresponding to a given player that is about to rebel.private voidcsBuy(ServerUnit unit, Goods goods, int price, ServerIndianSettlement sis, ChangeSet cs)Buy goods from a native settlement.private voidcsGift(ServerUnit unit, Goods goods, int price, ServerIndianSettlement sis, ChangeSet cs)Give goods to a native settlement.private voidcsGiveIndependence(ServerPlayer serverPlayer, Player independent, ChangeSet cs)Give independence.private voidcsLaunchREF(ServerPlayer serverPlayer, boolean teleport, ChangeSet cs)Launch the REF.private voidcsMonarchAction(ServerPlayer serverPlayer, Monarch.MonarchAction action, ChangeSet cs)Performs a monarch action.private voidcsSell(ServerUnit unit, Goods goods, int price, ServerIndianSettlement sis, ChangeSet cs)Sell goods to a native settlement.intdebugApplyDisaster(ServerColony colony, Disaster disaster)Apply a disaster to a colony.voiddebugChangeOwner(ServerColony colony, ServerPlayer serverPlayer)Change colony owner.voiddebugChangeOwner(ServerUnit unit, ServerPlayer serverPlayer)Change unit owner.ChangeSetdeclareIndependence(ServerPlayer serverPlayer, java.lang.String nationName, java.lang.String countryName)Declare independence.ChangeSetdeclineMounds(ServerPlayer serverPlayer, Tile tile)Decline to investigate strange mounds.ChangeSetdeleteTradeRoute(ServerPlayer serverPlayer, TradeRoute tradeRoute)Delete a trade route.ChangeSetdeliverGiftToSettlement(ServerPlayer serverPlayer, ServerUnit unit, Settlement settlement, Goods goods)Deliver gift to settlement.ChangeSetdemandTribute(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is)Demand a tribute from a native settlement.ChangeSetdenounceMission(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)Denounce an existing mission.ChangeSetdiplomacy(ServerPlayer serverPlayer, Colony ourColony, Unit otherUnit, DiplomaticTrade agreement)Diplomacy.ChangeSetdiplomacy(ServerPlayer serverPlayer, Unit ourUnit, Colony otherColony, DiplomaticTrade agreement)Diplomacy.ChangeSetdisbandUnit(ServerPlayer serverPlayer, Unit unit)Disband a unit.ChangeSetdisconnect(ServerPlayer serverPlayer)Disconnect the client.ChangeSetdisembarkUnit(ServerPlayer serverPlayer, ServerUnit serverUnit)Disembark unit from a carrier.ChangeSetembarkUnit(ServerPlayer serverPlayer, ServerUnit serverUnit, Unit carrier)Embark a unit onto a carrier.ChangeSetemigrate(ServerPlayer serverPlayer, int slot, Europe.MigrationType type)A unit migrates from Europe.ChangeSetendTurn(ServerPlayer serverPlayer)Ends the turn of the given player.ChangeSetenterRevengeMode(ServerPlayer serverPlayer)Enters revenge mode against those evil AIs.ChangeSetequipForRole(ServerPlayer serverPlayer, Unit unit, Role role, int roleCount)Equip a unit for a specific role.ChangeSetestablishMission(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)Establish a new mission.ChangeSeteuropeanFirstContact(ServerPlayer serverPlayer, Unit ourUnit, Colony ourColony, Unit otherUnit, Colony otherColony, DiplomaticTrade agreement)Handle first contact between European players.ChangeSetgameState()Get the game state.ChangeSetgetHighScores(ServerPlayer serverPlayer, java.lang.String key)Gets the list of high scores.intgetSkippedTurns()Gets the number of AI turns to skip through.private longgetTimeout()Get the timeout for this game.ChangeSetincite(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is, Player enemy, int gold)Incite a settlement against an enemy.ChangeSetindianDemand(ServerPlayer serverPlayer, Unit unit, Colony colony, GoodsType type, int amount, Constants.IndianDemandAction result)Indians making demands of a colony.ChangeSetjoinColony(ServerPlayer serverPlayer, Unit unit, Colony colony)Join a colony.ChangeSetlearnFromIndianSettlement(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)Learn a skill at an IndianSettlement.ChangeSetloadGoods(ServerPlayer serverPlayer, Location loc, GoodsType goodsType, int amount, Unit carrier)Load goods.ChangeSetlootCargo(ServerPlayer serverPlayer, Unit winner, java.lang.String loserId, java.util.List<Goods> loot)Loot cargo.ChangeSetmonarchAction(ServerPlayer serverPlayer, Monarch.MonarchAction action, boolean result)Respond to a monarch action.ChangeSetmove(ServerPlayer serverPlayer, ServerUnit unit, Tile newTile)Move a unit.ChangeSetmoveTo(ServerPlayer serverPlayer, Unit unit, Location destination)Move a unit across the high seas.ChangeSetnationSummary(ServerPlayer serverPlayer, Player player)Get a nation summary.ChangeSetnativeFirstContact(ServerPlayer serverPlayer, Player other, Tile tile, boolean result)Handle first contact between European and native player.ChangeSetnativeGift(ServerPlayer serverPlayer, Unit unit, Colony colony)A native unit delivers its gift to a colony.ChangeSetnativeTrade(ServerPlayer serverPlayer, NativeTrade.NativeTradeAction action, NativeTrade nt)Handle native trade sessions.ChangeSetnewTradeRoute(ServerPlayer serverPlayer)Create a new trade route for a player.ChangeSetpayArrears(ServerPlayer serverPlayer, GoodsType type)Pay arrears.ChangeSetpayForBuilding(ServerPlayer serverPlayer, Colony colony)Pay for a building.ChangeSetputOutsideColony(ServerPlayer serverPlayer, Unit unit)Put outside colony.ChangeSetrearrangeColony(ServerPlayer serverPlayer, Colony colony, java.util.List<RearrangeColonyMessage.Arrangement> arrangements)Rearrange a colony.ChangeSetrenameObject(ServerPlayer serverPlayer, Nameable object, java.lang.String newName)Rename an object.ChangeSetretire(ServerPlayer serverPlayer)Handle a player retiring.ChangeSetscoutIndianSettlement(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is)Scout a native settlement, that is, the contacting action that generates the greeting dialog.ChangeSetscoutSpeakToChief(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)Speak to the chief at a native settlement.private ChangeSetsellGoods(ServerPlayer serverPlayer, GoodsType type, int amount, Unit carrier)Sell goods in Europe.ChangeSetsetBuildQueue(ServerPlayer serverPlayer, Colony colony, java.util.List<BuildableType> queue)Set build queue.ChangeSetsetCurrentStop(ServerPlayer serverPlayer, Unit unit, int index)Set a unit stop.ChangeSetsetDestination(ServerPlayer serverPlayer, Unit unit, Location destination)Set a unit destination.ChangeSetsetGoodsLevels(ServerPlayer serverPlayer, Colony colony, ExportData exportData)Set goods levels.voidsetMonarchAction(ServerPlayer serverPlayer, Monarch.MonarchAction action)Sets a monarch action to debug/test.ChangeSetsetNewLandName(ServerPlayer serverPlayer, Unit unit, java.lang.String name)Set land name.ChangeSetsetNewRegionName(ServerPlayer serverPlayer, Unit unit, Region region, java.lang.String name)Set region name.voidsetRandom(java.util.Random random)Set the PRNG.voidsetSkippedTurns(int turns)Sets the number of AI turns to skip through as a debug helper.ChangeSetspySettlement(ServerPlayer serverPlayer, Unit unit, Settlement settlement)Spy on a settlement.intstepRandom()Debug convenience to step the random number generator.ChangeSettrainUnitInEurope(ServerPlayer serverPlayer, UnitType type)Train a unit in Europe.private StringTemplateunitTemplate(java.lang.String base, java.util.List<Unit> units)ChangeSetunloadGoods(ServerPlayer serverPlayer, GoodsType goodsType, int amount, Unit carrier)Unload goods.ChangeSetupdateTradeRoute(ServerPlayer serverPlayer, TradeRoute tradeRoute)Update a trade route for a player.ChangeSetwork(ServerPlayer serverPlayer, Unit unit, WorkLocation workLocation)Change work location.-
Methods inherited from class net.sf.freecol.server.control.Controller
shutdown
-
Methods inherited from class net.sf.freecol.server.control.FreeColServerHolder
getFreeColServer, getGame
-
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
coronadoPred
private static final java.util.function.Predicate<Player> coronadoPred
-
random
private java.util.Random random
The server random number source.
-
debugOnlyAITurns
private int debugOnlyAITurns
Debug helpers, do not serialize.
-
debugMonarchAction
private Monarch.MonarchAction debugMonarchAction
-
debugMonarchPlayer
private ServerPlayer debugMonarchPlayer
-
-
Constructor Detail
-
InGameController
public InGameController(FreeColServer freeColServer)
The constructor to use.- Parameters:
freeColServer- The main server object.
-
-
Method Detail
-
setRandom
public void setRandom(java.util.Random random)
Set the PRNG.- Parameters:
random- The newRandomto use in this controller.
-
getTimeout
private long getTimeout()
Get the timeout for this game.- Returns:
- A timeout.
-
getSkippedTurns
public int getSkippedTurns()
Gets the number of AI turns to skip through.- Returns:
- The number of terms to skip.
-
setSkippedTurns
public void setSkippedTurns(int turns)
Sets the number of AI turns to skip through as a debug helper.- Parameters:
turns- The number of turns to skip through.
-
setMonarchAction
public void setMonarchAction(ServerPlayer serverPlayer, Monarch.MonarchAction action)
Sets a monarch action to debug/test.- Parameters:
serverPlayer- TheServerPlayerwhose monarch should act.action- TheMonarchActionto be taken.
-
stepRandom
public int stepRandom()
Debug convenience to step the random number generator.- Returns:
- The next random number in series, in the range 0-99.
-
addFoundingFather
public void addFoundingFather(Player player, FoundingFather father)
Public version of csAddFoundingFather so it can be used in the test code and DebugMenu.- Parameters:
player- ThePlayerwho gains a father.father- TheFoundingFatherto add.
-
changeStance
public void changeStance(Player player, Stance stance, Player other, boolean symmetric)
Public change stance and inform all routine. Mostly used in the test suite, but the AIs also call it.- Parameters:
player- The originatingPlayer.stance- The newStance.other- ThePlayerwrt which the stance changes.symmetric- If true, change the otherPlayer stance as well.
-
debugChangeOwner
public void debugChangeOwner(ServerColony colony, ServerPlayer serverPlayer)
Change colony owner. Public for DebugUtils.- Parameters:
colony- TheServerColonyto change.serverPlayer- TheServerPlayerto change to.
-
debugChangeOwner
public void debugChangeOwner(ServerUnit unit, ServerPlayer serverPlayer)
Change unit owner. Public for DebugUtils.- Parameters:
unit- TheServerUnitto change.serverPlayer- TheServerPlayerto change to.
-
debugApplyDisaster
public int debugApplyDisaster(ServerColony colony, Disaster disaster)
Apply a disaster to a colony. Public for DebugUtils.- Parameters:
colony- TheColonyto apply the disaster to.disaster- TheDisasterto apply.- Returns:
- The number of messages generated.
-
createREFPlayer
public ServerPlayer createREFPlayer(ServerPlayer serverPlayer)
Create the Royal Expeditionary Force player corresponding to a given player that is about to rebel. Public for the test suite. FIXME: this should eventually generate changes for the REF player.- Parameters:
serverPlayer- TheServerPlayerabout to rebel.- Returns:
- The REF player.
-
csBuy
private void csBuy(ServerUnit unit, Goods goods, int price, ServerIndianSettlement sis, ChangeSet cs)
Buy goods from a native settlement.- Parameters:
unit- TheUnitthat is buying.goods- TheGoodsto buy.price- The price to pay.sis- TheServerIndianSettlementto give to.cs- AChangeSetto update.
-
csSell
private void csSell(ServerUnit unit, Goods goods, int price, ServerIndianSettlement sis, ChangeSet cs)
Sell goods to a native settlement.- Parameters:
unit- TheUnitthat is selling.goods- TheGoodsto sell.price- The price to charge.sis- TheServerIndianSettlementto sell to.cs- AChangeSetto update.
-
csGift
private void csGift(ServerUnit unit, Goods goods, int price, ServerIndianSettlement sis, ChangeSet cs)
Give goods to a native settlement.- Parameters:
unit- TheUnitthat is giving.goods- TheGoodsto give.price- A price that the natives might have been willing to pay.sis- TheServerIndianSettlementto give to.cs- AChangeSetto update.
-
csLaunchREF
private void csLaunchREF(ServerPlayer serverPlayer, boolean teleport, ChangeSet cs)
Launch the REF.- Parameters:
serverPlayer- The REFServerPlayer.teleport- If true, teleport the REF in.cs- AChangeSetto update.
-
csGiveIndependence
private void csGiveIndependence(ServerPlayer serverPlayer, Player independent, ChangeSet cs)
Give independence. Note that the REF player is granting, but most of the changes happen to the newly independent player. hence the special handling.- Parameters:
serverPlayer- The REFServerPlayerthat is granting.independent- The newly independentPlayer.cs- AChangeSetto update.
-
unitTemplate
private StringTemplate unitTemplate(java.lang.String base, java.util.List<Unit> units)
-
csMonarchAction
private void csMonarchAction(ServerPlayer serverPlayer, Monarch.MonarchAction action, ChangeSet cs)
Performs a monarch action. Note that CHANGE_LATE is used so that these actions follow setting the current player, so that it is the players turn when they respond to a monarch action.- Parameters:
serverPlayer- TheServerPlayerbeing acted upon.action- The monarch action.cs- AChangeSetto update.
-
abandonSettlement
public ChangeSet abandonSettlement(ServerPlayer serverPlayer, Settlement settlement)
Abandon a settlement.- Parameters:
serverPlayer- TheServerPlayerthat is abandoning.settlement- TheSettlementto abandon.- Returns:
- A
ChangeSetencapsulating this action.
-
askLearnSkill
public ChangeSet askLearnSkill(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is)
Ask about learning a skill at a native settlement.- Parameters:
serverPlayer- TheServerPlayerthat is learning.unit- TheUnitthat is learning.is- TheIndianSettlementto learn from.- Returns:
- A
ChangeSetencapsulating this action.
-
assignTeacher
public ChangeSet assignTeacher(ServerPlayer serverPlayer, Unit student, Unit teacher)
Assign a student to a teacher.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.student- The studentUnit.teacher- The teacherUnit.- Returns:
- A
ChangeSetencapsulating this action.
-
assignTradeRoute
public ChangeSet assignTradeRoute(ServerPlayer serverPlayer, Unit unit, TradeRoute tradeRoute)
Assign a trade route to a unit.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- The unitUnitto assign to.tradeRoute- TheTradeRouteto assign.- Returns:
- A
ChangeSetencapsulating this action.
-
buildSettlement
public ChangeSet buildSettlement(ServerPlayer serverPlayer, Unit unit, java.lang.String name)
Build a settlement. +til: Resolves many tile appearance changes.- Parameters:
serverPlayer- TheServerPlayerthat is building.unit- TheUnitthat is building.name- The new settlement name.- Returns:
- A
ChangeSetencapsulating this action.
-
buyGoods
private ChangeSet buyGoods(ServerPlayer serverPlayer, GoodsType type, int amount, Unit carrier)
Buy goods in Europe.- Parameters:
serverPlayer- TheServerPlayerthat is buying.type- TheGoodsTypeto buy.amount- The amount of goods to buy.carrier- TheUnitto carry the goods.- Returns:
- A
ChangeSetencapsulating this action.
-
cashInTreasureTrain
public ChangeSet cashInTreasureTrain(ServerPlayer serverPlayer, Unit unit)
Cash in a treasure train.- Parameters:
serverPlayer- TheServerPlayerthat is cashing in.unit- The treasure trainUnitto cash in.- Returns:
- A
ChangeSetencapsulating this action.
-
changeState
public ChangeSet changeState(ServerPlayer serverPlayer, Unit unit, Unit.UnitState state)
Change a units state.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto change the state of.state- The newUnitState.- Returns:
- A
ChangeSetencapsulating this action.
-
changeWorkImprovementType
public ChangeSet changeWorkImprovementType(ServerPlayer serverPlayer, Unit unit, TileImprovementType type)
Change improvement work type.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto change the work type of.type- The newTileImprovementTypeto produce.- Returns:
- A
ChangeSetencapsulating this action.
-
changeWorkType
public ChangeSet changeWorkType(ServerPlayer serverPlayer, Unit unit, GoodsType type)
Change work type.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto change the work type of.type- The newGoodsTypeto produce.- Returns:
- A
ChangeSetencapsulating this action.
-
chat
public ChangeSet chat(ServerPlayer serverPlayer, java.lang.String message, boolean pri)
Chat.- Parameters:
serverPlayer- TheServerPlayerthat is chatting.message- The chat message.pri- A privacy setting, currently a noop.- Returns:
- A
ChangeSetencapsulating this action.
-
chooseFoundingFather
public ChangeSet chooseFoundingFather(ServerPlayer serverPlayer, FoundingFather ff)
Choose a founding father.- Parameters:
serverPlayer- TheServerPlayerthat is choosing.ff- AFoundingFatherto select.- Returns:
- A
ChangeSetencapsulating this action.
-
claimLand
public ChangeSet claimLand(ServerPlayer serverPlayer, Tile tile, Settlement settlement, int price)
Claim land.- Parameters:
serverPlayer- TheServerPlayerclaiming.tile- TheTileto claim.settlement- TheSettlementto claim for.price- The price to pay for the land, which must agree with the owner valuation, unless negative which denotes stealing.- Returns:
- A
ChangeSetencapsulating this action.
-
clearSpeciality
public ChangeSet clearSpeciality(ServerPlayer serverPlayer, Unit unit)
Clear the specialty of a unit. FIXME: why not clear speciality in the open? You can disband! If we implement this remember to fix the visibility.- Parameters:
serverPlayer- The owner of the unit.unit- TheUnitto clear the speciality of.- Returns:
- A
ChangeSetencapsulating this action.
-
combat
public ChangeSet combat(ServerPlayer attackerPlayer, FreeColGameObject attacker, FreeColGameObject defender, java.util.List<CombatModel.CombatResult> crs)
Combat. Public for the test suite.- Parameters:
attackerPlayer- TheServerPlayerwho is attacking.attacker- TheFreeColGameObjectthat is attacking.defender- TheFreeColGameObjectthat is defending.crs- A list ofCombatResults defining the result.- Returns:
- A
ChangeSetencapsulating this action.
-
continuePlaying
public ChangeSet continuePlaying(ServerPlayer serverPlayer)
Continue playing after winning.- Parameters:
serverPlayer- TheServerPlayerthat plays on.- Returns:
- Null.
-
declareIndependence
public ChangeSet declareIndependence(ServerPlayer serverPlayer, java.lang.String nationName, java.lang.String countryName)
Declare independence.- Parameters:
serverPlayer- TheServerPlayerthat is declaring.nationName- The new name for the independent nation.countryName- The new name for its residents.- Returns:
- A
ChangeSetcontaining the response.
-
declineMounds
public ChangeSet declineMounds(ServerPlayer serverPlayer, Tile tile)
Decline to investigate strange mounds.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.tile- TheTilewhere the mounds are.- Returns:
- A
ChangeSetencapsulating this action.
-
deleteTradeRoute
public ChangeSet deleteTradeRoute(ServerPlayer serverPlayer, TradeRoute tradeRoute)
Delete a trade route.- Parameters:
serverPlayer- TheServerPlayerto delete a trade route for.tradeRoute- TheTradeRouteto delete.- Returns:
- A
ChangeSetencapsulating this action.
-
deliverGiftToSettlement
public ChangeSet deliverGiftToSettlement(ServerPlayer serverPlayer, ServerUnit unit, Settlement settlement, Goods goods)
Deliver gift to settlement. Note that this includes both European and native gifts.- Parameters:
serverPlayer- TheServerPlayerthat is delivering.unit- TheUnitthat is delivering.settlement- TheSettlementto deliver to.goods- TheGoodsto deliver.- Returns:
- A
ChangeSetencapsulating this action.
-
demandTribute
public ChangeSet demandTribute(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is)
Demand a tribute from a native settlement. FIXME: Move TURNS_PER_TRIBUTE magic number to the spec.- Parameters:
serverPlayer- TheServerPlayerdemanding the tribute.unit- TheUnitthat is demanding the tribute.is- TheIndianSettlementdemanded of.- Returns:
- A
ChangeSetencapsulating this action.
-
denounceMission
public ChangeSet denounceMission(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)
Denounce an existing mission.- Parameters:
serverPlayer- TheServerPlayerthat is denouncing.sUnit- TheServerUnitdenouncing.is- TheIndianSettlementcontaining the mission to denounce.- Returns:
- A
ChangeSetencapsulating this action.
-
diplomacy
public ChangeSet diplomacy(ServerPlayer serverPlayer, Unit ourUnit, Colony otherColony, DiplomaticTrade agreement)
Diplomacy.- Parameters:
serverPlayer- TheServerPlayerthat is trading.ourUnit- TheUnitthat is trading.otherColony- TheColonyto trade with.agreement- TheDiplomaticTradeto consider.- Returns:
- A
ChangeSetencapsulating this action.
-
diplomacy
public ChangeSet diplomacy(ServerPlayer serverPlayer, Colony ourColony, Unit otherUnit, DiplomaticTrade agreement)
Diplomacy.- Parameters:
serverPlayer- TheServerPlayerthat is trading.ourColony- OurColony.otherUnit- The otherUnitthat is trading.agreement- TheDiplomaticTradeto consider.- Returns:
- A
ChangeSetencapsulating this action.
-
disbandUnit
public ChangeSet disbandUnit(ServerPlayer serverPlayer, Unit unit)
Disband a unit.- Parameters:
serverPlayer- The owner of the unit.unit- TheUnitto disband.- Returns:
- A
ChangeSetencapsulating this action.
-
disconnect
public ChangeSet disconnect(ServerPlayer serverPlayer)
Disconnect the client.- Parameters:
serverPlayer- TheServerPlayerto disconnect.- Returns:
- Null, we never reply to a disconnect.
-
disembarkUnit
public ChangeSet disembarkUnit(ServerPlayer serverPlayer, ServerUnit serverUnit)
Disembark unit from a carrier.- Parameters:
serverPlayer- TheServerPlayerwhose unit is embarking.serverUnit- TheServerUnitthat is disembarking.- Returns:
- A
ChangeSetencapsulating this action.
-
embarkUnit
public ChangeSet embarkUnit(ServerPlayer serverPlayer, ServerUnit serverUnit, Unit carrier)
Embark a unit onto a carrier. Checking that the locations are appropriate is not done here.- Parameters:
serverPlayer- TheServerPlayerembarking.serverUnit- TheServerUnitthat is embarking.carrier- TheUnitto embark onto.- Returns:
- A
ChangeSetencapsulating this action.
-
emigrate
public ChangeSet emigrate(ServerPlayer serverPlayer, int slot, Europe.MigrationType type)
A unit migrates from Europe.- Parameters:
serverPlayer- TheServerPlayerwhose unit it will be.slot- The slot withinEuropeto select the unit from.type- The type of migration occurring.- Returns:
- A
ChangeSetencapsulating this action.
-
endTurn
public ChangeSet endTurn(ServerPlayer serverPlayer)
Ends the turn of the given player. Note: sends messages to other players.- Parameters:
serverPlayer- TheServerPlayerto end the turn of.- Returns:
- A
ChangeSetencapsulating the end of turn changes.
-
enterRevengeMode
public ChangeSet enterRevengeMode(ServerPlayer serverPlayer)
Enters revenge mode against those evil AIs.- Parameters:
serverPlayer- TheServerPlayerentering revenge mode.- Returns:
- A
ChangeSetencapsulating this action.
-
equipForRole
public ChangeSet equipForRole(ServerPlayer serverPlayer, Unit unit, Role role, int roleCount)
Equip a unit for a specific role. Currently the unit is either in Europe or in a settlement. Might one day allow the unit to be on a tile co-located with an equipment-bearing wagon.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto equip.role- TheRoleto equip for.roleCount- The role count.- Returns:
- A
ChangeSetencapsulating this action.
-
establishMission
public ChangeSet establishMission(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)
Establish a new mission.- Parameters:
serverPlayer- TheServerPlayerthat is establishing.sUnit- The missionaryServerUnit.is- TheIndianSettlementto establish at.- Returns:
- A
ChangeSetencapsulating this action.
-
europeanFirstContact
public ChangeSet europeanFirstContact(ServerPlayer serverPlayer, Unit ourUnit, Colony ourColony, Unit otherUnit, Colony otherColony, DiplomaticTrade agreement)
Handle first contact between European players.- Parameters:
serverPlayer- TheServerPlayermaking contact.ourUnit- TheUnitmaking contact (may be null).ourColony- TheColonymaking contact (may be null).otherUnit- The otherUnitmaking contact (may be null).otherColony- The otherColonymaking contact (may be null).agreement- TheDiplomaticTradeto consider.- Returns:
- A
ChangeSetencapsulating this action.
-
gameState
public ChangeSet gameState()
Get the game state.- Returns:
- A
ChangeSetencapsulating this action.
-
getHighScores
public ChangeSet getHighScores(ServerPlayer serverPlayer, java.lang.String key)
Gets the list of high scores.- Parameters:
serverPlayer- TheServerPlayerquerying the scores.key- A score category key.- Returns:
- A
ChangeSetencapsulating this action.
-
incite
public ChangeSet incite(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is, Player enemy, int gold)
Incite a settlement against an enemy.- Parameters:
serverPlayer- TheServerPlayerthat is inciting.unit- The missionaryUnitinciting.is- TheIndianSettlementto incite.enemy- ThePlayerto be incited against.gold- The amount of gold in the bribe.- Returns:
- A
ChangeSetencapsulating this action.
-
indianDemand
public ChangeSet indianDemand(ServerPlayer serverPlayer, Unit unit, Colony colony, GoodsType type, int amount, Constants.IndianDemandAction result)
Indians making demands of a colony.- Parameters:
serverPlayer- TheServerPlayerthat sent the message.unit- TheUnitmaking the demands.colony- TheColonythat is demanded of.type- TheGoodsTypebeing demanded, null implies gold.amount- The amount of goods/gold being demanded.result- The demand result (null initially).- Returns:
- A
ChangeSetencapsulating this action.
-
joinColony
public ChangeSet joinColony(ServerPlayer serverPlayer, Unit unit, Colony colony)
Join a colony.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitthat is joining.colony- TheColonyto join.- Returns:
- A
ChangeSetencapsulating this action.
-
learnFromIndianSettlement
public ChangeSet learnFromIndianSettlement(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)
Learn a skill at an IndianSettlement.- Parameters:
serverPlayer- TheServerPlayerthat is learning.sUnit- TheServerUnitthat is learning.is- TheIndianSettlementto learn from.- Returns:
- A
ChangeSetencapsulating this action.
-
loadGoods
public ChangeSet loadGoods(ServerPlayer serverPlayer, Location loc, GoodsType goodsType, int amount, Unit carrier)
Load goods.- Parameters:
serverPlayer- TheServerPlayerthat is loading.loc- TheLocationwhere the goods are.goodsType- TheGoodsTypeto load.amount- The amount of goods to load.carrier- TheUnitto load.- Returns:
- A
ChangeSetencapsulating this action.
-
lootCargo
public ChangeSet lootCargo(ServerPlayer serverPlayer, Unit winner, java.lang.String loserId, java.util.List<Goods> loot)
Loot cargo. Note loser is passed by identifier, as by the time we get here the unit may have been sunk.- Parameters:
serverPlayer- TheServerPlayerthat owns the winner.winner- TheUnitthat looting.loserId- The object identifier of theUnitthat is looted.loot- TheGoodsto loot.- Returns:
- A
ChangeSetencapsulating this action.
-
monarchAction
public ChangeSet monarchAction(ServerPlayer serverPlayer, Monarch.MonarchAction action, boolean result)
Respond to a monarch action.- Parameters:
serverPlayer- TheServerPlayerthat is to respond.action- TheMonarchActionto respond to.result- The player response.- Returns:
- A
ChangeSetcontaining the response.
-
move
public ChangeSet move(ServerPlayer serverPlayer, ServerUnit unit, Tile newTile)
Move a unit.- Parameters:
serverPlayer- TheServerPlayerthat is moving.unit- TheServerUnitto move.newTile- TheTileto move to.- Returns:
- A
ChangeSetencapsulating this action.
-
moveTo
public ChangeSet moveTo(ServerPlayer serverPlayer, Unit unit, Location destination)
Move a unit across the high seas.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto move.destination- TheLocationto move to.- Returns:
- A
ChangeSetencapsulating this action.
-
nationSummary
public ChangeSet nationSummary(ServerPlayer serverPlayer, Player player)
Get a nation summary.- Parameters:
serverPlayer- TheServerPlayerto make the summary for.player- ThePlayerto summarize.- Returns:
- A
ChangeSetencapsulating this action.
-
nativeFirstContact
public ChangeSet nativeFirstContact(ServerPlayer serverPlayer, Player other, Tile tile, boolean result)
Handle first contact between European and native player. Note that we check for a diplomacy session, but only bother in the case of tile!=null as that is the only possibility for some benefit.- Parameters:
serverPlayer- TheServerPlayermaking contact.other- The nativePlayerto contact.tile- ATileon offer at first landing.result- Whether the initial peace treaty was accepted.- Returns:
- A
ChangeSetencapsulating this action.
-
nativeGift
public ChangeSet nativeGift(ServerPlayer serverPlayer, Unit unit, Colony colony)
A native unit delivers its gift to a colony.- Parameters:
serverPlayer- TheServerPlayerthat is delivering.unit- TheUnitthat is delivering.colony- TheColonyto deliver to.- Returns:
- A
ChangeSetencapsulating this action.
-
nativeTrade
public ChangeSet nativeTrade(ServerPlayer serverPlayer, NativeTrade.NativeTradeAction action, NativeTrade nt)
Handle native trade sessions.- Parameters:
serverPlayer- TheServerPlayerthat is trading.action- TheNativeTradeActionto perform.nt- TheNativeTradeunderway.- Returns:
- A
ChangeSetencapsulating this action.
-
newTradeRoute
public ChangeSet newTradeRoute(ServerPlayer serverPlayer)
Create a new trade route for a player.- Parameters:
serverPlayer- TheServerPlayerthat needs a new route.- Returns:
- A
ChangeSetencapsulating this action.
-
payArrears
public ChangeSet payArrears(ServerPlayer serverPlayer, GoodsType type)
Pay arrears.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.type- TheGoodsTypeto pay the arrears for.- Returns:
- A
ChangeSetencapsulating this action.
-
payForBuilding
public ChangeSet payForBuilding(ServerPlayer serverPlayer, Colony colony)
Pay for a building.- Parameters:
serverPlayer- TheServerPlayerthat owns the colony.colony- TheColonythat is building.- Returns:
- A
ChangeSetencapsulating this action.
-
putOutsideColony
public ChangeSet putOutsideColony(ServerPlayer serverPlayer, Unit unit)
Put outside colony.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto be put out.- Returns:
- A
ChangeSetencapsulating this action.
-
rearrangeColony
public ChangeSet rearrangeColony(ServerPlayer serverPlayer, Colony colony, java.util.List<RearrangeColonyMessage.Arrangement> arrangements)
Rearrange a colony.- Parameters:
serverPlayer- TheServerPlayerthat is querying.colony- TheColonyto rearrange.arrangements- A list ofArrangements to apply.- Returns:
- A
ChangeSetencapsulating this action.
-
renameObject
public ChangeSet renameObject(ServerPlayer serverPlayer, Nameable object, java.lang.String newName)
Rename an object.- Parameters:
serverPlayer- TheServerPlayerthat is naming.object- TheNameableto rename.newName- The new name.- Returns:
- A
ChangeSetencapsulating this action.
-
retire
public ChangeSet retire(ServerPlayer serverPlayer)
Handle a player retiring.- Parameters:
serverPlayer- TheServerPlayerthat is retiring.- Returns:
- A
ChangeSetcontaining the response.
-
scoutIndianSettlement
public ChangeSet scoutIndianSettlement(ServerPlayer serverPlayer, ServerUnit unit, IndianSettlement is)
Scout a native settlement, that is, the contacting action that generates the greeting dialog.- Parameters:
serverPlayer- TheServerPlayerthat is scouting.unit- The scoutUnit.is- TheIndianSettlementto scout.- Returns:
- A
ChangeSetencapsulating this action.
-
scoutSpeakToChief
public ChangeSet scoutSpeakToChief(ServerPlayer serverPlayer, ServerUnit sUnit, IndianSettlement is)
Speak to the chief at a native settlement.- Parameters:
serverPlayer- TheServerPlayerthat is scouting.sUnit- The scoutServerUnit.is- TheIndianSettlementto scout.- Returns:
- A
ChangeSetencapsulating this action.
-
sellGoods
private ChangeSet sellGoods(ServerPlayer serverPlayer, GoodsType type, int amount, Unit carrier)
Sell goods in Europe.- Parameters:
serverPlayer- TheServerPlayerthat is selling.type- TheGoodsTypeto sell.amount- The amount of goods to sell.carrier- TheUnitcarrying the goods.- Returns:
- A
ChangeSetencapsulating this action.
-
setBuildQueue
public ChangeSet setBuildQueue(ServerPlayer serverPlayer, Colony colony, java.util.List<BuildableType> queue)
Set build queue.- Parameters:
serverPlayer- TheServerPlayerthat owns the colony.colony- TheColonyto set the queue of.queue- The new build queue.- Returns:
- A
ChangeSetencapsulating this action.
-
setCurrentStop
public ChangeSet setCurrentStop(ServerPlayer serverPlayer, Unit unit, int index)
Set a unit stop.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto set the destination for.index- The stop index.- Returns:
- A
ChangeSetencapsulating this action.
-
setDestination
public ChangeSet setDestination(ServerPlayer serverPlayer, Unit unit, Location destination)
Set a unit destination.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto set the destination for.destination- TheLocationto set as destination.- Returns:
- A
ChangeSetencapsulating this action.
-
setGoodsLevels
public ChangeSet setGoodsLevels(ServerPlayer serverPlayer, Colony colony, ExportData exportData)
Set goods levels.- Parameters:
serverPlayer- TheServerPlayerthat owns the colony.colony- TheColonyto set the goods levels in.exportData- The newExportData.- Returns:
- A
ChangeSetencapsulating this action.
-
setNewLandName
public ChangeSet setNewLandName(ServerPlayer serverPlayer, Unit unit, java.lang.String name)
Set land name.- Parameters:
serverPlayer- TheServerPlayerwho landed.unit- TheUnitthat has come ashore.name- The new land name.- Returns:
- A
ChangeSetencapsulating this action.
-
setNewRegionName
public ChangeSet setNewRegionName(ServerPlayer serverPlayer, Unit unit, Region region, java.lang.String name)
Set region name.- Parameters:
serverPlayer- TheServerPlayerdiscovering.unit- TheUnitthat is discovering.region- TheRegionto discover.name- The new region name.- Returns:
- A
ChangeSetencapsulating this action.
-
spySettlement
public ChangeSet spySettlement(ServerPlayer serverPlayer, Unit unit, Settlement settlement)
Spy on a settlement.- Parameters:
serverPlayer- TheServerPlayerthat is spying.unit- TheUnitthat is spying.settlement- TheSettlementto spy on.- Returns:
- A
ChangeSetencapsulating this action.
-
trainUnitInEurope
public ChangeSet trainUnitInEurope(ServerPlayer serverPlayer, UnitType type)
Train a unit in Europe.- Parameters:
serverPlayer- TheServerPlayerthat is demanding.type- TheUnitTypeto train.- Returns:
- A
ChangeSetencapsulating this action.
-
unloadGoods
public ChangeSet unloadGoods(ServerPlayer serverPlayer, GoodsType goodsType, int amount, Unit carrier)
Unload goods.- Parameters:
serverPlayer- TheServerPlayerthat is unloading.goodsType- TheGoodsTypeto unload.amount- The amount of goods to unload.carrier- TheUnitto unload.- Returns:
- A
ChangeSetencapsulating this action.
-
updateTradeRoute
public ChangeSet updateTradeRoute(ServerPlayer serverPlayer, TradeRoute tradeRoute)
Update a trade route for a player.- Parameters:
serverPlayer- TheServerPlayerto set trade routes for.tradeRoute- An uninternedTradeRouteto update.- Returns:
- A
ChangeSetencapsulating this action.
-
work
public ChangeSet work(ServerPlayer serverPlayer, Unit unit, WorkLocation workLocation)
Change work location.- Parameters:
serverPlayer- TheServerPlayerthat owns the unit.unit- TheUnitto change the work location of.workLocation- TheWorkLocationto change to.- Returns:
- A
ChangeSetencapsulating this action.
-
-