diff --git a/megamek/docs/history.txt b/megamek/docs/history.txt index 907d4b8e7dc..07ef0825455 100644 --- a/megamek/docs/history.txt +++ b/megamek/docs/history.txt @@ -8,7 +8,7 @@ MEGAMEK VERSION HISTORY: + Fix #5086: Updated SRMAXHandler to ignore specialty armors + PR #6209: Implement RISC laser pulse module + Fix #6211: Added null check for lastUnitMember -+ PR #6203: Dev Tool to Find duplicate boards ++ PR #6203, #6266: Dev Tools: to Find duplicate boards, log to console with environment variable mm.profile=dev + PR #6181: Rename TroopSpace to InfantryCompartment + Fix #6217: Too many gunners for aerospace in MekHQ + Fix #6069: Stops bays from loading BA and protomek ammunition @@ -24,6 +24,8 @@ MEGAMEK VERSION HISTORY: + Fix #3018: Fixes Battle Armor Plasma Rifles not applying TacOps Optional Rules + Fix #3827: Fixes target's side's ECM not effecting sensor spottingFixes + Fix: Disable Simultaneous Movement due to numerous issues ++ PR #6250: Adds an automatic board tag for underwater bridges ++ Fix #6224, #6248: Aircraft that fly off are now nudged back onto the board to be targetable before actually leaving the map 0.50.01 (2024-11-10 1800 UTC) + PR #5962, #5964, #5966, #5974, #5931, #5983, #6154, #6159: Internal code changes (TWGameManager, extract processMovement, allow more classes for InputFilter, Victory, move test scenarios to testresources), diff --git a/megamek/mmconf/log4j2.xml b/megamek/mmconf/log4j2.xml index 7838144ad15..4b04808b0d7 100644 --- a/megamek/mmconf/log4j2.xml +++ b/megamek/mmconf/log4j2.xml @@ -5,7 +5,7 @@ - + @@ -17,28 +17,30 @@ + - + - + - + - + - + + diff --git a/megamek/src/megamek/server/totalwarfare/MovePathHandler.java b/megamek/src/megamek/server/totalwarfare/MovePathHandler.java index bb0aaa246e8..e7ff875e51d 100644 --- a/megamek/src/megamek/server/totalwarfare/MovePathHandler.java +++ b/megamek/src/megamek/server/totalwarfare/MovePathHandler.java @@ -1561,6 +1561,7 @@ private void processSteps() { a.setStraightMoves(a.getStraightMoves() + 1); // make sure it didn't fly off the map if (!getGame().getBoard().contains(curPos)) { + curPos = curPos.translated(step.getFacing(), -1); //Return its position to on-map so it can be targeted this turn a.setCurrentVelocity(md.getFinalVelocity()); gameManager.processLeaveMap(md, true, Compute.roundsUntilReturn(getGame(), entity)); return; diff --git a/megamek/src/megamek/utilities/BoardsTagger.java b/megamek/src/megamek/utilities/BoardsTagger.java index 457b37c696a..9c7acb2ff81 100644 --- a/megamek/src/megamek/utilities/BoardsTagger.java +++ b/megamek/src/megamek/utilities/BoardsTagger.java @@ -92,7 +92,8 @@ public enum Tags { TAG_ARMOREDBUILDING("ArmoredBuilding"), TAG_IMPASSABLE("Impassable"), TAG_ELEVATOR("Elevator"), - TAG_MULTIPLETHEME("MultipleTheme"); + TAG_MULTIPLETHEME("MultipleTheme"), + TAG_UNDERWATERBRIDGE("UnderWaterBridge"); private String tagName; private static final Map internalTagMap; @@ -233,6 +234,7 @@ private static void tagBoard(File boardFile) { int impassable = 0; int elevator = 0; int multipleTheme = 0; + int underWaterBridge = 0; for (int x = 0; x < board.getWidth(); x++) { for (int y = 0; y < board.getHeight(); y++) { @@ -291,6 +293,11 @@ private static void tagBoard(File boardFile) { } impassable += hex.containsTerrain(IMPASSABLE) ? 1 : 0; elevator += hex.containsTerrain(ELEVATOR) ? 1 : 0; + if (hex.containsTerrain(WATER) + && hex.containsTerrain(BRIDGE) + && (hex.terrainLevel(BRIDGE_ELEV) < hex.terrainLevel(WATER))) { + underWaterBridge++; + } } } @@ -359,6 +366,7 @@ private static void tagBoard(File boardFile) { multipleTheme += snowTheme > 0 ? 1 : 0; multipleTheme += volcanic > 0 ? 1 : 0; matchingTags.put(Tags.TAG_MULTIPLETHEME, multipleTheme > 1); + matchingTags.put(Tags.TAG_UNDERWATERBRIDGE, underWaterBridge > 0); // Remove (see below) any auto tags that might be present so that auto tags that // no longer apply