The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.