module Stats (generateStats)
where
import Dice
import StatsData
import DB
--
-- Randomly generate 1 statistic.
--
generate1Stat :: Integer -> Integer -> DB Integer
generate1Stat minimal range = roll $ concat [[minimal..minimal+i] | i <- [0..range]]
--
-- Randomly generate statistics.
--
generateStats :: Stats -> Stats -> DB Stats
generateStats minimums ranges =
do new_str <- generate1Stat (str minimums) (str ranges)
new_dex <- generate1Stat (dex minimums) (dex ranges)
new_con <- generate1Stat (con minimums) (con ranges)
new_int <- generate1Stat (int minimums) (int ranges)
new_per <- generate1Stat (per minimums) (per ranges)
new_cha <- generate1Stat (cha minimums) (cha ranges)
new_mind <- generate1Stat (mind minimums) (mind ranges)
return Stats { strength = new_str,
dexterity = new_dex,
constitution = new_con,
intelligence = new_int,
perception = new_per,
charisma = new_cha,
mindfulness = new_mind }