maleghast-engine/src/Mechanics.hs

32 lines
755 B
Haskell
Raw Normal View History

2023-12-06 19:57:24 +00:00
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 = []