Skip to content

Commit

Permalink
Rise of the elder things
Browse files Browse the repository at this point in the history
  • Loading branch information
halogenandtoast committed Jan 6, 2025
1 parent 128c519 commit 7b701c0
Showing 1 changed file with 22 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
module Arkham.Treachery.Cards.RiseOfTheElderThings (riseOfTheElderThings) where

import Arkham.Card
import Arkham.Helpers.Message hiding (gainSurge)
import Arkham.Helpers.Modifiers (ModifierType (..))
import Arkham.Helpers.Scenario (scenarioField)
import Arkham.Matcher
import Arkham.Message.Lifted.Choose
import Arkham.Placement
import Arkham.Scenario.Types (Field (..))
import Arkham.Trait (Trait (ElderThing))
import Arkham.Treachery.Cards qualified as Cards
import Arkham.Treachery.Import.Lifted

Expand All @@ -12,5 +21,17 @@ riseOfTheElderThings = treachery RiseOfTheElderThings Cards.riseOfTheElderThings

instance RunMessage RiseOfTheElderThings where
runMessage msg t@(RiseOfTheElderThings attrs) = runQueueT $ case msg of
Revelation _iid (isSource attrs -> True) -> pure t
Revelation iid (isSource attrs -> True) -> do
elderThings <-
filterCards (card_ $ #enemy <> CardWithTrait ElderThing) <$> scenarioField ScenarioDiscard
when (null elderThings) $ gainSurge attrs
unless (null elderThings) do
focusCards elderThings \unfocus -> do
chooseOneM iid do
for_ elderThings \elderThing -> do
targeting elderThing $ pushM $ createEnemyWithPlacement_ (toCard elderThing) (InThreatArea iid)
push unfocus
selectEach (enemyEngagedWith iid <> withTrait ElderThing) \x -> do
roundModifiers attrs x [EnemyFight 1, EnemyEvade 1]
pure t
_ -> RiseOfTheElderThings <$> liftRunMessage msg attrs

0 comments on commit 7b701c0

Please sign in to comment.