/* (non-Javadoc) * @see com.fullmetalgalaxy.model.persist.AnAction#check() */ @Override public void check(Game p_game) throws RpcFmpException { super.check(p_game); if (isAuto()) { // if event is auto generated, assume everything are correct return; } EbRegistration myRegistration = getMyRegistration(p_game); if (myRegistration == null) { // no i18n ? throw new RpcFmpException("you didn't join this game.", this); } if (myRegistration.getPtAction() < getCost() && p_game.getGameType() != GameType.Practice) { throw new RpcFmpException(errMsg().NotEnouthActionPt(), this); } if ((!p_game.isParallel() || (p_game.getCurrentTimeStep() <= 1)) && (!p_game.getCurrentPlayerIds().contains(myRegistration.getId())) && p_game.getGameType() != GameType.Practice) { throw new RpcFmpException(errMsg().NotYourTurn(), this); } if ((p_game.getStatus() == GameStatus.Open || p_game.getStatus() == GameStatus.Pause) && p_game.getGameType() != GameType.Practice) { throw new RpcFmpException(errMsg().gameNotStarted(), this); } if (p_game.isParallel() && p_game.getCurrentTimeStep() > p_game.getEbConfigGameTime().getDeploymentTimeStep()) { EbTeam team = p_game.getOtherTeamBoardLocked( myRegistration, getLockedPosition(), SharedMethods.currentTimeMillis()); if (team != null) { throw new RpcFmpException(errMsg().boardLocked(), this); } } }
/* (non-Javadoc) * @see com.fullmetalgalaxy.model.persist.AnAction#exec() */ @Override public void exec(Game p_game) throws RpcFmpException { super.exec(p_game); EbRegistration registration = getMyRegistration(p_game); if (registration != null) { registration.setPtAction(registration.getPtAction() - getCost()); // registration.setLastUpdate( getLastUpdate() ); if (p_game.isParallel()) { registration.getTeam(p_game).setLockedPosition(getLockedPosition()); registration .getTeam(p_game) .setEndTurnDate( new Date( SharedMethods.currentTimeMillis() + p_game.getEbConfigGameTime().getLockGameInMillis())); } } }