a
    ŽiVD  ã                   @   s^   d Z ddlZddlmZmZmZ ddd„Zddd	„Zdd
d„Zddd„Z	ddd„Z
g d¢ZdS )aÞ  
Family Activity Events
Family bonding and interaction activities (ages 5-100)

These events focus on relationship building with family members rather than
tracked activities. They check for family member existence, modify affinity,
and create appropriate schedules or one-time events.

Integration Approach:
- All events check for family members (get_allFamily) before triggering
- Events modify family member affinity appropriately based on player choices
- Recurring activities (game night) create schedules via scheduler()
- Planned events (vacation, photos) create oneTimeEvents with future dates
- Events that reference specific family members store IDs between question/answer phases
- Probabilities adjusted for reasonable trigger rates (1/500 to 1/800)
- Energy costs and social stat changes reflect the nature of the interaction

Events:
- familyGameNight: Weekly/monthly family game night tradition (ages 8+)
- familyVacation: Planning a family vacation with oneTimeEvent (ages 8-65)
- teachSiblingSkill: Teaching a younger sibling (ages 10-30, requires younger siblings)
- helpParentProject: Helping parent with home projects (ages 10-45, requires parents)
- familyPhoto: Professional family photo session with oneTimeEvent (ages 5+)
é    N)ÚmessageFunctionÚquestionFunctionÚanswerOptionÚmessageFc                 C   sÌ  d}ddl m} || ƒ}|| jvoT| jjdkoT| jjdkoTt|ƒdkoTdt ¡ d k}d}|d	krzg d
¢}t||| ||ƒS |d	k�rÈddl m}	m	}
 |d dk�r| jj
 |	| jdg d¢d| jj dd�¡ | j jd7  _| j jd7  _|D ]}| jd7  _qð| j d¡ n¶|d dk�r’| jj |
dd| jdddd| jj d�¡ | j jd7  _| j jd7  _|D ]}| jd7  _�qn| j d¡ n6| j jd8  _|D ]}| jd8  _�q¦| j d ¡ d!S )"z*Start a weekly family game night traditionÚfamilyGameNightr   ©Úget_allFamilyé   éd   é   éô  zHYour family suggests starting a regular game night tradition. How often?Úanswer)úYes, every week!úOnce a monthúToo busy)Ú	schedulerÚoneTimeEventÚoptionr   zFamily Game Night)ÚweeklyÚeveningÚweekendÚhomeé   )ÚlocationÚdurationé   é
   é   zvYou've started a weekly family game night tradition! Every Friday evening, the family gathers for board games and fun.r   zRIt's time for your monthly family game night! Everyone's excited to play together.ÚdaysFromNowé   é   ©Útitler   ÚdateÚdateTypeÚdateModifierÚhourr   é   é   zMYou've decided to have family game night once a month. It's a nice tradition!zFYou're too busy for family game night. Your family seems disappointed.N)Ú	functionsr   ÚaskedQuestionsÚcÚageYearsÚlenÚrandomr   r   r   Ú	schedulesÚappendÚidÚ	happinessÚsocialÚaffinityÚmessageQueueÚoneTimeEventsr#   )ÚplayerÚtyper   ÚresponseÚfnamer   ÚfamilyÚcheckÚanswerOptionsr   r   Úmember© r?   ú9/var/www/lichun.app/lichun/ws/events/activities/family.pyr      s\    

ÿ
ÿ
þý
*
ùÿr   c                 C   sJ  d}ddl m} || ƒ}|| jvo`| jjdko`| jjdko`t|ƒdko`| jjdko`dt ¡ d k}d	}|d
krštddd�tddd�ddg}t	||| ||ƒS |d
k�rFddl m
}	 |d dk�r2| jj |	dd| jdt dd¡ddd�¡ | j jd8  _| j jd7  _|D ]}
|
 jd7  _�q| j d¡ �n|d dk�r²| jj |	dd| jdt dd¡ddd�¡ | j jd8  _| j jd7  _|D ]}
|
 jd 7  _�qŽ| j d!¡ n”|d dk�r*| jj |	d"d#| jdt dd$¡dd%| jj d�¡ | j jd 7  _|D ]}
|
 jd&7  _�q| j d'¡ n| j jd 8  _| j d(¡ d)S )*z Plan a family vacation this yearÚfamilyVacationr   r   r	   éA   r   r   i   z@Your family wants to plan a vacation together. What sounds good?r   zYes, big trip!iÐ  ©Ú	moneyCostzWeekend getawayzStaycation at homezCan't afford it©r   r   zFamily VacationzXYour big family vacation has arrived! Everyone's excited for this amazing trip together.r   é   éZ   Úvacationr!   r   zlYou've planned an amazing family vacation! Everyone is excited about the trip. You'll leave in a few months.zFamily Weekend GetawayzDTime for your family weekend getaway! A nice break from the routine.r   é   r'   z\A weekend getaway with the family sounds perfect! You've booked it for a few weeks from now.zFamily StaycationzXYour family staycation week begins! Time to relax at home and enjoy quality family time.é   r   r   zgYou've planned a staycation at home. It'll be relaxing and the family will enjoy quality time together.z7You can't afford a vacation right now. Maybe next year.N)r)   r   r*   r+   r,   r-   Úmoneyr.   r   r   r   r6   r0   r#   Úrandintr2   r4   r5   r1   ©r7   r8   r   r9   r:   r   r;   r<   r=   r   r>   r?   r?   r@   rA   a   s˜    

ÿ
ÿ
þ
ýü

ü

ùÿ
ùÿ

ùÿrA   c                 C   s(  d}g }| j D ]&}d|jv r|j| jjk r| |¡ q|| jvo~| jjdko~| jjdko~t|ƒdko~| jjdko~dt ¡ d k}|sˆdS t 	|¡}|d	kr¢|j
| _d
|j› d�}|d	kràtddd�ddg}	t||| ||	|gd�S |d	k�r$ddlm}
 |
| t| ddƒƒ}|�s|�rt 	|¡}|�r|d dk�rˆ| j jd8  _| j jd7  _| j jd7  _| jd7  _| j d|j› d�¡ n†|d dk�rÜ| j jd7  _| j jd7  _| jd7  _| j d|j› d�¡ n2| j jd8  _| jd8  _| j |j› d�¡ t| dƒ�r$t| dƒ dS )z6Your younger sibling wants you to teach them somethingÚteachSiblingSkillÚsiblingr   rF   r   r   éX  Nr   zYour younger sibling z) wants you to teach them something. Help?zYes, spend time teaching!©Ú
energyCostzQuick lesson onlyr   ©Ú
characters©Ú
get_personÚ_temp_sibling_idr   r   r   z You spent quality time teaching z/. They really appreciated it and learned a lot!r(   z	You gave z, a quick lesson. They learned something new!r'   z6 seems disappointed that you're too busy to help them.)ÚrÚrelationshipsr,   r+   r0   r*   r-   Úenergyr.   Úchoicer1   rW   Ú	firstnamer   r   r)   rV   Úgetattrr2   r3   r4   r5   ÚhasattrÚdelattr)r7   r8   r   r9   r:   Zyounger_siblingsÚpersonr<   rO   r=   rV   r?   r?   r@   rN   ¿   sd    


ÿ
ÿ
þ
ýü

ý

rN   c                 C   s‚  d}ddl m} || dƒp"|| dƒ}|| jvoh| jjdkoh| jjdkoh|duoh| jjdkohd	t ¡ d
 k}|srdS |dkr‚|j| _d}d|j	v r–d}nd|j	v r¤d}g d¢}	t 
|	¡}
d|› d|
› d�}|dk�rtddd�tddd�dg}t||| |||gd�S |dk�r~ddl m} || t| ddƒƒ}|�sF|| dƒ�pD|| dƒ}|�rhd}d|j	v �rbd}nd|j	v �rrd}|d dk�rÔ| j jd8  _| j jd7  _| j jd7  _| jd7  _| j d|› d�¡ n”|d dk�r6| j jd8  _| j jd7  _| j jd7  _| jd7  _| j d|› d�¡ n2| j jd8  _| jd8  _| j d|› d �¡ t| dƒ�r~t| dƒ dS )!z*Your parent needs help with a home projectÚhelpParentProjectr   )Úget_relationshipÚmotherÚfatherr   é-   Nr   rP   r   Úparent)Ú	gardeningzpainting the housezfixing the fencezorganizing the garagezremodeling the kitchenzYour z needs help with z. Want to assist?zYes, help all day!r   rQ   zHelp for a bitr   rS   rU   Ú_temp_parent_idr   r'   r   zYou helped your zF all day with the project. They're grateful and you feel accomplished!r(   z- for a while. They appreciate the assistance!z) is disappointed you're too busy to help.)r)   rb   r*   r+   r,   rZ   r.   r1   rh   rY   r[   r   r   rV   r]   r2   r3   r4   r5   r0   r^   r_   )r7   r8   r   r9   r:   rb   rf   r<   Zparent_titleZprojectsÚprojectr=   rV   r?   r?   r@   ra     sx    

ÿ
ÿþ
ýü





ý
ra   c                 C   sø  d}ddl m} || ƒ}|| jvo`| jjdko`| jjdko`t|ƒdko`| jjdko`dt ¡ d k}d	}|d
kr˜tddd�tddd�dg}t	||| ||ƒS |d
k�rôddl m
}	 |d dk�r>| jj |	dd| jdt dd¡ddd�¡ | j jd8  _| j jd7  _| j jd7  _|D ]}
|
 jd7  _�q| j d¡ n¶|d dk�r¾| jj |	dd| jdt dd¡ddd�¡ | j jd8  _| j jd7  _|D ]}
|
 jd7  _�qš| j d¡ n6| j jd8  _|D ]}
|
 jd8  _�qÒ| j d¡ d S )!z(Family wants to take professional photosÚfamilyPhotor   r   r(   r
   é2   r   i¼  zPYour family wants to schedule a professional photo session together. Are you in?r   zYes, sounds fun!rC   zOkay, if I have toZRefuserE   r   zFamily Photo Sessionz\Today is the family photo session! Time to smile for the camera and create lasting memories.r   r   rI   rJ   Zphotography_studior!   r'   zdYou're excited for the family photo session! It's scheduled for a few weeks from now. Should be fun!zIToday is the family photo session. Time to put on a smile for the camera.zXYou agreed to participate in the family photos. It's scheduled for a few weeks from now.r   r   zPYou refused to participate in family photos. Your family is really disappointed.N)r)   r   r*   r+   r,   r-   rK   r.   r   r   r   r6   r0   r#   rL   r2   r3   r4   r5   rM   r?   r?   r@   rj   R  s|    

ÿ
ÿ
þ
ýü

ý

ùÿ
ùÿrj   )r   rA   rN   ra   rj   )r   FF)r   FF)r   FF)r   FF)r   FF)Ú__doc__r.   Zevents.baser   r   r   r   rA   rN   ra   rj   Ú__all__r?   r?   r?   r@   Ú<module>   s   
C
^
C
P
O