module Mechanics ( universalModifiers , globalHooks ) where import GameModel (BoardState, CharacterIdentifier, Modifier (..), Stat (..), isElevated, Hook, Effect) import Data.Monoid (Sum) universalModifiers :: [Modifier] universalModifiers = [ elevationBonus AttackDice , elevationBonus DefenseDice , attackDiceBase ] elevationBonus :: Stat (Sum Int) -> Modifier elevationBonus modifierStat = Modifier {..} where modifierEffect :: BoardState -> CharacterIdentifier -> Sum Int modifierEffect board cid = if isElevated board cid then 1 else 0 attackDiceBase :: Modifier attackDiceBase = Modifier {..} where modifierStat = AttackDice modifierEffect = const $ const 1 globalHooks :: [Hook [Effect]] globalHooks = []