# API #### xdice.compile(pattern_string) > *Similar to `xdice.Pattern(pattern_string).compile()`* > Returns a compiled Pattern object. > Pattern object can then be rolled to obtain a PatternScore object. #### xdice.roll(pattern_string) > *Similar to `xdice.Pattern(pattern_string).roll()`* #### xdice.rolldice(faces, amount=1) > *Similar to `xdice.Dice(faces, amount).roll()`* ## Dice object > Set of dice. #### Dice.__init__(sides, amount=1) > Instantiate a set of dice. #### dice.roll() > Role the dice and return a Score object ####*[classmethod]* Dice.parse(cls, pattern) > Parse a pattern of the form 'AdX', where A and X are positive integers. > Returns the corresponding Dice object. ## Score object > Score is a subclass of integer, you can then manipulate it as you would do with an integer. > It also provides an access to the detailed score with the property 'detail'. 'detail' is the list of the scores obtained by each dice. > Score class can also be used as an iterable, to walk trough the individual scores. eg: >>> s = Score([1,2,3]) >>> print(s) 6 >>> s + 1 7 >>> list(s) [1,2,3] #### Score.__new__(iterable) >*`iterable` should only contain integers* > Score value will be the sum of the list's values. ## Pattern object > Dice notation pattern. #### Pattern.__init__(instr) > Instantiate a Pattern object. #### pattern.compile() > Parse the pattern. Two properties are updated at this time: * *pattern.format_string* > The ready-to-be-formatted string built from the `instr` argument. > *Eg: '1d6+4+1d4' => '{0}+4-{1}'* * *pattern.dices* > The list of parsed dice. > *Eg: '1d6+4+1d4' => [(Dice; sides=6;amount=1), (Dice; sides=4;amount=1)]* #### pattern.roll() > Compile the pattern if it has not been yet, then roll the dice. > Return a PatternScore object. ## PatternScore object > PatternScore is a subclass of **integer**, you can then manipulate it as you would do with an integer. > Moreover, you can get the list of the scores with the score(i) or scores() methods, and retrieve a formatted result with the format() method. #### pattern_score.scores() > Returns the list of Score objects extracted from the pattern and rolled. #### pattern_score.score(i) > Returns the Score object at index i. #### pattern_score.format() > Return a formatted string detailing the result of the roll. > *Eg: '3d6+4' => '[1,5,6]+4'*