diff --git a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java index 350d87fd3e8..071c252e6f4 100644 --- a/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java +++ b/Mage.Client/src/main/java/org/mage/card/arcane/ManaSymbols.java @@ -667,6 +667,12 @@ public final class ManaSymbols { if (replaced.contains(HintUtils.HINT_ICON_REQUIRE)) { replaced = replaced.replace(HintUtils.HINT_ICON_REQUIRE, GuiDisplayUtil.getHintIconHtml("require", symbolSize) + " "); } + if (replaced.contains(HintUtils.HINT_ICON_DUNGEON_ROOM_CURRENT)) { + replaced = replaced.replace(HintUtils.HINT_ICON_DUNGEON_ROOM_CURRENT, GuiDisplayUtil.getHintIconHtml("arrow-right-square-fill-green", symbolSize) + " "); + } + if (replaced.contains(HintUtils.HINT_ICON_DUNGEON_ROOM_NEXT)) { + replaced = replaced.replace(HintUtils.HINT_ICON_DUNGEON_ROOM_NEXT, GuiDisplayUtil.getHintIconHtml("arrow-down-right-square fill-yellow", symbolSize) + " "); + } // ignored data restore replaced = replaced diff --git a/Mage.Client/src/main/resources/hint/arrow-down-right-square fill-yellow.png b/Mage.Client/src/main/resources/hint/arrow-down-right-square fill-yellow.png new file mode 100644 index 00000000000..528a795d861 Binary files /dev/null and b/Mage.Client/src/main/resources/hint/arrow-down-right-square fill-yellow.png differ diff --git a/Mage.Client/src/main/resources/hint/arrow-right-square-fill-green.png b/Mage.Client/src/main/resources/hint/arrow-right-square-fill-green.png new file mode 100644 index 00000000000..aad1afd64b6 Binary files /dev/null and b/Mage.Client/src/main/resources/hint/arrow-right-square-fill-green.png differ diff --git a/Mage/src/main/java/mage/abilities/hint/HintUtils.java b/Mage/src/main/java/mage/abilities/hint/HintUtils.java index 372b4208a4d..e7b7452107a 100644 --- a/Mage/src/main/java/mage/abilities/hint/HintUtils.java +++ b/Mage/src/main/java/mage/abilities/hint/HintUtils.java @@ -18,6 +18,8 @@ public class HintUtils { public static final String HINT_ICON_BAD = "ICON_BAD"; public static final String HINT_ICON_RESTRICT = "ICON_RESTRICT"; public static final String HINT_ICON_REQUIRE = "ICON_REQUIRE"; + public static final String HINT_ICON_DUNGEON_ROOM_CURRENT = "ICON_DUNGEON_ROOM_CURRENT"; + public static final String HINT_ICON_DUNGEON_ROOM_NEXT = "ICON_DUNGEON_ROOM_NEXT"; // public static final String HINT_START_MARK = "
"; // workaround to find hint text in rules list and shows it in html @@ -34,7 +36,7 @@ public class HintUtils { String hex = colorToHtml(color); res = String.format("%s", hex, text); } else { - res = text; + res = (text == null ? "" : text); } // icon diff --git a/Mage/src/main/java/mage/game/command/Dungeon.java b/Mage/src/main/java/mage/game/command/Dungeon.java index 96c7fe0a9a3..7b0841f9220 100644 --- a/Mage/src/main/java/mage/game/command/Dungeon.java +++ b/Mage/src/main/java/mage/game/command/Dungeon.java @@ -11,6 +11,7 @@ import mage.abilities.costs.mana.ManaCosts; import mage.abilities.costs.mana.ManaCostsImpl; import mage.abilities.effects.ContinuousEffect; import mage.abilities.effects.Effect; +import mage.abilities.hint.HintUtils; import mage.abilities.text.TextPart; import mage.cards.FrameStyle; import mage.choices.Choice; @@ -125,7 +126,19 @@ public class Dungeon implements CommandObject { "Currently in " + currentRoom.getName() : "Not currently in a room" ) + ")"); - dungeonRooms.stream().map(DungeonRoom::toString).forEach(rules::add); + dungeonRooms.stream() + .map(room -> { + // mark useful rooms by icons + String prefix = ""; + if (room.equals(currentRoom)) { + prefix += HintUtils.prepareText(null, null, HintUtils.HINT_ICON_DUNGEON_ROOM_CURRENT); + } + if (currentRoom != null && currentRoom.getNextRooms().stream().anyMatch(room::equals)) { + prefix += HintUtils.prepareText(null, null, HintUtils.HINT_ICON_DUNGEON_ROOM_NEXT); + } + return prefix + room; + }) + .forEach(rules::add); return rules; }