
    sojO                         d dl mZ d dlmZ d dlmZ  G d de          Z eej        dej        dej	        dej
        d	ej        d
ej        dej        dej        dej        dej        dej        di          ZdS )    )IntEnum)LazyPhraseDict)Emojic                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZeded          fd            ZdefdZdefdZdedd fdZd Zd ZdS )
GameStatusz(
    Enum for the status of a game.
    r                           	   returnc                  ^    t           j        t           j        t           j        t           j        gS )zS
        Get the finished statuses.
        :return: The finished statuses
        )r   WONLOSTDRAW
FORCED_END     "/app/src/model/enums/GameStatus.pyget_finishedzGameStatus.get_finished   s     
*BWXXr   c                 8    | t                                           v S )ze
        Check if the status is finished.
        :return: True if finished, False otherwise
        )r   r   selfs    r   is_finishedzGameStatus.is_finished    s    
 z..0000r   c                 "   | t           j        t           j        fv rt          j        S | t           j        t           j        fv rt          j        S | t           j        k    rt          j	        S | t           j
        k    rt          j        S t          j        S )zG
        Get the emoji for the log.
        :return: The emoji
        )r   r   WINNINGr   LOG_POSITIVEr   LOSINGLOG_NEGATIVEr   LOG_DRAWr   LOG_FORCED_ENDLOG_NEUTRALr   s    r   get_log_emojizGameStatus.get_log_emoji'   su    
 JNJ$6777%%joz'8999%%Z_$$>!Z***''  r   user_is_challengerc                 ~    |r| S | t           j        k    rt           j        S | t           j        k    rt           j        S | S )z
        Get the status by the challenger.
        :param user_is_challenger: True if user is challenger, False otherwise
        :return: The status
        )r   r   r   )r   r)   s     r   get_status_by_challengerz#GameStatus.get_status_by_challenger7   s@      	"KZ^##?"Z_$$>!r   c                     | t           j        k    rt           j        S | t           j        k    rt           j        S t          dt	          |           z             )zO
        Get the opposite status.
        :return: The opposite status
        zStatus with no opposite: )r   r   r   
ValueErrorstrr   s    r   get_opposite_statuszGameStatus.get_opposite_statusG   sH     :>!!?"Z_$$>!4s4yy@AAAr   c                 6    | t           j        t           j        fv S )zs
        Check if no wager was collected.
        :return: True if no wager was collected, False otherwise
        )r   AWAITING_SELECTIONAWAITING_OPPONENT_CONFIRMATIONr   s    r   no_wager_was_collectedz!GameStatus.no_wager_was_collectedT   s     
5z7`aaar   N)__name__
__module____qualname____doc__NDIN_PROGRESSr   r   r   r1   r2   r   COUNTDOWN_TO_STARTr!   r#   staticmethodlistr   boolr   r.   r(   r+   r/   r3   r   r   r   r   r      s         
BK
CDD%&"JGFY$|, Y Y Y \Y1T 1 1 1 1!s ! ! ! ! 4 L     B B Bb b b b br   r   GAME_STATUS_NDGAME_STATUS_IN_PROGRESSGAME_STATUS_WONGAME_STATUS_LOSTGAME_STATUS_DRAWGAME_STATUS_AWAITING_SELECTION*GAME_STATUS_AWAITING_OPPONENT_CONFIRMATIONGAME_STATUS_FORCED_ENDGAME_STATUS_COUNTDOWN_TO_STARTGAME_STATUS_WINNINGGAME_STATUS_LOSINGN)enumr   src.utils.LazyPhraseDictr   src.model.enums.Emojir   r   r8   r9   r   r   r   r1   r2   r   r:   r!   r#   GAME_STATUS_DESCRIPTIONSr   r   r   <module>rM      s          3 3 3 3 3 3 ' ' ' ' ' 'Sb Sb Sb Sb Sb Sb Sb Sbl *>' 9)++%'G13_7%'G1/	    r   