packages feed

roguestar-engine-0.2.1: src/Stats.hs

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 }