diff --git a/src/main/java/org/openRealmOfStars/game/Game.java b/src/main/java/org/openRealmOfStars/game/Game.java index c1927649c..ae97150a3 100644 --- a/src/main/java/org/openRealmOfStars/game/Game.java +++ b/src/main/java/org/openRealmOfStars/game/Game.java @@ -2103,6 +2103,7 @@ public void changeGameState(final GameState newState) { * @param level Which tech level * @return String of tech info in markdown format */ + @SuppressWarnings("null") public static String printTech(final String[] techNames, final TechType type, final int level) { StringBuilder sb = new StringBuilder(); @@ -2115,6 +2116,9 @@ public static String printTech(final String[] techNames, tech.getComponent()); sb.append(i + 1); sb.append(". "); + if (comp == null) { + ErrorLogger.log("Hull not found:" + tech.getImprovement()); + } sb.append(comp.toString()); sb.append("\n\n"); noPrint = false; @@ -2123,6 +2127,9 @@ public static String printTech(final String[] techNames, Building build = BuildingFactory.createByName(tech.getImprovement()); sb.append(i + 1); sb.append(". "); + if (build == null) { + ErrorLogger.log("Building not found:" + tech.getImprovement()); + } sb.append(build.getFullDescription()); sb.append("\n\n"); noPrint = false; @@ -2132,6 +2139,9 @@ public static String printTech(final String[] techNames, SpaceRace.HUMAN); sb.append(i + 1); sb.append(". "); + if (hull == null) { + ErrorLogger.log("Hull not found:" + tech.getImprovement()); + } sb.append(hull.toString()); sb.append("\n\n"); noPrint = false; diff --git a/src/main/java/org/openRealmOfStars/player/tech/TechFactory.java b/src/main/java/org/openRealmOfStars/player/tech/TechFactory.java index f912f07a9..5ad49d120 100644 --- a/src/main/java/org/openRealmOfStars/player/tech/TechFactory.java +++ b/src/main/java/org/openRealmOfStars/player/tech/TechFactory.java @@ -360,7 +360,7 @@ private TechFactory() { */ public static final String[] IMPROVEMENT_TECH_LEVEL9_NAMES = { "Hydropodic farming center", "Nanobot mining center", - "Nanobot manufacturing center", "Research Matrix", + "Nanobot manufacturing center", "Research matrix", "Planetary furnace"}; /** * Planetary Improvement rare tech names for level 9 @@ -371,7 +371,7 @@ private TechFactory() { * Planetary Improvement tech names for level 10 */ public static final String[] IMPROVEMENT_TECH_LEVEL10_NAMES = { - "Neural research center", "Super AI Center", "Replicator center" }; + "Neural research center", "Super AI center", "Replicator center" }; /** * Propulsion tech names for level 1 @@ -1004,7 +1004,7 @@ public static Tech createImprovementTech(final String name, final int level) { || techName.startsWith("Research center") || techName.startsWith("New technology center") || techName.startsWith("Neural research center") - || techName.startsWith("Super AI Center")) { + || techName.startsWith("Super AI center")) { tech.setIcon(Icons.getIconByName(Icons.ICON_RESEARCH)); } else if (techName.startsWith("Orbital lift")) { tech.setIcon(Icons.getIconByName(Icons.ICON_ORBITAL_ELEVATOR)); @@ -1037,7 +1037,7 @@ public static Tech createImprovementTech(final String name, final int level) { tech.setSpaceRaces(SpaceRace.MECHIONS, SpaceRace.SYNTHDROIDS); tech.setTradeable(false); } else if (techName.startsWith("Collective research center") - || techName.startsWith("Research Matrix")) { + || techName.startsWith("Research matrix")) { tech.setIcon(Icons.getIconByName(Icons.ICON_RESEARCH)); tech.setExcludeList(false); tech.setSpaceRaces(SpaceRace.REBORGIANS, SpaceRace.MECHIONS, diff --git a/src/main/java/org/openRealmOfStars/player/tech/TechList.java b/src/main/java/org/openRealmOfStars/player/tech/TechList.java index 42b6e1147..865b87219 100644 --- a/src/main/java/org/openRealmOfStars/player/tech/TechList.java +++ b/src/main/java/org/openRealmOfStars/player/tech/TechList.java @@ -117,7 +117,7 @@ public int getNumberOfScientificAchievements() { if (tech.getImprovement() != null) { Building building = BuildingFactory.createByName( tech.getImprovement()); - if (building.getScientificAchievement()) { + if (building != null && building.getScientificAchievement()) { result++; } if (tech.getName().equals("Artificial planet")) { @@ -974,7 +974,7 @@ public void updateResearchPointByTurn(final int totalResearchPoints, * @param tech Tech * @param info PlayerInfo */ - private void newTechTutorial(final Tech tech, final PlayerInfo info) { + private static void newTechTutorial(final Tech tech, final PlayerInfo info) { var techComponent = tech.getComponent(); var techHull = tech.getHull(); var techType = tech.getType(); @@ -1090,7 +1090,8 @@ private void newTechTutorial(final Tech tech, final PlayerInfo info) { * @param tutorialIdx tutorial index * @param info PlayerInfo */ - private void showTutorial(final int tutorialIdx, final PlayerInfo info) { + private static void showTutorial(final int tutorialIdx, + final PlayerInfo info) { var tutorialText = Game.getTutorial().showTutorialText(tutorialIdx); if (tutorialText != null) { var msg = new Message(MessageType.INFORMATION, tutorialText, diff --git a/src/test/java/org/openRealmOfStars/ai/planet/PlanetHandlingTest.java b/src/test/java/org/openRealmOfStars/ai/planet/PlanetHandlingTest.java index 8a4d94b0d..e19661a59 100644 --- a/src/test/java/org/openRealmOfStars/ai/planet/PlanetHandlingTest.java +++ b/src/test/java/org/openRealmOfStars/ai/planet/PlanetHandlingTest.java @@ -1627,13 +1627,13 @@ public void testHomarianHandling5PopulationClanLab() { planet.setPlanetOwner(1, info); planet.setWorkers(Planet.METAL_MINERS, 5); PlanetHandling.handlePlanetPopulation(planet, info, 0); - assertEquals(1, planet.getWorkers(Planet.PRODUCTION_WORKERS)); - assertEquals(1, planet.getWorkers(Planet.METAL_MINERS)); + assertEquals(0, planet.getWorkers(Planet.PRODUCTION_WORKERS)); + assertEquals(0, planet.getWorkers(Planet.METAL_MINERS)); assertEquals(2, planet.getWorkers(Planet.FOOD_FARMERS)); - assertEquals(0, planet.getWorkers(Planet.RESEARCH_SCIENTIST)); + assertEquals(2, planet.getWorkers(Planet.RESEARCH_SCIENTIST)); assertEquals(1, planet.getWorkers(Planet.CULTURE_ARTIST)); assertEquals(1, planet.getTotalProduction(Planet.PRODUCTION_RESEARCH)); - assertEquals(2, planet.getTotalProduction(Planet.PRODUCTION_PRODUCTION)); + assertEquals(1, planet.getTotalProduction(Planet.PRODUCTION_PRODUCTION)); assertEquals(7, planet.getTotalProduction(Planet.PRODUCTION_FOOD)); } diff --git a/src/test/java/org/openRealmOfStars/starMap/planet/construction/BuildingTest.java b/src/test/java/org/openRealmOfStars/starMap/planet/construction/BuildingTest.java index dbd35c8c9..a9336e3bd 100644 --- a/src/test/java/org/openRealmOfStars/starMap/planet/construction/BuildingTest.java +++ b/src/test/java/org/openRealmOfStars/starMap/planet/construction/BuildingTest.java @@ -58,6 +58,40 @@ public void testAncientFactory() { assertEquals(false, building.isBroadcaster()); } + @Test + @Category(org.openRealmOfStars.UnitTest.class) + public void testSuperAiCenter() { + Building building = BuildingFactory.createByName("Super AI center"); + assertEquals("Super AI center", building.getName()); + assertEquals(4, building.getReseBonus()); + assertEquals(0, building.getCredBonus()); + assertEquals(0, building.getCultBonus()); + assertEquals(0, building.getMineBonus()); + assertEquals(1, building.getFactBonus()); + assertEquals(0, building.getFarmBonus()); + assertEquals(0, building.getFleetCapacityBonus()); + assertEquals(0, building.getHappiness()); + assertEquals(1.00, building.getMaintenanceCost(), 0.05); + assertEquals(false, building.isBroadcaster()); + } + + @Test + @Category(org.openRealmOfStars.UnitTest.class) + public void testResearchMatix() { + Building building = BuildingFactory.createByName("Research matrix"); + assertEquals("Research matrix", building.getName()); + assertEquals(3, building.getReseBonus()); + assertEquals(0, building.getCredBonus()); + assertEquals(0, building.getCultBonus()); + assertEquals(0, building.getMineBonus()); + assertEquals(0, building.getFactBonus()); + assertEquals(0, building.getFarmBonus()); + assertEquals(0, building.getFleetCapacityBonus()); + assertEquals(2, building.getHappiness()); + assertEquals(0.25, building.getMaintenanceCost(), 0.05); + assertEquals(false, building.isBroadcaster()); + } + @Test @Category(org.openRealmOfStars.UnitTest.class) public void testAncientTemple() {