
    Ii                    :    S r SSKJr  SSKJr   " S S5      rS/rg)z-Shared helpers for common action guard logic.    )annotations   )
Visibilityc                  d    \ rS rSrSrSS jrSSS.     SS jjrSSSS.       SS	 jjrS
rg)ActionGuardMixin   z/Provides reusable guard logic for turn actions.c                (    [        U SS5      S:w  a  gg)z<Return standard error code if game is not currently playing.statusNplayingzaction-not-playing)getattr)selfs    Cc:\Users\dbart\PlayPalace11\server\game_utils\action_guard_mixin.pyguard_game_active"ActionGuardMixin.guard_game_active   s    44(I5'    FTallow_spectatorsrequire_current_playerc                   U R                  5       nU(       a  U$ U(       d  [        USS5      (       a  gU(       a  [        U SS5      U:w  a  gg)z@Common rules for checking if a player can perform a turn action.is_spectatorFzaction-spectatorcurrent_playerNzaction-not-your-turn)r   r   )r   playerr   r   errors        r   guard_turn_action_enabled*ActionGuardMixin.guard_turn_action_enabled   sH     &&(LGFNE$J$J%!gd4Dd&Kv&U)r   )r   r   extra_conditionc               x    U R                  UUUS9nUc  U(       a  [        R                  $ [        R                  $ )zCReturn Visibility for a turn action with optional extra conditions.r   )r   r   VISIBLEHIDDEN)r   r   r   r   r   r   s         r   turn_action_visibility'ActionGuardMixin.turn_action_visibility"   sC     ..-#9 / 

 =_%%%   r    N)return
str | None)r   boolr   r%   r#   r$   )r   r%   r   r%   r   r%   r#   r   )	__name__
__module____qualname____firstlineno____doc__r   r   r    __static_attributes__r"   r   r   r   r      sr    9 "''+ 	
 !% 
* "''+ $! 	!
 !%! ! 
! !r   r   N)r*   
__future__r   actionsr   r   __all__r"   r   r   <module>r/      s#    3 " *! *!Z 
r   