
    MgO                        S SK J r   S SKr\ " S5      S 5       rS rS rS rS rS	 rS
 rS r	S r
S rSr\" \5      r/ SQ/ SQS./ SQ/ SQS./ SQ/ SQS./ SQ/ SQS./ SQ/ SQS./ SQ/ SQS./ SQ/ SQS./ SQ/ SQS./ S Q/ S!QS.S".	rg)#    )pluginNdndc                 :   SnU R                  S5        U(       a  [        S5      nU=S:X  a    Sng =S:X  a    [        U 5        ON=S:X  a    [        U 5        O;=S:X  a    [	        U 5        O(S	:X  a  [        U [        5        O U R                  S
5        U(       a  M  g g )NTzO
Welcome to Dungeons and Dragons! Enter 'Help' for a list of available actions.z"
DnD - What would you like to do: exitFhelprollnpcNamelootz+
Sorry, I do not understand this command..
)sayinputHelpprepareRollnpcNamesr
   loots)jarviss
stillUsingrequests       9/Users/admin/workspace/ai/Jarvis/jarviscli/plugins/dnd.py
Initializer      st    J
JJcd
=>"
F|F# VU#

JK *    c                 @    / SQnU H  nU R                  U5        M     g )N)z
* exitz* helpz* rollz* lootz
* npcName
)r   )r   commandscommands      r   r   r      s    Jx7

7 r   c                     [        U 5       nU Vs/ s H  o"R                  5       PM     nnS S S 5        U$ s  snf ! , (       d  f       W$ = f)N)openstrip)filePathflinemyLootss       r   	loadLootsr"      s?    	h1,-.AD::<A. 
N / 
Ns   ;6;;
A
c                     [         R                  " SS5      n[        U5       H(  nU R                  [         R                  " U5      5        M*     g )N      )randomrandintranger   choice)r   r   numberOfItems_s       r   r
   r
   #   s6    NN1a(M=!

6=='( "r   c                 ,   U R                  S5        SnU(       a  [        S5      R                  5       n[        U5      S:X  a  Uu  p4UR	                  5       nUR	                  5       nU[
        ;   a@  U[
        U   ;   a3  U R                  S[        R                  " [
        U   U   5      -   5        OZU R                  S5        OH[        U5      S:X  a9  US   nU=S	:X  a    U R                  S
5        OS:X  a  Sng  U R                  S5        U(       a  M  g g )Nz8
Please specify your npc. Enter help for clarification.
Tz
Enter your npc:    
z(
We do not include that races or gender
r$   r   r   zb
Races: Dwarf, Elf, Halfling, Human, Dragonborn, Gnome, Half-elf, Half-orc, Tiefling
female, male
r   Fz"
I didn't recognize this command.
)r   r   splitlenlowernamesr&   r)   )r   r   	userInputracegenderr   s         r   r   r   (   s    
JJKLJ
/0668	y>Q$LD::<D\\^Fu}5;!6

4&--dF0C"DDE

GH^q lGJJ   G  H!&JJJEF+ *r   c           	         U R                  S5        SnU(       Ga-  [        S5      nU=S:X  a    U R                  S5        OS:X  a  SnO [        U5      u  p4nUS:w  a  US:w  a  US	:w  a5  US
:w  a/  US:w  a)  US:w  a#  US:w  a  US:w  a  US:w  a  U R                  S5        [        X45      nU H  nU R                  [	        U5      5        M     US:  aY  US :X  a'  U R                  S[	        [        U5      5      -   5        O>US:w  a&  U R                  S[	        [        Xe5      5      -   5        OU R                  S5        U(       a  GM,  g g )Nz9
Please specify your roll. Enter help for clarification.
Tz
Enter your roll: r   a1  
The command has the following structure: number of dice + die type + advantage/disadvantage (optional)
die types: D4, D6, D8, D10, D12, D20, D100
adv - advantage, dis - disadvantage
example: "4d6" rolls four 6 sided dice
"2d20 adv" rolls two twenty sided dice with advantage (chooses the highest number)
r   Fr            
         d   z@
This die type does not exist, but we will roll it anyways.. :)
r$   z
Sum: z
Roll result: z
Wrong roll.
)r   r   	parseRollRollstrsumRolls
getAdvRoll)r   r   theRollnumberOfDicedieTypeadvrollsr   s           r   r   r   C   s8   
JJLMJ
-.

  Y  Z"
-6w-?*s1$A!|1A'UW-\cgi\inuy{n{  AH  LO  AO

#gh 7E %

3t9- !& $a'$;"JJy3x3G'GH AX"JJ'83z%?U;V'VWJJ01/ *r   c                 \    US:X  a  [        U 5      $ US:X  a  [        U 5      $ [        S5      e)Nr$   zGetAdvantage error)maxminSystemError)rG   rF   s     r   rB   rB   _   s0    
ax5z	5z.//r   c                 $    SnU  H  nX-   nM	     U$ )Nr    )rG   resultr   s      r   rA   rA   g   s    F Mr   c                 |    / nU S:w  a3  UR                  [        R                  " SU5      5        U S-
  n U S:w  a  M3  U$ )Nr   r$   )appendr&   r'   )noddtrG   s      r   r?   r?   m   s>    E
(V^^Ar*+Ag ( Lr   c                    SnSnSnSnSnSnU  H  nUS:X  a:  UR                  5       (       a  US-  [        U5      -   nM1  US:X  d  US:X  a  SnMA  MC  US:X  a(  UR                  5       (       a  US-  [        U5      -   nMq  UR                  5       (       d  M  XW-  nSnM     US:X  d  US	:X  d  US
:X  a  SnO US:X  d  US:X  d  US:X  a  SnOUS:X  a  S nOSnXU4$ )Nr   F r:   dDTrF   AdvADVr$   disDisDISrI   )isdigitintisalpha)r3   rD   rE   parsingSecondHalfparsingThirdHalf	advantagerF   letters           r   r>   r>   t   s   LGI
C%~~+b03v;>3&C-$(! #0  5(V^^-=-=!B,V4!!#	#'   EY%/93E	e	yE1Y%5G	b#%%r   z"jarviscli/data/dnd_files/loots.txt)	AdrikBaernBarenddBrottorEberkFlintHarbekRurikVondal)	AmberArtinAudhildBardrynDagnalEldethFalkrunnGunnlodaVistra)malefemale)
AdranAelarAramilArannisAustEnialisHeianLucanPerenThamior)
AdrieAlthaeaAnastriannaCaelynnDrusiliaEnnaIeleniaLiaMialee	Shanairra)AltonAnderCadeCorrinEldonErrichFinnanGarretLyleMerricRoscoeWellby)AndryBreeCallieCoraEuphemiaJillianKithriLaviniaLiddaMerlaNedda	Seraphina)
r   BramDarekJorisKryntMornRandalSteddTamanUrth)	ArveeneEsveleJhessailKaraLureeneMiriRowanShandriTessele)
ArjhanBalasarDonaarGheshKrivMedrashPandjedPatrinRhogarTarhun)
AkraBiriDaarFaridehHarannJheriKavaKorinnMishannNala)
AlstonAlvyn	BoddynockBroccr   ErkyFonkinFrugGerboJebeddo)

BimpnottinBreenaCaramipCarlinDonellaDuvamilElla
Ellyjobell
LoopmottinRoywyn)
ArlenBerrianCarricr}   Erevan	GalinndanHadaraiKharisLaucian	Mindartis)
DaraElia	JelennethKeylethLeshannaMaraSarielr   ThiaValanthe)
DenchFengGellHenkHolgImshKethKruskRontShump)
BaggiEmenEngongKansifMyevNeegaOvakOwnkaShauthaSutha)
AkmenosAmnonBarakasDamakosEkemonIadosKaironLeucisMordaiMorthos)
AktaAnakisBryseisCriellaDamaiaEaKallistaLerissaMakariaNemeia)	dwarfelfhalflinghuman
dragonborngnomezhalf-elfzhalf-orctiefling)r   r&   r   r   r"   r
   r   r   rB   rA   r?   r>   loots_dictionaryr   r2   rN   r   r   <module>r     s     L L(

)
G6280&> 8 "# lt

 u B

 F N

 mq

 yq

 u H

 B}

 hq

 {z
C&	r   