a
    ¤´,eœ#  ã                   @   sd   d dl Z d dlmZmZmZmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZmZmZ dd„ ZdS )é    N)ÚgetOccupationsÚ
get_personÚgetPeakEnergyÚplayerClass©ÚconversationInit)ÚmessageFunction)Ú
sendToUserÚsendDictÚsendUserInfoÚsendEventMessagec                 Ã   sØ  | st dƒ dS | �rÔt| tƒr*|  d¡} t d|  ƒ t | ¡}||j }|d dkrxt||ƒI d H  t dƒ d|_�n\|d d	kr–t d
ƒ d|_�n>|d dkrît dƒ d}t	ƒ }t
ƒ |_|j|_|||j< t||j |ƒI d H  d|_�næ|d dk�r*ddlm} |||d ƒ t||ƒI d H  �nª|d dk�r˜t||d ƒ}ddlm} ddlm} |||ƒ|_||ƒ|_t|tj|jdd„ d�ƒI d H  �n<|d dk�r|d }|j|_d|_ddlm}	 d}
||j }|jjdk�rø|j jd8  _t|jƒ t |d|j!dœƒI d H  t |d ƒ |d d k�rPt d!ƒ |	||d" |d# d$�}
n€|d d%k�ržt d%ƒ |	||d" |d# |d% d&�}
t |
j"ƒ t |
j#d' j$ƒ n2|d d(k�rÐt d(ƒ |	||d" |d# |d% d&�}
|
�rt|tj|
jd)d„ d�ƒI d H  n|j% &d*¡ �nÌ|d d+k�rg d,¢}|j}||_|d d-k�r~||v �rä| '|¡}|d. }|dk�rät d/t(|| ƒ ƒ || |_nf|d d0k�rÖ||v �rä| '|¡}|d. }|t)|ƒk �rät d/t(|| ƒ ƒ || |_nt*|d ƒ|_t t(|jƒd1 t(|jƒ ƒ t |d|jd2œƒI d H  �n¸|d d3k�rfdd4lm+} |||d d5 |d d6 ƒ t||ƒI d H  �nn|d d7k�s‚|d d8k�ràdd9lm,}m-} |d d7k�r°|||d ƒ n|d d8k�rÌ|||d ƒ t||ƒI d H  �nô|d d:k�rdd;lm.} |||d ƒ t||ƒI d H  �n¸|d d<k�rXdd=lm/} |||d ƒ t||ƒI d H  �n||d d>k�rr|j|_�nb|d d?k�râ|j0j1 &d@¡ dA|j0_2|j% &dB|j0j3 dC |j0j4 dD ¡ |j0 j5dE7  _5|j6 &|j0¡ d|_0�nò|d dFk�r’ddGlm7} dH}|d dHk�rdI}|||dJdKdL�}dM}t8dN|jj9| ƒ}|jj9| }t: ;||¡}||_9||_0t dO|j3 dC |j4 ƒ t ||d |dPœƒI d H  �nBd|dQ< dR|d v �rÔ|d  <dR¡d. |dQ< |d  <dR¡d |d< d|v �rPt|d t=ƒ�rP|d } dS| v �r|j j| dS 8  _dT| v �r2|j j>| dT 8  _>dU| v �rP|j j?| dU 8  _?t@|d dV ƒ d|_|j|_|jA &|d ¡ |j%�rÔt)|j%ƒdk�rÔ|j% Bd¡|_$t dW|j$ ƒ tC|tDdX|j$|dƒƒI d H  dY|_$dS )ZNz
no messageFzutf-8ZreceivedÚmessageÚstopzstopped!ÚinactiveÚstartzstarted!ÚactiveZrestartzrestart!TÚtypeÚcharacterSetupr   )r   ZretrievePerson)ÚparseConversations)ÚgetPersonDescriptionc                 S   s   | j S ©N©Ú__dict__©Úo© r   ú$/var/www/lichun.app/lichun/ws/api.pyÚ<lambda>.   ó    zconsumer.<locals>.<lambda>)ÚdefaultÚconversationéˆ  r   é
   Úu)r   Ú
calcEnergyÚconversationEventÚinitzinit conversationZcharacterIDÚcType)ÚplayerÚ	characterr'   Úresponse)r(   r)   r'   r*   éÿÿÿÿZfreeResponsec                 S   s   | j S r   r   r   r   r   r   r   H   r   z/You don't have enough energy to talk right now.Úspeed)r!   iè  iô  é2   é   é   Ú-r/   zsetting speed to ú+z -> )r   Ú	gameSpeedZfocusUpdate)Úupdate_focusZ
activityIdZnewFocusÚ	quitHabitÚstopQuitHabit)r4   r5   ÚpurchaseItem)r6   ÚpurchaseInAppItem)r7   Z
resetSpeedZ
swipeMatchÚdating_matchzDating MatchzYou matched with Ú ú!é(   ZgetSwipeCharacter)Úcreate_characterÚFemaleÚMaleÚrandom_adultsÚnone)ÚageÚrelationshipé   é   zsending character: )r   ÚswipeCharacterÚkeyz---Ú
energyCostÚ	moneyCostÚdiamondCostz/(player,'answer',event['key'],event['message'])zsending message from queue ZanswerQueueÚ )EÚprintÚ
isinstanceÚbytesÚdecodeÚjsonÚloadsÚuserIDr   Ú
controllerr   r   ÚoccupationsÚidÚupdateClientÚ	functionsr   r   ÚconversationEventsr   r   ÚavailableConversationsÚdescriptionr	   Údumpsr   r2   ÚpreviousGameSpeedr   Úcr$   Úenergyr   r
   ÚminuteOfHourr   r    r   ÚmessageQueueÚappendÚindexÚstrÚlenÚintr3   r4   r5   r6   r7   rE   ÚrelationshipsÚtitleÚ	firstnameÚlastnameÚaffinityÚrr<   ÚmaxÚageYearsÚrandomÚrandintÚsplitÚdictÚmoneyÚdiamondsÚevalÚaskedQuestionsÚpopr   r   )r   Ú	websocketÚplayerRecordsÚeventr(   r   Úpersonr   r   r   ÚconvZplayerRecordZbuttonSpeedValuesr,   Zcurrent_indexZ
next_indexr3   r4   r5   r6   r7   r<   Úsexr)   Zage_range_widthZlower_boundZupper_boundZ
random_ager   r   r   Úconsumer   s&   








$


"




$



r|   )rm   rV   r   r   r   r   rO   rW   r   r   Úappr	   r
   r   r   r|   r   r   r   r   Ú<module>   s   