diff options
-rw-r--r-- | rules.js | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -77,6 +77,10 @@ let states = {}; let game = null; +function random(n) { + return Math.floor(((game.seed = game.seed * 48271 % 0x7fffffff) / 0x7fffffff) * n); +} + function log(...args) { let s = Array.from(args).join(""); game.log.push(s); @@ -201,7 +205,7 @@ function gen_action(view, action, argument) { } function roll_d6() { - return Math.floor(Math.random() * 6) + 1; + return random(6) + 1; } function shuffle_deck() { @@ -214,7 +218,7 @@ function shuffle_deck() { function deal_cards(deck, n) { let hand = []; for (let i = 0; i < n; ++i) { - let k = Math.floor(Math.random() * deck.length); + let k = random(deck.length); hand.push(deck[k]); deck.splice(k, 1); } @@ -228,7 +232,7 @@ function select_random_block(where) { list.push(b); if (list.length === 0) return null; - return list[Math.floor(Math.random() * list.length)]; + return list[random(list.length)]; } function select_random_enemy_block(where) { @@ -238,7 +242,7 @@ function select_random_enemy_block(where) { list.push(b); if (list.length === 0) return null; - return list[Math.floor(Math.random() * list.length)]; + return list[random(list.length)]; } function block_plural(who) { @@ -3677,8 +3681,9 @@ exports.ready = function (scenario, players) { return players.length === 2; } -exports.setup = function (scenario) { +exports.setup = function (seed, scenario) { game = { + seed: seed, s_hand: [], f_hand: [], s_card: 0, |