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;
}