Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Make sure that makeNewUnit do not put a new unit out of map.
- */
- @Test
- public void shouldTestThatMakeNewUnitDoNotPutUnitOutOFMapButIncreaseTreasury() {
- assertThat(game.getCityAt(redCityPosition).getOwner(),is(Player.RED));
- int startingTreasury = ((CityImpl) game.getCityAt(redCityPosition)).getTreasurySize();
- assertThat("Start with 0", startingTreasury, is(0));
- GameHelperMethods.numberOfEndOfTurn(game,20);
- int currentTreasury = ((CityImpl) game.getCityAt(redCityPosition)).getTreasurySize();
- assertThat("Should have 10*6 = 60 = 6_Archer = 0 treasury left", currentTreasury, is(0));
- assertThat("Red city has a new Archer at (0,0) because of Archer (2,0) and Ocean (1,0)",
- game.getUnitAt(new Position(0, 0)).getTypeString(), is(GameConstants.ARCHER));
- assertThat(((CityImpl) game.getCityAt(redCityPosition)).getTreasurySize(),is(0));
- GameHelperMethods.numberOfEndOfTurn(game,4);
- assertThat("Instead of new unit out of map it increase treasurySize",
- ((CityImpl) game.getCityAt(redCityPosition)).getTreasurySize(),is(12));
- GameHelperMethods.numberOfEndOfTurn(game,2);
- assertThat("Instead of new unit out of map it increase treasurySize",
- ((CityImpl) game.getCityAt(redCityPosition)).getTreasurySize(),is(18));
- }
- ===============================================================================================
- private void tryingToBuyUnitsWithProduction(Position p) {
- int treasurySize = getCurrentTreasurySize(p);
- String productionUnitType = getCityAt(p).getProduction();
- int priceForProductionFocus = matchProductionFocusWithPriceOfUnit(productionUnitType);
- // If we have money enough
- if (treasurySize >= priceForProductionFocus) {
- Position[] freePosition = p.getValidPositions();
- for (Position position : freePosition) {
- if (isTileFree(position)) {
- unitWorld.put(position, new UnitImpl(productionUnitType, getPlayerInTurn()));
- setTreasurySize(p, treasurySize - priceForProductionFocus);
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment