anchor.diff:    }
   
     /// Checks the number of armies bounds
  -  checkArmiesNumber(int armies, {int min: 1, int max: null, String action:
  +  checkArmiesNumber(int armies, {int min, int max: null, String countryId, String action:
         'attack'}) {
       if (min != null && armies < min) throw new EngineException(
           "Can't $action with less than $min armies");
       if (max != null && armies > max) throw new EngineException(
           "Can't $action with more than $max armies");
  -  }
  -
  -  /// Checks if there is enough armies in country to attack or to move
  -  checkNeededArmiesFrom(String countryId, int armies) {
  -    checkCountryExists(countryId);
  -    if (game.countries[countryId].armies - armies < 1) throw
  -        new EngineException("There is not enough armies in country #${countryId}");
  +
  +    if(countryId != null) {
  +      /// Checks if there is enough armies in country to attack or to move
  +      checkCountryExists(countryId);
  +      if (game.countries[countryId].armies - armies < 1) throw
  +          new EngineException("There is not enough armies in country #${countryId}");
  +    }
     }
   
     /// Checks if countries are the same as the last attack
  
positive.code:   _publish(EngineEvent event) {
      game.update(event);
      history.add(event);
      if (outputStream != null) {
        outputStream.add(event);
      }
    }
  
    /**
  
negative.code:         ..from = event.from
          ..to = event.to
          ..armies = event.armies);
      lastBattle = null;
  
      if (game.turnStep == TURN_STEP_FORTIFICATION) {
        nextPlayer();
  