NAME

Bot::Backbone::Service::OFun::Dice - Tools for rolling dice, flipping coins, choosing, and shuffling

VERSION

version 0.142230

SYNOPSIS

# in your bot config
service dice => (
    service => 'OFun::Dice',
);

dispatcher chatroom => as {
    redispatch_to 'dice';
};

# in chat
alice> !roll
bot> Rolled 4
alice> !roll 2d4+3
bot> Rolled 7
alice> !flip
bot> Flipped 1 times: heads
alice> !flip 4
bot> Flipped 4 times: tails, tails, tails, heads
alice> !choose 2 alice bob chuck dick ed
bot> I choose ed, chuck
alice> !choose alice bob chuck dick ed
bot> I choose dick
alice> !shuffle alice bob chuck dick ed
bot> I choose bob, alice, ed, dick, chuck

DESCRIPTION

This service provides a number of tools related to randomly generating numbers, coin flips, choosing items, etc.

DISPATCHER

!roll

!roll
!roll 2d6
!roll 4d20+12

Generates a dice roll. If no arguments are given, it's the same as rolling a single 6-sided die. If you specify dice notation, it will roll the dice specified.

!flip

!flip
!flip 5

Flips a coin or several. If no arguments are given, it will flip a single coin and report the outcome. If a number is given, it will flip that many coins.

!choose

!choose 3 a b c d e
!choose a b c d e

Choose 1 or more items from a list. If the first argument is a number, it will choose that many items from the list. If the first argument is not a number, it will choose a single item.

!shuffle

!shuffle a b c d e

This is identical to:

!choose 5 a b c d e

It choose all items, but shuffles them in the process.

METHODS

roll_dice

Implements the !roll and !flip commands.

flip_coin

Implements the !flip command by passing "d2" as the dice notation to "roll_dice".

choose_n

Implements the !choose and !shuffle commands.

choose_all

Implements the !shuffle command by counting the number of arguments and asking "choose_n" to pick that many items.

AUTHOR

Andrew Sterling Hanenkamp <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Qubling Software LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.