Skip to content

Commit

Permalink
Elder Chamber
Browse files Browse the repository at this point in the history
  • Loading branch information
halogenandtoast committed Dec 21, 2024
1 parent 24997e9 commit a1df380
Showing 1 changed file with 23 additions and 4 deletions.
27 changes: 23 additions & 4 deletions backend/arkham-api/library/Arkham/Location/Cards/ElderChamber.hs
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
module Arkham.Location.Cards.ElderChamber (elderChamber) where

import Arkham.Ability
import Arkham.Campaigns.EdgeOfTheEarth.Helpers
import Arkham.Card.CardDef
import Arkham.Location.Cards qualified as Cards
import Arkham.Location.Import.Lifted
import Arkham.Matcher
import Arkham.Scenario.Deck
import Arkham.Scenarios.FatalMirage.Helpers
import Arkham.Story.Cards qualified as Stories

newtype ElderChamber = ElderChamber LocationAttrs
deriving anyclass (IsLocation, HasModifiersFor)
Expand All @@ -10,10 +17,22 @@ newtype ElderChamber = ElderChamber LocationAttrs
elderChamber :: LocationCard ElderChamber
elderChamber = location ElderChamber Cards.elderChamber 1 (PerPlayer 2)

mirageCards :: [CardDef]
mirageCards = [Cards.clutteredDormitory]

instance HasAbilities ElderChamber where
getAbilities (ElderChamber attrs) =
extendRevealed attrs []
getAbilities (ElderChamber a) =
extendRevealed
a
[ mirage a 2 mirageCards
, restricted a 1 (ScenarioDeckWithCard TekeliliDeck)
$ forced
$ DiscoverClues #after You (be a) (atLeast 2)
]

instance RunMessage ElderChamber where
runMessage msg (ElderChamber attrs) = runQueueT $ case msg of
_ -> ElderChamber <$> liftRunMessage msg attrs
runMessage msg l@(ElderChamber attrs) = runQueueT $ case msg of
UseThisAbility iid (isSource attrs -> True) 1 -> do
addTekelili iid =<< getTekelili 1
pure l
_ -> ElderChamber <$> mirageRunner Stories.elderChamber mirageCards msg attrs

0 comments on commit a1df380

Please sign in to comment.