Conversation started Jul 6, 2022 at 11:09.
Jul 6, 2022 11:09
const dice = (n,s,a, doSum) => {
    const die = () => Math.floor(Math.random()*s)+1 ;
    const dieResults = Array.from(Array(n)).map(each => {return die();});
    const sum = dieResults.reduce((sum, curr) => sum + curr + a, 0);
    console.log(`rolled '${dieResults.join(` + ${a}, `)} + ${a}${doSum ? ` = ${sum}`:''}'`);
    return doSum ? dieResults.reduce((sum, curr) => sum + curr + a, 0) : dieResults.map(each => each+a);
};
const shuffleSlice = (num, array) => array
  .map(value => ({ value, sort: Math.random() }))
  .sort((a, b) => a.sort - b.sort)
  .map(({ value }) => value).slice(0,num);
const tieflingTraits = "small horns; fangs or sharp teeth; a forked tongue; catlike eyes; six fingers on each hand; goat-like legs; cloven hoofs; a forked tail; leathery or scaly skin; red or dark blue skin; cast no shadow or reflection; exude a smell of brimstone".split(/;\s+/);
shuffleSlice(dice(1,4,1,true),tieflingTraits)
> rolled '2 + 1 = 3'
(3) ['goat-like legs', 'cast no shadow or reflection', 'a forked tongue']
 
Conversation ended Jul 6, 2022 at 11:11.