diff --git a/backend/arkham-api/arkham-api.cabal b/backend/arkham-api/arkham-api.cabal index b1753a5b4c..863fa19117 100644 --- a/backend/arkham-api/arkham-api.cabal +++ b/backend/arkham-api/arkham-api.cabal @@ -5730,6 +5730,7 @@ test-suite spec Arkham.Investigator.Cards.ZoeySamarasSpec Arkham.Location.Cards.DreamGatePointlessRealitySpec Arkham.Location.Cards.DreamGateWondrousJourneySpec + Arkham.Location.Cards.EnchantedWoodsVillageOfZoogsSpec Arkham.Scenario.SpecHelpers Arkham.Skill.Cards.DeductionSpec Arkham.Skill.Cards.FearlessSpec diff --git a/backend/arkham-api/library/Arkham/Location/Cards.hs b/backend/arkham-api/library/Arkham/Location/Cards.hs index b97219c645..cfb8c3eed4 100644 --- a/backend/arkham-api/library/Arkham/Location/Cards.hs +++ b/backend/arkham-api/library/Arkham/Location/Cards.hs @@ -5457,7 +5457,7 @@ enchantedWoodsVillageOfZoogs = [Squiggle] ("Enchanted Woods" <:> "Village of Zoogs") [Woods] - Triangle + Diamond [Squiggle, Square, Star] BeyondTheGatesOfSleep diff --git a/backend/arkham-api/tests/Arkham/Location/Cards/EnchantedWoodsVillageOfZoogsSpec.hs b/backend/arkham-api/tests/Arkham/Location/Cards/EnchantedWoodsVillageOfZoogsSpec.hs new file mode 100644 index 0000000000..67fdf521df --- /dev/null +++ b/backend/arkham-api/tests/Arkham/Location/Cards/EnchantedWoodsVillageOfZoogsSpec.hs @@ -0,0 +1,41 @@ +module Arkham.Location.Cards.EnchantedWoodsVillageOfZoogsSpec (spec) where + +import Arkham.Enemy.Cards qualified as Enemies +import Arkham.ForMovement +import Arkham.Location.Cards qualified as Locations +import Arkham.Location.Types (Field (LocationPrintedSymbol), revealedL) +import Arkham.LocationSymbol +import Arkham.Matcher (pattern ConnectedLocation) +import Arkham.Projection (field) +import TestImport.New + +spec :: Spec +spec = describe "Enchanted Woods (Village of Zoogs)" do + it "uses Diamond as its revealed symbol, while Great Stone Circle remains Triangle" + . gameTest + $ \_self -> do + village <- testLocationWithDef Locations.enchantedWoodsVillageOfZoogs (revealedL .~ True) + greatStoneCircle <- testLocationWithDef Locations.enchantedWoodsGreatStoneCircle (revealedL .~ True) + + field LocationPrintedSymbol (toId village) `shouldReturn` Diamond + field LocationPrintedSymbol (toId greatStoneCircle) `shouldReturn` Triangle + + it "is connected to The Moon-Tree and gives Inconspicuous Zoog multiple legal spawn choices" + . gameTest + $ \self -> do + moonTree <- testLocationWithDef Locations.enchantedWoodsTheMoonTree (revealedL .~ True) + village <- testLocationWithDef Locations.enchantedWoodsVillageOfZoogs (revealedL .~ True) + enchantedPath <- testLocationWithDef Locations.theEnchantedPath id + + self `moveTo` moonTree + + moonTree.connectedLocations `shouldMatchListM` [toId enchantedPath, toId village] + + zoog <- testEnemyWithDef Enemies.inconspicuousZoog id + run $ EnemySpawnAtLocationMatching (Just $ toId self) (ConnectedLocation NotForMovement) (toId zoog) + + assertTarget enchantedPath + assertTarget village + chooseTarget village + + zoog.location `shouldReturn` Just (toId village)