From a6ccbe0f1d594b3db947b6983cda6dab1c2a4afc Mon Sep 17 00:00:00 2001 From: Agetian Date: Thu, 24 Oct 2024 20:01:43 +0300 Subject: [PATCH] - Add GameState support for unlocked doors. (#6426) - Add puzzle PS_DSK3. --- forge-ai/src/main/java/forge/ai/GameState.java | 9 +++++++++ forge-gui/res/puzzle/PS_DSK3.pzl | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 forge-gui/res/puzzle/PS_DSK3.pzl diff --git a/forge-ai/src/main/java/forge/ai/GameState.java b/forge-ai/src/main/java/forge/ai/GameState.java index a0afe54be58..4ee9eae9879 100644 --- a/forge-ai/src/main/java/forge/ai/GameState.java +++ b/forge-ai/src/main/java/forge/ai/GameState.java @@ -436,6 +436,13 @@ public abstract class GameState { } } + if (!c.getUnlockedRooms().isEmpty()) { + for (CardStateName stateName : c.getUnlockedRooms()) { + newText.append("|UnlockedRoom:"); + newText.append(stateName.name()); + } + } + cardTexts.put(zoneType, newText.toString()); } @@ -1401,6 +1408,8 @@ public abstract class GameState { c.setGamePieceType(GamePieceType.TOKEN); } else if (info.startsWith("ClassLevel:")) { c.setClassLevel(Integer.parseInt(info.substring(info.indexOf(':') + 1))); + } else if (info.startsWith("UnlockedRoom:")) { + c.unlockRoom(c.getController(), CardStateName.smartValueOf(info.substring(info.indexOf(':') + 1))); } } diff --git a/forge-gui/res/puzzle/PS_DSK3.pzl b/forge-gui/res/puzzle/PS_DSK3.pzl new file mode 100644 index 00000000000..75f977e0c5c --- /dev/null +++ b/forge-gui/res/puzzle/PS_DSK3.pzl @@ -0,0 +1,17 @@ +[metadata] +Name:Possibility Storm - Duskmourn: House of Horror #03 +URL:https://i0.wp.com/www.possibilitystorm.com/wp-content/uploads/2024/10/latest-scaled.jpg?ssl=1 +Goal:Win +Turns:1 +Difficulty:Uncommon +Description:Win this turn. Smoky Lounge is unlocked, and you start the puzzle with its ability on the stack. (Misty Salon is locked.) Ensure your solution satisfies all possible blocking decisions. Good luck! +[state] +turn=1 +activeplayer=p0 +activephase=DRAW +activephaseadvance=MAIN1 +p0life=20 +p0hand=Painter's Studio // Defaced Gallery;Song of Totentanz;Ghostly Dancers;Dollmaker's Shop // Porcelain Gallery +p0battlefield=Marina Vendrell;T:everywhere;T:everywhere;T:everywhere;T:everywhere;T:everywhere;T:everywhere;Smoky Lounge // Misty Salon|UnlockedRoom:LeftSplit +p1life=12 +p1battlefield=Miasma Demon;Miasma Demon