eolib 1.1.1__py3-none-any.whl → 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. eolib/__about__.py +1 -1
  2. eolib/protocol/__init__.py +1 -1
  3. eolib/protocol/_generated/coords.py +28 -37
  4. eolib/protocol/_generated/emote.py +1 -1
  5. eolib/protocol/_generated/map/emf.py +248 -410
  6. eolib/protocol/_generated/map/map_graphic_layer.py +34 -32
  7. eolib/protocol/_generated/map/map_graphic_row.py +41 -49
  8. eolib/protocol/_generated/map/map_graphic_row_tile.py +28 -37
  9. eolib/protocol/_generated/map/map_item.py +56 -97
  10. eolib/protocol/_generated/map/map_legacy_door_key.py +28 -29
  11. eolib/protocol/_generated/map/map_npc.py +49 -80
  12. eolib/protocol/_generated/map/map_sign.py +43 -54
  13. eolib/protocol/_generated/map/map_tile_spec_row.py +41 -49
  14. eolib/protocol/_generated/map/map_tile_spec_row_tile.py +28 -29
  15. eolib/protocol/_generated/map/map_warp.py +42 -63
  16. eolib/protocol/_generated/map/map_warp_row.py +41 -49
  17. eolib/protocol/_generated/map/map_warp_row_tile.py +28 -29
  18. eolib/protocol/_generated/net/char_item.py +28 -37
  19. eolib/protocol/_generated/net/client/account_agree_client_packet.py +40 -33
  20. eolib/protocol/_generated/net/client/account_create_client_packet.py +80 -91
  21. eolib/protocol/_generated/net/client/account_request_client_packet.py +21 -12
  22. eolib/protocol/_generated/net/client/admin_interact_report_client_packet.py +31 -22
  23. eolib/protocol/_generated/net/client/admin_interact_tell_client_packet.py +21 -12
  24. eolib/protocol/_generated/net/client/attack_use_client_packet.py +28 -29
  25. eolib/protocol/_generated/net/client/bank_add_client_packet.py +28 -37
  26. eolib/protocol/_generated/net/client/bank_open_client_packet.py +21 -20
  27. eolib/protocol/_generated/net/client/bank_take_client_packet.py +28 -37
  28. eolib/protocol/_generated/net/client/barber_buy_client_packet.py +35 -54
  29. eolib/protocol/_generated/net/client/barber_open_client_packet.py +21 -20
  30. eolib/protocol/_generated/net/client/board_create_client_packet.py +40 -41
  31. eolib/protocol/_generated/net/client/board_open_client_packet.py +21 -20
  32. eolib/protocol/_generated/net/client/board_remove_client_packet.py +28 -37
  33. eolib/protocol/_generated/net/client/board_take_client_packet.py +28 -37
  34. eolib/protocol/_generated/net/client/book_request_client_packet.py +22 -21
  35. eolib/protocol/_generated/net/client/byte_coords.py +28 -37
  36. eolib/protocol/_generated/net/client/chair_request_client_packet.py +56 -40
  37. eolib/protocol/_generated/net/client/character_create_client_packet.py +60 -91
  38. eolib/protocol/_generated/net/client/character_remove_client_packet.py +31 -35
  39. eolib/protocol/_generated/net/client/character_request_client_packet.py +22 -7
  40. eolib/protocol/_generated/net/client/character_take_client_packet.py +21 -20
  41. eolib/protocol/_generated/net/client/chest_add_client_packet.py +28 -21
  42. eolib/protocol/_generated/net/client/chest_open_client_packet.py +21 -12
  43. eolib/protocol/_generated/net/client/chest_take_client_packet.py +28 -29
  44. eolib/protocol/_generated/net/client/citizen_accept_client_packet.py +28 -37
  45. eolib/protocol/_generated/net/client/citizen_open_client_packet.py +21 -20
  46. eolib/protocol/_generated/net/client/citizen_remove_client_packet.py +21 -20
  47. eolib/protocol/_generated/net/client/citizen_reply_client_packet.py +47 -63
  48. eolib/protocol/_generated/net/client/citizen_request_client_packet.py +28 -37
  49. eolib/protocol/_generated/net/client/connection_accept_client_packet.py +35 -54
  50. eolib/protocol/_generated/net/client/connection_ping_client_packet.py +13 -7
  51. eolib/protocol/_generated/net/client/door_open_client_packet.py +21 -12
  52. eolib/protocol/_generated/net/client/emote_report_client_packet.py +21 -12
  53. eolib/protocol/_generated/net/client/face_player_client_packet.py +21 -12
  54. eolib/protocol/_generated/net/client/global_close_client_packet.py +13 -7
  55. eolib/protocol/_generated/net/client/global_open_client_packet.py +13 -7
  56. eolib/protocol/_generated/net/client/global_player_client_packet.py +13 -7
  57. eolib/protocol/_generated/net/client/global_remove_client_packet.py +13 -7
  58. eolib/protocol/_generated/net/client/guild_accept_client_packet.py +22 -21
  59. eolib/protocol/_generated/net/client/guild_agree_client_packet.py +99 -91
  60. eolib/protocol/_generated/net/client/guild_buy_client_packet.py +28 -37
  61. eolib/protocol/_generated/net/client/guild_create_client_packet.py +48 -51
  62. eolib/protocol/_generated/net/client/guild_junk_client_packet.py +21 -20
  63. eolib/protocol/_generated/net/client/guild_kick_client_packet.py +28 -29
  64. eolib/protocol/_generated/net/client/guild_open_client_packet.py +21 -20
  65. eolib/protocol/_generated/net/client/guild_player_client_packet.py +40 -41
  66. eolib/protocol/_generated/net/client/guild_rank_client_packet.py +36 -47
  67. eolib/protocol/_generated/net/client/guild_remove_client_packet.py +21 -20
  68. eolib/protocol/_generated/net/client/guild_report_client_packet.py +28 -29
  69. eolib/protocol/_generated/net/client/guild_request_client_packet.py +40 -41
  70. eolib/protocol/_generated/net/client/guild_take_client_packet.py +41 -29
  71. eolib/protocol/_generated/net/client/guild_tell_client_packet.py +28 -29
  72. eolib/protocol/_generated/net/client/guild_use_client_packet.py +21 -20
  73. eolib/protocol/_generated/net/client/init_init_client_packet.py +44 -55
  74. eolib/protocol/_generated/net/client/item_drop_client_packet.py +29 -29
  75. eolib/protocol/_generated/net/client/item_get_client_packet.py +21 -20
  76. eolib/protocol/_generated/net/client/item_junk_client_packet.py +21 -12
  77. eolib/protocol/_generated/net/client/item_use_client_packet.py +21 -20
  78. eolib/protocol/_generated/net/client/jukebox_msg_client_packet.py +24 -22
  79. eolib/protocol/_generated/net/client/jukebox_open_client_packet.py +21 -12
  80. eolib/protocol/_generated/net/client/jukebox_use_client_packet.py +28 -37
  81. eolib/protocol/_generated/net/client/locker_add_client_packet.py +28 -21
  82. eolib/protocol/_generated/net/client/locker_buy_client_packet.py +13 -7
  83. eolib/protocol/_generated/net/client/locker_open_client_packet.py +21 -12
  84. eolib/protocol/_generated/net/client/locker_take_client_packet.py +28 -29
  85. eolib/protocol/_generated/net/client/login_request_client_packet.py +32 -23
  86. eolib/protocol/_generated/net/client/marriage_open_client_packet.py +21 -20
  87. eolib/protocol/_generated/net/client/marriage_request_client_packet.py +38 -39
  88. eolib/protocol/_generated/net/client/message_ping_client_packet.py +13 -7
  89. eolib/protocol/_generated/net/client/npc_range_request_client_packet.py +35 -35
  90. eolib/protocol/_generated/net/client/paperdoll_add_client_packet.py +28 -37
  91. eolib/protocol/_generated/net/client/paperdoll_remove_client_packet.py +28 -37
  92. eolib/protocol/_generated/net/client/paperdoll_request_client_packet.py +22 -21
  93. eolib/protocol/_generated/net/client/party_accept_client_packet.py +28 -29
  94. eolib/protocol/_generated/net/client/party_remove_client_packet.py +21 -20
  95. eolib/protocol/_generated/net/client/party_request_client_packet.py +28 -29
  96. eolib/protocol/_generated/net/client/party_take_client_packet.py +21 -20
  97. eolib/protocol/_generated/net/client/player_range_request_client_packet.py +25 -23
  98. eolib/protocol/_generated/net/client/players_accept_client_packet.py +21 -12
  99. eolib/protocol/_generated/net/client/players_list_client_packet.py +13 -7
  100. eolib/protocol/_generated/net/client/players_request_client_packet.py +13 -7
  101. eolib/protocol/_generated/net/client/priest_accept_client_packet.py +21 -20
  102. eolib/protocol/_generated/net/client/priest_open_client_packet.py +21 -20
  103. eolib/protocol/_generated/net/client/priest_request_client_packet.py +31 -30
  104. eolib/protocol/_generated/net/client/priest_use_client_packet.py +22 -21
  105. eolib/protocol/_generated/net/client/quest_accept_client_packet.py +150 -115
  106. eolib/protocol/_generated/net/client/quest_list_client_packet.py +21 -12
  107. eolib/protocol/_generated/net/client/quest_use_client_packet.py +28 -38
  108. eolib/protocol/_generated/net/client/range_request_client_packet.py +38 -44
  109. eolib/protocol/_generated/net/client/refresh_request_client_packet.py +13 -7
  110. eolib/protocol/_generated/net/client/shop_buy_client_packet.py +28 -29
  111. eolib/protocol/_generated/net/client/shop_create_client_packet.py +28 -37
  112. eolib/protocol/_generated/net/client/shop_open_client_packet.py +21 -20
  113. eolib/protocol/_generated/net/client/shop_sell_client_packet.py +28 -29
  114. eolib/protocol/_generated/net/client/sit_request_client_packet.py +56 -43
  115. eolib/protocol/_generated/net/client/spell_request_client_packet.py +28 -37
  116. eolib/protocol/_generated/net/client/spell_target_group_client_packet.py +28 -37
  117. eolib/protocol/_generated/net/client/spell_target_other_client_packet.py +49 -80
  118. eolib/protocol/_generated/net/client/spell_target_self_client_packet.py +35 -46
  119. eolib/protocol/_generated/net/client/spell_use_client_packet.py +21 -12
  120. eolib/protocol/_generated/net/client/stat_skill_add_client_packet.py +83 -66
  121. eolib/protocol/_generated/net/client/stat_skill_junk_client_packet.py +21 -20
  122. eolib/protocol/_generated/net/client/stat_skill_open_client_packet.py +21 -20
  123. eolib/protocol/_generated/net/client/stat_skill_remove_client_packet.py +28 -37
  124. eolib/protocol/_generated/net/client/stat_skill_take_client_packet.py +28 -37
  125. eolib/protocol/_generated/net/client/talk_admin_client_packet.py +21 -12
  126. eolib/protocol/_generated/net/client/talk_announce_client_packet.py +21 -12
  127. eolib/protocol/_generated/net/client/talk_msg_client_packet.py +21 -12
  128. eolib/protocol/_generated/net/client/talk_open_client_packet.py +21 -12
  129. eolib/protocol/_generated/net/client/talk_player_client_packet.py +21 -12
  130. eolib/protocol/_generated/net/client/talk_report_client_packet.py +21 -12
  131. eolib/protocol/_generated/net/client/talk_request_client_packet.py +21 -12
  132. eolib/protocol/_generated/net/client/talk_tell_client_packet.py +31 -22
  133. eolib/protocol/_generated/net/client/talk_use_client_packet.py +21 -12
  134. eolib/protocol/_generated/net/client/trade_accept_client_packet.py +22 -21
  135. eolib/protocol/_generated/net/client/trade_add_client_packet.py +21 -12
  136. eolib/protocol/_generated/net/client/trade_agree_client_packet.py +21 -12
  137. eolib/protocol/_generated/net/client/trade_close_client_packet.py +13 -7
  138. eolib/protocol/_generated/net/client/trade_remove_client_packet.py +21 -20
  139. eolib/protocol/_generated/net/client/trade_request_client_packet.py +22 -21
  140. eolib/protocol/_generated/net/client/walk_action.py +35 -38
  141. eolib/protocol/_generated/net/client/walk_admin_client_packet.py +21 -12
  142. eolib/protocol/_generated/net/client/walk_player_client_packet.py +21 -12
  143. eolib/protocol/_generated/net/client/walk_spec_client_packet.py +21 -12
  144. eolib/protocol/_generated/net/client/warp_accept_client_packet.py +28 -37
  145. eolib/protocol/_generated/net/client/warp_take_client_packet.py +28 -37
  146. eolib/protocol/_generated/net/client/welcome_agree_client_packet.py +171 -169
  147. eolib/protocol/_generated/net/client/welcome_msg_client_packet.py +28 -37
  148. eolib/protocol/_generated/net/client/welcome_request_client_packet.py +21 -20
  149. eolib/protocol/_generated/net/item.py +28 -37
  150. eolib/protocol/_generated/net/server/__init__.py +4 -0
  151. eolib/protocol/_generated/net/server/account_reply_server_packet.py +190 -131
  152. eolib/protocol/_generated/net/server/admin_interact_agree_server_packet.py +21 -20
  153. eolib/protocol/_generated/net/server/admin_interact_list_server_packet.py +62 -74
  154. eolib/protocol/_generated/net/server/admin_interact_remove_server_packet.py +21 -20
  155. eolib/protocol/_generated/net/server/admin_interact_reply_server_packet.py +112 -91
  156. eolib/protocol/_generated/net/server/admin_interact_tell_server_packet.py +86 -110
  157. eolib/protocol/_generated/net/server/arena_accept_server_packet.py +47 -50
  158. eolib/protocol/_generated/net/server/arena_drop_server_packet.py +14 -8
  159. eolib/protocol/_generated/net/server/arena_spec_server_packet.py +55 -68
  160. eolib/protocol/_generated/net/server/arena_use_server_packet.py +21 -20
  161. eolib/protocol/_generated/net/server/attack_error_server_packet.py +13 -7
  162. eolib/protocol/_generated/net/server/attack_player_server_packet.py +28 -29
  163. eolib/protocol/_generated/net/server/avatar_admin_server_packet.py +67 -110
  164. eolib/protocol/_generated/net/server/avatar_agree_server_packet.py +21 -12
  165. eolib/protocol/_generated/net/server/avatar_change.py +132 -136
  166. eolib/protocol/_generated/net/server/avatar_change_type.py +1 -1
  167. eolib/protocol/_generated/net/server/avatar_remove_server_packet.py +29 -29
  168. eolib/protocol/_generated/net/server/avatar_reply_server_packet.py +56 -89
  169. eolib/protocol/_generated/net/server/bank_open_server_packet.py +35 -54
  170. eolib/protocol/_generated/net/server/bank_reply_server_packet.py +28 -37
  171. eolib/protocol/_generated/net/server/barber_agree_server_packet.py +28 -29
  172. eolib/protocol/_generated/net/server/barber_open_server_packet.py +21 -20
  173. eolib/protocol/_generated/net/server/big_coords.py +28 -37
  174. eolib/protocol/_generated/net/server/board_open_server_packet.py +44 -52
  175. eolib/protocol/_generated/net/server/board_player_server_packet.py +30 -29
  176. eolib/protocol/_generated/net/server/board_post_listing.py +39 -40
  177. eolib/protocol/_generated/net/server/book_reply_server_packet.py +42 -35
  178. eolib/protocol/_generated/net/server/cast_accept_server_packet.py +65 -71
  179. eolib/protocol/_generated/net/server/cast_reply_server_packet.py +78 -122
  180. eolib/protocol/_generated/net/server/cast_spec_server_packet.py +48 -60
  181. eolib/protocol/_generated/net/server/chair_close_server_packet.py +28 -29
  182. eolib/protocol/_generated/net/server/chair_player_server_packet.py +35 -38
  183. eolib/protocol/_generated/net/server/chair_remove_server_packet.py +28 -29
  184. eolib/protocol/_generated/net/server/chair_reply_server_packet.py +35 -38
  185. eolib/protocol/_generated/net/server/character_base_stats.py +56 -105
  186. eolib/protocol/_generated/net/server/character_base_stats_welcome.py +56 -105
  187. eolib/protocol/_generated/net/server/character_details.py +92 -115
  188. eolib/protocol/_generated/net/server/character_elemental_stats.py +56 -105
  189. eolib/protocol/_generated/net/server/character_map_info.py +161 -283
  190. eolib/protocol/_generated/net/server/character_player_server_packet.py +28 -37
  191. eolib/protocol/_generated/net/server/character_reply_server_packet.py +229 -179
  192. eolib/protocol/_generated/net/server/character_secondary_stats.py +49 -88
  193. eolib/protocol/_generated/net/server/character_secondary_stats_info_lookup.py +49 -88
  194. eolib/protocol/_generated/net/server/character_selection_list_entry.py +80 -125
  195. eolib/protocol/_generated/net/server/character_stats_equipment_change.py +42 -55
  196. eolib/protocol/_generated/net/server/character_stats_info_lookup.py +65 -100
  197. eolib/protocol/_generated/net/server/character_stats_reset.py +77 -140
  198. eolib/protocol/_generated/net/server/character_stats_update.py +56 -89
  199. eolib/protocol/_generated/net/server/character_stats_welcome.py +84 -157
  200. eolib/protocol/_generated/net/server/chest_agree_server_packet.py +25 -15
  201. eolib/protocol/_generated/net/server/chest_close_server_packet.py +28 -24
  202. eolib/protocol/_generated/net/server/chest_get_server_packet.py +39 -33
  203. eolib/protocol/_generated/net/server/chest_open_server_packet.py +32 -24
  204. eolib/protocol/_generated/net/server/chest_reply_server_packet.py +46 -58
  205. eolib/protocol/_generated/net/server/chest_spec_server_packet.py +13 -7
  206. eolib/protocol/_generated/net/server/citizen_accept_server_packet.py +21 -20
  207. eolib/protocol/_generated/net/server/citizen_open_server_packet.py +53 -79
  208. eolib/protocol/_generated/net/server/citizen_remove_server_packet.py +21 -12
  209. eolib/protocol/_generated/net/server/citizen_reply_server_packet.py +21 -20
  210. eolib/protocol/_generated/net/server/citizen_request_server_packet.py +21 -20
  211. eolib/protocol/_generated/net/server/connection_player_server_packet.py +28 -37
  212. eolib/protocol/_generated/net/server/dialog_entry.py +63 -57
  213. eolib/protocol/_generated/net/server/dialog_quest_entry.py +28 -29
  214. eolib/protocol/_generated/net/server/door_close_server_packet.py +21 -20
  215. eolib/protocol/_generated/net/server/door_open_server_packet.py +25 -14
  216. eolib/protocol/_generated/net/server/effect_admin_server_packet.py +42 -63
  217. eolib/protocol/_generated/net/server/effect_agree_server_packet.py +32 -38
  218. eolib/protocol/_generated/net/server/effect_player_server_packet.py +32 -45
  219. eolib/protocol/_generated/net/server/effect_report_server_packet.py +13 -7
  220. eolib/protocol/_generated/net/server/effect_spec_server_packet.py +111 -142
  221. eolib/protocol/_generated/net/server/effect_target_other_server_packet.py +46 -66
  222. eolib/protocol/_generated/net/server/effect_use_server_packet.py +56 -48
  223. eolib/protocol/_generated/net/server/emote_player_server_packet.py +28 -29
  224. eolib/protocol/_generated/net/server/equipment_change.py +50 -89
  225. eolib/protocol/_generated/net/server/equipment_character_select.py +49 -88
  226. eolib/protocol/_generated/net/server/equipment_map_info.py +53 -92
  227. eolib/protocol/_generated/net/server/equipment_paperdoll.py +115 -229
  228. eolib/protocol/_generated/net/server/equipment_welcome.py +114 -228
  229. eolib/protocol/_generated/net/server/face_player_server_packet.py +28 -29
  230. eolib/protocol/_generated/net/server/global_backfill_message.py +31 -22
  231. eolib/protocol/_generated/net/server/group_heal_target_player.py +35 -54
  232. eolib/protocol/_generated/net/server/guild_accept_server_packet.py +21 -20
  233. eolib/protocol/_generated/net/server/guild_agree_server_packet.py +48 -51
  234. eolib/protocol/_generated/net/server/guild_buy_server_packet.py +22 -21
  235. eolib/protocol/_generated/net/server/guild_create_server_packet.py +55 -68
  236. eolib/protocol/_generated/net/server/guild_kick_server_packet.py +13 -7
  237. eolib/protocol/_generated/net/server/guild_member.py +39 -40
  238. eolib/protocol/_generated/net/server/guild_open_server_packet.py +21 -20
  239. eolib/protocol/_generated/net/server/guild_rank_server_packet.py +30 -28
  240. eolib/protocol/_generated/net/server/guild_reply_server_packet.py +117 -93
  241. eolib/protocol/_generated/net/server/guild_report_server_packet.py +91 -111
  242. eolib/protocol/_generated/net/server/guild_request_server_packet.py +28 -29
  243. eolib/protocol/_generated/net/server/guild_sell_server_packet.py +21 -20
  244. eolib/protocol/_generated/net/server/guild_staff.py +31 -30
  245. eolib/protocol/_generated/net/server/guild_take_server_packet.py +21 -12
  246. eolib/protocol/_generated/net/server/guild_tell_server_packet.py +38 -36
  247. eolib/protocol/_generated/net/server/init_ban_type.py +1 -1
  248. eolib/protocol/_generated/net/server/init_init_server_packet.py +454 -393
  249. eolib/protocol/_generated/net/server/init_reply.py +3 -0
  250. eolib/protocol/_generated/net/server/item_accept_server_packet.py +21 -20
  251. eolib/protocol/_generated/net/server/item_add_server_packet.py +42 -63
  252. eolib/protocol/_generated/net/server/item_agree_server_packet.py +22 -21
  253. eolib/protocol/_generated/net/server/item_drop_server_packet.py +49 -64
  254. eolib/protocol/_generated/net/server/item_get_server_packet.py +35 -38
  255. eolib/protocol/_generated/net/server/item_junk_server_packet.py +35 -38
  256. eolib/protocol/_generated/net/server/item_kick_server_packet.py +28 -29
  257. eolib/protocol/_generated/net/server/item_map_info.py +42 -63
  258. eolib/protocol/_generated/net/server/item_obtain_server_packet.py +28 -29
  259. eolib/protocol/_generated/net/server/item_remove_server_packet.py +21 -20
  260. eolib/protocol/_generated/net/server/item_reply_server_packet.py +235 -300
  261. eolib/protocol/_generated/net/server/item_spec_server_packet.py +13 -7
  262. eolib/protocol/_generated/net/server/jukebox_agree_server_packet.py +21 -20
  263. eolib/protocol/_generated/net/server/jukebox_msg_server_packet.py +42 -63
  264. eolib/protocol/_generated/net/server/jukebox_open_server_packet.py +28 -29
  265. eolib/protocol/_generated/net/server/jukebox_player_server_packet.py +21 -20
  266. eolib/protocol/_generated/net/server/jukebox_reply_server_packet.py +13 -7
  267. eolib/protocol/_generated/net/server/jukebox_use_server_packet.py +22 -18
  268. eolib/protocol/_generated/net/server/level_up_stats.py +56 -105
  269. eolib/protocol/_generated/net/server/locker_buy_server_packet.py +28 -37
  270. eolib/protocol/_generated/net/server/locker_get_server_packet.py +39 -33
  271. eolib/protocol/_generated/net/server/locker_open_server_packet.py +32 -24
  272. eolib/protocol/_generated/net/server/locker_reply_server_packet.py +39 -33
  273. eolib/protocol/_generated/net/server/locker_spec_server_packet.py +21 -20
  274. eolib/protocol/_generated/net/server/login_reply.py +6 -0
  275. eolib/protocol/_generated/net/server/login_reply_server_packet.py +169 -115
  276. eolib/protocol/_generated/net/server/map_drain_damage_other.py +35 -54
  277. eolib/protocol/_generated/net/server/map_file.py +21 -12
  278. eolib/protocol/_generated/net/server/marriage_open_server_packet.py +21 -20
  279. eolib/protocol/_generated/net/server/marriage_reply_server_packet.py +56 -48
  280. eolib/protocol/_generated/net/server/message_accept_server_packet.py +30 -28
  281. eolib/protocol/_generated/net/server/message_close_server_packet.py +13 -7
  282. eolib/protocol/_generated/net/server/message_open_server_packet.py +21 -12
  283. eolib/protocol/_generated/net/server/message_pong_server_packet.py +13 -7
  284. eolib/protocol/_generated/net/server/music_player_server_packet.py +21 -20
  285. eolib/protocol/_generated/net/server/nearby_info.py +59 -61
  286. eolib/protocol/_generated/net/server/npc_accept_server_packet.py +47 -38
  287. eolib/protocol/_generated/net/server/npc_agree_server_packet.py +34 -32
  288. eolib/protocol/_generated/net/server/npc_dialog_server_packet.py +28 -29
  289. eolib/protocol/_generated/net/server/npc_junk_server_packet.py +21 -20
  290. eolib/protocol/_generated/net/server/npc_killed_data.py +70 -123
  291. eolib/protocol/_generated/net/server/npc_map_info.py +42 -55
  292. eolib/protocol/_generated/net/server/npc_player_server_packet.py +66 -76
  293. eolib/protocol/_generated/net/server/npc_reply_server_packet.py +60 -89
  294. eolib/protocol/_generated/net/server/npc_spec_server_packet.py +30 -27
  295. eolib/protocol/_generated/net/server/npc_update_attack.py +56 -89
  296. eolib/protocol/_generated/net/server/npc_update_chat.py +36 -45
  297. eolib/protocol/_generated/net/server/npc_update_position.py +35 -38
  298. eolib/protocol/_generated/net/server/online_player.py +60 -75
  299. eolib/protocol/_generated/net/server/paperdoll_agree_server_packet.py +49 -72
  300. eolib/protocol/_generated/net/server/paperdoll_ping_server_packet.py +22 -22
  301. eolib/protocol/_generated/net/server/paperdoll_remove_server_packet.py +42 -55
  302. eolib/protocol/_generated/net/server/paperdoll_reply_server_packet.py +37 -30
  303. eolib/protocol/_generated/net/server/party_add_server_packet.py +21 -12
  304. eolib/protocol/_generated/net/server/party_agree_server_packet.py +28 -37
  305. eolib/protocol/_generated/net/server/party_close_server_packet.py +13 -7
  306. eolib/protocol/_generated/net/server/party_create_server_packet.py +27 -16
  307. eolib/protocol/_generated/net/server/party_exp_share.py +37 -57
  308. eolib/protocol/_generated/net/server/party_list_server_packet.py +27 -16
  309. eolib/protocol/_generated/net/server/party_member.py +50 -73
  310. eolib/protocol/_generated/net/server/party_remove_server_packet.py +21 -20
  311. eolib/protocol/_generated/net/server/party_reply_server_packet.py +83 -58
  312. eolib/protocol/_generated/net/server/party_request_server_packet.py +35 -38
  313. eolib/protocol/_generated/net/server/party_target_group_server_packet.py +25 -15
  314. eolib/protocol/_generated/net/server/player_effect.py +90 -0
  315. eolib/protocol/_generated/net/server/players_agree_server_packet.py +21 -12
  316. eolib/protocol/_generated/net/server/players_list.py +38 -36
  317. eolib/protocol/_generated/net/server/players_list_friends.py +38 -36
  318. eolib/protocol/_generated/net/server/players_list_server_packet.py +23 -12
  319. eolib/protocol/_generated/net/server/players_net242_server_packet.py +21 -12
  320. eolib/protocol/_generated/net/server/players_ping_server_packet.py +21 -12
  321. eolib/protocol/_generated/net/server/players_pong_server_packet.py +21 -12
  322. eolib/protocol/_generated/net/server/players_remove_server_packet.py +21 -20
  323. eolib/protocol/_generated/net/server/players_reply_server_packet.py +23 -12
  324. eolib/protocol/_generated/net/server/priest_open_server_packet.py +21 -20
  325. eolib/protocol/_generated/net/server/priest_reply_server_packet.py +21 -12
  326. eolib/protocol/_generated/net/server/priest_request_server_packet.py +28 -29
  327. eolib/protocol/_generated/net/server/pub_file.py +28 -29
  328. eolib/protocol/_generated/net/server/quest_dialog_server_packet.py +76 -117
  329. eolib/protocol/_generated/net/server/quest_list_server_packet.py +99 -83
  330. eolib/protocol/_generated/net/server/quest_progress_entry.py +53 -66
  331. eolib/protocol/_generated/net/server/quest_report_server_packet.py +38 -37
  332. eolib/protocol/_generated/net/server/range_reply_server_packet.py +21 -12
  333. eolib/protocol/_generated/net/server/recover_agree_server_packet.py +35 -54
  334. eolib/protocol/_generated/net/server/recover_list_server_packet.py +28 -29
  335. eolib/protocol/_generated/net/server/recover_player_server_packet.py +30 -37
  336. eolib/protocol/_generated/net/server/recover_reply_server_packet.py +53 -93
  337. eolib/protocol/_generated/net/server/recover_target_group_server_packet.py +49 -88
  338. eolib/protocol/_generated/net/server/refresh_reply_server_packet.py +21 -12
  339. eolib/protocol/_generated/net/server/server_settings.py +63 -114
  340. eolib/protocol/_generated/net/server/shop_buy_server_packet.py +35 -38
  341. eolib/protocol/_generated/net/server/shop_craft_item.py +34 -42
  342. eolib/protocol/_generated/net/server/shop_create_server_packet.py +41 -51
  343. eolib/protocol/_generated/net/server/shop_open_server_packet.py +53 -57
  344. eolib/protocol/_generated/net/server/shop_sell_server_packet.py +35 -38
  345. eolib/protocol/_generated/net/server/shop_sold_item.py +28 -37
  346. eolib/protocol/_generated/net/server/shop_trade_item.py +42 -71
  347. eolib/protocol/_generated/net/server/sit_close_server_packet.py +28 -29
  348. eolib/protocol/_generated/net/server/sit_player_server_packet.py +36 -39
  349. eolib/protocol/_generated/net/server/sit_remove_server_packet.py +28 -29
  350. eolib/protocol/_generated/net/server/sit_reply_server_packet.py +36 -39
  351. eolib/protocol/_generated/net/server/skill_learn.py +64 -106
  352. eolib/protocol/_generated/net/server/skill_stat_requirements.py +134 -0
  353. eolib/protocol/_generated/net/server/spell_error_server_packet.py +13 -7
  354. eolib/protocol/_generated/net/server/spell_player_server_packet.py +28 -29
  355. eolib/protocol/_generated/net/server/spell_reply_server_packet.py +133 -0
  356. eolib/protocol/_generated/net/server/spell_request_server_packet.py +28 -37
  357. eolib/protocol/_generated/net/server/spell_target_group_server_packet.py +53 -83
  358. eolib/protocol/_generated/net/server/spell_target_other_server_packet.py +64 -114
  359. eolib/protocol/_generated/net/server/spell_target_self_server_packet.py +58 -107
  360. eolib/protocol/_generated/net/server/stat_skill_accept_server_packet.py +28 -29
  361. eolib/protocol/_generated/net/server/stat_skill_junk_server_packet.py +21 -12
  362. eolib/protocol/_generated/net/server/stat_skill_open_server_packet.py +42 -42
  363. eolib/protocol/_generated/net/server/stat_skill_player_server_packet.py +28 -29
  364. eolib/protocol/_generated/net/server/stat_skill_remove_server_packet.py +21 -20
  365. eolib/protocol/_generated/net/server/stat_skill_reply_server_packet.py +56 -48
  366. eolib/protocol/_generated/net/server/stat_skill_take_server_packet.py +28 -37
  367. eolib/protocol/_generated/net/server/talk_admin_server_packet.py +31 -22
  368. eolib/protocol/_generated/net/server/talk_announce_server_packet.py +31 -22
  369. eolib/protocol/_generated/net/server/talk_list_server_packet.py +27 -16
  370. eolib/protocol/_generated/net/server/talk_msg_server_packet.py +31 -22
  371. eolib/protocol/_generated/net/server/talk_open_server_packet.py +28 -29
  372. eolib/protocol/_generated/net/server/talk_player_server_packet.py +28 -29
  373. eolib/protocol/_generated/net/server/talk_reply_server_packet.py +28 -21
  374. eolib/protocol/_generated/net/server/talk_request_server_packet.py +31 -22
  375. eolib/protocol/_generated/net/server/talk_server_server_packet.py +21 -12
  376. eolib/protocol/_generated/net/server/talk_spec_server_packet.py +21 -12
  377. eolib/protocol/_generated/net/server/talk_tell_server_packet.py +31 -22
  378. eolib/protocol/_generated/net/server/tile_effect.py +91 -0
  379. eolib/protocol/_generated/net/server/trade_admin_server_packet.py +35 -13
  380. eolib/protocol/_generated/net/server/trade_agree_server_packet.py +28 -29
  381. eolib/protocol/_generated/net/server/trade_close_server_packet.py +21 -20
  382. eolib/protocol/_generated/net/server/trade_item_data.py +38 -82
  383. eolib/protocol/_generated/net/server/trade_open_server_packet.py +46 -57
  384. eolib/protocol/_generated/net/server/trade_reply_server_packet.py +35 -13
  385. eolib/protocol/_generated/net/server/trade_request_server_packet.py +29 -30
  386. eolib/protocol/_generated/net/server/trade_spec_server_packet.py +21 -12
  387. eolib/protocol/_generated/net/server/trade_use_server_packet.py +35 -13
  388. eolib/protocol/_generated/net/server/walk_close_server_packet.py +13 -7
  389. eolib/protocol/_generated/net/server/walk_open_server_packet.py +13 -7
  390. eolib/protocol/_generated/net/server/walk_player_server_packet.py +35 -58
  391. eolib/protocol/_generated/net/server/walk_reply_server_packet.py +49 -57
  392. eolib/protocol/_generated/net/server/warp_agree_server_packet.py +72 -66
  393. eolib/protocol/_generated/net/server/warp_create_server_packet.py +21 -12
  394. eolib/protocol/_generated/net/server/warp_player_server_packet.py +21 -12
  395. eolib/protocol/_generated/net/server/warp_request_server_packet.py +83 -106
  396. eolib/protocol/_generated/net/server/welcome_net242_server_packet.py +21 -12
  397. eolib/protocol/_generated/net/server/welcome_net243_server_packet.py +21 -12
  398. eolib/protocol/_generated/net/server/welcome_net244_server_packet.py +21 -12
  399. eolib/protocol/_generated/net/server/welcome_ping_server_packet.py +21 -12
  400. eolib/protocol/_generated/net/server/welcome_pong_server_packet.py +21 -12
  401. eolib/protocol/_generated/net/server/welcome_reply_server_packet.py +350 -556
  402. eolib/protocol/_generated/net/spell.py +28 -37
  403. eolib/protocol/_generated/net/three_item.py +28 -37
  404. eolib/protocol/_generated/net/version.py +35 -54
  405. eolib/protocol/_generated/net/weight.py +28 -37
  406. eolib/protocol/_generated/pub/ecf.py +52 -74
  407. eolib/protocol/_generated/pub/ecf_record.py +85 -164
  408. eolib/protocol/_generated/pub/eif.py +52 -74
  409. eolib/protocol/_generated/pub/eif_record.py +303 -658
  410. eolib/protocol/_generated/pub/enf.py +52 -74
  411. eolib/protocol/_generated/pub/enf_record.py +169 -328
  412. eolib/protocol/_generated/pub/esf.py +52 -74
  413. eolib/protocol/_generated/pub/esf_record.py +242 -491
  414. eolib/protocol/_generated/pub/server/__init__.py +30 -0
  415. eolib/protocol/_generated/pub/server/drop_file.py +87 -0
  416. eolib/protocol/_generated/pub/server/drop_npc_record.py +104 -0
  417. eolib/protocol/_generated/pub/server/drop_record.py +115 -0
  418. eolib/protocol/_generated/pub/server/inn_file.py +87 -0
  419. eolib/protocol/_generated/pub/server/inn_question_record.py +106 -0
  420. eolib/protocol/_generated/pub/server/inn_record.py +255 -0
  421. eolib/protocol/_generated/pub/server/shop_craft_ingredient_record.py +93 -0
  422. eolib/protocol/_generated/pub/server/shop_craft_record.py +98 -0
  423. eolib/protocol/_generated/pub/server/shop_file.py +87 -0
  424. eolib/protocol/_generated/pub/server/shop_record.py +188 -0
  425. eolib/protocol/_generated/pub/server/shop_trade_record.py +121 -0
  426. eolib/protocol/_generated/pub/server/skill_master_file.py +87 -0
  427. eolib/protocol/_generated/pub/server/skill_master_record.py +168 -0
  428. eolib/protocol/_generated/pub/server/skill_master_skill_record.py +223 -0
  429. eolib/protocol/_generated/pub/server/talk_file.py +87 -0
  430. eolib/protocol/_generated/pub/server/talk_message_record.py +87 -0
  431. eolib/protocol/_generated/pub/server/talk_record.py +121 -0
  432. eolib/protocol/protocol_enum_meta.py +1 -3
  433. eolib/protocol/pub/server/__init__.py +8 -0
  434. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/METADATA +5 -3
  435. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/RECORD +437 -414
  436. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/WHEEL +1 -1
  437. {eolib-1.1.1.dist-info → eolib-2.0.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -4,6 +4,7 @@
4
4
  # Changes will be lost when code is regenerated.
5
5
 
6
6
  from __future__ import annotations
7
+ from collections.abc import Iterable
7
8
  from .map_warp_row import MapWarpRow
8
9
  from .map_type import MapType
9
10
  from .map_timed_effect import MapTimedEffect
@@ -23,33 +24,88 @@ class Emf:
23
24
  Endless Map File
24
25
  """
25
26
  _byte_size: int = 0
26
- _rid: list[int] = None # type: ignore [assignment]
27
- _name: str = None # type: ignore [assignment]
28
- _type: MapType = None # type: ignore [assignment]
29
- _timed_effect: MapTimedEffect = None # type: ignore [assignment]
30
- _music_id: int = None # type: ignore [assignment]
31
- _music_control: MapMusicControl = None # type: ignore [assignment]
32
- _ambient_sound_id: int = None # type: ignore [assignment]
33
- _width: int = None # type: ignore [assignment]
34
- _height: int = None # type: ignore [assignment]
35
- _fill_tile: int = None # type: ignore [assignment]
36
- _map_available: bool = None # type: ignore [assignment]
37
- _can_scroll: bool = None # type: ignore [assignment]
38
- _relog_x: int = None # type: ignore [assignment]
39
- _relog_y: int = None # type: ignore [assignment]
40
- _npcs_count: int = None # type: ignore [assignment]
41
- _npcs: list[MapNpc] = None # type: ignore [assignment]
42
- _legacy_door_keys_count: int = None # type: ignore [assignment]
43
- _legacy_door_keys: list[MapLegacyDoorKey] = None # type: ignore [assignment]
44
- _items_count: int = None # type: ignore [assignment]
45
- _items: list[MapItem] = None # type: ignore [assignment]
46
- _tile_spec_rows_count: int = None # type: ignore [assignment]
47
- _tile_spec_rows: list[MapTileSpecRow] = None # type: ignore [assignment]
48
- _warp_rows_count: int = None # type: ignore [assignment]
49
- _warp_rows: list[MapWarpRow] = None # type: ignore [assignment]
50
- _graphic_layers: list[MapGraphicLayer] = None # type: ignore [assignment]
51
- _signs_count: int = None # type: ignore [assignment]
52
- _signs: list[MapSign] = None # type: ignore [assignment]
27
+ _rid: tuple[int, ...]
28
+ _name: str
29
+ _type: MapType
30
+ _timed_effect: MapTimedEffect
31
+ _music_id: int
32
+ _music_control: MapMusicControl
33
+ _ambient_sound_id: int
34
+ _width: int
35
+ _height: int
36
+ _fill_tile: int
37
+ _map_available: bool
38
+ _can_scroll: bool
39
+ _relog_x: int
40
+ _relog_y: int
41
+ _npcs_count: int
42
+ _npcs: tuple[MapNpc, ...]
43
+ _legacy_door_keys_count: int
44
+ _legacy_door_keys: tuple[MapLegacyDoorKey, ...]
45
+ _items_count: int
46
+ _items: tuple[MapItem, ...]
47
+ _tile_spec_rows_count: int
48
+ _tile_spec_rows: tuple[MapTileSpecRow, ...]
49
+ _warp_rows_count: int
50
+ _warp_rows: tuple[MapWarpRow, ...]
51
+ _graphic_layers: tuple[MapGraphicLayer, ...]
52
+ _signs_count: int
53
+ _signs: tuple[MapSign, ...]
54
+
55
+ def __init__(self, *, rid: Iterable[int], name: str, type: MapType, timed_effect: MapTimedEffect, music_id: int, music_control: MapMusicControl, ambient_sound_id: int, width: int, height: int, fill_tile: int, map_available: bool, can_scroll: bool, relog_x: int, relog_y: int, npcs: Iterable[MapNpc], legacy_door_keys: Iterable[MapLegacyDoorKey], items: Iterable[MapItem], tile_spec_rows: Iterable[MapTileSpecRow], warp_rows: Iterable[MapWarpRow], graphic_layers: Iterable[MapGraphicLayer], signs: Iterable[MapSign]):
56
+ """
57
+ Create a new instance of Emf.
58
+
59
+ Args:
60
+ rid (Iterable[int]): (Length must be `2`.) (Element value range is 0-64008.)
61
+ name (str): (Length must be `24` or less.)
62
+ type (MapType):
63
+ timed_effect (MapTimedEffect):
64
+ music_id (int): (Value range is 0-252.)
65
+ music_control (MapMusicControl):
66
+ ambient_sound_id (int): (Value range is 0-64008.)
67
+ width (int): (Value range is 0-252.)
68
+ height (int): (Value range is 0-252.)
69
+ fill_tile (int): (Value range is 0-64008.)
70
+ map_available (bool):
71
+ can_scroll (bool):
72
+ relog_x (int): (Value range is 0-252.)
73
+ relog_y (int): (Value range is 0-252.)
74
+ npcs (Iterable[MapNpc]): (Length must be 252 or less.)
75
+ legacy_door_keys (Iterable[MapLegacyDoorKey]): (Length must be 252 or less.)
76
+ items (Iterable[MapItem]): (Length must be 252 or less.)
77
+ tile_spec_rows (Iterable[MapTileSpecRow]): (Length must be 252 or less.)
78
+ warp_rows (Iterable[MapWarpRow]): (Length must be 252 or less.)
79
+ graphic_layers (Iterable[MapGraphicLayer]): The 9 layers of map graphics. Order is [Ground, Object, Overlay, Down Wall, Right Wall, Roof, Top, Shadow, Overlay2] (Length must be `9`.)
80
+ signs (Iterable[MapSign]): (Length must be 252 or less.)
81
+ """
82
+ self._rid = tuple(rid)
83
+ self._name = name
84
+ self._type = type
85
+ self._timed_effect = timed_effect
86
+ self._music_id = music_id
87
+ self._music_control = music_control
88
+ self._ambient_sound_id = ambient_sound_id
89
+ self._width = width
90
+ self._height = height
91
+ self._fill_tile = fill_tile
92
+ self._map_available = map_available
93
+ self._can_scroll = can_scroll
94
+ self._relog_x = relog_x
95
+ self._relog_y = relog_y
96
+ self._npcs = tuple(npcs)
97
+ self._npcs_count = len(self._npcs)
98
+ self._legacy_door_keys = tuple(legacy_door_keys)
99
+ self._legacy_door_keys_count = len(self._legacy_door_keys)
100
+ self._items = tuple(items)
101
+ self._items_count = len(self._items)
102
+ self._tile_spec_rows = tuple(tile_spec_rows)
103
+ self._tile_spec_rows_count = len(self._tile_spec_rows)
104
+ self._warp_rows = tuple(warp_rows)
105
+ self._warp_rows_count = len(self._warp_rows)
106
+ self._graphic_layers = tuple(graphic_layers)
107
+ self._signs = tuple(signs)
108
+ self._signs_count = len(self._signs)
53
109
 
54
110
  @property
55
111
  def byte_size(self) -> int:
@@ -62,315 +118,93 @@ class Emf:
62
118
  return self._byte_size
63
119
 
64
120
  @property
65
- def rid(self) -> list[int]:
66
- """
67
- Note:
68
- - Length must be `2`.
69
- - Element value range is 0-64008.
70
- """
121
+ def rid(self) -> tuple[int, ...]:
71
122
  return self._rid
72
123
 
73
- @rid.setter
74
- def rid(self, rid: list[int]) -> None:
75
- """
76
- Note:
77
- - Length must be `2`.
78
- - Element value range is 0-64008.
79
- """
80
- self._rid = rid
81
-
82
124
  @property
83
125
  def name(self) -> str:
84
- """
85
- Note:
86
- - Length must be `24` or less.
87
- """
88
126
  return self._name
89
127
 
90
- @name.setter
91
- def name(self, name: str) -> None:
92
- """
93
- Note:
94
- - Length must be `24` or less.
95
- """
96
- self._name = name
97
-
98
128
  @property
99
129
  def type(self) -> MapType:
100
130
  return self._type
101
131
 
102
- @type.setter
103
- def type(self, type: MapType) -> None:
104
- self._type = type
105
-
106
132
  @property
107
133
  def timed_effect(self) -> MapTimedEffect:
108
134
  return self._timed_effect
109
135
 
110
- @timed_effect.setter
111
- def timed_effect(self, timed_effect: MapTimedEffect) -> None:
112
- self._timed_effect = timed_effect
113
-
114
136
  @property
115
137
  def music_id(self) -> int:
116
- """
117
- Note:
118
- - Value range is 0-252.
119
- """
120
138
  return self._music_id
121
139
 
122
- @music_id.setter
123
- def music_id(self, music_id: int) -> None:
124
- """
125
- Note:
126
- - Value range is 0-252.
127
- """
128
- self._music_id = music_id
129
-
130
140
  @property
131
141
  def music_control(self) -> MapMusicControl:
132
142
  return self._music_control
133
143
 
134
- @music_control.setter
135
- def music_control(self, music_control: MapMusicControl) -> None:
136
- self._music_control = music_control
137
-
138
144
  @property
139
145
  def ambient_sound_id(self) -> int:
140
- """
141
- Note:
142
- - Value range is 0-64008.
143
- """
144
146
  return self._ambient_sound_id
145
147
 
146
- @ambient_sound_id.setter
147
- def ambient_sound_id(self, ambient_sound_id: int) -> None:
148
- """
149
- Note:
150
- - Value range is 0-64008.
151
- """
152
- self._ambient_sound_id = ambient_sound_id
153
-
154
148
  @property
155
149
  def width(self) -> int:
156
- """
157
- Note:
158
- - Value range is 0-252.
159
- """
160
150
  return self._width
161
151
 
162
- @width.setter
163
- def width(self, width: int) -> None:
164
- """
165
- Note:
166
- - Value range is 0-252.
167
- """
168
- self._width = width
169
-
170
152
  @property
171
153
  def height(self) -> int:
172
- """
173
- Note:
174
- - Value range is 0-252.
175
- """
176
154
  return self._height
177
155
 
178
- @height.setter
179
- def height(self, height: int) -> None:
180
- """
181
- Note:
182
- - Value range is 0-252.
183
- """
184
- self._height = height
185
-
186
156
  @property
187
157
  def fill_tile(self) -> int:
188
- """
189
- Note:
190
- - Value range is 0-64008.
191
- """
192
158
  return self._fill_tile
193
159
 
194
- @fill_tile.setter
195
- def fill_tile(self, fill_tile: int) -> None:
196
- """
197
- Note:
198
- - Value range is 0-64008.
199
- """
200
- self._fill_tile = fill_tile
201
-
202
160
  @property
203
161
  def map_available(self) -> bool:
204
162
  return self._map_available
205
163
 
206
- @map_available.setter
207
- def map_available(self, map_available: bool) -> None:
208
- self._map_available = map_available
209
-
210
164
  @property
211
165
  def can_scroll(self) -> bool:
212
166
  return self._can_scroll
213
167
 
214
- @can_scroll.setter
215
- def can_scroll(self, can_scroll: bool) -> None:
216
- self._can_scroll = can_scroll
217
-
218
168
  @property
219
169
  def relog_x(self) -> int:
220
- """
221
- Note:
222
- - Value range is 0-252.
223
- """
224
170
  return self._relog_x
225
171
 
226
- @relog_x.setter
227
- def relog_x(self, relog_x: int) -> None:
228
- """
229
- Note:
230
- - Value range is 0-252.
231
- """
232
- self._relog_x = relog_x
233
-
234
172
  @property
235
173
  def relog_y(self) -> int:
236
- """
237
- Note:
238
- - Value range is 0-252.
239
- """
240
174
  return self._relog_y
241
175
 
242
- @relog_y.setter
243
- def relog_y(self, relog_y: int) -> None:
244
- """
245
- Note:
246
- - Value range is 0-252.
247
- """
248
- self._relog_y = relog_y
249
-
250
176
  @property
251
- def npcs(self) -> list[MapNpc]:
252
- """
253
- Note:
254
- - Length must be 252 or less.
255
- """
177
+ def npcs(self) -> tuple[MapNpc, ...]:
256
178
  return self._npcs
257
179
 
258
- @npcs.setter
259
- def npcs(self, npcs: list[MapNpc]) -> None:
260
- """
261
- Note:
262
- - Length must be 252 or less.
263
- """
264
- self._npcs = npcs
265
- self._npcs_count = len(self._npcs)
266
-
267
180
  @property
268
- def legacy_door_keys(self) -> list[MapLegacyDoorKey]:
269
- """
270
- Note:
271
- - Length must be 252 or less.
272
- """
181
+ def legacy_door_keys(self) -> tuple[MapLegacyDoorKey, ...]:
273
182
  return self._legacy_door_keys
274
183
 
275
- @legacy_door_keys.setter
276
- def legacy_door_keys(self, legacy_door_keys: list[MapLegacyDoorKey]) -> None:
277
- """
278
- Note:
279
- - Length must be 252 or less.
280
- """
281
- self._legacy_door_keys = legacy_door_keys
282
- self._legacy_door_keys_count = len(self._legacy_door_keys)
283
-
284
184
  @property
285
- def items(self) -> list[MapItem]:
286
- """
287
- Note:
288
- - Length must be 252 or less.
289
- """
185
+ def items(self) -> tuple[MapItem, ...]:
290
186
  return self._items
291
187
 
292
- @items.setter
293
- def items(self, items: list[MapItem]) -> None:
294
- """
295
- Note:
296
- - Length must be 252 or less.
297
- """
298
- self._items = items
299
- self._items_count = len(self._items)
300
-
301
188
  @property
302
- def tile_spec_rows(self) -> list[MapTileSpecRow]:
303
- """
304
- Note:
305
- - Length must be 252 or less.
306
- """
189
+ def tile_spec_rows(self) -> tuple[MapTileSpecRow, ...]:
307
190
  return self._tile_spec_rows
308
191
 
309
- @tile_spec_rows.setter
310
- def tile_spec_rows(self, tile_spec_rows: list[MapTileSpecRow]) -> None:
311
- """
312
- Note:
313
- - Length must be 252 or less.
314
- """
315
- self._tile_spec_rows = tile_spec_rows
316
- self._tile_spec_rows_count = len(self._tile_spec_rows)
317
-
318
192
  @property
319
- def warp_rows(self) -> list[MapWarpRow]:
320
- """
321
- Note:
322
- - Length must be 252 or less.
323
- """
193
+ def warp_rows(self) -> tuple[MapWarpRow, ...]:
324
194
  return self._warp_rows
325
195
 
326
- @warp_rows.setter
327
- def warp_rows(self, warp_rows: list[MapWarpRow]) -> None:
328
- """
329
- Note:
330
- - Length must be 252 or less.
331
- """
332
- self._warp_rows = warp_rows
333
- self._warp_rows_count = len(self._warp_rows)
334
-
335
196
  @property
336
- def graphic_layers(self) -> list[MapGraphicLayer]:
197
+ def graphic_layers(self) -> tuple[MapGraphicLayer, ...]:
337
198
  """
338
199
  The 9 layers of map graphics.
339
200
  Order is [Ground, Object, Overlay, Down Wall, Right Wall, Roof, Top, Shadow, Overlay2]
340
-
341
- Note:
342
- - Length must be `9`.
343
201
  """
344
202
  return self._graphic_layers
345
203
 
346
- @graphic_layers.setter
347
- def graphic_layers(self, graphic_layers: list[MapGraphicLayer]) -> None:
348
- """
349
- The 9 layers of map graphics.
350
- Order is [Ground, Object, Overlay, Down Wall, Right Wall, Roof, Top, Shadow, Overlay2]
351
-
352
- Note:
353
- - Length must be `9`.
354
- """
355
- self._graphic_layers = graphic_layers
356
-
357
204
  @property
358
- def signs(self) -> list[MapSign]:
359
- """
360
- Note:
361
- - Length must be 252 or less.
362
- """
205
+ def signs(self) -> tuple[MapSign, ...]:
363
206
  return self._signs
364
207
 
365
- @signs.setter
366
- def signs(self, signs: list[MapSign]) -> None:
367
- """
368
- Note:
369
- - Length must be 252 or less.
370
- """
371
- self._signs = signs
372
- self._signs_count = len(self._signs)
373
-
374
208
  @staticmethod
375
209
  def serialize(writer: EoWriter, data: "Emf") -> None:
376
210
  """
@@ -380,115 +214,119 @@ class Emf:
380
214
  writer (EoWriter): The writer that the data will be serialized to.
381
215
  data (Emf): The data to serialize.
382
216
  """
383
- writer.add_fixed_string("EMF", 3, False)
384
- if data._rid is None:
385
- raise SerializationError("rid must be provided.")
386
- if len(data._rid) != 2:
387
- raise SerializationError(f"Expected length of rid to be exactly 2, got {len(data._rid)}.")
388
- for i in range(2):
389
- writer.add_short(data._rid[i])
390
- if data._name is None:
391
- raise SerializationError("name must be provided.")
392
- if len(data._name) > 24:
393
- raise SerializationError(f"Expected length of name to be 24 or less, got {len(data._name)}.")
394
- writer.add_fixed_encoded_string(data._name, 24, True)
395
- if data._type is None:
396
- raise SerializationError("type must be provided.")
397
- writer.add_char(int(data._type))
398
- if data._timed_effect is None:
399
- raise SerializationError("timed_effect must be provided.")
400
- writer.add_char(int(data._timed_effect))
401
- if data._music_id is None:
402
- raise SerializationError("music_id must be provided.")
403
- writer.add_char(data._music_id)
404
- if data._music_control is None:
405
- raise SerializationError("music_control must be provided.")
406
- writer.add_char(int(data._music_control))
407
- if data._ambient_sound_id is None:
408
- raise SerializationError("ambient_sound_id must be provided.")
409
- writer.add_short(data._ambient_sound_id)
410
- if data._width is None:
411
- raise SerializationError("width must be provided.")
412
- writer.add_char(data._width)
413
- if data._height is None:
414
- raise SerializationError("height must be provided.")
415
- writer.add_char(data._height)
416
- if data._fill_tile is None:
417
- raise SerializationError("fill_tile must be provided.")
418
- writer.add_short(data._fill_tile)
419
- if data._map_available is None:
420
- raise SerializationError("map_available must be provided.")
421
- writer.add_char(1 if data._map_available else 0)
422
- if data._can_scroll is None:
423
- raise SerializationError("can_scroll must be provided.")
424
- writer.add_char(1 if data._can_scroll else 0)
425
- if data._relog_x is None:
426
- raise SerializationError("relog_x must be provided.")
427
- writer.add_char(data._relog_x)
428
- if data._relog_y is None:
429
- raise SerializationError("relog_y must be provided.")
430
- writer.add_char(data._relog_y)
431
- writer.add_char(0)
432
- if data._npcs_count is None:
433
- raise SerializationError("npcs_count must be provided.")
434
- writer.add_char(data._npcs_count)
435
- if data._npcs is None:
436
- raise SerializationError("npcs must be provided.")
437
- if len(data._npcs) > 252:
438
- raise SerializationError(f"Expected length of npcs to be 252 or less, got {len(data._npcs)}.")
439
- for i in range(data._npcs_count):
440
- MapNpc.serialize(writer, data._npcs[i])
441
- if data._legacy_door_keys_count is None:
442
- raise SerializationError("legacy_door_keys_count must be provided.")
443
- writer.add_char(data._legacy_door_keys_count)
444
- if data._legacy_door_keys is None:
445
- raise SerializationError("legacy_door_keys must be provided.")
446
- if len(data._legacy_door_keys) > 252:
447
- raise SerializationError(f"Expected length of legacy_door_keys to be 252 or less, got {len(data._legacy_door_keys)}.")
448
- for i in range(data._legacy_door_keys_count):
449
- MapLegacyDoorKey.serialize(writer, data._legacy_door_keys[i])
450
- if data._items_count is None:
451
- raise SerializationError("items_count must be provided.")
452
- writer.add_char(data._items_count)
453
- if data._items is None:
454
- raise SerializationError("items must be provided.")
455
- if len(data._items) > 252:
456
- raise SerializationError(f"Expected length of items to be 252 or less, got {len(data._items)}.")
457
- for i in range(data._items_count):
458
- MapItem.serialize(writer, data._items[i])
459
- if data._tile_spec_rows_count is None:
460
- raise SerializationError("tile_spec_rows_count must be provided.")
461
- writer.add_char(data._tile_spec_rows_count)
462
- if data._tile_spec_rows is None:
463
- raise SerializationError("tile_spec_rows must be provided.")
464
- if len(data._tile_spec_rows) > 252:
465
- raise SerializationError(f"Expected length of tile_spec_rows to be 252 or less, got {len(data._tile_spec_rows)}.")
466
- for i in range(data._tile_spec_rows_count):
467
- MapTileSpecRow.serialize(writer, data._tile_spec_rows[i])
468
- if data._warp_rows_count is None:
469
- raise SerializationError("warp_rows_count must be provided.")
470
- writer.add_char(data._warp_rows_count)
471
- if data._warp_rows is None:
472
- raise SerializationError("warp_rows must be provided.")
473
- if len(data._warp_rows) > 252:
474
- raise SerializationError(f"Expected length of warp_rows to be 252 or less, got {len(data._warp_rows)}.")
475
- for i in range(data._warp_rows_count):
476
- MapWarpRow.serialize(writer, data._warp_rows[i])
477
- if data._graphic_layers is None:
478
- raise SerializationError("graphic_layers must be provided.")
479
- if len(data._graphic_layers) != 9:
480
- raise SerializationError(f"Expected length of graphic_layers to be exactly 9, got {len(data._graphic_layers)}.")
481
- for i in range(9):
482
- MapGraphicLayer.serialize(writer, data._graphic_layers[i])
483
- if data._signs_count is None:
484
- raise SerializationError("signs_count must be provided.")
485
- writer.add_char(data._signs_count)
486
- if data._signs is None:
487
- raise SerializationError("signs must be provided.")
488
- if len(data._signs) > 252:
489
- raise SerializationError(f"Expected length of signs to be 252 or less, got {len(data._signs)}.")
490
- for i in range(data._signs_count):
491
- MapSign.serialize(writer, data._signs[i])
217
+ old_string_sanitization_mode: bool = writer.string_sanitization_mode
218
+ try:
219
+ writer.add_fixed_string("EMF", 3, False)
220
+ if data._rid is None:
221
+ raise SerializationError("rid must be provided.")
222
+ if len(data._rid) != 2:
223
+ raise SerializationError(f"Expected length of rid to be exactly 2, got {len(data._rid)}.")
224
+ for i in range(2):
225
+ writer.add_short(data._rid[i])
226
+ if data._name is None:
227
+ raise SerializationError("name must be provided.")
228
+ if len(data._name) > 24:
229
+ raise SerializationError(f"Expected length of name to be 24 or less, got {len(data._name)}.")
230
+ writer.add_fixed_encoded_string(data._name, 24, True)
231
+ if data._type is None:
232
+ raise SerializationError("type must be provided.")
233
+ writer.add_char(int(data._type))
234
+ if data._timed_effect is None:
235
+ raise SerializationError("timed_effect must be provided.")
236
+ writer.add_char(int(data._timed_effect))
237
+ if data._music_id is None:
238
+ raise SerializationError("music_id must be provided.")
239
+ writer.add_char(data._music_id)
240
+ if data._music_control is None:
241
+ raise SerializationError("music_control must be provided.")
242
+ writer.add_char(int(data._music_control))
243
+ if data._ambient_sound_id is None:
244
+ raise SerializationError("ambient_sound_id must be provided.")
245
+ writer.add_short(data._ambient_sound_id)
246
+ if data._width is None:
247
+ raise SerializationError("width must be provided.")
248
+ writer.add_char(data._width)
249
+ if data._height is None:
250
+ raise SerializationError("height must be provided.")
251
+ writer.add_char(data._height)
252
+ if data._fill_tile is None:
253
+ raise SerializationError("fill_tile must be provided.")
254
+ writer.add_short(data._fill_tile)
255
+ if data._map_available is None:
256
+ raise SerializationError("map_available must be provided.")
257
+ writer.add_char(1 if data._map_available else 0)
258
+ if data._can_scroll is None:
259
+ raise SerializationError("can_scroll must be provided.")
260
+ writer.add_char(1 if data._can_scroll else 0)
261
+ if data._relog_x is None:
262
+ raise SerializationError("relog_x must be provided.")
263
+ writer.add_char(data._relog_x)
264
+ if data._relog_y is None:
265
+ raise SerializationError("relog_y must be provided.")
266
+ writer.add_char(data._relog_y)
267
+ writer.add_char(0)
268
+ if data._npcs_count is None:
269
+ raise SerializationError("npcs_count must be provided.")
270
+ writer.add_char(data._npcs_count)
271
+ if data._npcs is None:
272
+ raise SerializationError("npcs must be provided.")
273
+ if len(data._npcs) > 252:
274
+ raise SerializationError(f"Expected length of npcs to be 252 or less, got {len(data._npcs)}.")
275
+ for i in range(data._npcs_count):
276
+ MapNpc.serialize(writer, data._npcs[i])
277
+ if data._legacy_door_keys_count is None:
278
+ raise SerializationError("legacy_door_keys_count must be provided.")
279
+ writer.add_char(data._legacy_door_keys_count)
280
+ if data._legacy_door_keys is None:
281
+ raise SerializationError("legacy_door_keys must be provided.")
282
+ if len(data._legacy_door_keys) > 252:
283
+ raise SerializationError(f"Expected length of legacy_door_keys to be 252 or less, got {len(data._legacy_door_keys)}.")
284
+ for i in range(data._legacy_door_keys_count):
285
+ MapLegacyDoorKey.serialize(writer, data._legacy_door_keys[i])
286
+ if data._items_count is None:
287
+ raise SerializationError("items_count must be provided.")
288
+ writer.add_char(data._items_count)
289
+ if data._items is None:
290
+ raise SerializationError("items must be provided.")
291
+ if len(data._items) > 252:
292
+ raise SerializationError(f"Expected length of items to be 252 or less, got {len(data._items)}.")
293
+ for i in range(data._items_count):
294
+ MapItem.serialize(writer, data._items[i])
295
+ if data._tile_spec_rows_count is None:
296
+ raise SerializationError("tile_spec_rows_count must be provided.")
297
+ writer.add_char(data._tile_spec_rows_count)
298
+ if data._tile_spec_rows is None:
299
+ raise SerializationError("tile_spec_rows must be provided.")
300
+ if len(data._tile_spec_rows) > 252:
301
+ raise SerializationError(f"Expected length of tile_spec_rows to be 252 or less, got {len(data._tile_spec_rows)}.")
302
+ for i in range(data._tile_spec_rows_count):
303
+ MapTileSpecRow.serialize(writer, data._tile_spec_rows[i])
304
+ if data._warp_rows_count is None:
305
+ raise SerializationError("warp_rows_count must be provided.")
306
+ writer.add_char(data._warp_rows_count)
307
+ if data._warp_rows is None:
308
+ raise SerializationError("warp_rows must be provided.")
309
+ if len(data._warp_rows) > 252:
310
+ raise SerializationError(f"Expected length of warp_rows to be 252 or less, got {len(data._warp_rows)}.")
311
+ for i in range(data._warp_rows_count):
312
+ MapWarpRow.serialize(writer, data._warp_rows[i])
313
+ if data._graphic_layers is None:
314
+ raise SerializationError("graphic_layers must be provided.")
315
+ if len(data._graphic_layers) != 9:
316
+ raise SerializationError(f"Expected length of graphic_layers to be exactly 9, got {len(data._graphic_layers)}.")
317
+ for i in range(9):
318
+ MapGraphicLayer.serialize(writer, data._graphic_layers[i])
319
+ if data._signs_count is None:
320
+ raise SerializationError("signs_count must be provided.")
321
+ writer.add_char(data._signs_count)
322
+ if data._signs is None:
323
+ raise SerializationError("signs must be provided.")
324
+ if len(data._signs) > 252:
325
+ raise SerializationError(f"Expected length of signs to be 252 or less, got {len(data._signs)}.")
326
+ for i in range(data._signs_count):
327
+ MapSign.serialize(writer, data._signs[i])
328
+ finally:
329
+ writer.string_sanitization_mode = old_string_sanitization_mode
492
330
 
493
331
  @staticmethod
494
332
  def deserialize(reader: EoReader) -> "Emf":
@@ -501,57 +339,57 @@ class Emf:
501
339
  Returns:
502
340
  Emf: The data to serialize.
503
341
  """
504
- data: Emf = Emf()
505
342
  old_chunked_reading_mode: bool = reader.chunked_reading_mode
506
343
  try:
507
344
  reader_start_position: int = reader.position
508
345
  reader.get_fixed_string(3, False)
509
- data._rid = []
346
+ rid = []
510
347
  for i in range(2):
511
- data._rid.append(reader.get_short())
512
- data._name = reader.get_fixed_encoded_string(24, True)
513
- data._type = MapType(reader.get_char())
514
- data._timed_effect = MapTimedEffect(reader.get_char())
515
- data._music_id = reader.get_char()
516
- data._music_control = MapMusicControl(reader.get_char())
517
- data._ambient_sound_id = reader.get_short()
518
- data._width = reader.get_char()
519
- data._height = reader.get_char()
520
- data._fill_tile = reader.get_short()
521
- data._map_available = reader.get_char() != 0
522
- data._can_scroll = reader.get_char() != 0
523
- data._relog_x = reader.get_char()
524
- data._relog_y = reader.get_char()
348
+ rid.append(reader.get_short())
349
+ name = reader.get_fixed_encoded_string(24, True)
350
+ type = MapType(reader.get_char())
351
+ timed_effect = MapTimedEffect(reader.get_char())
352
+ music_id = reader.get_char()
353
+ music_control = MapMusicControl(reader.get_char())
354
+ ambient_sound_id = reader.get_short()
355
+ width = reader.get_char()
356
+ height = reader.get_char()
357
+ fill_tile = reader.get_short()
358
+ map_available = reader.get_char() != 0
359
+ can_scroll = reader.get_char() != 0
360
+ relog_x = reader.get_char()
361
+ relog_y = reader.get_char()
525
362
  reader.get_char()
526
- data._npcs_count = reader.get_char()
527
- data._npcs = []
528
- for i in range(data._npcs_count):
529
- data._npcs.append(MapNpc.deserialize(reader))
530
- data._legacy_door_keys_count = reader.get_char()
531
- data._legacy_door_keys = []
532
- for i in range(data._legacy_door_keys_count):
533
- data._legacy_door_keys.append(MapLegacyDoorKey.deserialize(reader))
534
- data._items_count = reader.get_char()
535
- data._items = []
536
- for i in range(data._items_count):
537
- data._items.append(MapItem.deserialize(reader))
538
- data._tile_spec_rows_count = reader.get_char()
539
- data._tile_spec_rows = []
540
- for i in range(data._tile_spec_rows_count):
541
- data._tile_spec_rows.append(MapTileSpecRow.deserialize(reader))
542
- data._warp_rows_count = reader.get_char()
543
- data._warp_rows = []
544
- for i in range(data._warp_rows_count):
545
- data._warp_rows.append(MapWarpRow.deserialize(reader))
546
- data._graphic_layers = []
363
+ npcs_count = reader.get_char()
364
+ npcs = []
365
+ for i in range(npcs_count):
366
+ npcs.append(MapNpc.deserialize(reader))
367
+ legacy_door_keys_count = reader.get_char()
368
+ legacy_door_keys = []
369
+ for i in range(legacy_door_keys_count):
370
+ legacy_door_keys.append(MapLegacyDoorKey.deserialize(reader))
371
+ items_count = reader.get_char()
372
+ items = []
373
+ for i in range(items_count):
374
+ items.append(MapItem.deserialize(reader))
375
+ tile_spec_rows_count = reader.get_char()
376
+ tile_spec_rows = []
377
+ for i in range(tile_spec_rows_count):
378
+ tile_spec_rows.append(MapTileSpecRow.deserialize(reader))
379
+ warp_rows_count = reader.get_char()
380
+ warp_rows = []
381
+ for i in range(warp_rows_count):
382
+ warp_rows.append(MapWarpRow.deserialize(reader))
383
+ graphic_layers = []
547
384
  for i in range(9):
548
- data._graphic_layers.append(MapGraphicLayer.deserialize(reader))
549
- data._signs_count = reader.get_char()
550
- data._signs = []
551
- for i in range(data._signs_count):
552
- data._signs.append(MapSign.deserialize(reader))
553
- data._byte_size = reader.position - reader_start_position
554
- return data
385
+ graphic_layers.append(MapGraphicLayer.deserialize(reader))
386
+ signs_count = reader.get_char()
387
+ signs = []
388
+ for i in range(signs_count):
389
+ signs.append(MapSign.deserialize(reader))
390
+ result = Emf(rid=rid, name=name, type=type, timed_effect=timed_effect, music_id=music_id, music_control=music_control, ambient_sound_id=ambient_sound_id, width=width, height=height, fill_tile=fill_tile, map_available=map_available, can_scroll=can_scroll, relog_x=relog_x, relog_y=relog_y, npcs=npcs, legacy_door_keys=legacy_door_keys, items=items, tile_spec_rows=tile_spec_rows, warp_rows=warp_rows, graphic_layers=graphic_layers, signs=signs)
391
+ result._byte_size = reader.position - reader_start_position
392
+ return result
555
393
  finally:
556
394
  reader.chunked_reading_mode = old_chunked_reading_mode
557
395