1.0.0 • Published 3 years ago

@jjavery/blitz v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

@jjavery/blitz

Sets of dice representing attackers and defenders are rolled one or more times to determine casualties for each side

Installation

Install with NPM

$ npm install @jjavery/blitz

Example

game.js:

const blitz = require('@jjavery/blitz');

// Attack with 5, defend with 3
const result = blitz(5, 3);

/*
result will look something like this:

{
  startingAttackers: 5,
  startingDefenders: 4,
  lostAttackers: 5,
  lostDefenders: 1,
  remainingAttackers: 0,
  remainingDefenders: 3,
  winner: 'defender',
  rounds: [
    [[5, 4, 3], [6, 4], 3, 4],
    [[6, 3, 2], [5, 3], 2, 3],
    [[5, 1], [5, 4], 0, 3]
  ],
  rolls: 14
}
*/

API Reference

blitz(startingAttackers, startingDefenders, options) ⇒ BlitzResult

Performs a blitz

ParamTypeDefaultDescription
startingAttackersnumberThe number of attackers to start with
startingDefendersnumberThe number of defenders to start with
optionsObject{}Optional parameters
options.maxAttackDicenumber3Maximum number of attacker dice rolled during a round
options.maxDefendDicenumber2Maximum number of defender dice rolled during a round
options.diceSidesnumber6Number of sides per die
options.stopLossnumber0Stop when the number of attackers has reached this number
options.maxRoundsnumberNumber.MAX_SAFE_INTEGERMaximum number of rounds to perform
options.rollsArrayInteger array to use for dice rolls instead of Math.random()

BlitzResult : Object

Properties

NameTypeDescription
startingAttackersnumberThe number of attackers at start
startingDefendersnumberThe number of defenders at start
lostAttackersnumberThe number of attackers lost
lostDefendersnumberThe number of defenders lost
remainingAttackersnumberThe number of attackers remaining
remainingDefendersnumberThe number of defenders remaining
winnerstringattacker or defender or null
roundsArrayThe accumulated rounds completed
rollsnumberThe number of times a die was rolled

Copyright © 2021 James P. Javery @jjavery