§
    û»»j‘  ã                   ó\   — d Z ddlZddlmZmZmZ ddlmZmZ ddl	m
Z
  G d„ d¦  «        ZdS )am  
Integration Test Suite for Beggar's Journey through Quest and Storyline Systems.
Simulates a player progressing from Level 1 beggar to Level 60+ endgame sovereign:
1. Act I (Lvl 1-5): The Dregs of Hunger -> Defeating Bone Hounds, awakening bloodline.
2. Act II (Lvl 8-10): The Putrid Humiliation -> Surviving swamps and ghost thralls.
3. Act III (Lvl 15-30): Sandstorm Crucible -> Conquering the Dune Scorpion, crafting bone weapons.
4. Act IV (Lvl 40-50): Primal Titan Hunts -> Breaking keystones, cloning with Blood Mirror.
5. Act V (Lvl 60+): Sovereign of Deadlands -> Conquering the void lord, claiming Milestone V.
é    N)Úcreate_default_quest_engineÚQuestStatusÚQuestEngine)ÚStoryActÚBeggarAscentStage)ÚStorylineEnginec                   ó¤   — e Zd Zej        deeef         fd„¦   «         Zdeeef         ddfd„Z	deeef         ddfd„Z
deeef         ddfd„ZdS )ÚTestBeggarQuestProgressionÚreturnc                 óZ   — t          d¬¦  «        }|                     ¦   «         }|€J ‚||fS )NT)Úattach_storyline)r   Úget_story_engine)ÚselfÚq_engineÚs_engines      úAC:\Projects\FreeExile\tests\unit\test_beggar_quest_progression.pyÚenginesz"TestBeggarQuestProgression.engines   s:   € å.ÀÐEÑEÔEˆØ×,Ò,Ñ.Ô.ˆØÐ#Ð#Ð#Ø˜Ð!Ð!ó    r   Nc                 ó  — |\  }}d}|                      |dd¬¦  «        sJ ‚|                     |d¦  «        }|j        t          j        k    sJ ‚|                     |dd¬¦  «         |                     |d¦  «        }|j        t          j        k    sJ ‚|                     |d¦  «        \  }}}|du sJ ‚|€J ‚|                     |¦  «        }	|	j	        t          j        k    sJ ‚|	j        t          j        k    sJ ‚d	|	j        v sJ ‚d S )
NÚbeggar_hero_01Ú!quest_norm_01_thuc_tinh_tang_kiemé   ©Úplayer_levelÚmob_trash_bone_houndé   ©ÚcountTÚjournal_01_chiec_bat_vo)Úaccept_questÚget_player_questÚstatusr   ÚIN_PROGRESSÚrecord_killÚ	COMPLETEDÚclaim_quest_rewardÚget_player_story_stateÚcurrent_actr   ÚACT_I_HUNGERÚcurrent_stager   Ú	MENDICANTÚunlocked_journal_ids)
r   r   r   r   Ú	player_idÚquestÚsuccessÚrewardÚ_Ústory_states
             r   Útest_act1_hunger_survivalz4TestBeggarQuestProgression.test_act1_hunger_survival    s@  € Ø$Ñˆ�(Ø$ˆ	ð ×$Ò$ YÐ0SÐbcÐ$ÑdÔdÐdÐdÐdØ×)Ò)¨)Ð5XÑYÔYˆØŒ|�{Ô6Ò6Ð6Ð6Ð6ð 	×Ò˜YÐ(>ÀaÐÑHÔHÐHØ×)Ò)¨)Ð5XÑYÔYˆØŒ|�{Ô4Ò4Ð4Ð4Ð4ð &×8Ò8¸ÐDgÑhÔhÑˆ�˜Ø˜$ˆˆˆˆØÐ!Ð!Ð!à×5Ò5°iÑ@Ô@ˆØÔ&­(Ô*?Ò?Ð?Ð?Ð?ØÔ(Õ,=Ô,GÒGÐGÐGÐGØ(¨KÔ,LÐLÐLÐLÐLÐLÐLr   c                 óú  — |\  }}d}|                      |dd¬¦  «         |                     |dd¬¦  «         |                     |d¦  «         |                      |dd	¬¦  «         |                     |d
¦  «         |                     |d¦  «         |                      |dd¬¦  «         |                     |dd¬¦  «         |                     |d¦  «         |                      |dd¬¦  «        sJ ‚|                     |dd¬¦  «         |                     |d¦  «         |                     |¦  «        }|j        t          j        k    sJ ‚|j	        t          j        k    sJ ‚|j        dk    sJ ‚d|j        v sJ ‚d S )NÚbeggar_hero_02r   r   r   r   r   r   Ú!quest_norm_02_khai_thong_dan_diené   Úmeridian_origin_dantianÚ!quest_norm_03_luyen_khi_hoa_thachÚcurrency_primal_chaos_stoneÚ quest_norm_04_diet_u_hon_kiem_noé   Úmob_trash_ghost_sword_thrallé
   u   Káº» MÃ³t XÆ°Æ¡ng BÃ¹n Ä�á»™cÚjournal_04_bun_ngap_ngang_nguc)r    r$   r&   Úrecord_meridian_unlockÚrecord_craftr'   r(   r   ÚACT_II_MIASMAr*   r   Ú	SCAVENGERÚreputation_titler,   ©r   r   r   r   r-   r2   s         r   Ú"test_act2_swamp_miasma_progressionz=TestBeggarQuestProgression.test_act2_swamp_miasma_progression8   sÇ  € Ø$Ñˆ�(Ø$ˆ	ð 	×Ò˜iÐ)LÐ[\ÐÑ]Ô]Ð]Ø×Ò˜YÐ(>ÀaÐÑHÔHÐHØ×#Ò# IÐ/RÑSÔSÐSà×Ò˜iÐ)LÐ[\ÐÑ]Ô]Ð]Ø×'Ò'¨	Ð3LÑMÔMÐMØ×#Ò# IÐ/RÑSÔSÐSà×Ò˜iÐ)LÐ[\ÐÑ]Ô]Ð]Ø×Ò˜iÐ)FÈaÐÑPÔPÐPØ×#Ò# IÐ/RÑSÔSÐSð ×$Ò$ YÐ0RÐabÐ$ÑcÔcÐcÐcÐcØ×Ò˜YÐ(FÈbÐÑQÔQÐQØ×#Ò# IÐ/QÑRÔRÐRà×5Ò5°iÑ@Ô@ˆØÔ&­(Ô*@Ò@Ð@Ð@Ð@ØÔ(Õ,=Ô,GÒGÐGÐGÐGØÔ+Ð/NÒNÐNÐNÐNØ/°;Ô3SÐSÐSÐSÐSÐSÐSr   c                 óˆ  — |\  }}d}|                      |dd¬¦  «         |                     |dd¬¦  «         |                     |d¦  «         |                      |dd	¬¦  «         |                     |d
¦  «         |                     |d¦  «         |                      |dd¬¦  «         |                     |dd¬¦  «         |                     |d¦  «         |                      |dd¬¦  «         |                     |dd¬¦  «         |                     |d¦  «         |                      |dd¬¦  «         |                     |dd¬¦  «         |                     |d¦  «         |                      |dd¬¦  «        sJ ‚|                     |dd¬¦  «         |                     |dd¬¦  «         |                     |d¦  «         |                     |¦  «        }|j        t          j	        k    sJ ‚|                      |dd¬¦  «        sJ ‚|                     |d¦  «         |                     |d¦  «         |                     |¦  «        }|j        t          j
        k    sJ ‚|                      |dd¬¦  «        sJ ‚|                     |dd¬¦  «         |                     |d¦  «         |                      |dd¬¦  «        sJ ‚|                     |dd¬¦  «         |                     |d¦  «         |                     |¦  «        }|j        t          j        k    sJ ‚|j        t          j        k    sJ ‚|j        d k    sJ ‚d S )!NÚbeggar_hero_03r   r   r   r   r   r   r6   r7   r8   r9   r:   r;   r<   r=   r>   Ú"quest_norm_05_khai_mo_van_gioi_cacÚaction_vault_instant_buyoutÚquest_epic_01_phong_ma_co_trané   Úboss_black_dragon_demonÚcraft_rare_gearÚ#quest_epic_02_nghich_menh_dai_huyeté(   Úmeridian_keystone_unbreakableÚ$quest_epic_03_luyen_che_thai_hu_kinhé2   Úaction_mirror_artifact_cloneÚ'quest_epic_04_van_gioi_than_ma_tranh_baé<   Úboss_flame_demon_lordu#   BÃ¡ Chá»§ Tá»‘i Cao CÃµi LÆ°u Ä�Ã y)r    r$   r&   r@   rA   Úrecord_actionr'   r*   r   ÚBONE_WARRIORÚPRIMAL_HUNTERr(   r   ÚACT_V_SOVEREIGNÚSOVEREIGN_OUTCASTrD   rE   s         r   Ú*test_full_progression_to_sovereign_outcastzETestBeggarQuestProgression.test_full_progression_to_sovereign_outcastT   sÑ  € Ø$Ñˆ�(Ø$ˆ	ð 	×Ò˜iÐ)LÐ[\ÐÑ]Ô]Ð]Ø×Ò˜YÐ(>ÀaÐÑHÔHÐHØ×#Ò# IÐ/RÑSÔSÐSð 	×Ò˜iÐ)LÐ[\ÐÑ]Ô]Ð]Ø×'Ò'¨	Ð3LÑMÔMÐMØ×#Ò# IÐ/RÑSÔSÐSð 	×Ò˜iÐ)LÐ[\ÐÑ]Ô]Ð]Ø×Ò˜iÐ)FÈaÐÑPÔPÐPØ×#Ò# IÐ/RÑSÔSÐSð 	×Ò˜iÐ)KÐZ[ÐÑ\Ô\Ð\Ø×Ò˜YÐ(FÈbÐÑQÔQÐQØ×#Ò# IÐ/QÑRÔRÐRð 	×Ò˜iÐ)MÐ\^ÐÑ_Ô_Ð_Ø×Ò˜yÐ*GÈqÐÑQÔQÐQØ×#Ò# IÐ/SÑTÔTÐTð ×$Ò$ YÐ0PÐ_aÐ$ÑbÔbÐbÐbÐbØ×Ò˜YÐ(AÈÐÑKÔKÐKØ×Ò˜iÐ):À!ÐÑDÔDÐDØ×#Ò# IÐ/OÑPÔPÐPà×5Ò5°iÑ@Ô@ˆØÔ(Õ,=Ô,JÒJÐJÐJÐJð ×$Ò$ YÐ0UÐdfÐ$ÑgÔgÐgÐgÐgØ×'Ò'¨	Ð3RÑSÔSÐSØ×#Ò# IÐ/TÑUÔUÐUà×5Ò5°iÑ@Ô@ˆØÔ(Õ,=Ô,KÒKÐKÐKÐKð ×$Ò$ YÐ0VÐegÐ$ÑhÔhÐhÐhÐhØ×Ò˜yÐ*HÐPQÐÑRÔRÐRØ×#Ò# IÐ/UÑVÔVÐVà×$Ò$ YÐ0YÐhjÐ$ÑkÔkÐkÐkÐkØ×Ò˜YÐ(?ÀqÐÑIÔIÐIØ×#Ò# IÐ/XÑYÔYÐYð ×5Ò5°iÑ@Ô@ˆØÔ&­(Ô*BÒBÐBÐBÐBØÔ(Õ,=Ô,OÒOÐOÐOÐOØÔ+Ð/TÒTÐTÐTÐTÐTÐTr   )Ú__name__Ú
__module__Ú__qualname__ÚpytestÚfixtureÚtupler   r   r   r3   rF   r]   © r   r   r
   r
      sá   € € € € € Ø„^ð"˜˜{¨OÐ;Ô<ð "ð "ð "ñ „^ð"ðM°°{ÀOÐ7SÔ1Tð MÐY]ð Mð Mð Mð Mð0T¸%ÀÈ_Ð@\Ô:]ð TÐbfð Tð Tð Tð Tð8;UÀ%ÈÐUdÐHdÔBeð ;UÐjnð ;Uð ;Uð ;Uð ;Uð ;Uð ;Ur   r
   )Ú__doc__ra   Úserver.world.quest_enginer   r   r   Úserver.world.storyline_typesr   r   Úserver.world.storyline_enginer   r
   rd   r   r   ú<module>ri      sÎ   ððð ð €€€ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9ðwUð wUð wUð wUð wUñ wUô wUð wUð wUð wUr   