soulstruct 2.3.2__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 (1712) hide show
  1. soulstruct/__main__.py +175 -0
  2. soulstruct/base/__init__.py +0 -0
  3. soulstruct/base/ai/__init__.py +2 -0
  4. soulstruct/base/ai/ai_directory.py +104 -0
  5. soulstruct/base/ai/lua/__init__.py +109 -0
  6. soulstruct/base/ai/lua/x64/DSLuaDecompiler.exe +0 -0
  7. soulstruct/base/ai/lua/x64/Lua.exe +0 -0
  8. soulstruct/base/ai/lua/x64/LuaC.exe +0 -0
  9. soulstruct/base/ai/lua/x64/SoulsFormats.dll +0 -0
  10. soulstruct/base/ai/lua/x86/lua50.dll +0 -0
  11. soulstruct/base/ai/lua/x86/lua50.exe +0 -0
  12. soulstruct/base/ai/lua/x86/luac50.exe +0 -0
  13. soulstruct/base/ai/lua_scripts.py +213 -0
  14. soulstruct/base/ai/luabnd.py +419 -0
  15. soulstruct/base/ai/luagnl.py +59 -0
  16. soulstruct/base/ai/luainfo.py +90 -0
  17. soulstruct/base/animations/__init__.py +5 -0
  18. soulstruct/base/animations/anibnd.py +19 -0
  19. soulstruct/base/animations/sibcam.py +361 -0
  20. soulstruct/base/animations/tae/__init__.py +11 -0
  21. soulstruct/base/animations/tae/core.py +236 -0
  22. soulstruct/base/animations/tae/enums.py +118 -0
  23. soulstruct/base/animations/tae/events.py +1054 -0
  24. soulstruct/base/base_binary_file.py +457 -0
  25. soulstruct/base/dataclass_meta.py +57 -0
  26. soulstruct/base/events/__init__.py +2 -0
  27. soulstruct/base/events/_generate_emedf_json.py +114 -0
  28. soulstruct/base/events/_generate_instructions_csharp.py +295 -0
  29. soulstruct/base/events/_generate_instructions_pyi.py +493 -0
  30. soulstruct/base/events/_generate_new_emedf.py +142 -0
  31. soulstruct/base/events/core.py +158 -0
  32. soulstruct/base/events/emevd/__init__.py +5 -0
  33. soulstruct/base/events/emevd/core.py +687 -0
  34. soulstruct/base/events/emevd/emedf.py +298 -0
  35. soulstruct/base/events/emevd/event.py +713 -0
  36. soulstruct/base/events/emevd/event_layers.py +74 -0
  37. soulstruct/base/events/emevd/exceptions.py +22 -0
  38. soulstruct/base/events/emevd/instruction.py +373 -0
  39. soulstruct/base/events/emevd/numeric.py +189 -0
  40. soulstruct/base/events/emevd/utils.py +187 -0
  41. soulstruct/base/events/enums.py +103 -0
  42. soulstruct/base/events/event_directory.py +152 -0
  43. soulstruct/base/events/evs/__init__.py +1 -0
  44. soulstruct/base/events/evs/adv_decompiler.py +403 -0
  45. soulstruct/base/events/evs/compiler.py +496 -0
  46. soulstruct/base/events/evs/conditions.py +246 -0
  47. soulstruct/base/events/evs/core.py +1799 -0
  48. soulstruct/base/events/evs/decompiler.py +428 -0
  49. soulstruct/base/events/evs/exceptions.py +137 -0
  50. soulstruct/base/events/evs/utils.py +436 -0
  51. soulstruct/base/ezstate/__init__.py +3 -0
  52. soulstruct/base/ezstate/esd/__init__.py +5 -0
  53. soulstruct/base/ezstate/esd/command.py +116 -0
  54. soulstruct/base/ezstate/esd/condition.py +252 -0
  55. soulstruct/base/ezstate/esd/core.py +562 -0
  56. soulstruct/base/ezstate/esd/esd_type.py +9 -0
  57. soulstruct/base/ezstate/esd/esp_compiler.py +557 -0
  58. soulstruct/base/ezstate/esd/exceptions.py +26 -0
  59. soulstruct/base/ezstate/esd/ezl_parser.py +350 -0
  60. soulstruct/base/ezstate/esd/functions.py +149 -0
  61. soulstruct/base/ezstate/esd/functions.pyi +1614 -0
  62. soulstruct/base/ezstate/esd/state.py +323 -0
  63. soulstruct/base/ezstate/talk_directory.py +77 -0
  64. soulstruct/base/ezstate/talkesdbnd.py +130 -0
  65. soulstruct/base/game_file.py +57 -0
  66. soulstruct/base/game_file_directory.py +257 -0
  67. soulstruct/base/game_types/__init__.py +3 -0
  68. soulstruct/base/game_types/basic_types.py +257 -0
  69. soulstruct/base/game_types/game_enums_manager.py +457 -0
  70. soulstruct/base/game_types/map_types.py +563 -0
  71. soulstruct/base/maps/__init__.py +3 -0
  72. soulstruct/base/maps/enum_module_generator.py +263 -0
  73. soulstruct/base/maps/map_studio_directory.py +112 -0
  74. soulstruct/base/maps/msb/__init__.py +5 -0
  75. soulstruct/base/maps/msb/core.py +1021 -0
  76. soulstruct/base/maps/msb/enums.py +88 -0
  77. soulstruct/base/maps/msb/events.py +38 -0
  78. soulstruct/base/maps/msb/exceptions.py +23 -0
  79. soulstruct/base/maps/msb/field_info.py +870 -0
  80. soulstruct/base/maps/msb/models.py +89 -0
  81. soulstruct/base/maps/msb/msb_entry.py +1210 -0
  82. soulstruct/base/maps/msb/msb_entry_list.py +238 -0
  83. soulstruct/base/maps/msb/parts.py +68 -0
  84. soulstruct/base/maps/msb/region_shapes.py +416 -0
  85. soulstruct/base/maps/msb/regions.py +76 -0
  86. soulstruct/base/maps/msb/utils.py +367 -0
  87. soulstruct/base/maps/navmesh/__init__.py +19 -0
  88. soulstruct/base/maps/navmesh/graph.py +500 -0
  89. soulstruct/base/maps/navmesh/mcg.py +740 -0
  90. soulstruct/base/maps/navmesh/mcp.py +521 -0
  91. soulstruct/base/maps/navmesh/nvm.py +539 -0
  92. soulstruct/base/maps/navmesh/nvmbnd.py +105 -0
  93. soulstruct/base/maps/navmesh/utilities.py +62 -0
  94. soulstruct/base/maps/utilities.py +106 -0
  95. soulstruct/base/models/__init__.py +12 -0
  96. soulstruct/base/models/matbin.py +387 -0
  97. soulstruct/base/models/mtd.py +591 -0
  98. soulstruct/base/models/shaders.py +373 -0
  99. soulstruct/base/params/ParamCrypt/ParamCrypt.dll +0 -0
  100. soulstruct/base/params/ParamCrypt/ParamCrypt.exe +0 -0
  101. soulstruct/base/params/ParamCrypt/__init__.py +50 -0
  102. soulstruct/base/params/__init__.py +4 -0
  103. soulstruct/base/params/calc_correct_graph.py +48 -0
  104. soulstruct/base/params/exceptions.py +5 -0
  105. soulstruct/base/params/flags.py +23 -0
  106. soulstruct/base/params/gameparambnd.py +249 -0
  107. soulstruct/base/params/param.py +428 -0
  108. soulstruct/base/params/param_dict.py +437 -0
  109. soulstruct/base/params/param_row.py +320 -0
  110. soulstruct/base/params/paramdef/__init__.py +5 -0
  111. soulstruct/base/params/paramdef/core.py +210 -0
  112. soulstruct/base/params/paramdef/create_game_classes.py +361 -0
  113. soulstruct/base/params/paramdef/exceptions.py +7 -0
  114. soulstruct/base/params/paramdef/field_types.py +320 -0
  115. soulstruct/base/params/paramdef/paramdef_field.py +377 -0
  116. soulstruct/base/params/paramdef/paramdefbnd.py +80 -0
  117. soulstruct/base/params/utilities.py +68 -0
  118. soulstruct/base/text/__init__.py +4 -0
  119. soulstruct/base/text/fmg.py +346 -0
  120. soulstruct/base/text/msg_directory.py +469 -0
  121. soulstruct/base/textures/__init__.py +2 -0
  122. soulstruct/base/textures/dds/__init__.py +3 -0
  123. soulstruct/base/textures/dds/core.py +240 -0
  124. soulstruct/base/textures/dds/deswizzle.py +74 -0
  125. soulstruct/base/textures/dds/enums.py +340 -0
  126. soulstruct/base/textures/dds/swizzle.py +78 -0
  127. soulstruct/base/textures/dds/utilities.py +57 -0
  128. soulstruct/base/textures/texconv.exe +0 -0
  129. soulstruct/base/textures/texconv.py +75 -0
  130. soulstruct/base/textures/utilities.py +42 -0
  131. soulstruct/bloodborne/__init__.py +8 -0
  132. soulstruct/bloodborne/ai/__init__.py +1 -0
  133. soulstruct/bloodborne/ai/ai_directory.py +43 -0
  134. soulstruct/bloodborne/events/__init__.py +103 -0
  135. soulstruct/bloodborne/events/_write_vanilla.py +30 -0
  136. soulstruct/bloodborne/events/emevd/__init__.py +2 -0
  137. soulstruct/bloodborne/events/emevd/compiler.py +320 -0
  138. soulstruct/bloodborne/events/emevd/core.py +42 -0
  139. soulstruct/bloodborne/events/emevd/decompiler.py +439 -0
  140. soulstruct/bloodborne/events/emevd/emedf.py +4507 -0
  141. soulstruct/bloodborne/events/emevd/evs.py +22 -0
  142. soulstruct/bloodborne/events/enums.py +693 -0
  143. soulstruct/bloodborne/events/event_directory.py +35 -0
  144. soulstruct/bloodborne/events/instructions.pyi +6594 -0
  145. soulstruct/bloodborne/events/utilities.py +75 -0
  146. soulstruct/bloodborne/events/vanilla/__init__.py +0 -0
  147. soulstruct/bloodborne/events/vanilla/common.evs.py +2380 -0
  148. soulstruct/bloodborne/events/vanilla/m21_00_00_00.evs.py +4486 -0
  149. soulstruct/bloodborne/events/vanilla/m21_01_00_00.evs.py +181 -0
  150. soulstruct/bloodborne/events/vanilla/m22_00_00_00.evs.py +2788 -0
  151. soulstruct/bloodborne/events/vanilla/m23_00_00_00.evs.py +3736 -0
  152. soulstruct/bloodborne/events/vanilla/m24_00_00_00.evs.py +7250 -0
  153. soulstruct/bloodborne/events/vanilla/m24_01_00_00.evs.py +7072 -0
  154. soulstruct/bloodborne/events/vanilla/m24_02_00_00.evs.py +2616 -0
  155. soulstruct/bloodborne/events/vanilla/m25_00_00_00.evs.py +2369 -0
  156. soulstruct/bloodborne/events/vanilla/m26_00_00_00.evs.py +3672 -0
  157. soulstruct/bloodborne/events/vanilla/m27_00_00_00.evs.py +3459 -0
  158. soulstruct/bloodborne/events/vanilla/m28_00_00_00.evs.py +3578 -0
  159. soulstruct/bloodborne/events/vanilla/m29.evs.py +18032 -0
  160. soulstruct/bloodborne/events/vanilla/m32_00_00_00.evs.py +2434 -0
  161. soulstruct/bloodborne/events/vanilla/m33_00_00_00.evs.py +1546 -0
  162. soulstruct/bloodborne/events/vanilla/m34_00_00_00.evs.py +5069 -0
  163. soulstruct/bloodborne/events/vanilla/m35_00_00_00.evs.py +5695 -0
  164. soulstruct/bloodborne/events/vanilla/m36_00_00_00.evs.py +3434 -0
  165. soulstruct/bloodborne/events/vanilla_entities/__init__.py +0 -0
  166. soulstruct/bloodborne/events/vanilla_entities/anims.py +20 -0
  167. soulstruct/bloodborne/events/vanilla_entities/common_entities.py +246 -0
  168. soulstruct/bloodborne/events/vanilla_entities/m21_00_entities.py +251 -0
  169. soulstruct/bloodborne/events/vanilla_entities/m21_01_entities.py +20 -0
  170. soulstruct/bloodborne/events/vanilla_entities/m22_00_entities.py +139 -0
  171. soulstruct/bloodborne/events/vanilla_entities/m23_00_entities.py +152 -0
  172. soulstruct/bloodborne/events/vanilla_entities/m24_00_entities.py +280 -0
  173. soulstruct/bloodborne/events/vanilla_entities/m24_01_entities.py +300 -0
  174. soulstruct/bloodborne/events/vanilla_entities/m24_02_entities.py +136 -0
  175. soulstruct/bloodborne/events/vanilla_entities/m25_00_entities.py +108 -0
  176. soulstruct/bloodborne/events/vanilla_entities/m26_00_entities.py +167 -0
  177. soulstruct/bloodborne/events/vanilla_entities/m27_00_entities.py +139 -0
  178. soulstruct/bloodborne/events/vanilla_entities/m28_00_entities.py +146 -0
  179. soulstruct/bloodborne/events/vanilla_entities/m29.evs.py +15874 -0
  180. soulstruct/bloodborne/events/vanilla_entities/m32_00_entities.py +103 -0
  181. soulstruct/bloodborne/events/vanilla_entities/m33_00_entities.py +74 -0
  182. soulstruct/bloodborne/events/vanilla_entities/m34_00_entities.py +167 -0
  183. soulstruct/bloodborne/events/vanilla_entities/m35_00_entities.py +207 -0
  184. soulstruct/bloodborne/events/vanilla_entities/m36_00_entities.py +121 -0
  185. soulstruct/bloodborne/ezstate/__init__.py +3 -0
  186. soulstruct/bloodborne/ezstate/esd/__init__.py +3 -0
  187. soulstruct/bloodborne/ezstate/esd/core.py +20 -0
  188. soulstruct/bloodborne/ezstate/talk_directory.py +37 -0
  189. soulstruct/bloodborne/ezstate/talkesdbnd.py +23 -0
  190. soulstruct/bloodborne/game_types/__init__.py +8 -0
  191. soulstruct/bloodborne/game_types/game_enums_manager.py +47 -0
  192. soulstruct/bloodborne/game_types/map_types.py +56 -0
  193. soulstruct/bloodborne/game_types/param_types.py +628 -0
  194. soulstruct/bloodborne/game_types/sound_types.py +61 -0
  195. soulstruct/bloodborne/game_types/text_types.py +207 -0
  196. soulstruct/bloodborne/maps/__init__.py +13 -0
  197. soulstruct/bloodborne/maps/constants.py +273 -0
  198. soulstruct/bloodborne/maps/enums.py +109 -0
  199. soulstruct/bloodborne/maps/events.py +495 -0
  200. soulstruct/bloodborne/maps/map_studio_directory.py +59 -0
  201. soulstruct/bloodborne/maps/models.py +175 -0
  202. soulstruct/bloodborne/maps/msb.py +238 -0
  203. soulstruct/bloodborne/maps/parts.py +604 -0
  204. soulstruct/bloodborne/maps/regions.py +116 -0
  205. soulstruct/bloodborne/models/__init__.py +18 -0
  206. soulstruct/bloodborne/models/chrbnd.py +20 -0
  207. soulstruct/bloodborne/models/objbnd.py +21 -0
  208. soulstruct/bloodborne/models/partsbnd.py +20 -0
  209. soulstruct/bloodborne/models/shaders.py +218 -0
  210. soulstruct/bloodborne/params/__init__.py +4 -0
  211. soulstruct/bloodborne/params/enums.py +1092 -0
  212. soulstruct/bloodborne/params/gameparambnd.py +253 -0
  213. soulstruct/bloodborne/params/paramdef/ACTIONBUTTON_PARAM_ST.py +86 -0
  214. soulstruct/bloodborne/params/paramdef/AI_SOUND_PARAM_ST.py +39 -0
  215. soulstruct/bloodborne/params/paramdef/AI_STANDARD_INFO_BANK.py +152 -0
  216. soulstruct/bloodborne/params/paramdef/ATK_PARAM_ST.py +406 -0
  217. soulstruct/bloodborne/params/paramdef/BEHAVIOR_PARAM_ST.py +55 -0
  218. soulstruct/bloodborne/params/paramdef/BULLET_PARAM_ST.py +305 -0
  219. soulstruct/bloodborne/params/paramdef/CACL_CORRECT_GRAPH_ST.py +87 -0
  220. soulstruct/bloodborne/params/paramdef/CHARACTER_INIT_PARAM.py +462 -0
  221. soulstruct/bloodborne/params/paramdef/CHARMAKEMENUTOP_PARAM_ST.py +35 -0
  222. soulstruct/bloodborne/params/paramdef/CHARMAKEMENU_LISTITEM_PARAM_ST.py +23 -0
  223. soulstruct/bloodborne/params/paramdef/DECAL_PARAM_ST.py +135 -0
  224. soulstruct/bloodborne/params/paramdef/DUNGEON_FEATURE_PARAM_ST.py +58 -0
  225. soulstruct/bloodborne/params/paramdef/DUNGEON_SUB_FEAT_LOT_PARAM.py +98 -0
  226. soulstruct/bloodborne/params/paramdef/ENEMY_STANDARD_INFO_BANK.py +89 -0
  227. soulstruct/bloodborne/params/paramdef/EQUIP_MTRL_SET_PARAM_ST.py +84 -0
  228. soulstruct/bloodborne/params/paramdef/EQUIP_PARAM_ACCESSORY_ST.py +112 -0
  229. soulstruct/bloodborne/params/paramdef/EQUIP_PARAM_GOODS_ST.py +360 -0
  230. soulstruct/bloodborne/params/paramdef/EQUIP_PARAM_PROTECTOR_ST.py +655 -0
  231. soulstruct/bloodborne/params/paramdef/EQUIP_PARAM_WEAPON_ST.py +686 -0
  232. soulstruct/bloodborne/params/paramdef/FACE_GEN_PARAM_ST.py +554 -0
  233. soulstruct/bloodborne/params/paramdef/FACE_PARAM_ST.py +698 -0
  234. soulstruct/bloodborne/params/paramdef/FACE_RANGE_PARAM_ST.py +594 -0
  235. soulstruct/bloodborne/params/paramdef/GAME_AREA_PARAM_ST.py +62 -0
  236. soulstruct/bloodborne/params/paramdef/GAME_MAP_PARAM_ST.py +25 -0
  237. soulstruct/bloodborne/params/paramdef/GEMEFFECT_PARAM_ST.py +54 -0
  238. soulstruct/bloodborne/params/paramdef/GEM_CATEGORY_PARAM_ST.py +94 -0
  239. soulstruct/bloodborne/params/paramdef/GEM_DROP_DOPING_PARAM_ST.py +81 -0
  240. soulstruct/bloodborne/params/paramdef/GEM_DROP_MODIFY_PARAM_ST.py +133 -0
  241. soulstruct/bloodborne/params/paramdef/GEM_GEN_PARAM_ST.py +164 -0
  242. soulstruct/bloodborne/params/paramdef/HIT_MTRL_PARAM_ST.py +36 -0
  243. soulstruct/bloodborne/params/paramdef/HOLYGRAIL_EX_PARAM_ST.py +236 -0
  244. soulstruct/bloodborne/params/paramdef/ITEMLOT_LVDEP_PARAM_ST.py +18 -0
  245. soulstruct/bloodborne/params/paramdef/ITEMLOT_PARAM_ST.py +320 -0
  246. soulstruct/bloodborne/params/paramdef/KNOCKBACK_PARAM_ST.py +130 -0
  247. soulstruct/bloodborne/params/paramdef/LOCK_CAM_PARAM_ST.py +43 -0
  248. soulstruct/bloodborne/params/paramdef/LOD_BANK.py +29 -0
  249. soulstruct/bloodborne/params/paramdef/MAGIC_PARAM_ST.py +235 -0
  250. soulstruct/bloodborne/params/paramdef/MENUPROPERTY_LAYOUT.py +27 -0
  251. soulstruct/bloodborne/params/paramdef/MENUPROPERTY_SPEC.py +35 -0
  252. soulstruct/bloodborne/params/paramdef/MENU_PARAM_COLOR_TABLE_ST.py +25 -0
  253. soulstruct/bloodborne/params/paramdef/MENU_VALUE_TABLE_SPEC.py +23 -0
  254. soulstruct/bloodborne/params/paramdef/MOVE_PARAM_ST.py +165 -0
  255. soulstruct/bloodborne/params/paramdef/NPC_PARAM_ST.py +804 -0
  256. soulstruct/bloodborne/params/paramdef/NPC_THINK_PARAM_ST.py +330 -0
  257. soulstruct/bloodborne/params/paramdef/OBJECT_PARAM_ST.py +101 -0
  258. soulstruct/bloodborne/params/paramdef/OBJ_ACT_PARAM_ST.py +91 -0
  259. soulstruct/bloodborne/params/paramdef/PROTECTOR_GEN_PARAM_ST.py +55 -0
  260. soulstruct/bloodborne/params/paramdef/QWC_CHANGE_PARAM_ST.py +41 -0
  261. soulstruct/bloodborne/params/paramdef/QWC_JUDGE_PARAM_ST.py +41 -0
  262. soulstruct/bloodborne/params/paramdef/RAGDOLL_PARAM_ST.py +51 -0
  263. soulstruct/bloodborne/params/paramdef/REINFORCE_PARAM_PROTECTOR_ST.py +70 -0
  264. soulstruct/bloodborne/params/paramdef/REINFORCE_PARAM_WEAPON_ST.py +122 -0
  265. soulstruct/bloodborne/params/paramdef/RESIDENT_FX_PARAM_ST.py +19 -0
  266. soulstruct/bloodborne/params/paramdef/RETURN_POINT_PARAM_ST.py +36 -0
  267. soulstruct/bloodborne/params/paramdef/RITUAL_REQUIRED_MAT_PARAM.py +54 -0
  268. soulstruct/bloodborne/params/paramdef/SHOP_LINEUP_PARAM.py +50 -0
  269. soulstruct/bloodborne/params/paramdef/SKELETON_PARAM_ST.py +111 -0
  270. soulstruct/bloodborne/params/paramdef/SP_EFFECT_PARAM_ST.py +969 -0
  271. soulstruct/bloodborne/params/paramdef/SP_EFFECT_VFX_PARAM_ST.py +137 -0
  272. soulstruct/bloodborne/params/paramdef/TALK_PARAM_ST.py +80 -0
  273. soulstruct/bloodborne/params/paramdef/THROW_INFO_BANK.py +129 -0
  274. soulstruct/bloodborne/params/paramdef/WEAPON_GEN_PARAM_ST.py +71 -0
  275. soulstruct/bloodborne/params/paramdef/WIND_PARAM_ST.py +119 -0
  276. soulstruct/bloodborne/params/paramdef/__init__.py +135 -0
  277. soulstruct/bloodborne/params/paramdef/core.py +22 -0
  278. soulstruct/bloodborne/params/paramdef/dynamics.py +229 -0
  279. soulstruct/bloodborne/text/__init__.py +5 -0
  280. soulstruct/bloodborne/text/msg_directory.py +153 -0
  281. soulstruct/bloodborne/text/msgbnd.py +20 -0
  282. soulstruct/config.py +161 -0
  283. soulstruct/containers/__init__.py +18 -0
  284. soulstruct/containers/binder_hash.py +98 -0
  285. soulstruct/containers/binder_types.py +126 -0
  286. soulstruct/containers/core.py +1482 -0
  287. soulstruct/containers/entry.py +258 -0
  288. soulstruct/containers/tpf.py +893 -0
  289. soulstruct/create_paramdef_info.py +120 -0
  290. soulstruct/darksouls1ptde/__init__.py +9 -0
  291. soulstruct/darksouls1ptde/ai/__init__.py +3 -0
  292. soulstruct/darksouls1ptde/ai/ai_directory.py +39 -0
  293. soulstruct/darksouls1ptde/camera_vibration.py +22 -0
  294. soulstruct/darksouls1ptde/constants.py +965 -0
  295. soulstruct/darksouls1ptde/events/__init__.py +90 -0
  296. soulstruct/darksouls1ptde/events/_write_vanilla.py +22 -0
  297. soulstruct/darksouls1ptde/events/emevd/__init__.py +2 -0
  298. soulstruct/darksouls1ptde/events/emevd/compiler.py +315 -0
  299. soulstruct/darksouls1ptde/events/emevd/core.py +42 -0
  300. soulstruct/darksouls1ptde/events/emevd/decompiler.py +385 -0
  301. soulstruct/darksouls1ptde/events/emevd/emedf.py +3501 -0
  302. soulstruct/darksouls1ptde/events/emevd/evs.py +22 -0
  303. soulstruct/darksouls1ptde/events/enums.py +562 -0
  304. soulstruct/darksouls1ptde/events/event_directory.py +33 -0
  305. soulstruct/darksouls1ptde/events/instructions.pyi +5388 -0
  306. soulstruct/darksouls1ptde/events/utilities.py +46 -0
  307. soulstruct/darksouls1ptde/events/vanilla/common.evs.py +1470 -0
  308. soulstruct/darksouls1ptde/events/vanilla/enums/common_enums.py +158 -0
  309. soulstruct/darksouls1ptde/events/vanilla/enums/m10_00_00_00_enums.py +70 -0
  310. soulstruct/darksouls1ptde/events/vanilla/enums/m10_02_00_00_enums.py +23 -0
  311. soulstruct/darksouls1ptde/events/vanilla/enums/m11_00_00_00_enums.py +21 -0
  312. soulstruct/darksouls1ptde/events/vanilla/enums/m12_00_00_00_enums.py +12 -0
  313. soulstruct/darksouls1ptde/events/vanilla/enums/m12_01_00_00_enums.py +26 -0
  314. soulstruct/darksouls1ptde/events/vanilla/enums/m13_00_00_00_enums.py +12 -0
  315. soulstruct/darksouls1ptde/events/vanilla/enums/m14_00_00_00_enums.py +12 -0
  316. soulstruct/darksouls1ptde/events/vanilla/enums/m14_01_00_00_enums.py +15 -0
  317. soulstruct/darksouls1ptde/events/vanilla/enums/m15_00_00_00_enums.py +13 -0
  318. soulstruct/darksouls1ptde/events/vanilla/m10_00_00_00.evs.py +1059 -0
  319. soulstruct/darksouls1ptde/events/vanilla/m10_01_00_00.evs.py +2904 -0
  320. soulstruct/darksouls1ptde/events/vanilla/m10_02_00_00.evs.py +1610 -0
  321. soulstruct/darksouls1ptde/events/vanilla/m11_00_00_00.evs.py +1926 -0
  322. soulstruct/darksouls1ptde/events/vanilla/m12_00_00_00.evs.py +1863 -0
  323. soulstruct/darksouls1ptde/events/vanilla/m12_01_00_00.evs.py +5430 -0
  324. soulstruct/darksouls1ptde/events/vanilla/m13_00_00_00.evs.py +1847 -0
  325. soulstruct/darksouls1ptde/events/vanilla/m13_01_00_00.evs.py +1371 -0
  326. soulstruct/darksouls1ptde/events/vanilla/m13_02_00_00.evs.py +611 -0
  327. soulstruct/darksouls1ptde/events/vanilla/m14_00_00_00.evs.py +1658 -0
  328. soulstruct/darksouls1ptde/events/vanilla/m14_01_00_00.evs.py +2793 -0
  329. soulstruct/darksouls1ptde/events/vanilla/m15_00_00_00.evs.py +2700 -0
  330. soulstruct/darksouls1ptde/events/vanilla/m15_01_00_00.evs.py +2943 -0
  331. soulstruct/darksouls1ptde/events/vanilla/m16_00_00_00.evs.py +1921 -0
  332. soulstruct/darksouls1ptde/events/vanilla/m17_00_00_00.evs.py +1982 -0
  333. soulstruct/darksouls1ptde/events/vanilla/m18_00_00_00.evs.py +931 -0
  334. soulstruct/darksouls1ptde/events/vanilla/m18_01_00_00.evs.py +1116 -0
  335. soulstruct/darksouls1ptde/ezstate/__init__.py +3 -0
  336. soulstruct/darksouls1ptde/ezstate/esd/__init__.py +3 -0
  337. soulstruct/darksouls1ptde/ezstate/esd/core.py +24 -0
  338. soulstruct/darksouls1ptde/ezstate/talk_directory.py +37 -0
  339. soulstruct/darksouls1ptde/ezstate/talkesdbnd.py +21 -0
  340. soulstruct/darksouls1ptde/game_types/__init__.py +6 -0
  341. soulstruct/darksouls1ptde/game_types/game_enums_manager.py +47 -0
  342. soulstruct/darksouls1ptde/game_types/map_types.py +60 -0
  343. soulstruct/darksouls1ptde/game_types/param_types.py +444 -0
  344. soulstruct/darksouls1ptde/game_types/sound_types.py +80 -0
  345. soulstruct/darksouls1ptde/game_types/text_types.py +207 -0
  346. soulstruct/darksouls1ptde/maps/__init__.py +15 -0
  347. soulstruct/darksouls1ptde/maps/constants.py +199 -0
  348. soulstruct/darksouls1ptde/maps/enums.py +116 -0
  349. soulstruct/darksouls1ptde/maps/events.py +391 -0
  350. soulstruct/darksouls1ptde/maps/map_studio_directory.py +56 -0
  351. soulstruct/darksouls1ptde/maps/models.py +170 -0
  352. soulstruct/darksouls1ptde/maps/msb.py +545 -0
  353. soulstruct/darksouls1ptde/maps/navmesh/__init__.py +16 -0
  354. soulstruct/darksouls1ptde/maps/navmesh/nvmbnd.py +18 -0
  355. soulstruct/darksouls1ptde/maps/parts.py +670 -0
  356. soulstruct/darksouls1ptde/maps/regions.py +123 -0
  357. soulstruct/darksouls1ptde/models/__init__.py +18 -0
  358. soulstruct/darksouls1ptde/models/chrbnd.py +20 -0
  359. soulstruct/darksouls1ptde/models/objbnd.py +21 -0
  360. soulstruct/darksouls1ptde/models/partsbnd.py +20 -0
  361. soulstruct/darksouls1ptde/models/shaders.py +261 -0
  362. soulstruct/darksouls1ptde/params/__init__.py +5 -0
  363. soulstruct/darksouls1ptde/params/draw_param/__init__.py +5 -0
  364. soulstruct/darksouls1ptde/params/draw_param/core.py +51 -0
  365. soulstruct/darksouls1ptde/params/draw_param/drawparam_directory.py +188 -0
  366. soulstruct/darksouls1ptde/params/draw_param/drawparambnd.py +392 -0
  367. soulstruct/darksouls1ptde/params/enums.py +1112 -0
  368. soulstruct/darksouls1ptde/params/gameparambnd.py +196 -0
  369. soulstruct/darksouls1ptde/params/paramdef/AI_STANDARD_INFO_BANK.py +152 -0
  370. soulstruct/darksouls1ptde/params/paramdef/ATK_PARAM_ST.py +333 -0
  371. soulstruct/darksouls1ptde/params/paramdef/BEHAVIOR_PARAM_ST.py +55 -0
  372. soulstruct/darksouls1ptde/params/paramdef/BULLET_PARAM_ST.py +297 -0
  373. soulstruct/darksouls1ptde/params/paramdef/CACL_CORRECT_GRAPH_ST.py +87 -0
  374. soulstruct/darksouls1ptde/params/paramdef/CHARACTER_INIT_PARAM.py +373 -0
  375. soulstruct/darksouls1ptde/params/paramdef/DOF_BANK.py +39 -0
  376. soulstruct/darksouls1ptde/params/paramdef/ENEMY_STANDARD_INFO_BANK.py +89 -0
  377. soulstruct/darksouls1ptde/params/paramdef/ENV_LIGHT_TEX_BANK.py +337 -0
  378. soulstruct/darksouls1ptde/params/paramdef/EQUIP_MTRL_SET_PARAM_ST.py +84 -0
  379. soulstruct/darksouls1ptde/params/paramdef/EQUIP_PARAM_ACCESSORY_ST.py +112 -0
  380. soulstruct/darksouls1ptde/params/paramdef/EQUIP_PARAM_GOODS_ST.py +290 -0
  381. soulstruct/darksouls1ptde/params/paramdef/EQUIP_PARAM_PROTECTOR_ST.py +555 -0
  382. soulstruct/darksouls1ptde/params/paramdef/EQUIP_PARAM_WEAPON_ST.py +555 -0
  383. soulstruct/darksouls1ptde/params/paramdef/FACE_PARAM_ST.py +443 -0
  384. soulstruct/darksouls1ptde/params/paramdef/FOG_BANK.py +41 -0
  385. soulstruct/darksouls1ptde/params/paramdef/GAME_AREA_PARAM_ST.py +62 -0
  386. soulstruct/darksouls1ptde/params/paramdef/HIT_MTRL_PARAM_ST.py +36 -0
  387. soulstruct/darksouls1ptde/params/paramdef/ITEMLOT_PARAM_ST.py +320 -0
  388. soulstruct/darksouls1ptde/params/paramdef/KNOCKBACK_PARAM_ST.py +130 -0
  389. soulstruct/darksouls1ptde/params/paramdef/LENS_FLARE_BANK.py +49 -0
  390. soulstruct/darksouls1ptde/params/paramdef/LENS_FLARE_EX_BANK.py +37 -0
  391. soulstruct/darksouls1ptde/params/paramdef/LIGHT_BANK.py +206 -0
  392. soulstruct/darksouls1ptde/params/paramdef/LIGHT_SCATTERING_BANK.py +73 -0
  393. soulstruct/darksouls1ptde/params/paramdef/LOCK_CAM_PARAM_ST.py +36 -0
  394. soulstruct/darksouls1ptde/params/paramdef/LOD_BANK.py +25 -0
  395. soulstruct/darksouls1ptde/params/paramdef/MAGIC_PARAM_ST.py +235 -0
  396. soulstruct/darksouls1ptde/params/paramdef/MENU_PARAM_COLOR_TABLE_ST.py +25 -0
  397. soulstruct/darksouls1ptde/params/paramdef/MOVE_PARAM_ST.py +150 -0
  398. soulstruct/darksouls1ptde/params/paramdef/NPC_PARAM_ST.py +665 -0
  399. soulstruct/darksouls1ptde/params/paramdef/NPC_THINK_PARAM_ST.py +242 -0
  400. soulstruct/darksouls1ptde/params/paramdef/OBJECT_PARAM_ST.py +86 -0
  401. soulstruct/darksouls1ptde/params/paramdef/OBJ_ACT_PARAM_ST.py +82 -0
  402. soulstruct/darksouls1ptde/params/paramdef/POINT_LIGHT_BANK.py +33 -0
  403. soulstruct/darksouls1ptde/params/paramdef/QWC_CHANGE_PARAM_ST.py +41 -0
  404. soulstruct/darksouls1ptde/params/paramdef/QWC_JUDGE_PARAM_ST.py +41 -0
  405. soulstruct/darksouls1ptde/params/paramdef/RAGDOLL_PARAM_ST.py +51 -0
  406. soulstruct/darksouls1ptde/params/paramdef/REINFORCE_PARAM_PROTECTOR_ST.py +70 -0
  407. soulstruct/darksouls1ptde/params/paramdef/REINFORCE_PARAM_WEAPON_ST.py +122 -0
  408. soulstruct/darksouls1ptde/params/paramdef/SHADOW_BANK.py +66 -0
  409. soulstruct/darksouls1ptde/params/paramdef/SHOP_LINEUP_PARAM.py +46 -0
  410. soulstruct/darksouls1ptde/params/paramdef/SKELETON_PARAM_ST.py +111 -0
  411. soulstruct/darksouls1ptde/params/paramdef/SP_EFFECT_PARAM_ST.py +747 -0
  412. soulstruct/darksouls1ptde/params/paramdef/SP_EFFECT_VFX_PARAM_ST.py +118 -0
  413. soulstruct/darksouls1ptde/params/paramdef/TALK_PARAM_ST.py +42 -0
  414. soulstruct/darksouls1ptde/params/paramdef/THROW_INFO_BANK.py +129 -0
  415. soulstruct/darksouls1ptde/params/paramdef/TONE_CORRECT_BANK.py +41 -0
  416. soulstruct/darksouls1ptde/params/paramdef/TONE_MAP_BANK.py +62 -0
  417. soulstruct/darksouls1ptde/params/paramdef/__init__.py +106 -0
  418. soulstruct/darksouls1ptde/params/paramdef/core.py +21 -0
  419. soulstruct/darksouls1ptde/params/paramdef/dynamics.py +228 -0
  420. soulstruct/darksouls1ptde/text/__init__.py +4 -0
  421. soulstruct/darksouls1ptde/text/fmg.py +3 -0
  422. soulstruct/darksouls1ptde/text/msg_directory.py +205 -0
  423. soulstruct/darksouls1ptde/text/msgbnd.py +23 -0
  424. soulstruct/darksouls1r/__init__.py +10 -0
  425. soulstruct/darksouls1r/ai/__init__.py +3 -0
  426. soulstruct/darksouls1r/constants.py +12 -0
  427. soulstruct/darksouls1r/events/__init__.py +92 -0
  428. soulstruct/darksouls1r/events/_write_vanilla.py +15 -0
  429. soulstruct/darksouls1r/events/emevd/__init__.py +2 -0
  430. soulstruct/darksouls1r/events/emevd/compiler.py +34 -0
  431. soulstruct/darksouls1r/events/emevd/core.py +44 -0
  432. soulstruct/darksouls1r/events/emevd/decompiler.py +385 -0
  433. soulstruct/darksouls1r/events/emevd/emedf.py +484 -0
  434. soulstruct/darksouls1r/events/emevd/evs.py +23 -0
  435. soulstruct/darksouls1r/events/enums.py +160 -0
  436. soulstruct/darksouls1r/events/event_directory.py +33 -0
  437. soulstruct/darksouls1r/events/instructions.pyi +5758 -0
  438. soulstruct/darksouls1r/events/utilities.py +46 -0
  439. soulstruct/darksouls1r/events/vanilla/common.evs.py +1501 -0
  440. soulstruct/darksouls1r/events/vanilla/m10_00_00_00.evs.py +1228 -0
  441. soulstruct/darksouls1r/events/vanilla/m10_01_00_00.evs.py +3066 -0
  442. soulstruct/darksouls1r/events/vanilla/m10_02_00_00.evs.py +1611 -0
  443. soulstruct/darksouls1r/events/vanilla/m11_00_00_00.evs.py +1976 -0
  444. soulstruct/darksouls1r/events/vanilla/m12_00_00_00.evs.py +1959 -0
  445. soulstruct/darksouls1r/events/vanilla/m12_01_00_00.evs.py +6683 -0
  446. soulstruct/darksouls1r/events/vanilla/m13_00_00_00.evs.py +1957 -0
  447. soulstruct/darksouls1r/events/vanilla/m13_01_00_00.evs.py +1436 -0
  448. soulstruct/darksouls1r/events/vanilla/m13_02_00_00.evs.py +611 -0
  449. soulstruct/darksouls1r/events/vanilla/m14_00_00_00.evs.py +1773 -0
  450. soulstruct/darksouls1r/events/vanilla/m14_01_00_00.evs.py +2900 -0
  451. soulstruct/darksouls1r/events/vanilla/m15_00_00_00.evs.py +2795 -0
  452. soulstruct/darksouls1r/events/vanilla/m15_01_00_00.evs.py +3083 -0
  453. soulstruct/darksouls1r/events/vanilla/m16_00_00_00.evs.py +2022 -0
  454. soulstruct/darksouls1r/events/vanilla/m17_00_00_00.evs.py +2030 -0
  455. soulstruct/darksouls1r/events/vanilla/m18_00_00_00.evs.py +978 -0
  456. soulstruct/darksouls1r/events/vanilla/m18_01_00_00.evs.py +1116 -0
  457. soulstruct/darksouls1r/ezstate/__init__.py +3 -0
  458. soulstruct/darksouls1r/ezstate/esd/__init__.py +3 -0
  459. soulstruct/darksouls1r/ezstate/esd/core.py +24 -0
  460. soulstruct/darksouls1r/ezstate/talk_directory.py +37 -0
  461. soulstruct/darksouls1r/ezstate/talkesdbnd.py +27 -0
  462. soulstruct/darksouls1r/ffx/__init__.py +5 -0
  463. soulstruct/darksouls1r/ffx/core.py +8 -0
  464. soulstruct/darksouls1r/ffx/ffxbnd.py +1330 -0
  465. soulstruct/darksouls1r/game_types/__init__.py +6 -0
  466. soulstruct/darksouls1r/game_types/game_enums_manager.py +5 -0
  467. soulstruct/darksouls1r/game_types/map_types.py +62 -0
  468. soulstruct/darksouls1r/game_types/param_types.py +74 -0
  469. soulstruct/darksouls1r/game_types/sound_types.py +5 -0
  470. soulstruct/darksouls1r/game_types/text_types.py +32 -0
  471. soulstruct/darksouls1r/maps/__init__.py +16 -0
  472. soulstruct/darksouls1r/maps/constants.py +2094 -0
  473. soulstruct/darksouls1r/maps/enums.py +10 -0
  474. soulstruct/darksouls1r/maps/events.py +35 -0
  475. soulstruct/darksouls1r/maps/map_area_texture_manager.py +309 -0
  476. soulstruct/darksouls1r/maps/map_studio_directory.py +74 -0
  477. soulstruct/darksouls1r/maps/models.py +13 -0
  478. soulstruct/darksouls1r/maps/msb.py +142 -0
  479. soulstruct/darksouls1r/maps/navmesh/__init__.py +16 -0
  480. soulstruct/darksouls1r/maps/navmesh/nvmbnd.py +18 -0
  481. soulstruct/darksouls1r/maps/parts.py +27 -0
  482. soulstruct/darksouls1r/maps/regions.py +17 -0
  483. soulstruct/darksouls1r/maps/utilities.py +148 -0
  484. soulstruct/darksouls1r/models/__init__.py +18 -0
  485. soulstruct/darksouls1r/models/chrbnd.py +27 -0
  486. soulstruct/darksouls1r/models/objbnd.py +21 -0
  487. soulstruct/darksouls1r/models/partsbnd.py +31 -0
  488. soulstruct/darksouls1r/models/shaders.py +89 -0
  489. soulstruct/darksouls1r/params/__init__.py +8 -0
  490. soulstruct/darksouls1r/params/draw_param/__init__.py +5 -0
  491. soulstruct/darksouls1r/params/draw_param/drawparam_directory.py +192 -0
  492. soulstruct/darksouls1r/params/draw_param/drawparambnd.py +90 -0
  493. soulstruct/darksouls1r/params/enums.py +102 -0
  494. soulstruct/darksouls1r/params/gameparambnd.py +257 -0
  495. soulstruct/darksouls1r/params/paramdef/COOL_TIME_PARAM_ST.py +41 -0
  496. soulstruct/darksouls1r/params/paramdef/EQUIP_PARAM_GOODS_ST.py +294 -0
  497. soulstruct/darksouls1r/params/paramdef/EQUIP_PARAM_WEAPON_ST.py +559 -0
  498. soulstruct/darksouls1r/params/paramdef/LEVELSYNC_PARAM_ST.py +398 -0
  499. soulstruct/darksouls1r/params/paramdef/REINFORCE_PARAM_WEAPON_ST.py +125 -0
  500. soulstruct/darksouls1r/params/paramdef/TONE_CORRECT_BANK.py +45 -0
  501. soulstruct/darksouls1r/params/paramdef/TONE_MAP_BANK.py +66 -0
  502. soulstruct/darksouls1r/params/paramdef/WHITE_COOL_TIME_PARAM_ST.py +25 -0
  503. soulstruct/darksouls1r/params/paramdef/__init__.py +77 -0
  504. soulstruct/darksouls1r/params/paramdef/core.py +23 -0
  505. soulstruct/darksouls1r/params/paramdef/dynamics.py +46 -0
  506. soulstruct/darksouls1r/sound/__init__.py +0 -0
  507. soulstruct/darksouls1r/sound/fev/__init__.py +1 -0
  508. soulstruct/darksouls1r/sound/fev/core.py +1777 -0
  509. soulstruct/darksouls1r/sound/fsb.py +285 -0
  510. soulstruct/darksouls1r/sound/fsbext.exe +0 -0
  511. soulstruct/darksouls1r/sound/utilities.py +70 -0
  512. soulstruct/darksouls1r/text/__init__.py +4 -0
  513. soulstruct/darksouls1r/text/fmg.py +3 -0
  514. soulstruct/darksouls1r/text/msg_directory.py +250 -0
  515. soulstruct/darksouls1r/text/msgbnd.py +25 -0
  516. soulstruct/darksouls1r/utilities/__init__.py +0 -0
  517. soulstruct/darksouls1r/utilities/add_draw_slots.py +69 -0
  518. soulstruct/darksouls1r/utilities/bonfire_warp_list.py +135 -0
  519. soulstruct/darksouls1r/utilities/compare_draw_params.py +113 -0
  520. soulstruct/darksouls1r/utilities/core.py +40 -0
  521. soulstruct/darksouls1r/utilities/file_list.py +6015 -0
  522. soulstruct/darksouls1r/utilities/memory.py +596 -0
  523. soulstruct/darksouls1r/utilities/memory_monitor.py +130 -0
  524. soulstruct/darksouls1r/utilities/move_map_piece.py +0 -0
  525. soulstruct/darksouls2/__init__.py +0 -0
  526. soulstruct/darksouls2/ezstate/__init__.py +0 -0
  527. soulstruct/darksouls2/ezstate/esd/__init__.py +3 -0
  528. soulstruct/darksouls2/ezstate/esd/core.py +20 -0
  529. soulstruct/darksouls2/models/__init__.py +0 -0
  530. soulstruct/darksouls2/models/shaders.py +225 -0
  531. soulstruct/darksouls3/__init__.py +6 -0
  532. soulstruct/darksouls3/events/__init__.py +109 -0
  533. soulstruct/darksouls3/events/_write_vanilla.py +22 -0
  534. soulstruct/darksouls3/events/emevd/__init__.py +2 -0
  535. soulstruct/darksouls3/events/emevd/compiler.py +359 -0
  536. soulstruct/darksouls3/events/emevd/core.py +38 -0
  537. soulstruct/darksouls3/events/emevd/decompiler.py +503 -0
  538. soulstruct/darksouls3/events/emevd/emedf.py +5124 -0
  539. soulstruct/darksouls3/events/emevd/evs.py +23 -0
  540. soulstruct/darksouls3/events/enums.py +726 -0
  541. soulstruct/darksouls3/events/event_directory.py +37 -0
  542. soulstruct/darksouls3/events/instructions.pyi +8956 -0
  543. soulstruct/darksouls3/events/utilities.py +46 -0
  544. soulstruct/darksouls3/events/vanilla/__init__.py +0 -0
  545. soulstruct/darksouls3/events/vanilla/common.evs.py +2120 -0
  546. soulstruct/darksouls3/events/vanilla/common_func.py +6879 -0
  547. soulstruct/darksouls3/events/vanilla/m30_00_00_00.evs.py +2876 -0
  548. soulstruct/darksouls3/events/vanilla/m30_01_00_00.evs.py +1465 -0
  549. soulstruct/darksouls3/events/vanilla/m31_00_00_00.evs.py +4157 -0
  550. soulstruct/darksouls3/events/vanilla/m32_00_00_00.evs.py +1738 -0
  551. soulstruct/darksouls3/events/vanilla/m33_00_00_00.evs.py +3716 -0
  552. soulstruct/darksouls3/events/vanilla/m34_01_00_00.evs.py +2827 -0
  553. soulstruct/darksouls3/events/vanilla/m35_00_00_00.evs.py +3206 -0
  554. soulstruct/darksouls3/events/vanilla/m37_00_00_00.evs.py +4016 -0
  555. soulstruct/darksouls3/events/vanilla/m38_00_00_00.evs.py +5259 -0
  556. soulstruct/darksouls3/events/vanilla/m39_00_00_00.evs.py +2069 -0
  557. soulstruct/darksouls3/events/vanilla/m40_00_00_00.evs.py +4849 -0
  558. soulstruct/darksouls3/events/vanilla/m41_00_00_00.evs.py +525 -0
  559. soulstruct/darksouls3/events/vanilla/m45_00_00_00.evs.py +4499 -0
  560. soulstruct/darksouls3/events/vanilla/m46_00_00_00.evs.py +98 -0
  561. soulstruct/darksouls3/events/vanilla/m47_00_00_00.evs.py +66 -0
  562. soulstruct/darksouls3/events/vanilla/m50_00_00_00.evs.py +2727 -0
  563. soulstruct/darksouls3/events/vanilla/m51_00_00_00.evs.py +4246 -0
  564. soulstruct/darksouls3/events/vanilla/m53_00_00_00.evs.py +66 -0
  565. soulstruct/darksouls3/events/vanilla/m54_00_00_00.evs.py +66 -0
  566. soulstruct/darksouls3/events/vanilla_constants.py +56 -0
  567. soulstruct/darksouls3/ezstate/__init__.py +1 -0
  568. soulstruct/darksouls3/ezstate/esd/__init__.py +3 -0
  569. soulstruct/darksouls3/ezstate/esd/core.py +18 -0
  570. soulstruct/darksouls3/game_types/__init__.py +6 -0
  571. soulstruct/darksouls3/game_types/game_enums_manager.py +47 -0
  572. soulstruct/darksouls3/game_types/map_types.py +60 -0
  573. soulstruct/darksouls3/game_types/param_types.py +356 -0
  574. soulstruct/darksouls3/game_types/sound_types.py +61 -0
  575. soulstruct/darksouls3/game_types/text_types.py +207 -0
  576. soulstruct/darksouls3/maps/__init__.py +1 -0
  577. soulstruct/darksouls3/maps/constants.py +227 -0
  578. soulstruct/darksouls3/models/__init__.py +18 -0
  579. soulstruct/darksouls3/models/chrbnd.py +38 -0
  580. soulstruct/darksouls3/models/mapbnd.py +29 -0
  581. soulstruct/darksouls3/models/objbnd.py +30 -0
  582. soulstruct/darksouls3/models/partsbnd.py +50 -0
  583. soulstruct/darksouls3/params/__init__.py +1 -0
  584. soulstruct/darksouls3/params/paramdef/__init__.py +1 -0
  585. soulstruct/darksouls3/params/paramdef/core.py +23 -0
  586. soulstruct/dcx/__init__.py +1 -0
  587. soulstruct/dcx/core.py +434 -0
  588. soulstruct/dcx/oodle.py +368 -0
  589. soulstruct/demonssouls/__init__.py +5 -0
  590. soulstruct/demonssouls/constants.py +101 -0
  591. soulstruct/demonssouls/events/__init__.py +0 -0
  592. soulstruct/demonssouls/events/enums.py +538 -0
  593. soulstruct/demonssouls/game_types/__init__.py +6 -0
  594. soulstruct/demonssouls/game_types/game_enums_manager.py +42 -0
  595. soulstruct/demonssouls/game_types/map_types.py +60 -0
  596. soulstruct/demonssouls/game_types/param_types.py +444 -0
  597. soulstruct/demonssouls/game_types/sound_types.py +80 -0
  598. soulstruct/demonssouls/game_types/text_types.py +207 -0
  599. soulstruct/demonssouls/maps/__init__.py +15 -0
  600. soulstruct/demonssouls/maps/constants.py +264 -0
  601. soulstruct/demonssouls/maps/enums.py +137 -0
  602. soulstruct/demonssouls/maps/events.py +233 -0
  603. soulstruct/demonssouls/maps/map_studio_directory.py +59 -0
  604. soulstruct/demonssouls/maps/models.py +182 -0
  605. soulstruct/demonssouls/maps/msb.py +482 -0
  606. soulstruct/demonssouls/maps/navmesh/__init__.py +16 -0
  607. soulstruct/demonssouls/maps/navmesh/nvmbnd.py +18 -0
  608. soulstruct/demonssouls/maps/parts.py +644 -0
  609. soulstruct/demonssouls/maps/regions.py +125 -0
  610. soulstruct/demonssouls/maps/trees.py +70 -0
  611. soulstruct/demonssouls/models/__init__.py +18 -0
  612. soulstruct/demonssouls/models/chrbnd.py +20 -0
  613. soulstruct/demonssouls/models/objbnd.py +21 -0
  614. soulstruct/demonssouls/models/partsbnd.py +20 -0
  615. soulstruct/demonssouls/models/shaders.py +225 -0
  616. soulstruct/eldenring/__init__.py +7 -0
  617. soulstruct/eldenring/constants.py +454 -0
  618. soulstruct/eldenring/containers/__init__.py +3 -0
  619. soulstruct/eldenring/containers/div_binder.py +277 -0
  620. soulstruct/eldenring/events/__init__.py +977 -0
  621. soulstruct/eldenring/events/_write_vanilla.py +33 -0
  622. soulstruct/eldenring/events/create_vanilla_enums.py +141 -0
  623. soulstruct/eldenring/events/emevd/__init__.py +2 -0
  624. soulstruct/eldenring/events/emevd/arg_types.py +406 -0
  625. soulstruct/eldenring/events/emevd/compiler.py +359 -0
  626. soulstruct/eldenring/events/emevd/core.py +48 -0
  627. soulstruct/eldenring/events/emevd/decompiler.py +477 -0
  628. soulstruct/eldenring/events/emevd/emedf.py +5194 -0
  629. soulstruct/eldenring/events/emevd/evs.py +26 -0
  630. soulstruct/eldenring/events/enums.py +672 -0
  631. soulstruct/eldenring/events/event_directory.py +904 -0
  632. soulstruct/eldenring/events/instructions.pyi +9743 -0
  633. soulstruct/eldenring/events/utilities.py +46 -0
  634. soulstruct/eldenring/events/vanilla/common.evs.py +12377 -0
  635. soulstruct/eldenring/events/vanilla/common_func.py +12794 -0
  636. soulstruct/eldenring/events/vanilla/enums/m10_00_00_00_enums.py +256 -0
  637. soulstruct/eldenring/events/vanilla/enums/m10_01_00_00_enums.py +16 -0
  638. soulstruct/eldenring/events/vanilla/enums/m11_00_00_00_enums.py +335 -0
  639. soulstruct/eldenring/events/vanilla/enums/m11_05_00_00_enums.py +89 -0
  640. soulstruct/eldenring/events/vanilla/enums/m11_10_00_00_enums.py +65 -0
  641. soulstruct/eldenring/events/vanilla/enums/m12_01_00_00_enums.py +159 -0
  642. soulstruct/eldenring/events/vanilla/enums/m12_02_00_00_enums.py +182 -0
  643. soulstruct/eldenring/events/vanilla/enums/m12_03_00_00_enums.py +144 -0
  644. soulstruct/eldenring/events/vanilla/enums/m12_04_00_00_enums.py +18 -0
  645. soulstruct/eldenring/events/vanilla/enums/m12_05_00_00_enums.py +145 -0
  646. soulstruct/eldenring/events/vanilla/enums/m12_07_00_00_enums.py +50 -0
  647. soulstruct/eldenring/events/vanilla/enums/m12_08_00_00_enums.py +14 -0
  648. soulstruct/eldenring/events/vanilla/enums/m12_09_00_00_enums.py +42 -0
  649. soulstruct/eldenring/events/vanilla/enums/m13_00_00_00_enums.py +251 -0
  650. soulstruct/eldenring/events/vanilla/enums/m14_00_00_00_enums.py +291 -0
  651. soulstruct/eldenring/events/vanilla/enums/m15_00_00_00_enums.py +353 -0
  652. soulstruct/eldenring/events/vanilla/enums/m16_00_00_00_enums.py +205 -0
  653. soulstruct/eldenring/events/vanilla/enums/m18_00_00_00_enums.py +64 -0
  654. soulstruct/eldenring/events/vanilla/enums/m19_00_00_00_enums.py +24 -0
  655. soulstruct/eldenring/events/vanilla/enums/m30_00_00_00_enums.py +39 -0
  656. soulstruct/eldenring/events/vanilla/enums/m30_01_00_00_enums.py +46 -0
  657. soulstruct/eldenring/events/vanilla/enums/m30_02_00_00_enums.py +38 -0
  658. soulstruct/eldenring/events/vanilla/enums/m30_03_00_00_enums.py +49 -0
  659. soulstruct/eldenring/events/vanilla/enums/m30_04_00_00_enums.py +29 -0
  660. soulstruct/eldenring/events/vanilla/enums/m30_05_00_00_enums.py +70 -0
  661. soulstruct/eldenring/events/vanilla/enums/m30_06_00_00_enums.py +54 -0
  662. soulstruct/eldenring/events/vanilla/enums/m30_07_00_00_enums.py +67 -0
  663. soulstruct/eldenring/events/vanilla/enums/m30_08_00_00_enums.py +70 -0
  664. soulstruct/eldenring/events/vanilla/enums/m30_09_00_00_enums.py +51 -0
  665. soulstruct/eldenring/events/vanilla/enums/m30_10_00_00_enums.py +62 -0
  666. soulstruct/eldenring/events/vanilla/enums/m30_11_00_00_enums.py +35 -0
  667. soulstruct/eldenring/events/vanilla/enums/m30_12_00_00_enums.py +43 -0
  668. soulstruct/eldenring/events/vanilla/enums/m30_13_00_00_enums.py +63 -0
  669. soulstruct/eldenring/events/vanilla/enums/m30_14_00_00_enums.py +43 -0
  670. soulstruct/eldenring/events/vanilla/enums/m30_15_00_00_enums.py +33 -0
  671. soulstruct/eldenring/events/vanilla/enums/m30_16_00_00_enums.py +44 -0
  672. soulstruct/eldenring/events/vanilla/enums/m30_17_00_00_enums.py +53 -0
  673. soulstruct/eldenring/events/vanilla/enums/m30_18_00_00_enums.py +104 -0
  674. soulstruct/eldenring/events/vanilla/enums/m30_19_00_00_enums.py +40 -0
  675. soulstruct/eldenring/events/vanilla/enums/m30_20_00_00_enums.py +56 -0
  676. soulstruct/eldenring/events/vanilla/enums/m31_00_00_00_enums.py +30 -0
  677. soulstruct/eldenring/events/vanilla/enums/m31_01_00_00_enums.py +25 -0
  678. soulstruct/eldenring/events/vanilla/enums/m31_02_00_00_enums.py +37 -0
  679. soulstruct/eldenring/events/vanilla/enums/m31_03_00_00_enums.py +21 -0
  680. soulstruct/eldenring/events/vanilla/enums/m31_04_00_00_enums.py +61 -0
  681. soulstruct/eldenring/events/vanilla/enums/m31_05_00_00_enums.py +42 -0
  682. soulstruct/eldenring/events/vanilla/enums/m31_06_00_00_enums.py +34 -0
  683. soulstruct/eldenring/events/vanilla/enums/m31_07_00_00_enums.py +50 -0
  684. soulstruct/eldenring/events/vanilla/enums/m31_09_00_00_enums.py +31 -0
  685. soulstruct/eldenring/events/vanilla/enums/m31_10_00_00_enums.py +31 -0
  686. soulstruct/eldenring/events/vanilla/enums/m31_11_00_00_enums.py +51 -0
  687. soulstruct/eldenring/events/vanilla/enums/m31_12_00_00_enums.py +23 -0
  688. soulstruct/eldenring/events/vanilla/enums/m31_15_00_00_enums.py +31 -0
  689. soulstruct/eldenring/events/vanilla/enums/m31_17_00_00_enums.py +45 -0
  690. soulstruct/eldenring/events/vanilla/enums/m31_18_00_00_enums.py +30 -0
  691. soulstruct/eldenring/events/vanilla/enums/m31_19_00_00_enums.py +51 -0
  692. soulstruct/eldenring/events/vanilla/enums/m31_20_00_00_enums.py +41 -0
  693. soulstruct/eldenring/events/vanilla/enums/m31_21_00_00_enums.py +89 -0
  694. soulstruct/eldenring/events/vanilla/enums/m31_22_00_00_enums.py +44 -0
  695. soulstruct/eldenring/events/vanilla/enums/m32_00_00_00_enums.py +51 -0
  696. soulstruct/eldenring/events/vanilla/enums/m32_01_00_00_enums.py +46 -0
  697. soulstruct/eldenring/events/vanilla/enums/m32_02_00_00_enums.py +79 -0
  698. soulstruct/eldenring/events/vanilla/enums/m32_04_00_00_enums.py +41 -0
  699. soulstruct/eldenring/events/vanilla/enums/m32_05_00_00_enums.py +55 -0
  700. soulstruct/eldenring/events/vanilla/enums/m32_07_00_00_enums.py +52 -0
  701. soulstruct/eldenring/events/vanilla/enums/m32_08_00_00_enums.py +47 -0
  702. soulstruct/eldenring/events/vanilla/enums/m32_11_00_00_enums.py +51 -0
  703. soulstruct/eldenring/events/vanilla/enums/m34_10_00_00_enums.py +24 -0
  704. soulstruct/eldenring/events/vanilla/enums/m34_11_00_00_enums.py +90 -0
  705. soulstruct/eldenring/events/vanilla/enums/m34_12_00_00_enums.py +77 -0
  706. soulstruct/eldenring/events/vanilla/enums/m34_13_00_00_enums.py +38 -0
  707. soulstruct/eldenring/events/vanilla/enums/m34_14_00_00_enums.py +29 -0
  708. soulstruct/eldenring/events/vanilla/enums/m34_15_00_00_enums.py +13 -0
  709. soulstruct/eldenring/events/vanilla/enums/m35_00_00_00_enums.py +276 -0
  710. soulstruct/eldenring/events/vanilla/enums/m39_20_00_00_enums.py +90 -0
  711. soulstruct/eldenring/events/vanilla/enums/m60_33_40_00_enums.py +16 -0
  712. soulstruct/eldenring/events/vanilla/enums/m60_33_41_00_enums.py +11 -0
  713. soulstruct/eldenring/events/vanilla/enums/m60_33_42_00_enums.py +13 -0
  714. soulstruct/eldenring/events/vanilla/enums/m60_33_43_00_enums.py +13 -0
  715. soulstruct/eldenring/events/vanilla/enums/m60_33_44_00_enums.py +25 -0
  716. soulstruct/eldenring/events/vanilla/enums/m60_33_45_00_enums.py +13 -0
  717. soulstruct/eldenring/events/vanilla/enums/m60_33_46_00_enums.py +21 -0
  718. soulstruct/eldenring/events/vanilla/enums/m60_33_47_00_enums.py +28 -0
  719. soulstruct/eldenring/events/vanilla/enums/m60_34_41_00_enums.py +13 -0
  720. soulstruct/eldenring/events/vanilla/enums/m60_34_42_00_enums.py +49 -0
  721. soulstruct/eldenring/events/vanilla/enums/m60_34_43_00_enums.py +19 -0
  722. soulstruct/eldenring/events/vanilla/enums/m60_34_44_00_enums.py +21 -0
  723. soulstruct/eldenring/events/vanilla/enums/m60_34_45_00_enums.py +25 -0
  724. soulstruct/eldenring/events/vanilla/enums/m60_34_46_00_enums.py +9 -0
  725. soulstruct/eldenring/events/vanilla/enums/m60_34_47_00_enums.py +29 -0
  726. soulstruct/eldenring/events/vanilla/enums/m60_34_48_00_enums.py +48 -0
  727. soulstruct/eldenring/events/vanilla/enums/m60_34_49_00_enums.py +19 -0
  728. soulstruct/eldenring/events/vanilla/enums/m60_34_50_00_enums.py +49 -0
  729. soulstruct/eldenring/events/vanilla/enums/m60_34_51_00_enums.py +11 -0
  730. soulstruct/eldenring/events/vanilla/enums/m60_35_41_00_enums.py +28 -0
  731. soulstruct/eldenring/events/vanilla/enums/m60_35_42_00_enums.py +34 -0
  732. soulstruct/eldenring/events/vanilla/enums/m60_35_43_00_enums.py +11 -0
  733. soulstruct/eldenring/events/vanilla/enums/m60_35_44_00_enums.py +15 -0
  734. soulstruct/eldenring/events/vanilla/enums/m60_35_45_00_enums.py +16 -0
  735. soulstruct/eldenring/events/vanilla/enums/m60_35_46_00_enums.py +23 -0
  736. soulstruct/eldenring/events/vanilla/enums/m60_35_47_00_enums.py +22 -0
  737. soulstruct/eldenring/events/vanilla/enums/m60_35_48_00_enums.py +16 -0
  738. soulstruct/eldenring/events/vanilla/enums/m60_35_49_00_enums.py +10 -0
  739. soulstruct/eldenring/events/vanilla/enums/m60_35_50_00_enums.py +140 -0
  740. soulstruct/eldenring/events/vanilla/enums/m60_35_51_00_enums.py +9 -0
  741. soulstruct/eldenring/events/vanilla/enums/m60_35_52_00_enums.py +11 -0
  742. soulstruct/eldenring/events/vanilla/enums/m60_35_53_00_enums.py +31 -0
  743. soulstruct/eldenring/events/vanilla/enums/m60_35_54_00_enums.py +30 -0
  744. soulstruct/eldenring/events/vanilla/enums/m60_36_41_00_enums.py +16 -0
  745. soulstruct/eldenring/events/vanilla/enums/m60_36_42_00_enums.py +9 -0
  746. soulstruct/eldenring/events/vanilla/enums/m60_36_43_00_enums.py +13 -0
  747. soulstruct/eldenring/events/vanilla/enums/m60_36_44_00_enums.py +14 -0
  748. soulstruct/eldenring/events/vanilla/enums/m60_36_45_00_enums.py +23 -0
  749. soulstruct/eldenring/events/vanilla/enums/m60_36_47_00_enums.py +33 -0
  750. soulstruct/eldenring/events/vanilla/enums/m60_36_48_00_enums.py +17 -0
  751. soulstruct/eldenring/events/vanilla/enums/m60_36_49_00_enums.py +19 -0
  752. soulstruct/eldenring/events/vanilla/enums/m60_36_50_00_enums.py +26 -0
  753. soulstruct/eldenring/events/vanilla/enums/m60_36_51_00_enums.py +35 -0
  754. soulstruct/eldenring/events/vanilla/enums/m60_36_52_00_enums.py +22 -0
  755. soulstruct/eldenring/events/vanilla/enums/m60_36_53_00_enums.py +14 -0
  756. soulstruct/eldenring/events/vanilla/enums/m60_36_54_00_enums.py +67 -0
  757. soulstruct/eldenring/events/vanilla/enums/m60_37_41_00_enums.py +16 -0
  758. soulstruct/eldenring/events/vanilla/enums/m60_37_42_00_enums.py +31 -0
  759. soulstruct/eldenring/events/vanilla/enums/m60_37_43_00_enums.py +11 -0
  760. soulstruct/eldenring/events/vanilla/enums/m60_37_44_00_enums.py +22 -0
  761. soulstruct/eldenring/events/vanilla/enums/m60_37_46_00_enums.py +16 -0
  762. soulstruct/eldenring/events/vanilla/enums/m60_37_47_00_enums.py +11 -0
  763. soulstruct/eldenring/events/vanilla/enums/m60_37_48_00_enums.py +28 -0
  764. soulstruct/eldenring/events/vanilla/enums/m60_37_49_00_enums.py +25 -0
  765. soulstruct/eldenring/events/vanilla/enums/m60_37_51_00_enums.py +22 -0
  766. soulstruct/eldenring/events/vanilla/enums/m60_37_52_00_enums.py +35 -0
  767. soulstruct/eldenring/events/vanilla/enums/m60_37_53_00_enums.py +41 -0
  768. soulstruct/eldenring/events/vanilla/enums/m60_37_54_00_enums.py +78 -0
  769. soulstruct/eldenring/events/vanilla/enums/m60_37_55_00_enums.py +11 -0
  770. soulstruct/eldenring/events/vanilla/enums/m60_38_39_00_enums.py +11 -0
  771. soulstruct/eldenring/events/vanilla/enums/m60_38_40_00_enums.py +15 -0
  772. soulstruct/eldenring/events/vanilla/enums/m60_38_41_00_enums.py +21 -0
  773. soulstruct/eldenring/events/vanilla/enums/m60_38_42_00_enums.py +32 -0
  774. soulstruct/eldenring/events/vanilla/enums/m60_38_43_00_enums.py +16 -0
  775. soulstruct/eldenring/events/vanilla/enums/m60_38_44_00_enums.py +11 -0
  776. soulstruct/eldenring/events/vanilla/enums/m60_38_45_00_enums.py +16 -0
  777. soulstruct/eldenring/events/vanilla/enums/m60_38_46_00_enums.py +18 -0
  778. soulstruct/eldenring/events/vanilla/enums/m60_38_47_00_enums.py +29 -0
  779. soulstruct/eldenring/events/vanilla/enums/m60_38_48_00_enums.py +26 -0
  780. soulstruct/eldenring/events/vanilla/enums/m60_38_49_00_enums.py +23 -0
  781. soulstruct/eldenring/events/vanilla/enums/m60_38_50_00_enums.py +27 -0
  782. soulstruct/eldenring/events/vanilla/enums/m60_38_51_00_enums.py +36 -0
  783. soulstruct/eldenring/events/vanilla/enums/m60_38_52_00_enums.py +48 -0
  784. soulstruct/eldenring/events/vanilla/enums/m60_38_53_00_enums.py +12 -0
  785. soulstruct/eldenring/events/vanilla/enums/m60_38_54_00_enums.py +60 -0
  786. soulstruct/eldenring/events/vanilla/enums/m60_39_39_00_enums.py +10 -0
  787. soulstruct/eldenring/events/vanilla/enums/m60_39_40_00_enums.py +17 -0
  788. soulstruct/eldenring/events/vanilla/enums/m60_39_41_00_enums.py +30 -0
  789. soulstruct/eldenring/events/vanilla/enums/m60_39_42_00_enums.py +28 -0
  790. soulstruct/eldenring/events/vanilla/enums/m60_39_43_00_enums.py +14 -0
  791. soulstruct/eldenring/events/vanilla/enums/m60_39_44_00_enums.py +38 -0
  792. soulstruct/eldenring/events/vanilla/enums/m60_39_45_00_enums.py +9 -0
  793. soulstruct/eldenring/events/vanilla/enums/m60_39_48_00_enums.py +16 -0
  794. soulstruct/eldenring/events/vanilla/enums/m60_39_50_00_enums.py +20 -0
  795. soulstruct/eldenring/events/vanilla/enums/m60_39_51_00_enums.py +23 -0
  796. soulstruct/eldenring/events/vanilla/enums/m60_39_52_00_enums.py +27 -0
  797. soulstruct/eldenring/events/vanilla/enums/m60_39_53_00_enums.py +100 -0
  798. soulstruct/eldenring/events/vanilla/enums/m60_39_54_00_enums.py +121 -0
  799. soulstruct/eldenring/events/vanilla/enums/m60_40_39_00_enums.py +9 -0
  800. soulstruct/eldenring/events/vanilla/enums/m60_40_40_00_enums.py +20 -0
  801. soulstruct/eldenring/events/vanilla/enums/m60_40_51_00_enums.py +15 -0
  802. soulstruct/eldenring/events/vanilla/enums/m60_40_52_00_enums.py +22 -0
  803. soulstruct/eldenring/events/vanilla/enums/m60_40_53_00_enums.py +57 -0
  804. soulstruct/eldenring/events/vanilla/enums/m60_40_54_00_enums.py +35 -0
  805. soulstruct/eldenring/events/vanilla/enums/m60_40_55_00_enums.py +14 -0
  806. soulstruct/eldenring/events/vanilla/enums/m60_41_32_00_enums.py +11 -0
  807. soulstruct/eldenring/events/vanilla/enums/m60_41_33_00_enums.py +20 -0
  808. soulstruct/eldenring/events/vanilla/enums/m60_41_34_00_enums.py +9 -0
  809. soulstruct/eldenring/events/vanilla/enums/m60_41_35_00_enums.py +12 -0
  810. soulstruct/eldenring/events/vanilla/enums/m60_41_36_00_enums.py +16 -0
  811. soulstruct/eldenring/events/vanilla/enums/m60_41_37_00_enums.py +12 -0
  812. soulstruct/eldenring/events/vanilla/enums/m60_41_38_00_enums.py +27 -0
  813. soulstruct/eldenring/events/vanilla/enums/m60_41_39_00_enums.py +12 -0
  814. soulstruct/eldenring/events/vanilla/enums/m60_41_50_00_enums.py +10 -0
  815. soulstruct/eldenring/events/vanilla/enums/m60_41_51_00_enums.py +26 -0
  816. soulstruct/eldenring/events/vanilla/enums/m60_41_52_00_enums.py +18 -0
  817. soulstruct/eldenring/events/vanilla/enums/m60_41_53_00_enums.py +31 -0
  818. soulstruct/eldenring/events/vanilla/enums/m60_41_54_00_enums.py +18 -0
  819. soulstruct/eldenring/events/vanilla/enums/m60_41_55_00_enums.py +30 -0
  820. soulstruct/eldenring/events/vanilla/enums/m60_42_32_00_enums.py +17 -0
  821. soulstruct/eldenring/events/vanilla/enums/m60_42_33_00_enums.py +74 -0
  822. soulstruct/eldenring/events/vanilla/enums/m60_42_34_00_enums.py +14 -0
  823. soulstruct/eldenring/events/vanilla/enums/m60_42_35_00_enums.py +15 -0
  824. soulstruct/eldenring/events/vanilla/enums/m60_42_36_00_enums.py +31 -0
  825. soulstruct/eldenring/events/vanilla/enums/m60_42_37_00_enums.py +30 -0
  826. soulstruct/eldenring/events/vanilla/enums/m60_42_38_00_enums.py +23 -0
  827. soulstruct/eldenring/events/vanilla/enums/m60_42_39_00_enums.py +35 -0
  828. soulstruct/eldenring/events/vanilla/enums/m60_42_40_00_enums.py +9 -0
  829. soulstruct/eldenring/events/vanilla/enums/m60_42_50_00_enums.py +15 -0
  830. soulstruct/eldenring/events/vanilla/enums/m60_42_51_00_enums.py +16 -0
  831. soulstruct/eldenring/events/vanilla/enums/m60_42_52_00_enums.py +11 -0
  832. soulstruct/eldenring/events/vanilla/enums/m60_42_53_00_enums.py +30 -0
  833. soulstruct/eldenring/events/vanilla/enums/m60_42_54_00_enums.py +46 -0
  834. soulstruct/eldenring/events/vanilla/enums/m60_42_55_00_enums.py +15 -0
  835. soulstruct/eldenring/events/vanilla/enums/m60_43_30_00_enums.py +15 -0
  836. soulstruct/eldenring/events/vanilla/enums/m60_43_31_00_enums.py +83 -0
  837. soulstruct/eldenring/events/vanilla/enums/m60_43_32_00_enums.py +11 -0
  838. soulstruct/eldenring/events/vanilla/enums/m60_43_33_00_enums.py +35 -0
  839. soulstruct/eldenring/events/vanilla/enums/m60_43_34_00_enums.py +32 -0
  840. soulstruct/eldenring/events/vanilla/enums/m60_43_35_00_enums.py +12 -0
  841. soulstruct/eldenring/events/vanilla/enums/m60_43_36_00_enums.py +30 -0
  842. soulstruct/eldenring/events/vanilla/enums/m60_43_37_00_enums.py +25 -0
  843. soulstruct/eldenring/events/vanilla/enums/m60_43_38_00_enums.py +21 -0
  844. soulstruct/eldenring/events/vanilla/enums/m60_43_39_00_enums.py +25 -0
  845. soulstruct/eldenring/events/vanilla/enums/m60_43_40_00_enums.py +9 -0
  846. soulstruct/eldenring/events/vanilla/enums/m60_43_50_00_enums.py +9 -0
  847. soulstruct/eldenring/events/vanilla/enums/m60_43_51_00_enums.py +16 -0
  848. soulstruct/eldenring/events/vanilla/enums/m60_43_52_00_enums.py +14 -0
  849. soulstruct/eldenring/events/vanilla/enums/m60_43_53_00_enums.py +36 -0
  850. soulstruct/eldenring/events/vanilla/enums/m60_44_31_00_enums.py +13 -0
  851. soulstruct/eldenring/events/vanilla/enums/m60_44_32_00_enums.py +14 -0
  852. soulstruct/eldenring/events/vanilla/enums/m60_44_33_00_enums.py +52 -0
  853. soulstruct/eldenring/events/vanilla/enums/m60_44_34_00_enums.py +44 -0
  854. soulstruct/eldenring/events/vanilla/enums/m60_44_35_00_enums.py +35 -0
  855. soulstruct/eldenring/events/vanilla/enums/m60_44_36_00_enums.py +35 -0
  856. soulstruct/eldenring/events/vanilla/enums/m60_44_36_10_enums.py +14 -0
  857. soulstruct/eldenring/events/vanilla/enums/m60_44_37_00_enums.py +24 -0
  858. soulstruct/eldenring/events/vanilla/enums/m60_44_37_10_enums.py +9 -0
  859. soulstruct/eldenring/events/vanilla/enums/m60_44_38_00_enums.py +18 -0
  860. soulstruct/eldenring/events/vanilla/enums/m60_44_38_10_enums.py +9 -0
  861. soulstruct/eldenring/events/vanilla/enums/m60_44_39_00_enums.py +18 -0
  862. soulstruct/eldenring/events/vanilla/enums/m60_44_39_10_enums.py +9 -0
  863. soulstruct/eldenring/events/vanilla/enums/m60_44_52_00_enums.py +18 -0
  864. soulstruct/eldenring/events/vanilla/enums/m60_44_53_00_enums.py +32 -0
  865. soulstruct/eldenring/events/vanilla/enums/m60_45_33_00_enums.py +23 -0
  866. soulstruct/eldenring/events/vanilla/enums/m60_45_34_00_enums.py +18 -0
  867. soulstruct/eldenring/events/vanilla/enums/m60_45_36_00_enums.py +19 -0
  868. soulstruct/eldenring/events/vanilla/enums/m60_45_36_10_enums.py +11 -0
  869. soulstruct/eldenring/events/vanilla/enums/m60_45_37_00_enums.py +34 -0
  870. soulstruct/eldenring/events/vanilla/enums/m60_45_38_00_enums.py +10 -0
  871. soulstruct/eldenring/events/vanilla/enums/m60_45_39_00_enums.py +27 -0
  872. soulstruct/eldenring/events/vanilla/enums/m60_45_51_00_enums.py +10 -0
  873. soulstruct/eldenring/events/vanilla/enums/m60_45_52_00_enums.py +32 -0
  874. soulstruct/eldenring/events/vanilla/enums/m60_45_52_10_enums.py +11 -0
  875. soulstruct/eldenring/events/vanilla/enums/m60_46_36_00_enums.py +17 -0
  876. soulstruct/eldenring/events/vanilla/enums/m60_46_38_00_enums.py +11 -0
  877. soulstruct/eldenring/events/vanilla/enums/m60_46_38_10_enums.py +9 -0
  878. soulstruct/eldenring/events/vanilla/enums/m60_46_39_00_enums.py +10 -0
  879. soulstruct/eldenring/events/vanilla/enums/m60_46_40_00_enums.py +31 -0
  880. soulstruct/eldenring/events/vanilla/enums/m60_46_57_00_enums.py +9 -0
  881. soulstruct/eldenring/events/vanilla/enums/m60_47_37_00_enums.py +11 -0
  882. soulstruct/eldenring/events/vanilla/enums/m60_47_38_00_enums.py +49 -0
  883. soulstruct/eldenring/events/vanilla/enums/m60_47_39_00_enums.py +34 -0
  884. soulstruct/eldenring/events/vanilla/enums/m60_47_39_10_enums.py +9 -0
  885. soulstruct/eldenring/events/vanilla/enums/m60_47_40_00_enums.py +75 -0
  886. soulstruct/eldenring/events/vanilla/enums/m60_47_41_00_enums.py +20 -0
  887. soulstruct/eldenring/events/vanilla/enums/m60_47_42_00_enums.py +9 -0
  888. soulstruct/eldenring/events/vanilla/enums/m60_47_51_00_enums.py +11 -0
  889. soulstruct/eldenring/events/vanilla/enums/m60_47_55_00_enums.py +21 -0
  890. soulstruct/eldenring/events/vanilla/enums/m60_47_56_00_enums.py +11 -0
  891. soulstruct/eldenring/events/vanilla/enums/m60_47_57_00_enums.py +9 -0
  892. soulstruct/eldenring/events/vanilla/enums/m60_47_58_00_enums.py +63 -0
  893. soulstruct/eldenring/events/vanilla/enums/m60_48_36_00_enums.py +12 -0
  894. soulstruct/eldenring/events/vanilla/enums/m60_48_37_00_enums.py +14 -0
  895. soulstruct/eldenring/events/vanilla/enums/m60_48_38_00_enums.py +47 -0
  896. soulstruct/eldenring/events/vanilla/enums/m60_48_39_00_enums.py +27 -0
  897. soulstruct/eldenring/events/vanilla/enums/m60_48_40_00_enums.py +19 -0
  898. soulstruct/eldenring/events/vanilla/enums/m60_48_41_00_enums.py +13 -0
  899. soulstruct/eldenring/events/vanilla/enums/m60_48_51_00_enums.py +13 -0
  900. soulstruct/eldenring/events/vanilla/enums/m60_48_54_00_enums.py +9 -0
  901. soulstruct/eldenring/events/vanilla/enums/m60_48_55_00_enums.py +22 -0
  902. soulstruct/eldenring/events/vanilla/enums/m60_48_56_00_enums.py +18 -0
  903. soulstruct/eldenring/events/vanilla/enums/m60_48_57_00_enums.py +45 -0
  904. soulstruct/eldenring/events/vanilla/enums/m60_49_36_00_enums.py +46 -0
  905. soulstruct/eldenring/events/vanilla/enums/m60_49_37_00_enums.py +17 -0
  906. soulstruct/eldenring/events/vanilla/enums/m60_49_38_00_enums.py +39 -0
  907. soulstruct/eldenring/events/vanilla/enums/m60_49_39_00_enums.py +70 -0
  908. soulstruct/eldenring/events/vanilla/enums/m60_49_40_00_enums.py +20 -0
  909. soulstruct/eldenring/events/vanilla/enums/m60_49_41_00_enums.py +16 -0
  910. soulstruct/eldenring/events/vanilla/enums/m60_49_52_00_enums.py +14 -0
  911. soulstruct/eldenring/events/vanilla/enums/m60_49_53_00_enums.py +56 -0
  912. soulstruct/eldenring/events/vanilla/enums/m60_49_54_00_enums.py +27 -0
  913. soulstruct/eldenring/events/vanilla/enums/m60_49_55_00_enums.py +31 -0
  914. soulstruct/eldenring/events/vanilla/enums/m60_49_56_00_enums.py +12 -0
  915. soulstruct/eldenring/events/vanilla/enums/m60_49_57_00_enums.py +27 -0
  916. soulstruct/eldenring/events/vanilla/enums/m60_50_36_00_enums.py +40 -0
  917. soulstruct/eldenring/events/vanilla/enums/m60_50_37_00_enums.py +9 -0
  918. soulstruct/eldenring/events/vanilla/enums/m60_50_38_00_enums.py +19 -0
  919. soulstruct/eldenring/events/vanilla/enums/m60_50_39_00_enums.py +45 -0
  920. soulstruct/eldenring/events/vanilla/enums/m60_50_40_00_enums.py +72 -0
  921. soulstruct/eldenring/events/vanilla/enums/m60_50_53_00_enums.py +14 -0
  922. soulstruct/eldenring/events/vanilla/enums/m60_50_54_00_enums.py +18 -0
  923. soulstruct/eldenring/events/vanilla/enums/m60_50_55_00_enums.py +14 -0
  924. soulstruct/eldenring/events/vanilla/enums/m60_50_56_00_enums.py +34 -0
  925. soulstruct/eldenring/events/vanilla/enums/m60_50_57_00_enums.py +15 -0
  926. soulstruct/eldenring/events/vanilla/enums/m60_51_35_00_enums.py +11 -0
  927. soulstruct/eldenring/events/vanilla/enums/m60_51_36_00_enums.py +79 -0
  928. soulstruct/eldenring/events/vanilla/enums/m60_51_37_00_enums.py +9 -0
  929. soulstruct/eldenring/events/vanilla/enums/m60_51_39_00_enums.py +36 -0
  930. soulstruct/eldenring/events/vanilla/enums/m60_51_40_00_enums.py +18 -0
  931. soulstruct/eldenring/events/vanilla/enums/m60_51_41_00_enums.py +10 -0
  932. soulstruct/eldenring/events/vanilla/enums/m60_51_42_00_enums.py +9 -0
  933. soulstruct/eldenring/events/vanilla/enums/m60_51_43_00_enums.py +14 -0
  934. soulstruct/eldenring/events/vanilla/enums/m60_51_52_00_enums.py +9 -0
  935. soulstruct/eldenring/events/vanilla/enums/m60_51_53_00_enums.py +17 -0
  936. soulstruct/eldenring/events/vanilla/enums/m60_51_54_00_enums.py +9 -0
  937. soulstruct/eldenring/events/vanilla/enums/m60_51_55_00_enums.py +9 -0
  938. soulstruct/eldenring/events/vanilla/enums/m60_51_56_00_enums.py +25 -0
  939. soulstruct/eldenring/events/vanilla/enums/m60_51_57_00_enums.py +148 -0
  940. soulstruct/eldenring/events/vanilla/enums/m60_51_58_00_enums.py +11 -0
  941. soulstruct/eldenring/events/vanilla/enums/m60_52_38_00_enums.py +121 -0
  942. soulstruct/eldenring/events/vanilla/enums/m60_52_39_00_enums.py +12 -0
  943. soulstruct/eldenring/events/vanilla/enums/m60_52_40_00_enums.py +10 -0
  944. soulstruct/eldenring/events/vanilla/enums/m60_52_41_00_enums.py +23 -0
  945. soulstruct/eldenring/events/vanilla/enums/m60_52_42_00_enums.py +9 -0
  946. soulstruct/eldenring/events/vanilla/enums/m60_52_52_00_enums.py +10 -0
  947. soulstruct/eldenring/events/vanilla/enums/m60_52_53_00_enums.py +19 -0
  948. soulstruct/eldenring/events/vanilla/enums/m60_52_54_00_enums.py +20 -0
  949. soulstruct/eldenring/events/vanilla/enums/m60_52_55_00_enums.py +40 -0
  950. soulstruct/eldenring/events/vanilla/enums/m60_52_56_00_enums.py +18 -0
  951. soulstruct/eldenring/events/vanilla/enums/m60_52_57_00_enums.py +33 -0
  952. soulstruct/eldenring/events/vanilla/enums/m60_52_58_00_enums.py +9 -0
  953. soulstruct/eldenring/events/vanilla/enums/m60_53_52_00_enums.py +9 -0
  954. soulstruct/eldenring/events/vanilla/enums/m60_53_55_00_enums.py +11 -0
  955. soulstruct/eldenring/events/vanilla/enums/m60_53_56_00_enums.py +33 -0
  956. soulstruct/eldenring/events/vanilla/enums/m60_53_57_00_enums.py +9 -0
  957. soulstruct/eldenring/events/vanilla/enums/m60_54_53_00_enums.py +9 -0
  958. soulstruct/eldenring/events/vanilla/enums/m60_54_55_00_enums.py +10 -0
  959. soulstruct/eldenring/events/vanilla/enums/m60_54_56_00_enums.py +13 -0
  960. soulstruct/eldenring/events/vanilla/m10_00_00_00.evs.py +3627 -0
  961. soulstruct/eldenring/events/vanilla/m10_01_00_00.evs.py +476 -0
  962. soulstruct/eldenring/events/vanilla/m11_00_00_00.evs.py +3830 -0
  963. soulstruct/eldenring/events/vanilla/m11_05_00_00.evs.py +1320 -0
  964. soulstruct/eldenring/events/vanilla/m11_10_00_00.evs.py +2072 -0
  965. soulstruct/eldenring/events/vanilla/m12_01_00_00.evs.py +2049 -0
  966. soulstruct/eldenring/events/vanilla/m12_02_00_00.evs.py +2046 -0
  967. soulstruct/eldenring/events/vanilla/m12_03_00_00.evs.py +1877 -0
  968. soulstruct/eldenring/events/vanilla/m12_04_00_00.evs.py +203 -0
  969. soulstruct/eldenring/events/vanilla/m12_05_00_00.evs.py +1668 -0
  970. soulstruct/eldenring/events/vanilla/m12_07_00_00.evs.py +452 -0
  971. soulstruct/eldenring/events/vanilla/m12_08_00_00.evs.py +140 -0
  972. soulstruct/eldenring/events/vanilla/m12_09_00_00.evs.py +1651 -0
  973. soulstruct/eldenring/events/vanilla/m13_00_00_00.evs.py +3071 -0
  974. soulstruct/eldenring/events/vanilla/m14_00_00_00.evs.py +5472 -0
  975. soulstruct/eldenring/events/vanilla/m15_00_00_00.evs.py +2597 -0
  976. soulstruct/eldenring/events/vanilla/m16_00_00_00.evs.py +3280 -0
  977. soulstruct/eldenring/events/vanilla/m18_00_00_00.evs.py +1422 -0
  978. soulstruct/eldenring/events/vanilla/m19_00_00_00.evs.py +754 -0
  979. soulstruct/eldenring/events/vanilla/m20_00_00_00.evs.py +2733 -0
  980. soulstruct/eldenring/events/vanilla/m20_01_00_00.evs.py +4995 -0
  981. soulstruct/eldenring/events/vanilla/m21_00_00_00.evs.py +1886 -0
  982. soulstruct/eldenring/events/vanilla/m21_01_00_00.evs.py +3436 -0
  983. soulstruct/eldenring/events/vanilla/m21_02_00_00.evs.py +298 -0
  984. soulstruct/eldenring/events/vanilla/m22_00_00_00.evs.py +2188 -0
  985. soulstruct/eldenring/events/vanilla/m25_00_00_00.evs.py +416 -0
  986. soulstruct/eldenring/events/vanilla/m28_00_00_00.evs.py +831 -0
  987. soulstruct/eldenring/events/vanilla/m30_00_00_00.evs.py +890 -0
  988. soulstruct/eldenring/events/vanilla/m30_01_00_00.evs.py +727 -0
  989. soulstruct/eldenring/events/vanilla/m30_02_00_00.evs.py +841 -0
  990. soulstruct/eldenring/events/vanilla/m30_03_00_00.evs.py +1695 -0
  991. soulstruct/eldenring/events/vanilla/m30_04_00_00.evs.py +503 -0
  992. soulstruct/eldenring/events/vanilla/m30_05_00_00.evs.py +1204 -0
  993. soulstruct/eldenring/events/vanilla/m30_06_00_00.evs.py +1544 -0
  994. soulstruct/eldenring/events/vanilla/m30_07_00_00.evs.py +5254 -0
  995. soulstruct/eldenring/events/vanilla/m30_08_00_00.evs.py +1074 -0
  996. soulstruct/eldenring/events/vanilla/m30_09_00_00.evs.py +859 -0
  997. soulstruct/eldenring/events/vanilla/m30_10_00_00.evs.py +2254 -0
  998. soulstruct/eldenring/events/vanilla/m30_11_00_00.evs.py +429 -0
  999. soulstruct/eldenring/events/vanilla/m30_12_00_00.evs.py +308 -0
  1000. soulstruct/eldenring/events/vanilla/m30_13_00_00.evs.py +807 -0
  1001. soulstruct/eldenring/events/vanilla/m30_14_00_00.evs.py +509 -0
  1002. soulstruct/eldenring/events/vanilla/m30_15_00_00.evs.py +275 -0
  1003. soulstruct/eldenring/events/vanilla/m30_16_00_00.evs.py +586 -0
  1004. soulstruct/eldenring/events/vanilla/m30_17_00_00.evs.py +1151 -0
  1005. soulstruct/eldenring/events/vanilla/m30_18_00_00.evs.py +2278 -0
  1006. soulstruct/eldenring/events/vanilla/m30_19_00_00.evs.py +4012 -0
  1007. soulstruct/eldenring/events/vanilla/m30_20_00_00.evs.py +494 -0
  1008. soulstruct/eldenring/events/vanilla/m31_00_00_00.evs.py +2275 -0
  1009. soulstruct/eldenring/events/vanilla/m31_01_00_00.evs.py +369 -0
  1010. soulstruct/eldenring/events/vanilla/m31_02_00_00.evs.py +670 -0
  1011. soulstruct/eldenring/events/vanilla/m31_03_00_00.evs.py +238 -0
  1012. soulstruct/eldenring/events/vanilla/m31_04_00_00.evs.py +499 -0
  1013. soulstruct/eldenring/events/vanilla/m31_05_00_00.evs.py +389 -0
  1014. soulstruct/eldenring/events/vanilla/m31_06_00_00.evs.py +280 -0
  1015. soulstruct/eldenring/events/vanilla/m31_07_00_00.evs.py +799 -0
  1016. soulstruct/eldenring/events/vanilla/m31_09_00_00.evs.py +423 -0
  1017. soulstruct/eldenring/events/vanilla/m31_10_00_00.evs.py +479 -0
  1018. soulstruct/eldenring/events/vanilla/m31_11_00_00.evs.py +783 -0
  1019. soulstruct/eldenring/events/vanilla/m31_12_00_00.evs.py +201 -0
  1020. soulstruct/eldenring/events/vanilla/m31_15_00_00.evs.py +457 -0
  1021. soulstruct/eldenring/events/vanilla/m31_17_00_00.evs.py +562 -0
  1022. soulstruct/eldenring/events/vanilla/m31_18_00_00.evs.py +493 -0
  1023. soulstruct/eldenring/events/vanilla/m31_19_00_00.evs.py +634 -0
  1024. soulstruct/eldenring/events/vanilla/m31_20_00_00.evs.py +348 -0
  1025. soulstruct/eldenring/events/vanilla/m31_21_00_00.evs.py +1001 -0
  1026. soulstruct/eldenring/events/vanilla/m31_22_00_00.evs.py +542 -0
  1027. soulstruct/eldenring/events/vanilla/m32_00_00_00.evs.py +867 -0
  1028. soulstruct/eldenring/events/vanilla/m32_01_00_00.evs.py +884 -0
  1029. soulstruct/eldenring/events/vanilla/m32_02_00_00.evs.py +965 -0
  1030. soulstruct/eldenring/events/vanilla/m32_04_00_00.evs.py +738 -0
  1031. soulstruct/eldenring/events/vanilla/m32_05_00_00.evs.py +694 -0
  1032. soulstruct/eldenring/events/vanilla/m32_07_00_00.evs.py +501 -0
  1033. soulstruct/eldenring/events/vanilla/m32_08_00_00.evs.py +476 -0
  1034. soulstruct/eldenring/events/vanilla/m32_11_00_00.evs.py +411 -0
  1035. soulstruct/eldenring/events/vanilla/m34_10_00_00.evs.py +241 -0
  1036. soulstruct/eldenring/events/vanilla/m34_11_00_00.evs.py +2506 -0
  1037. soulstruct/eldenring/events/vanilla/m34_12_00_00.evs.py +536 -0
  1038. soulstruct/eldenring/events/vanilla/m34_13_00_00.evs.py +326 -0
  1039. soulstruct/eldenring/events/vanilla/m34_14_00_00.evs.py +491 -0
  1040. soulstruct/eldenring/events/vanilla/m34_15_00_00.evs.py +153 -0
  1041. soulstruct/eldenring/events/vanilla/m35_00_00_00.evs.py +3788 -0
  1042. soulstruct/eldenring/events/vanilla/m39_20_00_00.evs.py +1131 -0
  1043. soulstruct/eldenring/events/vanilla/m40_00_00_00.evs.py +5116 -0
  1044. soulstruct/eldenring/events/vanilla/m40_01_00_00.evs.py +2704 -0
  1045. soulstruct/eldenring/events/vanilla/m40_02_00_00.evs.py +1544 -0
  1046. soulstruct/eldenring/events/vanilla/m41_00_00_00.evs.py +793 -0
  1047. soulstruct/eldenring/events/vanilla/m41_01_00_00.evs.py +586 -0
  1048. soulstruct/eldenring/events/vanilla/m41_02_00_00.evs.py +1633 -0
  1049. soulstruct/eldenring/events/vanilla/m42_00_00_00.evs.py +404 -0
  1050. soulstruct/eldenring/events/vanilla/m42_01_00_00.evs.py +500 -0
  1051. soulstruct/eldenring/events/vanilla/m42_02_00_00.evs.py +628 -0
  1052. soulstruct/eldenring/events/vanilla/m42_03_00_00.evs.py +505 -0
  1053. soulstruct/eldenring/events/vanilla/m43_00_00_00.evs.py +441 -0
  1054. soulstruct/eldenring/events/vanilla/m43_01_00_00.evs.py +216 -0
  1055. soulstruct/eldenring/events/vanilla/m60_33_40_00.evs.py +203 -0
  1056. soulstruct/eldenring/events/vanilla/m60_33_41_00.evs.py +78 -0
  1057. soulstruct/eldenring/events/vanilla/m60_33_42_00.evs.py +126 -0
  1058. soulstruct/eldenring/events/vanilla/m60_33_43_00.evs.py +41 -0
  1059. soulstruct/eldenring/events/vanilla/m60_33_44_00.evs.py +184 -0
  1060. soulstruct/eldenring/events/vanilla/m60_33_45_00.evs.py +167 -0
  1061. soulstruct/eldenring/events/vanilla/m60_33_46_00.evs.py +145 -0
  1062. soulstruct/eldenring/events/vanilla/m60_33_47_00.evs.py +282 -0
  1063. soulstruct/eldenring/events/vanilla/m60_34_41_00.evs.py +70 -0
  1064. soulstruct/eldenring/events/vanilla/m60_34_42_00.evs.py +413 -0
  1065. soulstruct/eldenring/events/vanilla/m60_34_43_00.evs.py +318 -0
  1066. soulstruct/eldenring/events/vanilla/m60_34_44_00.evs.py +140 -0
  1067. soulstruct/eldenring/events/vanilla/m60_34_45_00.evs.py +128 -0
  1068. soulstruct/eldenring/events/vanilla/m60_34_46_00.evs.py +45 -0
  1069. soulstruct/eldenring/events/vanilla/m60_34_47_00.evs.py +521 -0
  1070. soulstruct/eldenring/events/vanilla/m60_34_48_00.evs.py +635 -0
  1071. soulstruct/eldenring/events/vanilla/m60_34_49_00.evs.py +482 -0
  1072. soulstruct/eldenring/events/vanilla/m60_34_50_00.evs.py +1176 -0
  1073. soulstruct/eldenring/events/vanilla/m60_34_51_00.evs.py +63 -0
  1074. soulstruct/eldenring/events/vanilla/m60_35_41_00.evs.py +145 -0
  1075. soulstruct/eldenring/events/vanilla/m60_35_42_00.evs.py +628 -0
  1076. soulstruct/eldenring/events/vanilla/m60_35_43_00.evs.py +233 -0
  1077. soulstruct/eldenring/events/vanilla/m60_35_44_00.evs.py +240 -0
  1078. soulstruct/eldenring/events/vanilla/m60_35_45_00.evs.py +196 -0
  1079. soulstruct/eldenring/events/vanilla/m60_35_46_00.evs.py +325 -0
  1080. soulstruct/eldenring/events/vanilla/m60_35_47_00.evs.py +435 -0
  1081. soulstruct/eldenring/events/vanilla/m60_35_48_00.evs.py +497 -0
  1082. soulstruct/eldenring/events/vanilla/m60_35_49_00.evs.py +53 -0
  1083. soulstruct/eldenring/events/vanilla/m60_35_50_00.evs.py +1335 -0
  1084. soulstruct/eldenring/events/vanilla/m60_35_51_00.evs.py +90 -0
  1085. soulstruct/eldenring/events/vanilla/m60_35_52_00.evs.py +37 -0
  1086. soulstruct/eldenring/events/vanilla/m60_35_53_00.evs.py +573 -0
  1087. soulstruct/eldenring/events/vanilla/m60_35_54_00.evs.py +529 -0
  1088. soulstruct/eldenring/events/vanilla/m60_36_41_00.evs.py +182 -0
  1089. soulstruct/eldenring/events/vanilla/m60_36_42_00.evs.py +40 -0
  1090. soulstruct/eldenring/events/vanilla/m60_36_43_00.evs.py +120 -0
  1091. soulstruct/eldenring/events/vanilla/m60_36_44_00.evs.py +66 -0
  1092. soulstruct/eldenring/events/vanilla/m60_36_45_00.evs.py +140 -0
  1093. soulstruct/eldenring/events/vanilla/m60_36_46_00.evs.py +19 -0
  1094. soulstruct/eldenring/events/vanilla/m60_36_47_00.evs.py +289 -0
  1095. soulstruct/eldenring/events/vanilla/m60_36_48_00.evs.py +236 -0
  1096. soulstruct/eldenring/events/vanilla/m60_36_49_00.evs.py +185 -0
  1097. soulstruct/eldenring/events/vanilla/m60_36_50_00.evs.py +155 -0
  1098. soulstruct/eldenring/events/vanilla/m60_36_51_00.evs.py +207 -0
  1099. soulstruct/eldenring/events/vanilla/m60_36_52_00.evs.py +254 -0
  1100. soulstruct/eldenring/events/vanilla/m60_36_53_00.evs.py +389 -0
  1101. soulstruct/eldenring/events/vanilla/m60_36_54_00.evs.py +1425 -0
  1102. soulstruct/eldenring/events/vanilla/m60_37_41_00.evs.py +90 -0
  1103. soulstruct/eldenring/events/vanilla/m60_37_42_00.evs.py +476 -0
  1104. soulstruct/eldenring/events/vanilla/m60_37_43_00.evs.py +35 -0
  1105. soulstruct/eldenring/events/vanilla/m60_37_44_00.evs.py +232 -0
  1106. soulstruct/eldenring/events/vanilla/m60_37_45_00.evs.py +27 -0
  1107. soulstruct/eldenring/events/vanilla/m60_37_46_00.evs.py +710 -0
  1108. soulstruct/eldenring/events/vanilla/m60_37_47_00.evs.py +62 -0
  1109. soulstruct/eldenring/events/vanilla/m60_37_48_00.evs.py +215 -0
  1110. soulstruct/eldenring/events/vanilla/m60_37_49_00.evs.py +169 -0
  1111. soulstruct/eldenring/events/vanilla/m60_37_50_00.evs.py +27 -0
  1112. soulstruct/eldenring/events/vanilla/m60_37_51_00.evs.py +170 -0
  1113. soulstruct/eldenring/events/vanilla/m60_37_52_00.evs.py +359 -0
  1114. soulstruct/eldenring/events/vanilla/m60_37_53_00.evs.py +566 -0
  1115. soulstruct/eldenring/events/vanilla/m60_37_54_00.evs.py +1824 -0
  1116. soulstruct/eldenring/events/vanilla/m60_37_55_00.evs.py +69 -0
  1117. soulstruct/eldenring/events/vanilla/m60_38_39_00.evs.py +61 -0
  1118. soulstruct/eldenring/events/vanilla/m60_38_40_00.evs.py +47 -0
  1119. soulstruct/eldenring/events/vanilla/m60_38_41_00.evs.py +353 -0
  1120. soulstruct/eldenring/events/vanilla/m60_38_42_00.evs.py +148 -0
  1121. soulstruct/eldenring/events/vanilla/m60_38_43_00.evs.py +405 -0
  1122. soulstruct/eldenring/events/vanilla/m60_38_44_00.evs.py +78 -0
  1123. soulstruct/eldenring/events/vanilla/m60_38_45_00.evs.py +31 -0
  1124. soulstruct/eldenring/events/vanilla/m60_38_46_00.evs.py +120 -0
  1125. soulstruct/eldenring/events/vanilla/m60_38_47_00.evs.py +217 -0
  1126. soulstruct/eldenring/events/vanilla/m60_38_48_00.evs.py +152 -0
  1127. soulstruct/eldenring/events/vanilla/m60_38_49_00.evs.py +322 -0
  1128. soulstruct/eldenring/events/vanilla/m60_38_50_00.evs.py +376 -0
  1129. soulstruct/eldenring/events/vanilla/m60_38_51_00.evs.py +711 -0
  1130. soulstruct/eldenring/events/vanilla/m60_38_52_00.evs.py +838 -0
  1131. soulstruct/eldenring/events/vanilla/m60_38_53_00.evs.py +62 -0
  1132. soulstruct/eldenring/events/vanilla/m60_38_54_00.evs.py +1097 -0
  1133. soulstruct/eldenring/events/vanilla/m60_39_39_00.evs.py +153 -0
  1134. soulstruct/eldenring/events/vanilla/m60_39_40_00.evs.py +287 -0
  1135. soulstruct/eldenring/events/vanilla/m60_39_41_00.evs.py +265 -0
  1136. soulstruct/eldenring/events/vanilla/m60_39_42_00.evs.py +294 -0
  1137. soulstruct/eldenring/events/vanilla/m60_39_43_00.evs.py +84 -0
  1138. soulstruct/eldenring/events/vanilla/m60_39_44_00.evs.py +1885 -0
  1139. soulstruct/eldenring/events/vanilla/m60_39_45_00.evs.py +28 -0
  1140. soulstruct/eldenring/events/vanilla/m60_39_46_00.evs.py +19 -0
  1141. soulstruct/eldenring/events/vanilla/m60_39_48_00.evs.py +127 -0
  1142. soulstruct/eldenring/events/vanilla/m60_39_49_00.evs.py +19 -0
  1143. soulstruct/eldenring/events/vanilla/m60_39_50_00.evs.py +274 -0
  1144. soulstruct/eldenring/events/vanilla/m60_39_51_00.evs.py +303 -0
  1145. soulstruct/eldenring/events/vanilla/m60_39_52_00.evs.py +465 -0
  1146. soulstruct/eldenring/events/vanilla/m60_39_53_00.evs.py +264 -0
  1147. soulstruct/eldenring/events/vanilla/m60_39_54_00.evs.py +1198 -0
  1148. soulstruct/eldenring/events/vanilla/m60_40_33_00.evs.py +34 -0
  1149. soulstruct/eldenring/events/vanilla/m60_40_38_00.evs.py +19 -0
  1150. soulstruct/eldenring/events/vanilla/m60_40_39_00.evs.py +28 -0
  1151. soulstruct/eldenring/events/vanilla/m60_40_40_00.evs.py +58 -0
  1152. soulstruct/eldenring/events/vanilla/m60_40_50_00.evs.py +65 -0
  1153. soulstruct/eldenring/events/vanilla/m60_40_51_00.evs.py +51 -0
  1154. soulstruct/eldenring/events/vanilla/m60_40_52_00.evs.py +376 -0
  1155. soulstruct/eldenring/events/vanilla/m60_40_53_00.evs.py +661 -0
  1156. soulstruct/eldenring/events/vanilla/m60_40_54_00.evs.py +402 -0
  1157. soulstruct/eldenring/events/vanilla/m60_40_55_00.evs.py +68 -0
  1158. soulstruct/eldenring/events/vanilla/m60_41_32_00.evs.py +130 -0
  1159. soulstruct/eldenring/events/vanilla/m60_41_33_00.evs.py +344 -0
  1160. soulstruct/eldenring/events/vanilla/m60_41_34_00.evs.py +30 -0
  1161. soulstruct/eldenring/events/vanilla/m60_41_35_00.evs.py +72 -0
  1162. soulstruct/eldenring/events/vanilla/m60_41_36_00.evs.py +276 -0
  1163. soulstruct/eldenring/events/vanilla/m60_41_37_00.evs.py +73 -0
  1164. soulstruct/eldenring/events/vanilla/m60_41_38_00.evs.py +462 -0
  1165. soulstruct/eldenring/events/vanilla/m60_41_39_00.evs.py +48 -0
  1166. soulstruct/eldenring/events/vanilla/m60_41_50_00.evs.py +68 -0
  1167. soulstruct/eldenring/events/vanilla/m60_41_51_00.evs.py +369 -0
  1168. soulstruct/eldenring/events/vanilla/m60_41_52_00.evs.py +263 -0
  1169. soulstruct/eldenring/events/vanilla/m60_41_53_00.evs.py +101 -0
  1170. soulstruct/eldenring/events/vanilla/m60_41_54_00.evs.py +133 -0
  1171. soulstruct/eldenring/events/vanilla/m60_41_55_00.evs.py +259 -0
  1172. soulstruct/eldenring/events/vanilla/m60_42_32_00.evs.py +294 -0
  1173. soulstruct/eldenring/events/vanilla/m60_42_33_00.evs.py +592 -0
  1174. soulstruct/eldenring/events/vanilla/m60_42_34_00.evs.py +32 -0
  1175. soulstruct/eldenring/events/vanilla/m60_42_35_00.evs.py +96 -0
  1176. soulstruct/eldenring/events/vanilla/m60_42_36_00.evs.py +1011 -0
  1177. soulstruct/eldenring/events/vanilla/m60_42_37_00.evs.py +264 -0
  1178. soulstruct/eldenring/events/vanilla/m60_42_38_00.evs.py +476 -0
  1179. soulstruct/eldenring/events/vanilla/m60_42_39_00.evs.py +313 -0
  1180. soulstruct/eldenring/events/vanilla/m60_42_40_00.evs.py +213 -0
  1181. soulstruct/eldenring/events/vanilla/m60_42_50_00.evs.py +65 -0
  1182. soulstruct/eldenring/events/vanilla/m60_42_51_00.evs.py +84 -0
  1183. soulstruct/eldenring/events/vanilla/m60_42_52_00.evs.py +39 -0
  1184. soulstruct/eldenring/events/vanilla/m60_42_53_00.evs.py +297 -0
  1185. soulstruct/eldenring/events/vanilla/m60_42_54_00.evs.py +170 -0
  1186. soulstruct/eldenring/events/vanilla/m60_42_55_00.evs.py +171 -0
  1187. soulstruct/eldenring/events/vanilla/m60_43_30_00.evs.py +175 -0
  1188. soulstruct/eldenring/events/vanilla/m60_43_31_00.evs.py +575 -0
  1189. soulstruct/eldenring/events/vanilla/m60_43_32_00.evs.py +52 -0
  1190. soulstruct/eldenring/events/vanilla/m60_43_33_00.evs.py +297 -0
  1191. soulstruct/eldenring/events/vanilla/m60_43_34_00.evs.py +151 -0
  1192. soulstruct/eldenring/events/vanilla/m60_43_35_00.evs.py +274 -0
  1193. soulstruct/eldenring/events/vanilla/m60_43_36_00.evs.py +561 -0
  1194. soulstruct/eldenring/events/vanilla/m60_43_37_00.evs.py +987 -0
  1195. soulstruct/eldenring/events/vanilla/m60_43_38_00.evs.py +378 -0
  1196. soulstruct/eldenring/events/vanilla/m60_43_39_00.evs.py +700 -0
  1197. soulstruct/eldenring/events/vanilla/m60_43_40_00.evs.py +48 -0
  1198. soulstruct/eldenring/events/vanilla/m60_43_50_00.evs.py +29 -0
  1199. soulstruct/eldenring/events/vanilla/m60_43_51_00.evs.py +93 -0
  1200. soulstruct/eldenring/events/vanilla/m60_43_52_00.evs.py +173 -0
  1201. soulstruct/eldenring/events/vanilla/m60_43_53_00.evs.py +471 -0
  1202. soulstruct/eldenring/events/vanilla/m60_43_54_00.evs.py +19 -0
  1203. soulstruct/eldenring/events/vanilla/m60_44_31_00.evs.py +104 -0
  1204. soulstruct/eldenring/events/vanilla/m60_44_32_00.evs.py +197 -0
  1205. soulstruct/eldenring/events/vanilla/m60_44_33_00.evs.py +568 -0
  1206. soulstruct/eldenring/events/vanilla/m60_44_34_00.evs.py +712 -0
  1207. soulstruct/eldenring/events/vanilla/m60_44_35_00.evs.py +508 -0
  1208. soulstruct/eldenring/events/vanilla/m60_44_36_00.evs.py +676 -0
  1209. soulstruct/eldenring/events/vanilla/m60_44_37_00.evs.py +319 -0
  1210. soulstruct/eldenring/events/vanilla/m60_44_38_00.evs.py +235 -0
  1211. soulstruct/eldenring/events/vanilla/m60_44_39_00.evs.py +239 -0
  1212. soulstruct/eldenring/events/vanilla/m60_44_52_00.evs.py +413 -0
  1213. soulstruct/eldenring/events/vanilla/m60_44_53_00.evs.py +345 -0
  1214. soulstruct/eldenring/events/vanilla/m60_45_33_00.evs.py +297 -0
  1215. soulstruct/eldenring/events/vanilla/m60_45_34_00.evs.py +319 -0
  1216. soulstruct/eldenring/events/vanilla/m60_45_35_00.evs.py +41 -0
  1217. soulstruct/eldenring/events/vanilla/m60_45_36_00.evs.py +505 -0
  1218. soulstruct/eldenring/events/vanilla/m60_45_36_10.evs.py +548 -0
  1219. soulstruct/eldenring/events/vanilla/m60_45_37_00.evs.py +383 -0
  1220. soulstruct/eldenring/events/vanilla/m60_45_38_00.evs.py +115 -0
  1221. soulstruct/eldenring/events/vanilla/m60_45_39_00.evs.py +528 -0
  1222. soulstruct/eldenring/events/vanilla/m60_45_51_00.evs.py +46 -0
  1223. soulstruct/eldenring/events/vanilla/m60_45_52_00.evs.py +263 -0
  1224. soulstruct/eldenring/events/vanilla/m60_45_52_10.evs.py +290 -0
  1225. soulstruct/eldenring/events/vanilla/m60_45_53_00.evs.py +19 -0
  1226. soulstruct/eldenring/events/vanilla/m60_46_36_00.evs.py +249 -0
  1227. soulstruct/eldenring/events/vanilla/m60_46_38_00.evs.py +116 -0
  1228. soulstruct/eldenring/events/vanilla/m60_46_39_00.evs.py +179 -0
  1229. soulstruct/eldenring/events/vanilla/m60_46_40_00.evs.py +101 -0
  1230. soulstruct/eldenring/events/vanilla/m60_46_55_00.evs.py +19 -0
  1231. soulstruct/eldenring/events/vanilla/m60_46_57_00.evs.py +28 -0
  1232. soulstruct/eldenring/events/vanilla/m60_47_37_00.evs.py +83 -0
  1233. soulstruct/eldenring/events/vanilla/m60_47_38_00.evs.py +344 -0
  1234. soulstruct/eldenring/events/vanilla/m60_47_39_00.evs.py +349 -0
  1235. soulstruct/eldenring/events/vanilla/m60_47_40_00.evs.py +655 -0
  1236. soulstruct/eldenring/events/vanilla/m60_47_41_00.evs.py +456 -0
  1237. soulstruct/eldenring/events/vanilla/m60_47_42_00.evs.py +111 -0
  1238. soulstruct/eldenring/events/vanilla/m60_47_51_00.evs.py +47 -0
  1239. soulstruct/eldenring/events/vanilla/m60_47_55_00.evs.py +41 -0
  1240. soulstruct/eldenring/events/vanilla/m60_47_56_00.evs.py +85 -0
  1241. soulstruct/eldenring/events/vanilla/m60_47_57_00.evs.py +34 -0
  1242. soulstruct/eldenring/events/vanilla/m60_47_58_00.evs.py +612 -0
  1243. soulstruct/eldenring/events/vanilla/m60_48_36_00.evs.py +71 -0
  1244. soulstruct/eldenring/events/vanilla/m60_48_37_00.evs.py +144 -0
  1245. soulstruct/eldenring/events/vanilla/m60_48_38_00.evs.py +396 -0
  1246. soulstruct/eldenring/events/vanilla/m60_48_39_00.evs.py +162 -0
  1247. soulstruct/eldenring/events/vanilla/m60_48_40_00.evs.py +134 -0
  1248. soulstruct/eldenring/events/vanilla/m60_48_41_00.evs.py +169 -0
  1249. soulstruct/eldenring/events/vanilla/m60_48_51_00.evs.py +142 -0
  1250. soulstruct/eldenring/events/vanilla/m60_48_54_00.evs.py +19 -0
  1251. soulstruct/eldenring/events/vanilla/m60_48_55_00.evs.py +311 -0
  1252. soulstruct/eldenring/events/vanilla/m60_48_56_00.evs.py +117 -0
  1253. soulstruct/eldenring/events/vanilla/m60_48_57_00.evs.py +665 -0
  1254. soulstruct/eldenring/events/vanilla/m60_48_58_00.evs.py +19 -0
  1255. soulstruct/eldenring/events/vanilla/m60_49_36_00.evs.py +548 -0
  1256. soulstruct/eldenring/events/vanilla/m60_49_37_00.evs.py +147 -0
  1257. soulstruct/eldenring/events/vanilla/m60_49_38_00.evs.py +383 -0
  1258. soulstruct/eldenring/events/vanilla/m60_49_39_00.evs.py +547 -0
  1259. soulstruct/eldenring/events/vanilla/m60_49_40_00.evs.py +79 -0
  1260. soulstruct/eldenring/events/vanilla/m60_49_41_00.evs.py +47 -0
  1261. soulstruct/eldenring/events/vanilla/m60_49_52_00.evs.py +211 -0
  1262. soulstruct/eldenring/events/vanilla/m60_49_53_00.evs.py +271 -0
  1263. soulstruct/eldenring/events/vanilla/m60_49_54_00.evs.py +339 -0
  1264. soulstruct/eldenring/events/vanilla/m60_49_55_00.evs.py +425 -0
  1265. soulstruct/eldenring/events/vanilla/m60_49_56_00.evs.py +19 -0
  1266. soulstruct/eldenring/events/vanilla/m60_49_57_00.evs.py +197 -0
  1267. soulstruct/eldenring/events/vanilla/m60_50_36_00.evs.py +647 -0
  1268. soulstruct/eldenring/events/vanilla/m60_50_37_00.evs.py +29 -0
  1269. soulstruct/eldenring/events/vanilla/m60_50_38_00.evs.py +542 -0
  1270. soulstruct/eldenring/events/vanilla/m60_50_39_00.evs.py +207 -0
  1271. soulstruct/eldenring/events/vanilla/m60_50_40_00.evs.py +326 -0
  1272. soulstruct/eldenring/events/vanilla/m60_50_41_00.evs.py +19 -0
  1273. soulstruct/eldenring/events/vanilla/m60_50_53_00.evs.py +69 -0
  1274. soulstruct/eldenring/events/vanilla/m60_50_54_00.evs.py +33 -0
  1275. soulstruct/eldenring/events/vanilla/m60_50_55_00.evs.py +80 -0
  1276. soulstruct/eldenring/events/vanilla/m60_50_56_00.evs.py +276 -0
  1277. soulstruct/eldenring/events/vanilla/m60_50_57_00.evs.py +343 -0
  1278. soulstruct/eldenring/events/vanilla/m60_51_35_00.evs.py +31 -0
  1279. soulstruct/eldenring/events/vanilla/m60_51_36_00.evs.py +1449 -0
  1280. soulstruct/eldenring/events/vanilla/m60_51_37_00.evs.py +185 -0
  1281. soulstruct/eldenring/events/vanilla/m60_51_38_00.evs.py +20 -0
  1282. soulstruct/eldenring/events/vanilla/m60_51_39_00.evs.py +73 -0
  1283. soulstruct/eldenring/events/vanilla/m60_51_40_00.evs.py +53 -0
  1284. soulstruct/eldenring/events/vanilla/m60_51_41_00.evs.py +66 -0
  1285. soulstruct/eldenring/events/vanilla/m60_51_42_00.evs.py +28 -0
  1286. soulstruct/eldenring/events/vanilla/m60_51_43_00.evs.py +535 -0
  1287. soulstruct/eldenring/events/vanilla/m60_51_52_00.evs.py +19 -0
  1288. soulstruct/eldenring/events/vanilla/m60_51_53_00.evs.py +294 -0
  1289. soulstruct/eldenring/events/vanilla/m60_51_54_00.evs.py +45 -0
  1290. soulstruct/eldenring/events/vanilla/m60_51_55_00.evs.py +34 -0
  1291. soulstruct/eldenring/events/vanilla/m60_51_56_00.evs.py +605 -0
  1292. soulstruct/eldenring/events/vanilla/m60_51_57_00.evs.py +2231 -0
  1293. soulstruct/eldenring/events/vanilla/m60_51_58_00.evs.py +74 -0
  1294. soulstruct/eldenring/events/vanilla/m60_52_37_00.evs.py +19 -0
  1295. soulstruct/eldenring/events/vanilla/m60_52_38_00.evs.py +3603 -0
  1296. soulstruct/eldenring/events/vanilla/m60_52_39_00.evs.py +39 -0
  1297. soulstruct/eldenring/events/vanilla/m60_52_40_00.evs.py +50 -0
  1298. soulstruct/eldenring/events/vanilla/m60_52_41_00.evs.py +301 -0
  1299. soulstruct/eldenring/events/vanilla/m60_52_42_00.evs.py +26 -0
  1300. soulstruct/eldenring/events/vanilla/m60_52_43_00.evs.py +19 -0
  1301. soulstruct/eldenring/events/vanilla/m60_52_52_00.evs.py +658 -0
  1302. soulstruct/eldenring/events/vanilla/m60_52_53_00.evs.py +220 -0
  1303. soulstruct/eldenring/events/vanilla/m60_52_54_00.evs.py +156 -0
  1304. soulstruct/eldenring/events/vanilla/m60_52_55_00.evs.py +197 -0
  1305. soulstruct/eldenring/events/vanilla/m60_52_56_00.evs.py +335 -0
  1306. soulstruct/eldenring/events/vanilla/m60_52_57_00.evs.py +190 -0
  1307. soulstruct/eldenring/events/vanilla/m60_52_58_00.evs.py +40 -0
  1308. soulstruct/eldenring/events/vanilla/m60_53_38_00.evs.py +19 -0
  1309. soulstruct/eldenring/events/vanilla/m60_53_39_00.evs.py +19 -0
  1310. soulstruct/eldenring/events/vanilla/m60_53_52_00.evs.py +35 -0
  1311. soulstruct/eldenring/events/vanilla/m60_53_53_00.evs.py +19 -0
  1312. soulstruct/eldenring/events/vanilla/m60_53_54_00.evs.py +19 -0
  1313. soulstruct/eldenring/events/vanilla/m60_53_55_00.evs.py +44 -0
  1314. soulstruct/eldenring/events/vanilla/m60_53_56_00.evs.py +425 -0
  1315. soulstruct/eldenring/events/vanilla/m60_53_57_00.evs.py +37 -0
  1316. soulstruct/eldenring/events/vanilla/m60_53_58_00.evs.py +19 -0
  1317. soulstruct/eldenring/events/vanilla/m60_54_53_00.evs.py +148 -0
  1318. soulstruct/eldenring/events/vanilla/m60_54_55_00.evs.py +58 -0
  1319. soulstruct/eldenring/events/vanilla/m60_54_56_00.evs.py +264 -0
  1320. soulstruct/eldenring/events/vanilla/m60_54_57_00.evs.py +33 -0
  1321. soulstruct/eldenring/events/vanilla/m61_44_41_00.evs.py +27 -0
  1322. soulstruct/eldenring/events/vanilla/m61_44_45_00.evs.py +444 -0
  1323. soulstruct/eldenring/events/vanilla/m61_44_45_10.evs.py +444 -0
  1324. soulstruct/eldenring/events/vanilla/m61_44_46_00.evs.py +269 -0
  1325. soulstruct/eldenring/events/vanilla/m61_44_46_10.evs.py +269 -0
  1326. soulstruct/eldenring/events/vanilla/m61_44_47_00.evs.py +90 -0
  1327. soulstruct/eldenring/events/vanilla/m61_44_47_10.evs.py +90 -0
  1328. soulstruct/eldenring/events/vanilla/m61_44_48_00.evs.py +118 -0
  1329. soulstruct/eldenring/events/vanilla/m61_45_40_00.evs.py +19 -0
  1330. soulstruct/eldenring/events/vanilla/m61_45_41_00.evs.py +218 -0
  1331. soulstruct/eldenring/events/vanilla/m61_45_42_00.evs.py +288 -0
  1332. soulstruct/eldenring/events/vanilla/m61_45_43_00.evs.py +82 -0
  1333. soulstruct/eldenring/events/vanilla/m61_45_44_00.evs.py +287 -0
  1334. soulstruct/eldenring/events/vanilla/m61_45_44_10.evs.py +287 -0
  1335. soulstruct/eldenring/events/vanilla/m61_45_45_00.evs.py +46 -0
  1336. soulstruct/eldenring/events/vanilla/m61_45_45_10.evs.py +46 -0
  1337. soulstruct/eldenring/events/vanilla/m61_45_46_00.evs.py +449 -0
  1338. soulstruct/eldenring/events/vanilla/m61_45_46_10.evs.py +449 -0
  1339. soulstruct/eldenring/events/vanilla/m61_45_47_00.evs.py +491 -0
  1340. soulstruct/eldenring/events/vanilla/m61_45_47_10.evs.py +491 -0
  1341. soulstruct/eldenring/events/vanilla/m61_45_48_00.evs.py +38 -0
  1342. soulstruct/eldenring/events/vanilla/m61_46_38_00.evs.py +135 -0
  1343. soulstruct/eldenring/events/vanilla/m61_46_39_00.evs.py +45 -0
  1344. soulstruct/eldenring/events/vanilla/m61_46_40_00.evs.py +321 -0
  1345. soulstruct/eldenring/events/vanilla/m61_46_41_00.evs.py +121 -0
  1346. soulstruct/eldenring/events/vanilla/m61_46_42_00.evs.py +241 -0
  1347. soulstruct/eldenring/events/vanilla/m61_46_43_00.evs.py +28 -0
  1348. soulstruct/eldenring/events/vanilla/m61_46_44_00.evs.py +54 -0
  1349. soulstruct/eldenring/events/vanilla/m61_46_44_10.evs.py +54 -0
  1350. soulstruct/eldenring/events/vanilla/m61_46_45_00.evs.py +203 -0
  1351. soulstruct/eldenring/events/vanilla/m61_46_45_10.evs.py +203 -0
  1352. soulstruct/eldenring/events/vanilla/m61_46_46_00.evs.py +402 -0
  1353. soulstruct/eldenring/events/vanilla/m61_46_46_10.evs.py +402 -0
  1354. soulstruct/eldenring/events/vanilla/m61_46_47_00.evs.py +126 -0
  1355. soulstruct/eldenring/events/vanilla/m61_46_47_10.evs.py +126 -0
  1356. soulstruct/eldenring/events/vanilla/m61_46_48_00.evs.py +27 -0
  1357. soulstruct/eldenring/events/vanilla/m61_47_35_00.evs.py +144 -0
  1358. soulstruct/eldenring/events/vanilla/m61_47_36_00.evs.py +19 -0
  1359. soulstruct/eldenring/events/vanilla/m61_47_37_00.evs.py +224 -0
  1360. soulstruct/eldenring/events/vanilla/m61_47_38_00.evs.py +19 -0
  1361. soulstruct/eldenring/events/vanilla/m61_47_39_00.evs.py +121 -0
  1362. soulstruct/eldenring/events/vanilla/m61_47_40_00.evs.py +154 -0
  1363. soulstruct/eldenring/events/vanilla/m61_47_41_00.evs.py +43 -0
  1364. soulstruct/eldenring/events/vanilla/m61_47_42_00.evs.py +85 -0
  1365. soulstruct/eldenring/events/vanilla/m61_47_43_00.evs.py +127 -0
  1366. soulstruct/eldenring/events/vanilla/m61_47_44_00.evs.py +401 -0
  1367. soulstruct/eldenring/events/vanilla/m61_47_44_10.evs.py +401 -0
  1368. soulstruct/eldenring/events/vanilla/m61_47_45_00.evs.py +77 -0
  1369. soulstruct/eldenring/events/vanilla/m61_47_45_10.evs.py +77 -0
  1370. soulstruct/eldenring/events/vanilla/m61_47_46_00.evs.py +592 -0
  1371. soulstruct/eldenring/events/vanilla/m61_47_46_10.evs.py +592 -0
  1372. soulstruct/eldenring/events/vanilla/m61_47_47_00.evs.py +163 -0
  1373. soulstruct/eldenring/events/vanilla/m61_47_47_10.evs.py +163 -0
  1374. soulstruct/eldenring/events/vanilla/m61_48_37_00.evs.py +44 -0
  1375. soulstruct/eldenring/events/vanilla/m61_48_38_00.evs.py +478 -0
  1376. soulstruct/eldenring/events/vanilla/m61_48_39_00.evs.py +269 -0
  1377. soulstruct/eldenring/events/vanilla/m61_48_40_00.evs.py +316 -0
  1378. soulstruct/eldenring/events/vanilla/m61_48_41_00.evs.py +274 -0
  1379. soulstruct/eldenring/events/vanilla/m61_48_42_00.evs.py +350 -0
  1380. soulstruct/eldenring/events/vanilla/m61_48_43_00.evs.py +204 -0
  1381. soulstruct/eldenring/events/vanilla/m61_48_44_00.evs.py +373 -0
  1382. soulstruct/eldenring/events/vanilla/m61_48_45_00.evs.py +589 -0
  1383. soulstruct/eldenring/events/vanilla/m61_48_46_00.evs.py +93 -0
  1384. soulstruct/eldenring/events/vanilla/m61_48_47_00.evs.py +36 -0
  1385. soulstruct/eldenring/events/vanilla/m61_49_38_00.evs.py +37 -0
  1386. soulstruct/eldenring/events/vanilla/m61_49_39_00.evs.py +634 -0
  1387. soulstruct/eldenring/events/vanilla/m61_49_40_00.evs.py +28 -0
  1388. soulstruct/eldenring/events/vanilla/m61_49_41_00.evs.py +174 -0
  1389. soulstruct/eldenring/events/vanilla/m61_49_42_00.evs.py +199 -0
  1390. soulstruct/eldenring/events/vanilla/m61_49_43_00.evs.py +526 -0
  1391. soulstruct/eldenring/events/vanilla/m61_49_44_00.evs.py +455 -0
  1392. soulstruct/eldenring/events/vanilla/m61_49_45_00.evs.py +29 -0
  1393. soulstruct/eldenring/events/vanilla/m61_49_46_00.evs.py +113 -0
  1394. soulstruct/eldenring/events/vanilla/m61_49_47_00.evs.py +56 -0
  1395. soulstruct/eldenring/events/vanilla/m61_49_48_00.evs.py +164 -0
  1396. soulstruct/eldenring/events/vanilla/m61_49_49_00.evs.py +41 -0
  1397. soulstruct/eldenring/events/vanilla/m61_50_37_00.evs.py +38 -0
  1398. soulstruct/eldenring/events/vanilla/m61_50_38_00.evs.py +45 -0
  1399. soulstruct/eldenring/events/vanilla/m61_50_39_00.evs.py +180 -0
  1400. soulstruct/eldenring/events/vanilla/m61_50_40_00.evs.py +93 -0
  1401. soulstruct/eldenring/events/vanilla/m61_50_41_00.evs.py +141 -0
  1402. soulstruct/eldenring/events/vanilla/m61_50_42_00.evs.py +193 -0
  1403. soulstruct/eldenring/events/vanilla/m61_50_43_00.evs.py +234 -0
  1404. soulstruct/eldenring/events/vanilla/m61_50_44_00.evs.py +78 -0
  1405. soulstruct/eldenring/events/vanilla/m61_50_45_00.evs.py +170 -0
  1406. soulstruct/eldenring/events/vanilla/m61_50_46_00.evs.py +1109 -0
  1407. soulstruct/eldenring/events/vanilla/m61_50_47_00.evs.py +519 -0
  1408. soulstruct/eldenring/events/vanilla/m61_50_48_00.evs.py +368 -0
  1409. soulstruct/eldenring/events/vanilla/m61_51_39_00.evs.py +84 -0
  1410. soulstruct/eldenring/events/vanilla/m61_51_40_00.evs.py +19 -0
  1411. soulstruct/eldenring/events/vanilla/m61_51_41_00.evs.py +183 -0
  1412. soulstruct/eldenring/events/vanilla/m61_51_42_00.evs.py +25 -0
  1413. soulstruct/eldenring/events/vanilla/m61_51_43_00.evs.py +25 -0
  1414. soulstruct/eldenring/events/vanilla/m61_51_44_00.evs.py +144 -0
  1415. soulstruct/eldenring/events/vanilla/m61_51_45_00.evs.py +2057 -0
  1416. soulstruct/eldenring/events/vanilla/m61_51_46_00.evs.py +95 -0
  1417. soulstruct/eldenring/events/vanilla/m61_51_47_00.evs.py +45 -0
  1418. soulstruct/eldenring/events/vanilla/m61_51_48_00.evs.py +187 -0
  1419. soulstruct/eldenring/events/vanilla/m61_52_40_00.evs.py +668 -0
  1420. soulstruct/eldenring/events/vanilla/m61_52_41_00.evs.py +19 -0
  1421. soulstruct/eldenring/events/vanilla/m61_52_42_00.evs.py +27 -0
  1422. soulstruct/eldenring/events/vanilla/m61_52_43_00.evs.py +307 -0
  1423. soulstruct/eldenring/events/vanilla/m61_52_46_00.evs.py +19 -0
  1424. soulstruct/eldenring/events/vanilla/m61_52_47_00.evs.py +207 -0
  1425. soulstruct/eldenring/events/vanilla/m61_52_48_00.evs.py +277 -0
  1426. soulstruct/eldenring/events/vanilla/m61_52_49_00.evs.py +19 -0
  1427. soulstruct/eldenring/events/vanilla/m61_53_39_00.evs.py +679 -0
  1428. soulstruct/eldenring/events/vanilla/m61_53_40_00.evs.py +115 -0
  1429. soulstruct/eldenring/events/vanilla/m61_53_41_00.evs.py +25 -0
  1430. soulstruct/eldenring/events/vanilla/m61_53_46_00.evs.py +359 -0
  1431. soulstruct/eldenring/events/vanilla/m61_53_47_00.evs.py +226 -0
  1432. soulstruct/eldenring/events/vanilla/m61_53_48_00.evs.py +39 -0
  1433. soulstruct/eldenring/events/vanilla/m61_54_39_00.evs.py +895 -0
  1434. soulstruct/eldenring/events/vanilla/m61_54_40_00.evs.py +221 -0
  1435. soulstruct/eldenring/events/vanilla/m61_54_47_00.evs.py +51 -0
  1436. soulstruct/eldenring/events/vanilla/m61_55_39_00.evs.py +34 -0
  1437. soulstruct/eldenring/game_types/__init__.py +5 -0
  1438. soulstruct/eldenring/game_types/game_enums_manager.py +49 -0
  1439. soulstruct/eldenring/game_types/map_types.py +428 -0
  1440. soulstruct/eldenring/game_types/param_types.py +395 -0
  1441. soulstruct/eldenring/game_types/sound_types.py +79 -0
  1442. soulstruct/eldenring/game_types/text_types.py +209 -0
  1443. soulstruct/eldenring/maps/__init__.py +13 -0
  1444. soulstruct/eldenring/maps/constants.py +1861 -0
  1445. soulstruct/eldenring/maps/dlc_generic_dungeons.py +97 -0
  1446. soulstruct/eldenring/maps/dlc_legacy_dungeons.py +62 -0
  1447. soulstruct/eldenring/maps/dlc_overworld.py +3174 -0
  1448. soulstruct/eldenring/maps/enums.py +147 -0
  1449. soulstruct/eldenring/maps/events.py +413 -0
  1450. soulstruct/eldenring/maps/generic_dungeons.py +394 -0
  1451. soulstruct/eldenring/maps/legacy_dungeons.py +155 -0
  1452. soulstruct/eldenring/maps/map_studio_directory.py +1401 -0
  1453. soulstruct/eldenring/maps/models.py +147 -0
  1454. soulstruct/eldenring/maps/msb.py +358 -0
  1455. soulstruct/eldenring/maps/overworld.py +4393 -0
  1456. soulstruct/eldenring/maps/parts.py +1055 -0
  1457. soulstruct/eldenring/maps/regions.py +925 -0
  1458. soulstruct/eldenring/maps/routes.py +79 -0
  1459. soulstruct/eldenring/models/__init__.py +17 -0
  1460. soulstruct/eldenring/models/chrbnd.py +20 -0
  1461. soulstruct/eldenring/models/geombnd.py +29 -0
  1462. soulstruct/eldenring/models/mapbnd.py +34 -0
  1463. soulstruct/eldenring/models/partsbnd.py +20 -0
  1464. soulstruct/eldenring/models/shaders.py +616 -0
  1465. soulstruct/eldenring/params/__init__.py +4 -0
  1466. soulstruct/eldenring/params/enums.py +969 -0
  1467. soulstruct/eldenring/params/gameparambnd.py +287 -0
  1468. soulstruct/eldenring/params/paramdef/ACTIONBUTTON_PARAM_ST.py +108 -0
  1469. soulstruct/eldenring/params/paramdef/AI_ANIM_TBL_PARAM.py +491 -0
  1470. soulstruct/eldenring/params/paramdef/AI_ATTACK_PARAM_ST.py +195 -0
  1471. soulstruct/eldenring/params/paramdef/AI_ODDS_PARAM.py +410 -0
  1472. soulstruct/eldenring/params/paramdef/AI_SOUND_PARAM_ST.py +67 -0
  1473. soulstruct/eldenring/params/paramdef/AI_STANDARD_INFO_BANK.py +152 -0
  1474. soulstruct/eldenring/params/paramdef/ASSET_GEOMETORY_PARAM_ST.py +523 -0
  1475. soulstruct/eldenring/params/paramdef/ASSET_MATERIAL_SFX_PARAM_ST.py +137 -0
  1476. soulstruct/eldenring/params/paramdef/ASSET_MODEL_SFX_PARAM_ST.py +85 -0
  1477. soulstruct/eldenring/params/paramdef/ATK_PARAM_ST.py +875 -0
  1478. soulstruct/eldenring/params/paramdef/ATTACK_ELEMENT_CORRECT_PARAM_ST.py +312 -0
  1479. soulstruct/eldenring/params/paramdef/AUTO_CREATE_ENV_SOUND_PARAM_ST.py +41 -0
  1480. soulstruct/eldenring/params/paramdef/BASECHR_SELECT_MENU_PARAM_ST.py +33 -0
  1481. soulstruct/eldenring/params/paramdef/BEHAVIOR_PARAM_ST.py +55 -0
  1482. soulstruct/eldenring/params/paramdef/BONFIRE_WARP_PARAM_ST.py +308 -0
  1483. soulstruct/eldenring/params/paramdef/BONFIRE_WARP_SUB_CATEGORY_PARAM_ST.py +29 -0
  1484. soulstruct/eldenring/params/paramdef/BONFIRE_WARP_TAB_PARAM_ST.py +29 -0
  1485. soulstruct/eldenring/params/paramdef/BUDDY_PARAM_ST.py +181 -0
  1486. soulstruct/eldenring/params/paramdef/BUDDY_STONE_PARAM_ST.py +59 -0
  1487. soulstruct/eldenring/params/paramdef/BUDGET_PARAM_ST.py +115 -0
  1488. soulstruct/eldenring/params/paramdef/BULLET_CREATE_LIMIT_PARAM_ST.py +20 -0
  1489. soulstruct/eldenring/params/paramdef/BULLET_PARAM_ST.py +497 -0
  1490. soulstruct/eldenring/params/paramdef/CACL_CORRECT_GRAPH_ST.py +87 -0
  1491. soulstruct/eldenring/params/paramdef/CAMERA_FADE_PARAM_ST.py +30 -0
  1492. soulstruct/eldenring/params/paramdef/CEREMONY_PARAM_ST.py +30 -0
  1493. soulstruct/eldenring/params/paramdef/CHARACTER_INIT_PARAM.py +448 -0
  1494. soulstruct/eldenring/params/paramdef/CHARMAKEMENUTOP_PARAM_ST.py +56 -0
  1495. soulstruct/eldenring/params/paramdef/CHARMAKEMENU_LISTITEM_PARAM_ST.py +22 -0
  1496. soulstruct/eldenring/params/paramdef/CHR_ACTIVATE_CONDITION_PARAM_ST.py +84 -0
  1497. soulstruct/eldenring/params/paramdef/CHR_EQUIP_MODEL_PARAM_ST.py +21 -0
  1498. soulstruct/eldenring/params/paramdef/CHR_MODEL_PARAM_ST.py +36 -0
  1499. soulstruct/eldenring/params/paramdef/CLEAR_COUNT_CORRECT_PARAM_ST.py +134 -0
  1500. soulstruct/eldenring/params/paramdef/COMMON_SYSTEM_PARAM_ST.py +14 -0
  1501. soulstruct/eldenring/params/paramdef/COOL_TIME_PARAM_ST.py +41 -0
  1502. soulstruct/eldenring/params/paramdef/CS_AA_QUALITY_DETAIL.py +19 -0
  1503. soulstruct/eldenring/params/paramdef/CS_DECAL_QUALITY_DETAIL.py +15 -0
  1504. soulstruct/eldenring/params/paramdef/CS_DOF_QUALITY_DETAIL.py +23 -0
  1505. soulstruct/eldenring/params/paramdef/CS_EFFECT_QUALITY_DETAIL.py +55 -0
  1506. soulstruct/eldenring/params/paramdef/CS_GRAPHICS_CONFIG_PARAM_ST.py +67 -0
  1507. soulstruct/eldenring/params/paramdef/CS_KEY_ASSIGN_MENUITEM_PARAM.py +47 -0
  1508. soulstruct/eldenring/params/paramdef/CS_LIGHTING_QUALITY_DETAIL.py +27 -0
  1509. soulstruct/eldenring/params/paramdef/CS_MOTION_BLUR_QUALITY_DETAIL.py +38 -0
  1510. soulstruct/eldenring/params/paramdef/CS_RAYTRACING_QUALITY_DETAIL.py +49 -0
  1511. soulstruct/eldenring/params/paramdef/CS_REFLECTION_QUALITY_DETAIL.py +52 -0
  1512. soulstruct/eldenring/params/paramdef/CS_SHADER_QUALITY_DETAIL.py +26 -0
  1513. soulstruct/eldenring/params/paramdef/CS_SHADOW_QUALITY_DETAIL.py +39 -0
  1514. soulstruct/eldenring/params/paramdef/CS_SSAO_QUALITY_DETAIL.py +27 -0
  1515. soulstruct/eldenring/params/paramdef/CS_TEXTURE_FILTER_QUALITY_DETAIL.py +19 -0
  1516. soulstruct/eldenring/params/paramdef/CS_VOLUMETRIC_EFFECT_QUALITY_DETAIL.py +72 -0
  1517. soulstruct/eldenring/params/paramdef/CS_WATER_QUALITY_DETAIL.py +15 -0
  1518. soulstruct/eldenring/params/paramdef/CUTSCENE_GPARAM_TIME_PARAM_ST.py +53 -0
  1519. soulstruct/eldenring/params/paramdef/CUTSCENE_GPARAM_WEATHER_PARAM_ST.py +215 -0
  1520. soulstruct/eldenring/params/paramdef/CUTSCENE_MAP_ID_PARAM_ST.py +58 -0
  1521. soulstruct/eldenring/params/paramdef/CUTSCENE_TEXTURE_LOAD_PARAM_ST.py +84 -0
  1522. soulstruct/eldenring/params/paramdef/CUTSCENE_TIMEZONE_CONVERT_PARAM_ST.py +17 -0
  1523. soulstruct/eldenring/params/paramdef/CUTSCENE_WEATHER_OVERRIDE_GPARAM_ID_CONVERT_PARAM_ST.py +13 -0
  1524. soulstruct/eldenring/params/paramdef/DECAL_PARAM_ST.py +362 -0
  1525. soulstruct/eldenring/params/paramdef/DEFAULT_KEY_ASSIGN.py +491 -0
  1526. soulstruct/eldenring/params/paramdef/DIRECTION_CAMERA_PARAM_ST.py +16 -0
  1527. soulstruct/eldenring/params/paramdef/ENEMY_COMMON_PARAM_ST.py +36 -0
  1528. soulstruct/eldenring/params/paramdef/ENEMY_STANDARD_INFO_BANK.py +89 -0
  1529. soulstruct/eldenring/params/paramdef/ENV_OBJ_LOT_PARAM_ST.py +74 -0
  1530. soulstruct/eldenring/params/paramdef/EQUIP_MTRL_SET_PARAM_ST.py +124 -0
  1531. soulstruct/eldenring/params/paramdef/EQUIP_PARAM_ACCESSORY_ST.py +171 -0
  1532. soulstruct/eldenring/params/paramdef/EQUIP_PARAM_CUSTOM_WEAPON_ST.py +22 -0
  1533. soulstruct/eldenring/params/paramdef/EQUIP_PARAM_GEM_ST.py +409 -0
  1534. soulstruct/eldenring/params/paramdef/EQUIP_PARAM_GOODS_ST.py +470 -0
  1535. soulstruct/eldenring/params/paramdef/EQUIP_PARAM_PROTECTOR_ST.py +907 -0
  1536. soulstruct/eldenring/params/paramdef/EQUIP_PARAM_WEAPON_ST.py +1126 -0
  1537. soulstruct/eldenring/params/paramdef/ESTUS_FLASK_RECOVERY_PARAM_ST.py +90 -0
  1538. soulstruct/eldenring/params/paramdef/EVENT_FLAG_USAGE_PARAM_ST.py +24 -0
  1539. soulstruct/eldenring/params/paramdef/FACE_PARAM_ST.py +972 -0
  1540. soulstruct/eldenring/params/paramdef/FACE_RANGE_PARAM_ST.py +833 -0
  1541. soulstruct/eldenring/params/paramdef/FE_TEXT_EFFECT_PARAM_ST.py +29 -0
  1542. soulstruct/eldenring/params/paramdef/FINAL_DAMAGE_RATE_PARAM_ST.py +37 -0
  1543. soulstruct/eldenring/params/paramdef/FOOT_SFX_PARAM_ST.py +809 -0
  1544. soulstruct/eldenring/params/paramdef/GAME_AREA_PARAM_ST.py +130 -0
  1545. soulstruct/eldenring/params/paramdef/GAME_INFO_PARAM.py +30 -0
  1546. soulstruct/eldenring/params/paramdef/GAME_SYSTEM_COMMON_PARAM_ST.py +1387 -0
  1547. soulstruct/eldenring/params/paramdef/GESTURE_PARAM_ST.py +30 -0
  1548. soulstruct/eldenring/params/paramdef/GPARAM_GRID_REGION_INFO_PARAM_ST.py +14 -0
  1549. soulstruct/eldenring/params/paramdef/GPARAM_REF_SETTINGS_PARAM_ST.py +21 -0
  1550. soulstruct/eldenring/params/paramdef/GRAPHICS_COMMON_PARAM_ST.py +19 -0
  1551. soulstruct/eldenring/params/paramdef/GRASS_LOD_RANGE_PARAM_ST.py +33 -0
  1552. soulstruct/eldenring/params/paramdef/GRASS_MAP_SETTINGS_PARAM_ST.py +21 -0
  1553. soulstruct/eldenring/params/paramdef/GRASS_TYPE_PARAM_ST.py +153 -0
  1554. soulstruct/eldenring/params/paramdef/HIT_EFFECT_SE_PARAM_ST.py +550 -0
  1555. soulstruct/eldenring/params/paramdef/HIT_EFFECT_SFX_CONCEPT_PARAM_ST.py +60 -0
  1556. soulstruct/eldenring/params/paramdef/HIT_EFFECT_SFX_PARAM_ST.py +89 -0
  1557. soulstruct/eldenring/params/paramdef/HIT_MTRL_PARAM_ST.py +129 -0
  1558. soulstruct/eldenring/params/paramdef/ITEMLOT_PARAM_ST.py +340 -0
  1559. soulstruct/eldenring/params/paramdef/KEY_ASSIGN_PARAM_ST.py +31 -0
  1560. soulstruct/eldenring/params/paramdef/KNOCKBACK_PARAM_ST.py +130 -0
  1561. soulstruct/eldenring/params/paramdef/KNOWLEDGE_LOADSCREEN_ITEM_PARAM_ST.py +28 -0
  1562. soulstruct/eldenring/params/paramdef/LEGACY_DISTANT_VIEW_PARTS_REPLACE_PARAM.py +82 -0
  1563. soulstruct/eldenring/params/paramdef/LOAD_BALANCER_DRAW_DIST_SCALE_PARAM_ST.py +94 -0
  1564. soulstruct/eldenring/params/paramdef/LOAD_BALANCER_NEW_DRAW_DIST_SCALE_PARAM_ST.py +44 -0
  1565. soulstruct/eldenring/params/paramdef/LOAD_BALANCER_PARAM_ST.py +135 -0
  1566. soulstruct/eldenring/params/paramdef/LOCK_CAM_PARAM_ST.py +92 -0
  1567. soulstruct/eldenring/params/paramdef/MAGIC_PARAM_ST.py +452 -0
  1568. soulstruct/eldenring/params/paramdef/MAP_DEFAULT_INFO_PARAM_ST.py +105 -0
  1569. soulstruct/eldenring/params/paramdef/MAP_GD_REGION_DRAW_PARAM.py +20 -0
  1570. soulstruct/eldenring/params/paramdef/MAP_GD_REGION_ID_PARAM_ST.py +21 -0
  1571. soulstruct/eldenring/params/paramdef/MAP_GRID_CREATE_HEIGHT_LIMIT_DETAIL_INFO_PARAM_ST.py +93 -0
  1572. soulstruct/eldenring/params/paramdef/MAP_GRID_CREATE_HEIGHT_LIMIT_INFO_PARAM_ST.py +18 -0
  1573. soulstruct/eldenring/params/paramdef/MAP_MIMICRY_ESTABLISHMENT_PARAM_ST.py +58 -0
  1574. soulstruct/eldenring/params/paramdef/MAP_NAME_TEX_PARAM_ST.py +34 -0
  1575. soulstruct/eldenring/params/paramdef/MAP_NAME_TEX_PARAM_ST_DLC02.py +73 -0
  1576. soulstruct/eldenring/params/paramdef/MAP_PIECE_TEX_PARAM_ST.py +37 -0
  1577. soulstruct/eldenring/params/paramdef/MAP_PIECE_TEX_PARAM_ST_DLC02.py +61 -0
  1578. soulstruct/eldenring/params/paramdef/MATERIAL_EX_PARAM_ST.py +38 -0
  1579. soulstruct/eldenring/params/paramdef/MENUPROPERTY_LAYOUT.py +27 -0
  1580. soulstruct/eldenring/params/paramdef/MENUPROPERTY_SPEC.py +33 -0
  1581. soulstruct/eldenring/params/paramdef/MENU_COMMON_PARAM_ST.py +300 -0
  1582. soulstruct/eldenring/params/paramdef/MENU_OFFSCR_REND_PARAM_ST.py +70 -0
  1583. soulstruct/eldenring/params/paramdef/MENU_PARAM_COLOR_TABLE_ST.py +44 -0
  1584. soulstruct/eldenring/params/paramdef/MENU_VALUE_TABLE_SPEC.py +23 -0
  1585. soulstruct/eldenring/params/paramdef/MIMICRY_ESTABLISHMENT_TEX_PARAM_ST.py +34 -0
  1586. soulstruct/eldenring/params/paramdef/MIMICRY_ESTABLISHMENT_TEX_PARAM_ST_DLC02.py +53 -0
  1587. soulstruct/eldenring/params/paramdef/MISSILE_PARAM_ST.py +73 -0
  1588. soulstruct/eldenring/params/paramdef/MODEL_SFX_PARAM_ST.py +81 -0
  1589. soulstruct/eldenring/params/paramdef/MOVE_PARAM_ST.py +165 -0
  1590. soulstruct/eldenring/params/paramdef/MULTI_ESTUS_FLASK_BONUS_PARAM_ST.py +74 -0
  1591. soulstruct/eldenring/params/paramdef/MULTI_PLAY_CORRECTION_PARAM_ST.py +33 -0
  1592. soulstruct/eldenring/params/paramdef/MULTI_SOUL_BONUS_RATE_PARAM_ST.py +74 -0
  1593. soulstruct/eldenring/params/paramdef/NETWORK_AREA_PARAM_ST.py +59 -0
  1594. soulstruct/eldenring/params/paramdef/NETWORK_MSG_PARAM_ST.py +200 -0
  1595. soulstruct/eldenring/params/paramdef/NETWORK_PARAM_ST.py +597 -0
  1596. soulstruct/eldenring/params/paramdef/NPC_AI_ACTION_PARAM_ST.py +51 -0
  1597. soulstruct/eldenring/params/paramdef/NPC_AI_BEHAVIOR_PROBABILITY_PARAM_ST.py +809 -0
  1598. soulstruct/eldenring/params/paramdef/NPC_PARAM_ST.py +1308 -0
  1599. soulstruct/eldenring/params/paramdef/NPC_THINK_PARAM_ST.py +432 -0
  1600. soulstruct/eldenring/params/paramdef/OBJECT_MATERIAL_SFX_PARAM_ST.py +137 -0
  1601. soulstruct/eldenring/params/paramdef/OBJECT_PARAM_ST.py +317 -0
  1602. soulstruct/eldenring/params/paramdef/OBJ_ACT_PARAM_ST.py +109 -0
  1603. soulstruct/eldenring/params/paramdef/PARTS_DRAW_PARAM_ST.py +163 -0
  1604. soulstruct/eldenring/params/paramdef/PERFORMANCE_CHECK_PARAM.py +32 -0
  1605. soulstruct/eldenring/params/paramdef/PHANTOM_PARAM_ST.py +123 -0
  1606. soulstruct/eldenring/params/paramdef/PLAYER_COMMON_PARAM_ST.py +272 -0
  1607. soulstruct/eldenring/params/paramdef/PLAY_REGION_PARAM_ST.py +336 -0
  1608. soulstruct/eldenring/params/paramdef/POSTURE_CONTROL_PARAM_GENDER_ST.py +118 -0
  1609. soulstruct/eldenring/params/paramdef/POSTURE_CONTROL_PARAM_PRO_ST.py +154 -0
  1610. soulstruct/eldenring/params/paramdef/POSTURE_CONTROL_PARAM_WEP_LEFT_ST.py +58 -0
  1611. soulstruct/eldenring/params/paramdef/POSTURE_CONTROL_PARAM_WEP_RIGHT_ST.py +297 -0
  1612. soulstruct/eldenring/params/paramdef/RANDOM_APPEAR_EDIT_PARAM_ST.py +205 -0
  1613. soulstruct/eldenring/params/paramdef/RANDOM_APPEAR_PARAM_ST.py +410 -0
  1614. soulstruct/eldenring/params/paramdef/REINFORCE_PARAM_PROTECTOR_ST.py +86 -0
  1615. soulstruct/eldenring/params/paramdef/REINFORCE_PARAM_WEAPON_ST.py +166 -0
  1616. soulstruct/eldenring/params/paramdef/RESIST_CORRECT_PARAM_ST.py +49 -0
  1617. soulstruct/eldenring/params/paramdef/REVERB_AUX_SEND_BUS_PARAM_ST.py +13 -0
  1618. soulstruct/eldenring/params/paramdef/RIDE_PARAM_ST.py +62 -0
  1619. soulstruct/eldenring/params/paramdef/ROLE_PARAM_ST.py +129 -0
  1620. soulstruct/eldenring/params/paramdef/ROLLING_OBJ_LOT_PARAM_ST.py +81 -0
  1621. soulstruct/eldenring/params/paramdef/RUNTIME_BONE_CONTROL_PARAM_ST.py +31 -0
  1622. soulstruct/eldenring/params/paramdef/SE_ACTIVATION_RANGE_PARAM_ST.py +13 -0
  1623. soulstruct/eldenring/params/paramdef/SE_MATERIAL_CONVERT_PARAM_ST.py +15 -0
  1624. soulstruct/eldenring/params/paramdef/SFX_BLOCK_RES_SHARE_PARAM.py +13 -0
  1625. soulstruct/eldenring/params/paramdef/SHOP_LINEUP_PARAM.py +76 -0
  1626. soulstruct/eldenring/params/paramdef/SIGN_PUDDLE_PARAM_ST.py +66 -0
  1627. soulstruct/eldenring/params/paramdef/SIGN_PUDDLE_SUB_CATEGORY_PARAM_ST.py +23 -0
  1628. soulstruct/eldenring/params/paramdef/SIGN_PUDDLE_TAB_PARAM_ST.py +25 -0
  1629. soulstruct/eldenring/params/paramdef/SOUND_ASSET_SOUND_OBJ_ENABLE_DIST_PARAM_ST.py +13 -0
  1630. soulstruct/eldenring/params/paramdef/SOUND_AUTO_ENV_SOUND_GROUP_PARAM_ST.py +25 -0
  1631. soulstruct/eldenring/params/paramdef/SOUND_AUTO_REVERB_EVALUATION_DIST_PARAM_ST.py +42 -0
  1632. soulstruct/eldenring/params/paramdef/SOUND_AUTO_REVERB_SELECT_PARAM_ST.py +50 -0
  1633. soulstruct/eldenring/params/paramdef/SOUND_CHR_PHYSICS_SE_PARAM_ST.py +117 -0
  1634. soulstruct/eldenring/params/paramdef/SOUND_COMMON_INGAME_PARAM_ST.py +17 -0
  1635. soulstruct/eldenring/params/paramdef/SOUND_COMMON_SYSTEM_PARAM_ST.py +17 -0
  1636. soulstruct/eldenring/params/paramdef/SOUND_CUTSCENE_PARAM_ST.py +59 -0
  1637. soulstruct/eldenring/params/paramdef/SPEEDTREE_MODEL_PARAM_ST.py +49 -0
  1638. soulstruct/eldenring/params/paramdef/SP_EFFECT_PARAM_ST.py +1530 -0
  1639. soulstruct/eldenring/params/paramdef/SP_EFFECT_SET_PARAM_ST.py +25 -0
  1640. soulstruct/eldenring/params/paramdef/SP_EFFECT_VFX_PARAM_ST.py +288 -0
  1641. soulstruct/eldenring/params/paramdef/SWORD_ARTS_PARAM_ST.py +93 -0
  1642. soulstruct/eldenring/params/paramdef/TALK_PARAM_ST.py +86 -0
  1643. soulstruct/eldenring/params/paramdef/THROW_DIRECTION_SFX_PARAM_ST.py +134 -0
  1644. soulstruct/eldenring/params/paramdef/THROW_PARAM_ST.py +169 -0
  1645. soulstruct/eldenring/params/paramdef/TOUGHNESS_PARAM_ST.py +39 -0
  1646. soulstruct/eldenring/params/paramdef/TUTORIAL_PARAM_ST.py +51 -0
  1647. soulstruct/eldenring/params/paramdef/WAYPOINT_PARAM_ST.py +27 -0
  1648. soulstruct/eldenring/params/paramdef/WEATHER_ASSET_CREATE_PARAM_ST.py +97 -0
  1649. soulstruct/eldenring/params/paramdef/WEATHER_ASSET_REPLACE_PARAM_ST.py +78 -0
  1650. soulstruct/eldenring/params/paramdef/WEATHER_LOT_PARAM_ST.py +165 -0
  1651. soulstruct/eldenring/params/paramdef/WEATHER_LOT_TEX_PARAM_ST.py +34 -0
  1652. soulstruct/eldenring/params/paramdef/WEATHER_LOT_TEX_PARAM_ST_DLC02.py +49 -0
  1653. soulstruct/eldenring/params/paramdef/WEATHER_PARAM_ST.py +77 -0
  1654. soulstruct/eldenring/params/paramdef/WEP_ABSORP_POS_PARAM_ST.py +250 -0
  1655. soulstruct/eldenring/params/paramdef/WET_ASPECT_PARAM_ST.py +46 -0
  1656. soulstruct/eldenring/params/paramdef/WHITE_SIGN_COOL_TIME_PARAM_ST.py +25 -0
  1657. soulstruct/eldenring/params/paramdef/WORLD_MAP_LEGACY_CONV_PARAM_ST.py +72 -0
  1658. soulstruct/eldenring/params/paramdef/WORLD_MAP_PIECE_PARAM_ST.py +65 -0
  1659. soulstruct/eldenring/params/paramdef/WORLD_MAP_PLACE_NAME_PARAM_ST.py +50 -0
  1660. soulstruct/eldenring/params/paramdef/WORLD_MAP_POINT_PARAM_ST.py +349 -0
  1661. soulstruct/eldenring/params/paramdef/WWISE_VALUE_TO_STR_CONVERT_PARAM_ST.py +20 -0
  1662. soulstruct/eldenring/params/paramdef/__init__.py +396 -0
  1663. soulstruct/eldenring/params/paramdef/core.py +73 -0
  1664. soulstruct/eldenring/params/paramdef/dynamics.py +244 -0
  1665. soulstruct/eldenring/text/__init__.py +4 -0
  1666. soulstruct/eldenring/text/msg_directory.py +157 -0
  1667. soulstruct/eldenring/text/msgbnd.py +20 -0
  1668. soulstruct/exceptions.py +19 -0
  1669. soulstruct/flver/__init__.py +34 -0
  1670. soulstruct/flver/bone.py +256 -0
  1671. soulstruct/flver/core.py +1359 -0
  1672. soulstruct/flver/dummy.py +137 -0
  1673. soulstruct/flver/face_set.py +305 -0
  1674. soulstruct/flver/gx_item.py +92 -0
  1675. soulstruct/flver/layout_repair.py +151 -0
  1676. soulstruct/flver/material.py +404 -0
  1677. soulstruct/flver/mesh.py +681 -0
  1678. soulstruct/flver/mesh_tools.py +1129 -0
  1679. soulstruct/flver/texture.py +130 -0
  1680. soulstruct/flver/version.py +43 -0
  1681. soulstruct/flver/vertex_array.py +205 -0
  1682. soulstruct/flver/vertex_array_layout.py +802 -0
  1683. soulstruct/games.py +352 -0
  1684. soulstruct/logging_utils.py +175 -0
  1685. soulstruct/oo2core_6_win64.dll +0 -0
  1686. soulstruct/sekiro/__init__.py +0 -0
  1687. soulstruct/sekiro/models/__init__.py +5 -0
  1688. soulstruct/sekiro/models/mapbnd.py +34 -0
  1689. soulstruct/start.py +15 -0
  1690. soulstruct/utilities/__init__.py +7 -0
  1691. soulstruct/utilities/binary.py +57 -0
  1692. soulstruct/utilities/conversion.py +46 -0
  1693. soulstruct/utilities/files.py +199 -0
  1694. soulstruct/utilities/future.py +0 -0
  1695. soulstruct/utilities/inspection.py +408 -0
  1696. soulstruct/utilities/kernel32.py +54 -0
  1697. soulstruct/utilities/maths/__init__.py +5 -0
  1698. soulstruct/utilities/maths/constants.py +6 -0
  1699. soulstruct/utilities/maths/euler.py +223 -0
  1700. soulstruct/utilities/maths/matrix.py +338 -0
  1701. soulstruct/utilities/maths/misc.py +77 -0
  1702. soulstruct/utilities/maths/vector.py +324 -0
  1703. soulstruct/utilities/memory.py +622 -0
  1704. soulstruct/utilities/misc.py +297 -0
  1705. soulstruct/utilities/sounds.py +348 -0
  1706. soulstruct/utilities/text.py +95 -0
  1707. soulstruct/version.py +3 -0
  1708. soulstruct-2.3.2.dist-info/METADATA +65 -0
  1709. soulstruct-2.3.2.dist-info/RECORD +1712 -0
  1710. soulstruct-2.3.2.dist-info/WHEEL +5 -0
  1711. soulstruct-2.3.2.dist-info/entry_points.txt +2 -0
  1712. soulstruct-2.3.2.dist-info/top_level.txt +1 -0
soulstruct/__main__.py ADDED
@@ -0,0 +1,175 @@
1
+ """
2
+ Soulstruct command-line interface (and `python -m soulstruct` main script).
3
+
4
+ Runs as either
5
+
6
+ python -m soulstruct ...
7
+
8
+ or the console script installed from pyproject.toml:
9
+
10
+ soulstruct ...
11
+
12
+ Global logging options come first, followed by sub-commands.
13
+ """
14
+ from __future__ import annotations
15
+
16
+ __all__ = [
17
+ "app",
18
+ ]
19
+
20
+ import logging
21
+ from pathlib import Path
22
+
23
+ import typer
24
+
25
+ from soulstruct.logging_utils import setup
26
+ from soulstruct.utilities.files import create_bak
27
+
28
+ LOG_LEVELS = {"debug", "info", "warning", "error", "fatal", "critical"}
29
+ _LOGGER = logging.getLogger(__name__)
30
+
31
+
32
+ def _parse_level(value: str) -> int:
33
+ """Convert a level name (info) or int string (20) ➜ logging level."""
34
+ if value.isdigit():
35
+ return int(value)
36
+ if value.lower() in LOG_LEVELS:
37
+ return getattr(logging, value.upper())
38
+ raise typer.BadParameter(f"Log level must be int or one of {LOG_LEVELS}")
39
+
40
+
41
+ # Typer application.
42
+ app = typer.Typer(
43
+ add_completion=False,
44
+ help="Launch Soulstruct utilities (packing/unpacking, conversion, etc.).",
45
+ )
46
+
47
+ # Global options executed before any sub-command.
48
+ @app.callback()
49
+ def main(
50
+ console_log_level: str = typer.Option(
51
+ "INFO", "--console-log-level", "-cl", help="Console log level (DEBUG/INFO/…)."
52
+ ),
53
+ file_log_level: str = typer.Option(
54
+ "DEBUG", "--file-log-level", "-fl", help="Log-file level (DEBUG/INFO/…)."
55
+ ),
56
+ file_log_path: Path = typer.Option(
57
+ None,
58
+ "--file-log-path",
59
+ "-fp",
60
+ help="Path to log file (default: `soulstruct.log` in current directory).",
61
+ ),
62
+ ):
63
+ """Global logging controls (executed before sub-commands)."""
64
+ setup(
65
+ console_level=console_log_level,
66
+ file_level=file_log_level,
67
+ log_path=file_log_path,
68
+ rich_tracebacks=True,
69
+ clear_old_handlers=True,
70
+ )
71
+
72
+
73
+ # region Commands
74
+
75
+ @app.command()
76
+ def undcx(path: Path):
77
+ """Remove DCX compression (writes *.undcx or suffix-free file)."""
78
+ from soulstruct.dcx import decompress
79
+
80
+ uncompressed, _dcx_type = decompress(path)
81
+ out = path.with_suffix("") if path.suffix == ".dcx" else path.with_suffix(".undcx")
82
+ if out.exists():
83
+ create_bak(out)
84
+ out.write_bytes(uncompressed)
85
+ _LOGGER.info("Wrote %s", out)
86
+
87
+
88
+ @app.command()
89
+ def binderpack(source_dir: Path):
90
+ """Re-pack a BND/BXF from directory *SOURCE_DIR*."""
91
+ from soulstruct.containers import Binder
92
+
93
+ Binder.from_unpacked_path(source_dir).write()
94
+
95
+
96
+ @app.command()
97
+ def binderunpack(binder_file: Path):
98
+ """Unpack a BND/BXF file."""
99
+ from soulstruct.containers import Binder
100
+
101
+ Binder.from_path(binder_file).write_unpacked_directory()
102
+
103
+
104
+ @app.command()
105
+ def tpfpack(source_dir: Path):
106
+ """Re-pack a TPF from directory *SOURCE_DIR*."""
107
+ from soulstruct.containers.tpf import TPF
108
+
109
+ TPF.from_unpacked_path(source_dir).write()
110
+
111
+
112
+ @app.command()
113
+ def tpfunpack(tpf_file: Path):
114
+ """Unpack a TPF file."""
115
+ from soulstruct.containers.tpf import TPF
116
+
117
+ TPF.from_path(tpf_file).write_unpacked_directory()
118
+
119
+
120
+ @app.command()
121
+ def msbtojson(msb_path: Path):
122
+ """Convert an MSB file to JSON (DS1R only)."""
123
+ from soulstruct.darksouls1r.maps import MSB
124
+
125
+ msb = MSB.from_path(msb_path)
126
+ out = msb.path.with_suffix(f"{msb.path.suffix}.json")
127
+ msb.write_json(out)
128
+ _LOGGER.info("Wrote %s", out)
129
+
130
+
131
+ @app.command()
132
+ def jsontomsb(json_path: Path):
133
+ """Convert a JSON file back to MSB (DS1R only)."""
134
+ from soulstruct.darksouls1r.maps import MSB
135
+
136
+ msb = MSB.from_json(json_path)
137
+ out = msb.path.with_name(f"{msb.path_minimal_stem}.msb")
138
+ msb.write(out)
139
+ _LOGGER.info("Wrote %s", out)
140
+
141
+
142
+ @app.command()
143
+ def restorebak(
144
+ target: Path,
145
+ yes: bool = typer.Option(False, "--yes", "-y", help="Skip confirmation prompts."),
146
+ ):
147
+ """Restore *.bak files, overwriting originals."""
148
+ from soulstruct.utilities.files import restore_bak
149
+
150
+ def _confirm(msg: str) -> bool:
151
+ return yes or typer.confirm(msg)
152
+
153
+ if target.is_file():
154
+ repl = target.with_name(target.name.removesuffix(".bak"))
155
+ if repl.exists() and not _confirm(f"Overwrite {repl} with {target}?"):
156
+ raise typer.Abort()
157
+ elif target.is_dir():
158
+ if not _confirm(f"Restore all .bak files in {target}?"):
159
+ raise typer.Abort()
160
+ else:
161
+ _LOGGER.warning("No such file or directory: %s", target)
162
+ raise typer.Exit(1)
163
+
164
+ count = restore_bak(target, delete_baks=False)
165
+ _LOGGER.info("Restored %s bak files (bak files kept).", count)
166
+
167
+ # endregion
168
+
169
+
170
+ if __name__ == "__main__":
171
+ try:
172
+ app()
173
+ except Exception as ex:
174
+ _LOGGER.exception("Unhandled exception: %s", ex)
175
+ input("Press any key to exit.")
File without changes
@@ -0,0 +1,2 @@
1
+ from .ai_directory import AIScriptDirectory
2
+ from .luabnd import LuaBND
@@ -0,0 +1,104 @@
1
+ from __future__ import annotations
2
+
3
+ __all__ = ["AIScriptDirectory"]
4
+
5
+ import abc
6
+ import logging
7
+ import typing as tp
8
+ from dataclasses import field
9
+ from pathlib import Path
10
+
11
+ from soulstruct.base.game_file_directory import GameFileMapDirectory
12
+ from .luabnd import LuaBND
13
+
14
+ _LOGGER = logging.getLogger(__name__)
15
+
16
+
17
+ class AIScriptDirectory(GameFileMapDirectory[LuaBND], abc.ABC):
18
+ """Unpack LuaBND scripts in a directory (usually `script`) into one single modifiable structure.
19
+
20
+ Note that the vanilla game uses pre-compiled Lua bytecode for a minor efficiency upgrade, but uncompiled Lua
21
+ scripts work just as well. Use the `.decompile_all()` method to generate them from any compiled scripts
22
+ (currently does not work for PTDE or Bloodborne).
23
+ TODO: Has Katalash upgraded this decompiler to support Bloodborne?
24
+
25
+ The same script will work in both PTDE and DSR, but decompiling is only offered (with Katalash's
26
+ 'DSLuaDecompiler' tool) for DSR. PTDE files have the variable names stripped anyway, which makes them much
27
+ harder to edit even when decompiled. If you want to customize PTDE scripts, I recommend doing all the work in
28
+ DSR and then just copying the scripts over.
29
+
30
+ `aiCommon.luabnd` ('Common') contains scripts that are loaded in all maps, which includes internal scripts
31
+ with global functions that are accessed in every script. If you want to decompile these internal scripts, you
32
+ must call `AIScriptDirectory.Common.decompile(battle_or_logic_only=False)`, and similar to recompile them
33
+ (for testing) or save the decompiled scripts into the LuaBND.
34
+
35
+ `eventCommon.luabnd` contains scripts that are solely internal. This BND is unpacked in `.event_common_bnd`
36
+ for manual inspection and modification, if you really want, but this shouldn't be necessary. It is written
37
+ automatically by `.save()`.
38
+
39
+ Note that you only need to reload the map (e.g. by saving and quitting, or getting sufficiently far away from
40
+ the map) to see changes in these files while playing the game. You do NOT need to fully restart the game, unlike
41
+ with text and parameter/lighting changes, *UNLESS* you need to reload a script in Common.
42
+ """
43
+ FILE_NAME_PATTERN: tp.ClassVar[str] = r".*\.luabnd"
44
+ FILE_CLASS: tp.ClassVar[type[LuaBND]] = LuaBND
45
+ FILE_EXTENSION = ".luabnd"
46
+ MAP_STEM_ATTRIBUTE = "ai_file_stem"
47
+
48
+ files: dict[str, LuaBND] = field(default_factory=dict)
49
+
50
+ @classmethod
51
+ def from_unpacked_luabnds(cls, directory_path: Path | str):
52
+ """Open a collection of unpacked `LuaBND` binders instead of the binders themselves."""
53
+
54
+ directory_path = Path(directory_path)
55
+ if not directory_path.is_dir():
56
+ raise NotADirectoryError(f"Missing directory: {directory_path}")
57
+ all_map_stems = [getattr(game_map, cls.MAP_STEM_ATTRIBUTE) for game_map in cls.ALL_MAPS]
58
+ all_map_stems = [stem for stem in all_map_stems if stem is not None]
59
+ files = {}
60
+ for file_path in directory_path.glob("*"):
61
+ if file_path.is_dir() and file_path.stem in all_map_stems:
62
+ # Try to load `LuaBND` from unpacked binder.
63
+ files[file_path.stem] = cls.FILE_CLASS.from_unpacked_path(file_path)
64
+ all_map_stems.remove(file_path.stem)
65
+ continue
66
+
67
+ if all_map_stems:
68
+ _LOGGER.warning(f"Could not find some files in `{cls.__name__}` directory: {', '.join(all_map_stems)}")
69
+
70
+ return cls(directory=directory_path, files=files)
71
+
72
+ def write_unpacked_luabnds(self, directory_path: Path | str = None):
73
+ if directory_path is None:
74
+ if self.directory is None:
75
+ raise ValueError("Cannot autodetect directory name (`directory` not set).")
76
+ directory_path = self.directory
77
+ directory_path = Path(directory_path)
78
+ all_map_stems = [getattr(game_map, self.MAP_STEM_ATTRIBUTE) for game_map in self.ALL_MAPS]
79
+ directory_path.mkdir(parents=True, exist_ok=True)
80
+ for file_stem, luabnd in self.files.items():
81
+ if file_stem in all_map_stems:
82
+ all_map_stems.remove(file_stem)
83
+ else:
84
+ _LOGGER.warning(f"Writing unknown LuaBND file found in `{self.__class__.__name__}`: {file_stem}")
85
+ luabnd.write_unpacked_directory(directory_path / f"{file_stem}")
86
+ if all_map_stems:
87
+ _LOGGER.warning(
88
+ f"Could not find some file keys while writing `{self.__class__.__name__}` directory: "
89
+ f"{', '.join(all_map_stems)}"
90
+ )
91
+ _LOGGER.info(
92
+ f"`{self.__class__.__name__}` unpacked LuaBNDs written to `{directory_path}` successfully "
93
+ f"({len(self.files)} folders)."
94
+ )
95
+
96
+ def compile_all(self, output_directory=None, include_unknown_scripts=False):
97
+ for luabnd_stem, luabnd in self.files.items():
98
+ _LOGGER.info(f"Compiling Lua scripts in {luabnd_stem}...")
99
+ luabnd.compile_all(output_directory, include_unknown_scripts)
100
+
101
+ def decompile_all(self, output_directory=None, include_unknown_scripts=False):
102
+ for luabnd_stem, luabnd in self.files.items():
103
+ _LOGGER.info(f"Decompiling Lua scripts in {luabnd_stem}...")
104
+ luabnd.decompile_all(output_directory, include_unknown_scripts)
@@ -0,0 +1,109 @@
1
+ from __future__ import annotations
2
+
3
+ __all__ = [
4
+ "LuaError",
5
+ "LuaCompileError",
6
+ "LuaDecompileError",
7
+ "compile_lua",
8
+ "decompile_lua",
9
+ ]
10
+
11
+ import logging
12
+ import os
13
+ import subprocess
14
+ from contextlib import contextmanager
15
+ from pathlib import Path
16
+
17
+ from soulstruct.exceptions import SoulstructError
18
+ from soulstruct.utilities.files import SOULSTRUCT_PATH
19
+ from soulstruct.utilities.misc import get_startupinfo
20
+
21
+ _LOGGER = logging.getLogger(__name__)
22
+
23
+ COMPILER_x64 = str(SOULSTRUCT_PATH("base/ai/lua/x64/LuaC.exe"))
24
+ COMPILER_x86 = str(SOULSTRUCT_PATH("base/ai/lua/x86/luac50.exe"))
25
+ DECOMPILER_x64 = str(SOULSTRUCT_PATH("base/ai/lua/x64/DSLuaDecompiler.exe"))
26
+ # No x86 decompiler.
27
+
28
+
29
+ class LuaError(SoulstructError):
30
+ pass
31
+
32
+
33
+ class LuaCompileError(LuaError):
34
+ pass
35
+
36
+
37
+ class LuaDecompileError(LuaError):
38
+ pass
39
+
40
+
41
+ @contextmanager
42
+ def _temp_lua_path(content, as_bytes=False, encoding=None, set_cwd=False):
43
+ temp = SOULSTRUCT_PATH("base/ai/lua/temp")
44
+ if set_cwd:
45
+ previous_cwd = os.getcwd()
46
+ os.chdir(str(temp.parent))
47
+ else:
48
+ previous_cwd = None
49
+ with temp.open(mode="wb" if as_bytes else "w", encoding=encoding) as f:
50
+ f.write(content)
51
+ yield temp
52
+ try:
53
+ os.remove(str(SOULSTRUCT_PATH("base/ai/lua/temp")))
54
+ except FileNotFoundError:
55
+ pass
56
+ if previous_cwd:
57
+ os.chdir(previous_cwd)
58
+
59
+
60
+ def compile_lua(script: str, script_name="<unknown script>", output_path=None, x64=True):
61
+ with _temp_lua_path(script, as_bytes=False, set_cwd=True, encoding="shift_jis_2004") as temp:
62
+ compiler_path = COMPILER_x64 if x64 else COMPILER_x86
63
+ result = subprocess.run(
64
+ [compiler_path, "-o", "temp.lua", temp],
65
+ text=True,
66
+ stdin=subprocess.PIPE,
67
+ stdout=subprocess.PIPE,
68
+ stderr=subprocess.PIPE,
69
+ startupinfo=get_startupinfo(),
70
+ )
71
+ if result.stdout.strip():
72
+ _LOGGER.warning(f"Lua Compiler Warning for script {script_name}: {result.stdout.strip()}")
73
+ if result.returncode != 0:
74
+ raise LuaCompileError(f"Script {script_name}: {result.stderr.strip()}")
75
+ with Path("temp.lua").open("rb") as f:
76
+ bytecode = f.read()
77
+ os.remove("temp.lua")
78
+ if output_path:
79
+ with Path(output_path).open("wb") as o:
80
+ o.write(f.read())
81
+ return bytecode
82
+
83
+
84
+ def decompile_lua(bytecode: bytes, script_name="<unknown script>", output_path=None):
85
+ if output_path:
86
+ output_path = Path(output_path).resolve() # resolve before changing to temp working dir
87
+ with _temp_lua_path(bytecode, as_bytes=True, set_cwd=True) as temp:
88
+ result = subprocess.run(
89
+ [DECOMPILER_x64, temp],
90
+ text=True,
91
+ stdin=subprocess.PIPE,
92
+ stdout=subprocess.PIPE,
93
+ stderr=subprocess.PIPE,
94
+ startupinfo=get_startupinfo(),
95
+ )
96
+ if result.stdout.strip():
97
+ _LOGGER.warning(f"Lua Decompiler Warning for script {script_name}: {result.stdout.strip()}")
98
+ if result.returncode != 0:
99
+ raise LuaDecompileError(f"Script {script_name}: {result.stderr.strip()}")
100
+ with Path("temp.dec.lua").open("r", encoding="shift_jis_2004") as f:
101
+ script_string = f.read()
102
+ os.remove("temp.dec.lua")
103
+ if output_path:
104
+ output_path = Path(output_path)
105
+ output_path.parent.mkdir(exist_ok=True, parents=True)
106
+ with Path(output_path).open("w", encoding="shift_jis_2004") as o:
107
+ o.write(script_string)
108
+ _LOGGER.info(f"Decompiled Lua file written: {str(output_path)}")
109
+ return script_string
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,213 @@
1
+ from __future__ import annotations
2
+
3
+ __all__ = ["LuaScriptBase", "GoalType", "LuaGoalScript", "LuaUnknownScript"]
4
+
5
+ import abc
6
+ import copy
7
+ import enum
8
+ import logging
9
+ import re
10
+ from dataclasses import dataclass
11
+ from pathlib import Path
12
+
13
+ from soulstruct.utilities.binary import *
14
+
15
+ from .lua import LuaError, LuaCompileError, LuaDecompileError, compile_lua, decompile_lua
16
+
17
+ _LOGGER = logging.getLogger(__name__)
18
+
19
+ _SNAKE_CASE_RE = re.compile(r"(?<!^)(?=[A-Z])")
20
+
21
+
22
+ class GoalType(enum.Enum):
23
+ Battle = "battle"
24
+ Logic = "logic"
25
+ Unknown = "unknown"
26
+
27
+ @classmethod
28
+ def from_interrupt_info(cls, has_battle_interrupt: bool, has_logic_interrupt: bool, logic_interrupt_name: str):
29
+ if has_battle_interrupt and not has_logic_interrupt and not logic_interrupt_name:
30
+ return cls.Battle
31
+ elif not has_battle_interrupt and has_logic_interrupt and logic_interrupt_name:
32
+ return cls.Logic
33
+ elif not has_battle_interrupt and not has_logic_interrupt and not logic_interrupt_name:
34
+ return cls.Unknown
35
+ raise LuaError(
36
+ f"Could not determine goal type (battle={has_battle_interrupt}, logic={has_logic_interrupt}, "
37
+ f"logic_name={repr(logic_interrupt_name)})."
38
+ )
39
+
40
+
41
+ @dataclass(slots=True)
42
+ class LuaScriptBase(abc.ABC):
43
+
44
+ bytecode: bytes = b""
45
+ script: str = ""
46
+
47
+ def compile(self, output_path=None, x64=True):
48
+ """Generate `bytecode` from current `script`."""
49
+ if not self.script:
50
+ raise LuaCompileError(f"No Lua script to compile for {self.script_name}.")
51
+ self.bytecode = compile_lua(self.script, script_name=self.script_name, output_path=output_path, x64=x64)
52
+
53
+ def decompile(self, output_path=None):
54
+ """Generate `script` from current `bytecode`."""
55
+ if not self.bytecode:
56
+ raise LuaDecompileError(f"No compiled Lua to decompile for {self.script_name}.")
57
+ self.script = decompile_lua(self.bytecode, script_name=self.script_name, output_path=output_path)
58
+
59
+ def write_bytecode(self, lua_path):
60
+ if not self.bytecode:
61
+ raise LuaError(f"No compiled Lua bytecode to write for {self.script_name}.")
62
+ lua_path = Path(lua_path)
63
+ lua_path.parent.mkdir(parents=True, exist_ok=True)
64
+ with lua_path.open("wb") as f:
65
+ f.write(self.bytecode)
66
+
67
+ def write_script(self, lua_path):
68
+ if not self.script:
69
+ raise LuaError(f"No decompiled Lua script to write for {self.script_name}.")
70
+ lua_path = Path(lua_path)
71
+ lua_path.parent.mkdir(parents=True, exist_ok=True)
72
+ with lua_path.open("w", encoding="shift_jis_2004") as f:
73
+ f.write(self.script)
74
+
75
+ def load_script(self, lua_path: Path | str):
76
+ lua_path = Path(lua_path)
77
+ with lua_path.open("r", encoding="shift_jis_2004") as f:
78
+ self.script = f.read()
79
+
80
+ def copy(self):
81
+ return copy.deepcopy(self)
82
+
83
+ @property
84
+ @abc.abstractmethod
85
+ def script_name(self) -> str:
86
+ raise NotImplementedError
87
+
88
+
89
+ class LuaGoal32(BinaryStruct):
90
+ goal_id: int
91
+ name_offset: uint
92
+ logic_interrupt_name_offset: uint
93
+ has_battle_interrupt: bool
94
+ has_logic_interrupt: bool
95
+ _pad1: bytes = binary_pad(2, init=False)
96
+
97
+
98
+ class LuaGoal64(BinaryStruct):
99
+ goal_id: int
100
+ has_battle_interrupt: bool
101
+ has_logic_interrupt: bool
102
+ _pad1: bytes = binary_pad(2, init=False)
103
+ name_offset: long
104
+ logic_interrupt_name_offset: long
105
+
106
+
107
+ @dataclass(slots=True)
108
+ class LuaGoalScript(LuaScriptBase):
109
+ """Goals can have type 'battle', 'logic', or 'neither'.
110
+
111
+ All 'battle' goals have `has_battle_interrupt=True`, `has_logic_interrupt=False`, and `logic_interrupt_name=""`.
112
+ Their names usually end in 'Battle' (no underscore), but this is not necessary (e.g. common battle functions).
113
+
114
+ All 'logic' goals have `has_battle_interrupt=False`, `has_logic_interrupt=True`, and
115
+ `logic_interrupt_name={goal_name_prefix}_Interupt` [sic]. The goal name always ends in '_Logic'.
116
+
117
+ All 'neither' goals have `has_battle_interrupt=False`, `has_logic_interrupt=False`, and `logic_interrupt_name=""`.
118
+ These goals are typically referenced in other files (e.g. 'CrystalLizard330000Runaway'). They can have any name.
119
+ """
120
+
121
+ goal_id: int = -1
122
+ goal_name: str = ""
123
+ goal_type: GoalType = GoalType.Unknown
124
+ script_name: str = ""
125
+
126
+ def __post_init__(self):
127
+ if not self.script_name:
128
+ self.script_name = self.get_auto_script_name()
129
+
130
+ @classmethod
131
+ def from_luainfo_reader(cls, reader: BinaryReader, long_varints: bool, encoding: str) -> LuaGoalScript:
132
+ goal_struct = LuaGoal64.from_bytes(reader) if long_varints else LuaGoal32.from_bytes(reader)
133
+ name = reader.unpack_string(offset=goal_struct.name_offset, encoding=encoding)
134
+ if goal_struct.logic_interrupt_name_offset > 0:
135
+ logic_interrupt_name = reader.unpack_string(
136
+ offset=goal_struct.logic_interrupt_name_offset, encoding=encoding
137
+ )
138
+ else:
139
+ logic_interrupt_name = ""
140
+
141
+ goal_type = GoalType.from_interrupt_info(
142
+ goal_struct.has_battle_interrupt, goal_struct.has_logic_interrupt, logic_interrupt_name
143
+ )
144
+
145
+ return LuaGoalScript(
146
+ goal_id=goal_struct.goal_id,
147
+ goal_name=name,
148
+ goal_type=goal_type,
149
+ )
150
+
151
+ def to_luainfo_writer(self, writer: BinaryWriter, long_varints: bool):
152
+
153
+ goal_kwargs = {
154
+ "has_battle_interrupt": self.goal_type == GoalType.Battle,
155
+ "has_logic_interrupt": self.goal_type == GoalType.Logic,
156
+ }
157
+
158
+ (LuaGoal64 if long_varints else LuaGoal32).object_to_writer(self, writer, **goal_kwargs)
159
+
160
+ def pack_logic_interrupt_name(self, writer: BinaryWriter, encoding: str):
161
+ if self.goal_type == GoalType.Logic:
162
+ if not self.goal_name.endswith("_Logic"):
163
+ raise LuaError(f"Lua logic goal name must end in '_Logic'. Invalid: {repr(self.goal_name)}")
164
+ logic_interrupt_name = self.goal_name[:-6] + "_Interupt"
165
+ writer.fill_with_position("logic_interrupt_name", obj=self)
166
+ writer.pack_z_string(logic_interrupt_name, encoding=encoding)
167
+ else:
168
+ writer.fill("logic_interrupt_name", 0, obj=self)
169
+
170
+ def validate_goal_name(self):
171
+ if self.goal_type == GoalType.Logic and not self.goal_name.endswith("_Logic"):
172
+ raise LuaError(f"Logic goal name must end in '_Logic'. Invalid: {repr(self.goal_name)}")
173
+ elif self.goal_type == "battle" and not self.goal_name.endswith("Battle"):
174
+ _LOGGER.warning(f"Battle goal name {repr(self.goal_name)} does not end in 'Battle', which is unusual.")
175
+
176
+ def get_auto_script_name(self):
177
+ if self.goal_type == GoalType.Battle:
178
+ return f"{self.goal_id:06d}_battle.lua"
179
+ elif self.goal_type == GoalType.Logic:
180
+ return f"{self.goal_id:06d}_logic.lua"
181
+ elif self.goal_type == GoalType.Unknown:
182
+ # Shouldn't happen anymore.
183
+ snake_case_name = _SNAKE_CASE_RE.sub("_", self.goal_name).lower()
184
+ return f"{snake_case_name}.lua"
185
+ raise ValueError(f"Invalid `LuaGoal.type`: {self.goal_type}")
186
+
187
+ def get_interrupt_details(self):
188
+ if self.goal_type == GoalType.Battle:
189
+ return {"has_battle_interrupt": True, "has_logic_interrupt": False, "logic_interrupt_name": ""}
190
+ elif self.goal_type == GoalType.Logic:
191
+ if self.goal_name.endswith("_Logic"):
192
+ name = self.goal_name[:-6] + "_Interupt"
193
+ else:
194
+ raise LuaError(f"Logic goal name must end in '_Logic'. Invalid: {repr(self.goal_name)}")
195
+ return {"has_battle_interrupt": False, "has_logic_interrupt": True, "logic_interrupt_name": name}
196
+ elif self.goal_type == GoalType.Unknown:
197
+ return {"has_battle_interrupt": False, "has_logic_interrupt": False, "logic_interrupt_name": ""}
198
+
199
+ def __repr__(self):
200
+ return f"LuaGoal({self.goal_id:06d}, {repr(self.goal_name)}, {repr(self.goal_type)})"
201
+
202
+
203
+ @dataclass(slots=True)
204
+ class LuaUnknownScript(LuaScriptBase):
205
+
206
+ name: str = ""
207
+
208
+ @property
209
+ def script_name(self):
210
+ return f"{self.name}.lua"
211
+
212
+ def __repr__(self):
213
+ return f"LuaUnknownScript(name={repr(self.name)})"