229 lines
4.7 KiB
YAML
229 lines
4.7 KiB
YAML
name: Lottery
|
|
class_comment: null
|
|
dependencies:
|
|
- name: RuntimeException
|
|
type: class
|
|
source: RuntimeException
|
|
properties:
|
|
- name: chances
|
|
visibility: protected
|
|
comment: '# * The number of expected wins.
|
|
|
|
# *
|
|
|
|
# * @var int|float'
|
|
- name: outOf
|
|
visibility: protected
|
|
comment: '# * The number of potential opportunities to win.
|
|
|
|
# *
|
|
|
|
# * @var int|null'
|
|
- name: winner
|
|
visibility: protected
|
|
comment: '# * The winning callback.
|
|
|
|
# *
|
|
|
|
# * @var null|callable'
|
|
- name: loser
|
|
visibility: protected
|
|
comment: '# * The losing callback.
|
|
|
|
# *
|
|
|
|
# * @var null|callable'
|
|
- name: resultFactory
|
|
visibility: protected
|
|
comment: '# * The factory that should be used to generate results.
|
|
|
|
# *
|
|
|
|
# * @var callable|null'
|
|
methods:
|
|
- name: __construct
|
|
visibility: public
|
|
parameters:
|
|
- name: chances
|
|
- name: outOf
|
|
default: 'null'
|
|
comment: "# * The number of expected wins.\n# *\n# * @var int|float\n# */\n# protected\
|
|
\ $chances;\n# \n# /**\n# * The number of potential opportunities to win.\n# *\n\
|
|
# * @var int|null\n# */\n# protected $outOf;\n# \n# /**\n# * The winning callback.\n\
|
|
# *\n# * @var null|callable\n# */\n# protected $winner;\n# \n# /**\n# * The losing\
|
|
\ callback.\n# *\n# * @var null|callable\n# */\n# protected $loser;\n# \n# /**\n\
|
|
# * The factory that should be used to generate results.\n# *\n# * @var callable|null\n\
|
|
# */\n# protected static $resultFactory;\n# \n# /**\n# * Create a new Lottery\
|
|
\ instance.\n# *\n# * @param int|float $chances\n# * @param int|null $outOf\n\
|
|
# * @return void"
|
|
- name: odds
|
|
visibility: public
|
|
parameters:
|
|
- name: chances
|
|
- name: outOf
|
|
default: 'null'
|
|
comment: '# * Create a new Lottery instance.
|
|
|
|
# *
|
|
|
|
# * @param int|float $chances
|
|
|
|
# * @param int|null $outOf
|
|
|
|
# * @return static'
|
|
- name: winner
|
|
visibility: public
|
|
parameters:
|
|
- name: callback
|
|
comment: '# * Set the winner callback.
|
|
|
|
# *
|
|
|
|
# * @param callable $callback
|
|
|
|
# * @return $this'
|
|
- name: loser
|
|
visibility: public
|
|
parameters:
|
|
- name: callback
|
|
comment: '# * Set the loser callback.
|
|
|
|
# *
|
|
|
|
# * @param callable $callback
|
|
|
|
# * @return $this'
|
|
- name: __invoke
|
|
visibility: public
|
|
parameters:
|
|
- name: '...$args'
|
|
comment: '# * Run the lottery.
|
|
|
|
# *
|
|
|
|
# * @param mixed ...$args
|
|
|
|
# * @return mixed'
|
|
- name: choose
|
|
visibility: public
|
|
parameters:
|
|
- name: times
|
|
default: 'null'
|
|
comment: '# * Run the lottery.
|
|
|
|
# *
|
|
|
|
# * @param null|int $times
|
|
|
|
# * @return mixed'
|
|
- name: runCallback
|
|
visibility: protected
|
|
parameters:
|
|
- name: '...$args'
|
|
comment: '# * Run the winner or loser callback, randomly.
|
|
|
|
# *
|
|
|
|
# * @param mixed ...$args
|
|
|
|
# * @return callable'
|
|
- name: wins
|
|
visibility: protected
|
|
parameters: []
|
|
comment: '# * Determine if the lottery "wins" or "loses".
|
|
|
|
# *
|
|
|
|
# * @return bool'
|
|
- name: resultFactory
|
|
visibility: protected
|
|
parameters: []
|
|
comment: '# * The factory that determines the lottery result.
|
|
|
|
# *
|
|
|
|
# * @return callable'
|
|
- name: alwaysWin
|
|
visibility: public
|
|
parameters:
|
|
- name: callback
|
|
default: 'null'
|
|
comment: '# * Force the lottery to always result in a win.
|
|
|
|
# *
|
|
|
|
# * @param callable|null $callback
|
|
|
|
# * @return void'
|
|
- name: alwaysLose
|
|
visibility: public
|
|
parameters:
|
|
- name: callback
|
|
default: 'null'
|
|
comment: '# * Force the lottery to always result in a lose.
|
|
|
|
# *
|
|
|
|
# * @param callable|null $callback
|
|
|
|
# * @return void'
|
|
- name: fix
|
|
visibility: public
|
|
parameters:
|
|
- name: sequence
|
|
- name: whenMissing
|
|
default: 'null'
|
|
comment: '# * Set the sequence that will be used to determine lottery results.
|
|
|
|
# *
|
|
|
|
# * @param array $sequence
|
|
|
|
# * @param callable|null $whenMissing
|
|
|
|
# * @return void'
|
|
- name: forceResultWithSequence
|
|
visibility: public
|
|
parameters:
|
|
- name: sequence
|
|
- name: whenMissing
|
|
default: 'null'
|
|
comment: '# * Set the sequence that will be used to determine lottery results.
|
|
|
|
# *
|
|
|
|
# * @param array $sequence
|
|
|
|
# * @param callable|null $whenMissing
|
|
|
|
# * @return void'
|
|
- name: determineResultsNormally
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Indicate that the lottery results should be determined normally.
|
|
|
|
# *
|
|
|
|
# * @return void'
|
|
- name: determineResultNormally
|
|
visibility: public
|
|
parameters: []
|
|
comment: '# * Indicate that the lottery results should be determined normally.
|
|
|
|
# *
|
|
|
|
# * @return void'
|
|
- name: setResultFactory
|
|
visibility: public
|
|
parameters:
|
|
- name: factory
|
|
comment: '# * Set the factory that should be used to determine the lottery results.
|
|
|
|
# *
|
|
|
|
# * @param callable $factory
|
|
|
|
# * @return void'
|
|
traits:
|
|
- RuntimeException
|
|
interfaces: []
|