joshbruce/php-dice-bag

This package is abandoned and no longer maintained. The author suggests using the joshbruce/php-dice-tower package instead.

A PHP library for rolling various dice and get various results

3.1.2 2020-10-27 02:56 UTC

This package is auto-updated.

Last update: 2020-11-08 21:06:34 UTC


README

A PHP library for "rolling" n dice, with n sides each.

Installation

composer require joshbruce/php-dice-bag

Usage

Say you are rolling a character for an RPG using a fairly standard method (4d6, drop the lowest).

DiceBag::roll4d6()->highest(3)->sum();
// step 1: [3, 5, 2, 1]
// step 2: [5, 3, 2]
// step 3: 10

You do not need to use the magic static method:

DiceBag::roll(4, 6)->highest(3)->sum();
// step 1: [3, 5, 2, 1]
// step 2: [5, 3, 2]
// step 3: 10

You can also roll a single die using one of the following:

DiceBag::roll();
// rolls 1d6

DiceBag::roll(1, 6);
// rolls 1d6

Dn::withSides();
// roll 1 die with the given number of sides

The values of the rolls are calculated at instantiation. Therefore, the various fluent methods are about manipulating the initial results or retrieving values from them.

Details

Effectively this is a random number generator duplicating the feel and spread of physical dice. The minimum value is always 1.

Inspired by AnyDice and driven by the desire to create an MORPG using various dice-based systems; specifically 7DSystem and the Cypher System.

Other

See the .github directory for various details including code of conduct, constribution notes, and so on.