
    Mg%                     b    S SK Jr  S SKrS SKrS SKJr  S SKJr  \" S5       " S S5      5       rg)    )ForeN)parse_number)pluginrollc                   0    \ rS rSrSrS rS rS rS rSr	g)	Roll   zg
Roll a dice
-- Example:
    Roll a dice
    Roll four dices with 16 edges
    Roll 5 dices five times
c                    U R                  U5      nU R                  U5      nU(       a!  UR                  U[        R                  5        g U R                  U5       H  nSSR                  U5      -   S-   n[        R                  " SSU5      nUR                  U[        R                  5        UR                  U[        R                  5        UR                  US-   [        R                  5        M     g )N|z| |z\S-
)
_dice_parse_dice_is_error_in_configsayr   RED
_dice_rolljoinresubBLUE)selfjarvissconfigerrorr   resultborders           :/Users/admin/workspace/ai/Jarvis/jarviscli/plugins/dice.py__call__Roll.__call__   s    !!!$--f5JJudhh'OOF+D5::d++c1FVVE3/FJJvtyy)JJvtyy)JJv}dii0 ,    c                     SnSnSnSnSnSnUR                  5        HN  n[        U5      n	U	S   U:w  a  UnSnM  U	S   nUS:X  d  US:X  a  UnUS:X  a  UnUS	:X  a  UnUS
-  nXX-  nUS-  nMP     X#US.$ )N       r   edgeedgestimesdices )repeathowmanyr(   )splitr   )
r   r   r,   r-   r(   prefixprefix_lengthprefix_numberword_currentparse_results
             r   r   Roll._dice_parse"   s     GGIL'/L A-/% !(OMv%)@%w&&w&'cMF"FQM- &0 !uEEr!   c                 v   [        US   [        5      (       d   e[        US   [        5      (       d   e[        US   [        5      (       d   eUS   S:X  a  gUS   S:  a  SR                  US   5      $ US   S:X  a  gUS   S:  a  SR                  US   5      $ US   S	::  a  S
R                  US   5      $ g)Nr(   r-   r,   r   zNo dice to roll?z/Rolling {} dices does not really make sense ;).zRoll 0 howmany? Finish!z1Doing something {} does not really make sense ;).r#   z3A dice with {} edges does not really make sense ;).F)
isinstanceintformat)r   r   s     r   r   Roll._dice_is_error_in_configG   s    &/3////&+S1111&*C0000)!%)q DKKy!# #(q ,(aFMMx " "'?aHOOw! ! r!   c              #      #    [        US   5       HE  n[        US   5       Vs/ s H&  n[        [        R                  " SUS   5      5      PM(     snv   MG     g s  snf 7f)Nr,   r-   r#   r(   )rangestrrandomrandint)r   r   _s      r   r   Roll._dice_roll\   sR     vh'(ADI&QZJ[D\]D\q3v~~a9:D\]] )]s   "A -AA  N)
__name__
__module____qualname____firstlineno____doc__r   r   r   r   __static_attributes__rA   r!   r   r   r      s    1 #FJ*^r!   r   )coloramar   r   r=   utilities.textParserr   r   r   rA   r!   r   <module>rJ      s7     	  -  U^ U^ U^r!   