37 lines
959 B
Haskell
37 lines
959 B
Haskell
|
module DND.Sheet.Pretty
|
||
|
( getName
|
||
|
, getTrivia
|
||
|
, statFunctions
|
||
|
, getStats
|
||
|
) where
|
||
|
|
||
|
import DND.Sheet.Content
|
||
|
|
||
|
getName :: Character -> String
|
||
|
getName = charName . preamble
|
||
|
|
||
|
getTrivia :: Character -> [String]
|
||
|
getTrivia char = map (\a -> a $ trivia char) functions
|
||
|
where functions = [ background
|
||
|
, personalityTrait
|
||
|
, ideals
|
||
|
, bonds
|
||
|
, flaws
|
||
|
, quirk
|
||
|
]
|
||
|
|
||
|
--getStats :: Character -> [String]
|
||
|
--getStats =
|
||
|
|
||
|
getStats :: Character -> [String]
|
||
|
getStats char = let
|
||
|
statList = map (\a -> map a (stats char)) statFunctions
|
||
|
name = head statList
|
||
|
score = statList !! 1
|
||
|
proficiency = statList !! 2
|
||
|
in zipWith3 format name score proficiency
|
||
|
where format a b c = a ++ " score: " ++ b ++ " Proficient: " ++ c
|
||
|
|
||
|
statFunctions :: [Stat -> String]
|
||
|
statFunctions = [ statName, show . statScore, show . statProf ]
|