@VisibleForTesting double calculatePropSurvivingAttack(IShip attackingShip, IShip defendingShip) { double captainCapabilities = 1; if (attackingShip.getCaptian().isPresent()) { captainCapabilities -= attackingShip.getCaptian().get().getFightSkillLevel() * 0.1; } if (defendingShip.getCaptian().isPresent()) { captainCapabilities += defendingShip.getCaptian().get().getFightSkillLevel() * 0.1; } return Math.min(Math.abs(rnd.nextGaussian()) * captainCapabilities, 1); }
@VisibleForTesting double calculateAccuracy(List<IShip> shipsOnTurn) { double accuracy = 0.7; double captainAccuracy = 0; int nbCaptains = 0; for (IShip ship : shipsOnTurn) { if (ship.getCaptian().isPresent()) { nbCaptains++; captainAccuracy += ship.getCaptian().get().getFightSkillLevel(); } } if (nbCaptains > 0) { captainAccuracy = captainAccuracy / (nbCaptains*10.0); } return accuracy + captainAccuracy; }
@VisibleForTesting int calculateShipStrength(IShip ship) { int strength = shipStrenghtService.calculateShipsWeaponsStrength(ship); if (ship.getCaptian().isPresent()) { ICaptain captain = ship.getCaptian().get(); strength += captain.getFightSkillLevel()*2; } return strength; }
trading.setAmount(captain.getTradingSkillLevel()); navigation.setAmount(captain.getNavigationSkillLevel()); fighting.setAmount(captain.getFightSkillLevel()); pane1.add(age, 0, 0); pane1.add(trading, 1, 0);