
    Ii                     R    S r SSKJr  SSKJrJrJrJr  \(       a    " S S\5      rg)z'Bot user implementation for AI players.    )TYPE_CHECKING   )UserMenuItemEscapeBehaviorgenerate_uuidc                   T   \ rS rSrSrS9S\S\S\S-  4S jjr\S\4S	 j5       r\S\4S
 j5       r	\S\4S j5       r
\S\4S j5       r\S\4S j5       rS\SS4S jrS:S\S\SS4S jjrS;S\S\S\S\SS4
S jjrS<S\S\SS4S jjrS=S jrS>S\S\S\SS4S jjrS=S jrS\R.                  SS S!S S".S#\S$\\\-     S%\S&\S'\S-  S(\S)\S*\SS4S+ jjr   S?S#\S$\\\-     S'\S-  S,\S-  S*\SS4S- jjrS#\SS4S. jr S@S S S/.S0\S1\S2\S3\S4\SS4S5 jjjrS0\SS4S6 jrS=S7 jrS8r g)ABot   z
Bot implementation of User for AI players.

Bots don't receive UI updates (they're discarded), but they can
call game actions directly through the game's action system.
Nnamelocaleuuidc                 L    U=(       d
    [        5       U l        Xl        X l        g)z8Initialize a bot with a name, locale, and optional UUID.N)r   _uuid	_username_locale)selfr   r   r   s       4c:\Users\dbart\PlayPalace11\server\core\users\bot.py__init__Bot.__init__   s    ,]_
    returnc                     U R                   $ )zReturn the bot's UUID.)r   r   s    r   r   Bot.uuid   s     zzr   c                     U R                   $ )zReturn the bot's display name.)r   r   s    r   usernameBot.username   s     ~~r   c                     U R                   $ )zReturn the bot's locale.)r   r   s    r   r   
Bot.locale#   s     ||r   c                     g)z#Bots always report True for is_bot.T r   s    r   is_bot
Bot.is_bot(   s     r   c                     [        U SS5      $ )zReturn the bot's client type._client_type )getattrr   s    r   client_typeBot.client_type-   s     t^R00r   r)   c                     Xl         g)zSet the bot's client type.N)r&   )r   r)   s     r   set_client_typeBot.set_client_type2   s    'r   textbufferc                     g)z"No-op: bots do not receive speech.Nr"   )r   r.   r/   s      r   speak	Bot.speak8       r   volumepanpitchc                     g)zNo-op: bots do not play sounds.Nr"   )r   r   r4   r5   r6   s        r   
play_soundBot.play_sound<   r3   r   Tloopingc                     g)zNo-op: bots do not play music.Nr"   )r   r   r:   s      r   
play_musicBot.play_music@   r3   r   c                     g)zNo-op: bots do not stop music.Nr"   r   s    r   
stop_musicBot.stop_musicD   r3   r   loopintrooutroc                     g)z!No-op: bots do not play ambience.Nr"   )r   rA   rB   rC   s       r   play_ambienceBot.play_ambienceH   r3   r   c                     g)z!No-op: bots do not stop ambience.Nr"   r   s    r   stop_ambienceBot.stop_ambienceL   r3   r   Fr   )multiletterescape_behaviorpositiongrid_enabled
grid_widthplay_selection_soundmenu_iditemsrJ   rK   rL   rM   rN   rO   c                    g)z No-op: bots do not render menus.Nr"   )	r   rP   rQ   rJ   rK   rL   rM   rN   rO   s	            r   	show_menuBot.show_menuP   s     	r   selection_idc                     g)z No-op: bots do not update menus.Nr"   )r   rP   rQ   rL   rU   rO   s         r   update_menuBot.update_menu_   s     	r   c                     g)z No-op: bots do not remove menus.Nr"   )r   rP   s     r   remove_menuBot.remove_menuj   r3   r   )	multiline	read_onlyinput_idpromptdefault_valuer\   r]   c                    g)z#No-op: bots do not show edit boxes.Nr"   )r   r^   r_   r`   r\   r]   s         r   show_editboxBot.show_editboxn   s     	r   c                     g)z%No-op: bots do not remove edit boxes.Nr"   )r   r^   s     r   remove_editboxBot.remove_editboxz   r3   r   c                     g)zNo-op: bots do not clear UI.Nr"   r   s    r   clear_uiBot.clear_ui~   r3   r   )r&   r   r   r   )enN)misc)d   r   rl   )T)r   N)r'   r'   )NNF)r'   )!__name__
__module____qualname____firstlineno____doc__strr   propertyr   r   r   boolr#   r)   r,   r1   intr8   r<   r?   rE   rH   r   KEYBINDlistr   rS   rW   rZ   rb   re   rh   __static_attributes__r"   r   r   r
   r
      s   S # C$J  c   #         1S 1 1(3 (4 (# s  s C C C Z^ s T T # c s D  !*8*@*@#"%* C(N#
  ( *   # 
&  $#'%*		 C(N#	 *		
 Dj	 #	 
	3 4   	
  

 
 	
 
 
 

s t r   r
   N)	rq   typingr   baser   r   r   r   r
   r"   r   r   <module>r{      s%    -   ? ?u$ ur   