§
    >¿jn  ã                  ó  — U d Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZ dZded<   d9d„Zi Zded<   i Zded<   i Zded<   i Zded<   i Zded<   i Zded<   eD �]\  ZZZZZZ\  ZZZ Z!Z"Z#\  Z$Z%Z&Z'Z( e
eee e!e"¬¦  «        Z) ee"de#¬¦  «        Z* ee$e%¬¦  «        Z+ e,de$z  d¦  «        Z- e	eeeeeee› de› d e› d!�e)e*e+e-d"e .                    ¦   «         › �e'e&¬#¦  «        Z/e/ee<   e/ee<   e&r
eee&<   e&ee<    eee)¦  «        ee<   g Z0d$ed%<   e(D ]G\  Z1Z2Z3Z4Z5e0 6                     eee1e2e3e4e5e1d"e .                    ¦   «         › d&e1› d'�¬(¦  «        ¦  «         ŒHe0ee<   �Œd:d*„Z7d;d-„Z8d:d.„Z9d;d/„Z:d<d1„Z;d=d3„Z<d>d5„Z=d?d6„Z>d@d7„Z?d8S )AuÉ   
Canonical Map Style Catalog for FreeExile.
Defines all 30 Dark Fantasy Cá»• VÃµ Hoang Vá»±c biomes across 6 thematic categories,
providing bidirectional legacy biome mappings and lookup dictionaries.
é    )Úannotations)ÚDictÚListÚOptionalÚTuple)ÚMapStyleDefinitionÚMapStylePaletteÚMapStyleLightingÚMapStyleHazardÚMapStyleTileMappingÚMapStylePropDefinition))ÚSTY_01_HOANG_MANG_CO_LOé   u   Hoang MÃ£ng Cá»• Lá»™zAncient Savage TrailÚHOANG_DA_DA_NGOAIõ   Hoang DÃ£ DÃ£ Ngoáº¡i)z#3d3730z#262320z#584e42z#2a2d24z#2a2620ç      Ð?©ç      ð?r   NÚ feral_scavengers_and_wild_hounds))Úprop_broken_beast_bonesu   XÆ°Æ¡ng thÃº hoang gÃ£y vá»¥nzBroken Beast BonesÚ
FLOOR_EDGEçffffffÖ?)Úprop_ragged_flag_poleu   Cá»�c gá»— cáº¯m cá»� rÃ¡chzRagged Flag PoleÚWALL_ADJACENTçš™™™™™É?)Úprop_chipped_boulderu   Ä�Ã¡ táº£ng sá»©t máº»zChipped BoulderÚ	ANY_FLOORr   )ÚSTY_02_HUYET_SAT_LAMé   u   Huyáº¿t SÃ¡t LÃ¢mzBloodthorn Thicketr   r   )z#3a1d20z#241012z#54282bz#631218z#3b0d11çš™™™™™Ù?©ç333333ó?é   ÚCRIMSON_BLOOD_FORESTÚferal_hounds_and_thorn_horrors))Úprop_bloodthorn_spikesu   Gai huyáº¿t thá»¥ tua tá»§azBloodthorn Spikesr   r    )Úprop_impaled_skullsu   Sá»� thÃº ghim cÃ nh cÃ¢yzImpaled Beast Skullsr   r   )Úprop_broken_sacrificial_potu   VÃ² gá»‘m hiáº¿n táº¿ vá»¡zBroken Sacrificial PotÚDEAD_ENDç333333Ã?)ÚSTY_03_BO_DA_TAN_XUONGé   u   Bá»� Ä�Ã¡ TÃ n XÆ°Æ¡ngzShattered Bone Strandr   r   )z#323538z#1f2124z#464b50z#0e1d28z#1c2630r   r   NÚ%strand_scavengers_and_drowned_corpses))Úprop_shipwreck_debrisu   XÃ¡c tÃ u Ä‘áº¯m vá»¡ vá»¥nzShipwreck Debrisr   ç333333Ó?)Úprop_rusted_anchor_stakeu   Cá»�c neo sáº¯t rá»‰zRusted Anchor StakeÚ	PATH_SIDEr   )Úprop_driftwood_remnantsu   Máº£nh gá»— dáº¡t bá»�zDriftwood Remnantsr   r   )ÚSTY_04_HOANG_GIOI_CUONG_THUé   u   Hoang Giá»›i Cuá»“ng ThÃºzFeral Beast Steppesr   r   )z#383325z#282218z#4f4732z#2b281az#2d271er   ©çš™™™™™ñ?r   NÚferal_boars_and_horned_beasts))Úprop_rusted_beast_trapu    Báº«y gáº­p rÄƒng thÃº rá»‰ sÃ©tzRusted Beast Trapr   r   )Úprop_giant_hunter_skullu!   Khung sá»� thÃº sÄƒn khá»•ng lá»“zGiant Hunter Skullr)   r   )Úprop_leather_stretched_poleu   Cá»�c gá»— cÄƒng da thÃºzLeather Stretched Poler   r/   )ÚSTY_05_KHAI_XUONG_CO_CANé	   u   Khai XÆ°Æ¡ng Cá»• Cáº¡nzDried Skeletal Basinr   r   )z#45413bz#2d2a26z#5e574fz#4a452az#383228r*   r   NÚ%desiccated_crawlers_and_bone_vultures))Úprop_ancient_fish_skeletonu)   Khung xÆ°Æ¡ng cÃ¡ cá»• Ä‘áº¡i lá»™ thiÃªnzAncient Fish Skeletonr   r   )Úprop_charred_dry_treeu   CÃ¢y khÃ´ chÃ¡y xÃ©mzCharred Dry Treer   r   )Úprop_collapsed_ground_hollowu   Há»‘c Ä‘áº¥t sáº¡t lá»ŸzCollapsed Ground Hollowr   r   )ÚSTY_06_BAI_THA_MA_NGAP_MANé   u   BÃ£i Tha Ma Ngáº­p Máº·nzSavage Mangrove SwampÚDAM_LAY_DOC_CHUONGõ   Ä�áº§m Láº§y Ä�á»™c ChÆ°á»›ng)z#243324z#152015z#3d4d33z#132415z#1a2e1dçÍÌÌÌÌÌÜ?)ç      ø?é
   ÚSAVAGE_MANGROVE_SWAMPÚ swamp_crawlers_and_blood_leeches))Úprop_mangrove_roots_bonesu+   Rá»… Ä‘Æ°á»›c cháº±ng chá»‹t quáº¥n xÆ°Æ¡ngzMangrove Roots Wrapping Bonesr   rE   )Úprop_submerged_iron_cageu   Lá»“ng sáº¯t dÃ¬m tÃ¹ nhÃ¢nzSubmerged Iron Cager)   r*   )Úprop_rotting_driftwoodu   XÃ¡c má»™c má»¥c rá»¯azRotting Driftwoodr   r/   )ÚSTY_07_DAM_LAY_THOI_RUArG   u   Ä�áº§m Láº§y Thá»‘i Rá»¯azPutrid Rotting FensrC   rD   )z#1f2e1bz#141f11z#34472cz#0f170ez#162413g      à?)gš™™™™™ù?é   NÚ putrid_corpses_and_swamp_leeches))Úprop_toxic_biolum_mushroomsu$   Cá»¥m náº¥m Ä‘á»™c phÃ¡t quang xá»‰nzToxic Bioluminescent Mushroomsr   r   )Úprop_mossy_moldy_stakeu   Cá»�c má»‘c rÃªu má»¥czMossy Moldy Staker1   r   )Úprop_broken_mud_chestu   HÃ²m ngÃ¢m bÃ¹n ná»©t vá»¡zBroken Mud Chestr)   r*   )ÚSTY_08_VUC_DAM_BANG_DOCé   u   Vá»±c Ä�áº§m BÄƒng Ä�á»™czAbyssal Bile MirerC   rD   )z#202e2bz#14201ez#354a45z#0e211ez#182926çR¸…ëQØ?)çffffffö?r4   NÚ$bile_serpents_and_frost_abominations))Úprop_frozen_poison_crystalsu   Tinh thá»ƒ Ä‘á»™c Ä‘Ã³ng bÄƒngzFrozen Poison Crystalsr   r/   )Úprop_frozen_beast_carcassu!   Táº£ng bÄƒng Æ°á»›p xÃ¡c dÃ£ thÃºzFrozen Beast Carcassr)   r   )Úprop_jade_frost_spikesu   Gai bÄƒng xanh ngá»�czJade Frost Spikesr   r   )ÚSTY_09_HAC_THUY_MIEU_TRAPé   u   Háº¯c Thá»§y Miá»ƒu Tráº¡chzBlackwater Corpse MarshrC   rD   )z#181b18z#101210z#2a2f2az#080a08z#121412çáz®GáÚ?)rF   r\   NÚ$blackwater_drowned_and_scourge_crows))Úprop_sunken_tombstoneu%   Bia má»™ ngáº­p ná»­a trong bÃ¹n Ä‘enzSunken Mud Tombstoner   r   )Úprop_willowisp_bone_lanternu   Ä�Ã¨n lá»“ng xÆ°Æ¡ng ma trÆ¡izWisp Bone Lanternr   r   )Úprop_wrecked_coracleu   Thuyá»�n nan Ä‘áº¯mzWrecked Coracler1   r   )ÚSTY_10_DOC_CHIEU_MA_HOé   u   Ä�á»™c Chiáº¿u Ma Há»“zVenom Fog Ghost LakerC   rD   )z#282c22z#1a1d16z#3e4536z#163328z#1c2b20g¸…ëQ¸Þ?)çÍÌÌÌÌÌô?rG   NÚ%venom_serpents_and_marsh_abominations))Úprop_leaking_venom_jaru&   Chum á»§ ná»�c Ä‘á»™c vá»¡ rá»‰ dá»‹chzLeaking Venom Jarr)   r/   )Úprop_chained_exile_postu!   Cá»�c gá»— buá»™c xÃ­ch tÃ¹ Ä‘Ã yzChained Exile Postr   r   )Úprop_oozing_vinesu   DÃ¢y leo tiáº¿t má»§zOozing Vinesr   r   )ÚSTY_11_HEM_NUI_XUONG_TRANGé   u   Háº»m NÃºi XÆ°Æ¡ng Tráº¯ngzBleached Bone CanyonÚHEM_NUI_COT_MACõ   Háº»m NÃºi Cá»‘t Máº¡c)z#3a3630z#272522z#544c42ú#2e2b26z#2a2825g)\�Âõ(Ì?r   ÚBLEACHED_BONE_CANYONÚ bone_golems_and_vulture_cultists))Úprop_colossal_bone_bridgeu,   Khung xÆ°Æ¡ng khá»•ng lá»“ báº¯c ngang háº»mzColossal Bone Bridger   r   )Úprop_barbarian_skull_stakeu   Cá»�c sá»� man tá»™c cáº¯m Ä‘Ã¡zBarbarian Skull Staker1   r   )Úprop_scattered_bone_shardsu   Máº£nh xÆ°Æ¡ng vá»¥n ráº£i rÃ¡czScattered Bone Shardsr   r    )ÚSTY_12_SA_COT_HOANG_MACé   u   Sa Cá»‘t Hoang Máº¡czDesolate Bone Desertrk   rl   )z#4d4232z#332b20z#665743z#2b241bz#3d3427r   )r"   r   NÚ&dune_bone_scorpions_and_sand_marauders))Úprop_mammoth_skull_sandu&   Sá»� voi ma mÃºt cáº¯m sÃ¢u trong cÃ¡tzMammoth Skull in Sandr   r/   )Úprop_ragged_trail_markeru   Cá»™t má»‘c gá»— rÃ¡ch bá»�c dazRagged Trail Markerr1   r   )Úprop_buried_iron_armoru   GiÃ¡p sáº¯t vÃ¹i láº¥pzBuried Iron Armorr   r   )ÚSTY_13_CON_CAT_MA_QUYrN   u   Cá»“n CÃ¡t Ma Quá»·zGhost Dune Wastesrk   rl   )z#262428z#18171az#3b383ez#121114z#1c1a20r   r   NÚ&ghost_dune_wraiths_and_shadow_stalkers))Úprop_headless_stone_statueu    TÆ°á»£ng Ä‘Ã¡ vá»¡ khÃ´ng Ä‘áº§uzHeadless Stone Statuer)   r   )Úprop_black_rusted_iron_stakeu   Cá»�c xÃ­ch tÃ¹ Ä‘Ã y gá»‰ Ä‘enzBlack Rusted Iron Staker   r/   )Úprop_black_sand_sinkholeu   Há»‘ sá»¥t cÃ¡t Ä‘enzBlack Sand Sinkholer   r   )ÚSTY_14_VUC_DOI_NUOT_CHUNGé   u   Vá»±c Ä�Ã³i Nuá»‘t Chá»­ngzGorge of the Starvedrk   rl   )z#362e2az#241e1bz#4e433dz#211513z#28221fr/   r5   NÚstarved_ghouls_and_abyssal_bats))Úprop_broken_bridge_pylonu!   Máº¥u gá»— cáº§u treo Ä‘á»©t gÃ£yzBroken Bridge Pylonr   r/   )Úprop_crevice_skeletonu%   XÆ°Æ¡ng ngÆ°á»�i máº¯c káº¹t khe Ä‘Ã¡zCrevice Skeletonr   r   )Úprop_severed_climbing_ropeu   DÃ¢y thá»«ng leo nÃºi Ä‘á»©tzSevered Climbing Roper1   r   )ÚSTY_15_QUY_PHONG_HAC_NHAIé   u   Quá»· Phong Háº¯c NhaizDemon Gale Black Precipicerk   rl   )z#22252az#15171bz#353a42z#1f1830z#1e1c28çìQ¸…ëÑ?r!   NÚ$demon_storm_raptors_and_wind_slayers))Úprop_lightning_rod_spireu+   Cá»�c thu lÃ´i sáº¯t rá»‰ ghim Ä‘á»‰nh Ä‘Ã¡zLightning Rod Spirer)   r   )Úprop_black_sacrificial_banneru   Cá»� táº¿ Ä‘en rÃ¡ch nÃ¡tzBlack Sacrificial Bannerr   r   )Úprop_cracked_bronze_bellu   ChuÃ´ng Ä‘á»“ng sá»©t máº»zCracked Bronze Bellr1   r   )ÚSTY_16_MO_QUANG_LUU_DAYé   u   Má»� Quáº·ng LÆ°u Ä�Ã yzOutcast Mine ShaftsÚHAM_MO_TA_QUAIõ   Háº§m Má»� TÃ  QuÃ¡i)z#282a30z#18191dz#404450z#171a22z#1f1d19r/   r   ÚOUTCAST_MINE_SHAFTSÚ!renegade_miners_and_chasm_spiders))Úprop_overturned_ore_cartu'   Xe goÃ²ng láº­t nghiÃªng Ä‘áº§y quáº·ngzOverturned Ore Cartr   r   )Úprop_broken_rusted_pickaxeu   Cuá»‘c chim gÃ£y rá»‰ sÃ©tzBroken Rusted Pickaxer   r   )Úprop_cracked_support_beamu$   Trá»¥ gá»— chá»‘ng háº§m ná»©t toÃ¡czCracked Support Beamr1   r    )ÚSTY_17_DIA_DAO_HUYET_THACHé   u   Ä�á»‹a Ä�áº¡o Huyáº¿t Tháº¡chzBloodstone Catacombsr�   rŽ   )z#351f24z#231216z#522d35z#380e15z#2d1419r   )r6   r#   NÚ(bloodstone_golems_and_chittering_beetles))Úprop_bloodstone_crystal_clusteru+   Khá»‘i tinh thá»ƒ huyáº¿t tháº¡ch nhÃ´ lÃªnzBloodstone Crystal Clusterr   r   )Úprop_shattered_ore_chestu    RÆ°Æ¡ng chá»©a quáº·ng vá»¡ nÃ¡tzShattered Ore Chestr)   r   )Úprop_broken_stone_leveru   Ä�Ã²n báº©y Ä‘Ã¡ gÃ£yzBroken Stone Leverr   r   )ÚSTY_18_MIENG_LUA_NUNG_MAUé   u   Miá»‡ng Lá»­a Nung MÃ¡uzBloodforge Calderar�   rŽ   )z#381c1cz#240f0fz#542a2az#7f1d1dz#3b1111r   ©r"   rN   NÚ%magma_behemoths_and_bloodforge_smiths))Úprop_giant_blood_forgeu*   Bá»… rÃ¨n man tá»™c khá»•ng lá»“ rá»‰ mÃ¡uzGiant Blood Forger)   r   )Úprop_split_steel_anvilu   Ä�e thÃ©p nung ná»©t Ä‘Ã´izSplit Steel Anvilr   r   )Úprop_redhot_hanging_chainsu"   XÃ­ch sáº¯t nung Ä‘á»� treo tráº§nzRed-hot Hanging Chainsr1   r   )ÚSTY_19_HAM_LUA_LUYEN_NGUCé   u   Háº§m Lá»­a Luyá»‡n Ngá»¥czPurgatory Lava Chasmr�   rŽ   )z#2d2222z#1c1313z#453232z#991b1bz#331515r†   )rd   r¢   NÚ"purgatory_fiends_and_lava_crawlers))Úprop_burning_iron_stakeu&   Cá»�c sáº¯t thiÃªu sá»‘ng pháº¡m nhÃ¢nzBurning Iron Staker   r/   )Úprop_chipped_oil_cauldronu   Váº¡c dáº§u nung sá»©t máº»zChipped Oil Cauldronr)   r   )Úprop_smoldering_coal_pileu   Than Ä‘Ã¡ rá»±c lá»­a Ã¢m á»‰zSmoldering Coal Piler   r   )ÚSTY_20_VUC_THAM_XICH_THIETé   u   Vá»±c Tháº³m XÃ­ch Thiáº¿tzRust Iron Deep Trenchr�   rŽ   )z#3b2619z#26170dz#573924z#24150bz#281a11ç{®GázÔ?r5   NÚ!rust_automata_and_iron_scavengers))Úprop_colossal_chains_pillaru*   XÃ­ch sáº¯t khá»•ng lá»“ quáº¥n trá»¥ Ä‘Ã¡zColossal Chains Around Pillarr   r    )Úprop_broken_machine_gearu   BÃ¡nh rÄƒng cÆ¡ khÃ­ gÃ£y rÄƒngzBroken Machine Gearr   r   )Úprop_rusted_iron_effigyu   BÃ¹ nhÃ¬n sáº¯t rá»‰ má»¥czRusted Iron Effigyr)   r   )ÚSTY_21_PHE_TICH_MA_THANr#   u   Pháº¿ TÃ­ch Ma Tháº§nzCorrupted Fiend RuinsÚTHAN_DIEN_PHE_TICHõ   Tháº§n Ä�iá»‡n Pháº¿ TÃ­ch)z#2a2035z#1a1322z#443455z#1f0e2bz#22112br   r   ÚCORRUPTED_FIEND_RUINSÚ$fiend_abominations_and_blood_priests))Úprop_fiend_altar_splitu   BÃ n thá»� ma tháº§n vá»¡ Ä‘Ã´izSplit Fiend Altarr)   r/   )Úprop_demon_face_stone_pillaru*   Cá»™t Ä‘Ã¡ cháº¡m kháº¯c máº·t quá»· Ä‘á»•zFallen Demon Face Pillarr   r   )Úprop_blackened_censeru   LÆ° hÆ°Æ¡ng Ä‘á»“ng rá»‰ Ä‘enzBlackened Bronze Censerr1   r   )ÚSTY_22_PHE_TICH_XE_THITé   u   Pháº¿ TÃ­ch Xáº» Thá»‹tzSlaughter Ruins of the Fallenr¯   r°   )z#332025z#211317z#4e2e36z#3d0b13z#291218r©   ©r"   r4   NÚ%slaughter_warlords_and_arena_butchers))Úprop_meat_hook_racku   MÃ³c sáº¯t treo xÃ¡c tá»­ tÃ¹zMeat Hook Rackr   r   )Úprop_bloody_iron_spikesu)   Cá»�c gá»— Ä‘Ã³ng cá»�c sáº¯t Ä‘áº«m mÃ¡uzBloody Iron Spikesr1   r/   )Úprop_gladiator_iron_cageu$   Lá»“ng sáº¯t giam giÃ¡c Ä‘áº¥u thá»§zGladiator Iron Cager)   r   )ÚSTY_23_TE_DAN_MAN_HOANGé   u   Táº¿ Ä�Ã n Man HoangzSavage Primal Megalithr¯   r°   )rm   z#1e1c18z#47423az#361214z#26221cg¤p=
×£Ð?r   NÚ#primal_cultists_and_totemic_shamans))Úprop_totemic_megalithu/   Trá»¥ cá»± tháº¡ch kháº¯c phÃ¹ Ä‘iÃªu thÃº tá»•zTotemic Megalithr   r    )Úprop_sacrificial_bonfireu$   Ä�á»‘ng cá»§i táº¿ chÃ¡y báº­p bÃ¹ngzSacrificial Bonfirer1   r   )Úprop_blood_basinu    Cháº­u Ä‘Ã¡ Ä‘á»±ng huyáº¿t táº¿zBlood Basinr)   r   )ÚSTY_24_BE_THO_QUY_DOAT_MENHé   u   Bá»‡ Thá»� Quá»· Ä�oáº¡t Má»‡nhzApex of Slaughter Altarr¯   r°   )z#251b2az#18101cz#3c2d43z#1c0c24z#201226rU   )r6   rG   NÚ&apex_executioners_and_scourge_acolytes))Úprop_cursed_monolith_altaru.   Bá»‡ thá»� Ä‘Ã¡ nguyÃªn khá»‘i kháº¯c tÃ  áº¥nzCursed Monolith Altarr)   r/   )Úprop_demon_fang_pillarsu#   Trá»¥ Ä‘Ã¡ nhá»�n hÃ¬nh rÄƒng quá»·zDemon Fang Pillarsr   r   )Úprop_verdigris_tripodu"   Ä�á»‰nh Ä‘á»“ng ba chÃ¢n rá»‰ xanhzVerdigris Bronze Tripodr1   r   )ÚSTY_25_VAN_KIEP_MIEU_DIAé   u   Váº¡n Kiáº¿p Miáº¿u Ä�á»‹azCrypt of Ten Thousand Woesr¯   r°   )z#28262az#1a181cz#3f3c43z#1b1920z#1d1b22r    r!   NÚcrypt_mummies_and_tomb_wraiths))Úprop_ajar_stone_sarcophagusu(   Quan tÃ i Ä‘Ã¡ náº¯p lá»‡ch lÃ²i xÆ°Æ¡ngzAjar Stone Sarcophagusr   r   )Úprop_broken_burial_urnu    HÅ© sÃ nh Æ°á»›p xÃ¡c ná»©t vá»¡zBroken Burial Urnr   r/   )Úprop_tallow_candle_standu$   GiÃ¡ náº¿n má»¡ ngÆ°á»�i chÃ¡y lá»¥izTallow Candle Standr1   r   )ÚSTY_26_COI_HU_KHONG_TUYET_DIAé   u   CÃµi HÆ° KhÃ´ng Tuyá»‡t Ä�á»‹azThe Abyssal Void RiftÚHU_KHONG_DI_BIENõ   HÆ° KhÃ´ng Dá»‹ Biáº¿n)z#1b1528z#100c1az#2f2545z#080510z#171026rE   )rd   r\   NÚ void_walkers_and_rift_scavengers))Úprop_floating_void_crystalu+   Tinh thá»ƒ hÆ° khÃ´ng lÆ¡ lá»­ng xoay trÃ²nzFloating Void Crystalr   r   )Úprop_black_meteor_shardu'   Máº£nh thiÃªn tháº¡ch Ä‘en cáº¯m Ä‘áº¥tzBlack Meteor Shardr   r/   )Úprop_cracked_seal_pillaru(   Trá»¥ phong áº¥n ráº¡n ná»©t phÃ¡t quangzCracked Seal Pillarr)   r   )Ú STY_27_VET_NUT_VO_HAN_HUYET_GIOIé   u$   Váº¿t Ná»©t VÃ´ Háº¡n Huyáº¿t Giá»›izInfinite Crimson BreachrÑ   rÒ   )z#38151cz#240c11z#56232dz#6b0f1bz#2e0d14r   rœ   NÚ(crimson_flesh_horrors_and_scourge_larvae))Úprop_pulsing_flesh_tumoru&   Khá»‘i u thá»‹t Ä‘áº­p theo nhá»‹p timzPulsing Flesh Tumorr   r    )Úprop_wall_staring_demon_eyeu&   Máº¯t quá»· má»Ÿ thao lÃ¡o trÃªn vÃ¡chzWall Staring Demon Eyer)   r   )Úprop_floor_fanged_mawu-   Miá»‡ng rÄƒng lá»Ÿm chá»Ÿm trÃªn ná»�n Ä‘áº¥tzFloor Fanged Mawr   r   )ÚSTY_28_THAO_THIET_XAM_THUCé   u   Thao Thiáº¿t XÃ¢m Thá»±czScourge Flesh IncursionrÑ   rÒ   )z#2f1c24z#1e1016z#4a2c39z#1a2414z#23121ar    )rV   rG   NÚ,scourge_parasites_and_devouring_abominations))Úprop_writhing_wall_tentacleu'   XÃºc tu quá»· quáº±n quáº¡i trÃªn vÃ¡chzWrithing Wall Tentacler   r   )Úprop_hatching_parasite_eggu   KÃ©n kÃ½ sinh trÃ¹ng sáº¯p ná»ŸzHatching Parasite Eggr   r/   )Úprop_acid_dissolved_skeletonu2   Khung sÆ°Æ¡ng thÃº bá»‹ dá»‹ch tiÃªu hÃ³a Äƒn mÃ²nzAcid Dissolved Skeletonr   r   )ÚSTY_29_U_MINH_TA_CANHé   u   U Minh TÃ  Cáº£nhzNether Phantasm DomainrÑ   rÒ   )z#1c242cz#11171dz#2c3945z#0e1720z#151e26r]   r¸   NÚ$nether_phantasms_and_soul_harvesters))Ú prop_slanted_nameless_gravestoneu    Bia má»™ vÃ´ danh nghiÃªng ngáº£zSlanted Nameless Gravestoner   r   )Úprop_blueflame_skull_lanternu'   Ä�Ã¨n lá»“ng Ä‘áº§u lÃ¢u phÃ¡t Ã¡nh lamzBlue Flame Skull Lanternr   r   )Úprop_black_paper_talismansu$   Chuá»—i bÃ¹a giáº¥y Ä‘en phÆ¡ pháº¥tzBlack Paper Talismansr1   r   )Ú$STY_30_TAN_TICH_THIEN_CUNG_HOANG_PHEé   u"   TÃ n TÃ­ch ThiÃªn Cung Hoang Pháº¿zBoundless Ruined ApexrÑ   rÒ   )z#2c2832z#1c1921z#443e4ez#0c0a10z#221e28r/   r   NÚ.sovereign_fallen_knights_and_celestial_wraiths))Úprop_collapsed_stone_throneu&   Ngai vÃ ng Ä‘Ã¡ sá»¥p Ä‘á»• má»™t gÃ³czCollapsed Stone Throner)   r   )Ú#prop_embedded_broken_colossal_swordu%   Cá»± kiáº¿m gÃ£y cáº¯m sÃ¢u vÃ o Ä‘Ã¡zBroken Colossal Sword in Stoner   r   )Úprop_slanted_marble_pillaru3   Cá»™t trá»¥ cáº©m tháº¡ch gÃ£y gá»¥c cáº¯m nghiÃªngzSlanted Marble Pillarr   r   zTuple[Tuple, ...]Ú_RAW_STYLES_DATAÚstyle_idÚstrÚpaletter	   ÚreturnúList[MapStyleTileMapping]c                ó
  ‡ ‡— d‰                       ¦   «         › �Šddddd|j        dfdd	d
d|j        dfddd
d|j        dfdddd|j        dfdddd|j        dfdddd|j        dfdddd|j        dfdddd|j        dfdddd
d|j        dfd d!dd|j        d"fd#d$dd|j        dfd%d&d'd(|j        dfd)d*dd|j        dfd+d,dd|j        dfd"d-dd|j        dfd.d/dd|j        dfd0d1dd|j        dfd2d3dd|j        dfg}ˆˆ fd4„|D ¦   «         S )5zFGenerates all 20 canonical TileType bindings (0-19) for a given style.ú client/webapp/assets/map/styles/)r   ÚVOIDú	floor.pngúfloor_normal.pngz#050508r   rj   ÚFLOORrø   rù   r   rB   ÚWALLzwall.pngzwall_normal.pngrÄ   r   ÚDESTRUCTIBLE_BARRICADEr¢   rŒ   ÚMUD_POOLú
liquid.pngúliquid_normal.pngr#   Ú
SPIKE_TRAPr   ÚCRUMBLED_DEBRISr,   Ú	BONE_PILEr4   ÚPOISON_VENT)r<   ÚCHASMrþ   rÿ   z#08060cr   rG   Ú	BOSS_GATErÞ   rT   Ú
BOSS_ALTARr   r\   ÚRUNIC_FLOORrc   ÚPATHzpath.pngzpath_normal.pngrt   ÚDENSE_TERRAINrN   ÚPOIÚENCOUNTER_LOWr…   ÚENCOUNTER_MEDIUMr•   ÚENCOUNTER_HIGHr›   ÚWATERc                ó^   •— g | ])\  }}}}}}t          ‰||‰› d |› �‰› d |› �||¬¦  «        ‘Œ*S )ú/)rð   Ú	tile_codeÚtile_type_nameÚtexture_pathÚnormal_pathÚprocedural_fallback_colorÚelevation_px)r   )	Ú.0ÚcodeÚnameÚtexÚnormÚfallbackÚelevÚ	asset_dirrð   s	          €€ú7C:\Projects\FreeExile\server\world\map_style_catalog.pyú
<listcomp>z*_build_tiles_for_style.<locals>.<listcomp>‰  sw   ø€ ð ð ð ñ 2ˆD�$˜˜T 8¨Tõ 	ØØØØ%Ð-Ð-¨Ð-Ð-Ø$Ð-Ð- tÐ-Ð-Ø&.Øð	
ñ 	
ô 	
ðð ð ó    )ÚlowerÚfloorÚwallÚliquidÚpath)rð   rò   Ú	tile_defsr  s   `  @r  Ú_build_tiles_for_styler(  p  s¶  øø€ àE°8·>²>Ñ3CÔ3CÐEÐE€IàBØ	
ˆG�[Ð"4°g´mÀQÐGØ	
ˆF�JÐ 1°7´<ÀÐDØ	
Ð$ jÐ2CÀWÄ\ÐSUÐVØ	
ˆJ˜Ð&9¸7¼>È1ÐMØ	
ˆL˜+Ð'9¸7¼=È!ÐLØ	
Ð˜{Ð,>ÀÄÈqÐQØ	
ˆK˜Ð&8¸'¼-ÈÐKØ	
ˆM˜<Ð)<¸g¼nÈaÐPØEØ	ˆ[˜*Ð&7¸¼ÀrÐJØ	ˆ\˜;Ð(:¸G¼LÈ"ÐMØ	ˆ]˜KÐ);¸W¼\È1ÐMØ	ˆV�ZÐ!2°G´LÀ!ÐDØ	ˆ_˜kÐ+=¸w¼}ÈaÐPØ	ˆU�KÐ!3°W´\À1ÐEØ	ˆ_˜kÐ+=¸w¼}ÈaÐPØ	Ð Ð.@À'Ä-ÐQRÐSØ	Ð˜{Ð,>ÀÄÈqÐQØ	ˆW�lÐ$7¸¼ÈÐKð)€Ið,ð ð ð ð ð 6?ðñ ô ð r!  zDict[str, MapStyleDefinition]ÚMAP_STYLES_BY_IDzDict[int, MapStyleDefinition]ÚMAP_STYLES_BY_CODEzDict[str, str]ÚLEGACY_BIOME_TO_STYLE_IDÚSTYLE_ID_TO_LEGACY_BIOMEz$Dict[str, List[MapStyleTileMapping]]ÚSTYLE_TILES_BY_IDz'Dict[str, List[MapStylePropDefinition]]ÚSTYLE_PROPS_BY_ID)r#  r$  r&  r%  Úambientr   )Úambient_hexÚ	intensityÚfog_density)Úslow_factorÚdpsrB   z (u   ) - Phong cÃ¡ch ú.rö   )rð   Ú
biome_codeÚname_viÚname_enÚtheme_categoryÚtheme_category_nameÚdescriptionrò   ÚlightingÚhazardÚmovement_modifierr  Úmonster_familyÚlegacy_aliasúList[MapStylePropDefinition]Ú	prop_listz/props/z.png)rð   Úprop_idr7  r8  Úplacement_ruleÚspawn_weightÚ
sprite_keyÚsprite_pathúOptional[MapStyleDefinition]c                ót   — | t           v rt           |          S | t          v rt           t          |                   S dS )zGRetrieve MapStyleDefinition by canonical style ID or legacy biome name.N)r)  r+  ©rð   s    r  Úget_map_stylerK  Ô  s;   € àÕ#Ð#Ð#Ý Ô)Ð)ØÕ+Ð+Ð+ÝÕ 8¸Ô BÔCÐCØˆ4r!  r6  Úintc                ó6   — t                                | ¦  «        S )z9Retrieve MapStyleDefinition by biome integer code (1-30).)r*  Úget©r6  s    r  Úget_map_style_by_coderP  Ý  s   € å×!Ò! *Ñ-Ô-Ð-r!  c                ó    — t          | ¦  «        S )z$Convenience alias for get_map_style.)rK  rJ  s    r  Ú	get_stylerR  â  s   € å˜Ñ"Ô"Ð"r!  c                ó    — t          | ¦  «        S )z,Convenience alias for get_map_style_by_code.)rP  rO  s    r  Úget_style_by_coderT  ç  s   € å  Ñ,Ô,Ð,r!  úList[MapStyleDefinition]c                 ón   — t          t          t                               ¦   «         ¦  «        d„ ¬¦  «        S )zIReturn all 30 canonical MapStyleDefinition objects ordered by biome_code.c                ó   — | j         S )NrO  )Úss    r  ú<lambda>zlist_styles.<locals>.<lambda>î  s   € ÀÄ€ r!  )Úkey)ÚsortedÚlistr)  Úvalues© r!  r  Úlist_stylesr_  ì  s.   € å•$Õ'×.Ò.Ñ0Ô0Ñ1Ô1Ð7MÐ7MÐNÑNÔNÐNr!  ú	List[str]c                 ó2   — d„ t          ¦   «         D ¦   «         S )z*Return list of all 30 canonical style IDs.c                ó   — g | ]	}|j         ‘Œ
S r^  rJ  )r  rX  s     r  r   z)list_available_styles.<locals>.<listcomp>ó  s   € Ð.Ð.Ð.˜1ˆAŒJÐ.Ð.Ð.r!  ©r_  r^  r!  r  Úlist_available_stylesrd  ñ  s   € à.Ð.¥¡¤Ð.Ñ.Ô.Ð.r!  Úcategoryc                ó8   ‡ — ˆ fd„t          ¦   «         D ¦   «         S )z5Return styles belonging to a specific theme category.c                ó*   •— g | ]}|j         ‰k    ¯|‘ŒS r^  )r9  )r  rX  re  s     €r  r   z+list_styles_by_category.<locals>.<listcomp>ø  s&   ø€ ÐEÐEÐE�!¨Ô(8¸HÒ(DÐ(DˆAÐ(DÐ(DÐ(Dr!  rc  )re  s   `r  Úlist_styles_by_categoryrh  ö  s!   ø€ àEÐEÐEÐE•{‘}”}ÐEÑEÔEÐEr!  c                ón   — t                                | | ¦  «        }t                               |g ¦  «        S )z4Retrieve the 20 TileType mappings for a given style.)r+  rN  r-  ©rð   Úresolved_ids     r  Úget_tiles_for_stylerl  û  ó-   € å*×.Ò.¨x¸ÑBÔB€KÝ× Ò  ¨bÑ1Ô1Ð1r!  c                ón   — t                                | | ¦  «        }t                               |g ¦  «        S )z4Retrieve decorative props defined for a given style.)r+  rN  r.  rj  s     r  Úget_props_for_stylero    rm  r!  N)rð   rñ   rò   r	   ró   rô   )rð   rñ   ró   rH  )r6  rL  ró   rH  )ró   rU  )ró   r`  )re  rñ   ró   rU  )rð   rñ   ró   rô   )rð   rñ   ró   rA  )@Ú__doc__Ú
__future__r   Útypingr   r   r   r   Úserver.world.map_style_typesr   r	   r
   r   r   r   rï   Ú__annotations__r(  r)  r*  r+  r,  r-  r.  Ús_idÚb_codeÚn_viÚn_enÚt_catÚt_cat_viÚc_flÚc_wlÚc_ptÚc_lqÚc_ambÚf_densÚh_slowÚh_dpsÚ	leg_aliasÚm_familyÚ
props_dataÚpalÚlightÚhazÚroundÚmov_modr"  Ú	style_defrB  Úp_idÚp_viÚp_enÚruleÚweightÚappendrK  rP  rR  rT  r_  rd  rh  rl  ro  r^  r!  r  ú<module>r’     sø  ððð ð ð #Ð "Ð "Ð "Ð "Ð "Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðV'Ð ð Vð Vð Vñ Vðr
$ð $ð $ð $ðP 35Ð Ð 4Ð 4Ð 4Ñ 4Ø46Ð Ð 6Ð 6Ð 6Ñ 6Ø+-Ð Ð -Ð -Ð -Ñ -Ø+-Ð Ð -Ð -Ð -Ñ -Ø:<Ð Ð <Ð <Ð <Ñ <Ø=?Ð Ð ?Ð ?Ð ?Ñ ?ð ð	2(ñ 2(ñ Øˆ&�$˜˜e XÙ#€Tˆ4��t˜U V©_¨f°eØˆx˜à
ˆ/ ¨4°dÀ4ÐQVÐ
WÑ
WÔ
W€CØÐ¨¸#È6ÐRÑRÔR€EØ
ˆ. V°Ð
7Ñ
7Ô
7€CØˆe�C˜&‘L !Ñ$Ô$€Gà"Ð"ØØØØØØ$ØÐ@Ð@˜tÐ@Ð@°XÐ@Ð@Ð@ØØØØ!ØC°T·Z²Z±\´\ÐCÐCØØðñ ô €Ið" 'Ð�TÑØ!*Ð�vÑàð 3Ø.2Ð  Ñ+Ø)2Ð  Ñ&à4Ð4°T¸3Ñ?Ô?Ð�dÑà.0€IÐ0Ð0Ð0Ñ0Ø*4ð 
ð 
Ñ&ˆˆd�D˜$ Ø×ÒØ"Ð"ØØØØØ#Ø#ØØ^¸t¿zºz¹|¼|Ð^Ð^ÐTXÐ^Ð^Ð^ð	ñ 	ô 	ñ	
ô 	
ð 	
ð 	
ð (Ð�dÑÑðð ð ð ð.ð .ð .ð .ð
#ð #ð #ð #ð
-ð -ð -ð -ð
Oð Oð Oð Oð
/ð /ð /ð /ð
Fð Fð Fð Fð
2ð 2ð 2ð 2ð2ð 2ð 2ð 2ð 2ð 2r!  