smrpgpatchbuilder 6.0.0__tar.gz → 6.1.0__tar.gz

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 (245) hide show
  1. {smrpgpatchbuilder-6.0.0/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-6.1.0}/PKG-INFO +1 -1
  2. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/pyproject.toml +1 -1
  3. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +67 -38
  4. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
  5. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/LICENSE +0 -0
  6. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/MANIFEST.in +0 -0
  7. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/README.md +0 -0
  8. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/setup.cfg +0 -0
  9. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/__init__.py +0 -0
  10. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
  11. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
  12. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
  13. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
  14. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
  15. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
  16. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
  17. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
  18. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
  19. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
  20. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
  21. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
  22. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
  23. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
  24. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
  25. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
  26. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
  27. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
  28. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
  29. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
  30. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
  31. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
  32. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
  33. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
  34. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
  35. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
  36. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
  37. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
  38. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
  39. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
  40. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
  41. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
  42. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
  43. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
  44. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
  45. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
  46. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
  47. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
  48. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
  49. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
  50. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
  51. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +0 -0
  52. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
  53. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
  54. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
  55. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
  56. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
  57. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
  58. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
  59. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +0 -0
  60. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
  61. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
  62. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
  63. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
  64. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
  65. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
  66. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
  67. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
  68. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
  69. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
  70. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
  71. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
  72. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
  73. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +0 -0
  74. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
  75. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
  76. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
  77. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
  78. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
  79. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
  80. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
  81. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
  82. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
  83. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
  84. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
  85. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
  86. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
  87. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
  88. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
  89. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
  90. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
  91. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
  92. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
  93. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
  94. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
  95. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
  96. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
  97. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +0 -0
  98. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +0 -0
  99. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
  100. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
  101. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
  102. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
  103. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
  104. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
  105. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
  106. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
  107. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
  108. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
  109. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
  110. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
  111. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
  112. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
  113. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
  114. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
  115. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
  116. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
  117. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
  118. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
  119. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
  120. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
  121. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
  122. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
  123. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
  124. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
  125. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
  126. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
  127. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
  128. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
  129. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
  130. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
  131. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
  132. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
  133. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
  134. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
  135. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -0
  136. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
  137. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
  138. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
  139. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
  140. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
  141. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
  142. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
  143. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
  144. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
  145. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
  146. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
  147. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
  148. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
  149. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
  150. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
  151. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
  152. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
  153. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
  154. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
  155. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
  156. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
  157. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
  158. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
  159. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
  160. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
  161. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
  162. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
  163. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
  164. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
  165. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
  166. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
  167. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
  168. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
  169. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/manage.py +0 -0
  170. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
  171. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
  172. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
  173. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
  174. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
  175. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
  176. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
  177. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
  178. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
  179. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
  180. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
  181. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
  182. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
  183. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
  184. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
  185. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
  186. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
  187. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
  188. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
  189. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
  190. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
  191. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
  192. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
  193. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
  194. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
  195. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
  196. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
  197. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
  198. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
  199. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
  200. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
  201. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
  202. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
  203. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
  204. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
  205. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
  206. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
  207. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
  208. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
  209. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
  210. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
  211. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
  212. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
  213. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
  214. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
  215. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
  216. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
  217. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
  218. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
  219. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
  220. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
  221. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
  222. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
  223. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
  224. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
  225. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
  226. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
  227. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
  228. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
  229. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
  230. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
  231. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
  232. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
  233. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
  234. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/utils/number.py +0 -0
  235. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder/utils/strings.py +0 -0
  236. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +0 -0
  237. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
  238. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
  239. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
  240. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/tests/animations/test_animationscripts.py +0 -0
  241. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/tests/dialogs/__init__.py +0 -0
  242. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/tests/dialogs/test_formatter.py +0 -0
  243. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/tests/monsters/test_ai.py +0 -0
  244. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/tests/overworld/test_actionscripts.py +0 -0
  245. {smrpgpatchbuilder-6.0.0 → smrpgpatchbuilder-6.1.0}/src/tests/overworld/test_eventscripts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smrpgpatchbuilder
3
- Version: 6.0.0
3
+ Version: 6.1.0
4
4
  Summary: Patchable base class support for some SMRPG concepts similar to their definitions in Lazy Shell
5
5
  Author-email: pidgezero_one <s.kischak@gmail.com>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "smrpgpatchbuilder"
7
- version = "6.0.0"
7
+ version = "6.1.0"
8
8
  authors = [
9
9
  { name="pidgezero_one", email="s.kischak@gmail.com" },
10
10
  ]
@@ -2570,14 +2570,23 @@ class CopyVarToVar(UsableEventScriptCommand, EventScriptCommand):
2570
2570
 
2571
2571
 
2572
2572
  class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand):
2573
- """Darken the level background and all NPCs except the sprite palette rows listed
2574
- in `preserve_rows`. The handler at $C0:4FD9 stores `fade_arg` into the fade-depth
2575
- control word ($318B / $318C / $318E) and an 8-bit exclusion bitmask into $003185.
2576
- The palette processor at $C0:3AEE walks 8 rows (the OBJ palette set, rows 8-15)
2577
- and skips any row whose bit is set in the bitmask, leaving only the unmasked rows
2578
- darkened.
2573
+ """Darken the level background and all NPCs except the OBJ palette rows listed
2574
+ in `preserve_rows`, ramping over `duration_frames` frames. The handler at
2575
+ $C0:4FD9 unpacks three bytes:
2579
2576
 
2580
- The 8 mask bits correspond to the OBJ palette rows in order:
2577
+ byte 2 (offset 0): low 6 bits fade depth ($318B);
2578
+ high 2 bits → bits 0-1 of duration counter
2579
+ byte 3 (offset 1): bits 2-9 of the duration counter
2580
+ byte 4 (offset 2): 8-bit OBJ palette-row exclusion mask ($003185)
2581
+
2582
+ The two duration-related bytes get combined as a 16-bit load and shifted right
2583
+ by 6, giving a 10-bit duration value written to $318C and $318E. The palette
2584
+ processor at $C0:3A44 decrements $318C each frame and ends the fade when it
2585
+ reaches zero.
2586
+
2587
+ The palette processor at $C0:3AEE walks 8 rows (the OBJ palette set, rows
2588
+ 8-15) and skips any row whose bit is set in the exclusion mask, leaving only
2589
+ the unmasked rows darkened. Mask bits correspond to:
2581
2590
 
2582
2591
  bit 0 → MARIO_PALETTE (PaletteRow 8 — the player)
2583
2592
  bit 1 → NPC_PALETTE_ROW_1 (PaletteRow 9)
@@ -2588,12 +2597,15 @@ class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand
2588
2597
  bit 6 → NPC_PALETTE_ROW_6 (PaletteRow 14)
2589
2598
  bit 7 → NPC_PALETTE_ROW_7 (PaletteRow 15)
2590
2599
 
2591
- **Note on ally-buffer growth:** when a room's `ally_sprite_buffer_size` increases
2592
- (e.g. for non-Mario protagonists with tilemap molds), every NPC palette row shifts
2593
- by the same delta, so the NPC entries in `preserve_rows` must shift forward by the
2594
- same delta to keep targeting the same NPCs. `MARIO_PALETTE` does not shift.
2600
+ `fade_depth=50` (0x32) is treated as a sentinel "max" by the processor at
2601
+ $C0:3A4C when the duration counter expires at this depth, the fade state is
2602
+ cleared completely instead of transitioning into "fade-out completed" mode.
2595
2603
 
2596
- The middle arg byte is filler, ignored by the handler.
2604
+ **Note on ally-buffer growth:** when a room's `ally_sprite_buffer_size`
2605
+ increases (e.g. for non-Mario protagonists with tilemap molds), every NPC
2606
+ palette row shifts by the same delta, so the NPC entries in `preserve_rows`
2607
+ must shift forward by the same delta to keep targeting the same NPCs.
2608
+ `MARIO_PALETTE` does not shift.
2597
2609
 
2598
2610
  ## Lazy Shell command
2599
2611
  (not available in Lazy Shell)
@@ -2605,13 +2617,14 @@ class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand
2605
2617
  5 bytes
2606
2618
 
2607
2619
  Args:
2608
- fade_arg (int): 8-bit fade-depth control. Low 6 bits → $318B (fade depth);
2609
- high 2 bits $318C / $318E (fade-mode bits).
2610
- preserve_rows (list[PaletteRow]): Palette rows to preserve from the darken
2611
- effect. Each entry must be `MARIO_PALETTE` or `NPC_PALETTE_ROW_1` through
2612
- `NPC_PALETTE_ROW_7` (PaletteRow values 8-15). Empty list = darken all rows.
2613
- filler (int): Ignored by the handler. Set to 0 unless preserving original
2614
- byte sequences.
2620
+ fade_depth (int): Color-subtraction intensity, 0-63. Higher = darker.
2621
+ Special value 50 (0x32) is the "max depth" sentinel that triggers
2622
+ full state-clear when the fade ends.
2623
+ duration_frames (int): How many frames the fade lasts, 0-1023.
2624
+ preserve_rows (list[PaletteRow]): Palette rows to preserve from the
2625
+ darken effect. Each entry must be `MARIO_PALETTE` or
2626
+ `NPC_PALETTE_ROW_1` through `NPC_PALETTE_ROW_7` (PaletteRow values
2627
+ 8-15). Empty list = darken all rows.
2615
2628
  identifier (str | None): Give this command a label if you want another
2616
2629
  command to jump to it.
2617
2630
  """
@@ -2619,27 +2632,39 @@ class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand
2619
2632
  _opcode = bytearray([0xFD, 0x8E])
2620
2633
  _size: int = 5
2621
2634
  _OBJ_PALETTE_BASE = 8 # PaletteRow(8) = MARIO_PALETTE = bit 0 of the mask.
2622
- _fade_arg: UInt8
2623
- _filler: UInt8
2635
+ _MAX_FADE_DEPTH = 0x3F # 6-bit field
2636
+ _MAX_DURATION = 0x3FF # 10-bit field
2637
+ _fade_depth: UInt8
2638
+ _duration_frames: UInt16
2624
2639
  _preserve_rows: list[PaletteRow]
2625
2640
 
2626
2641
  @property
2627
- def fade_arg(self) -> UInt8:
2628
- """8-bit fade-depth control: low 6 bits → fade depth, high 2 bits → fade mode."""
2629
- return self._fade_arg
2642
+ def fade_depth(self) -> UInt8:
2643
+ """Color-subtraction intensity, 0-63. 50 (0x32) is the max-depth sentinel."""
2644
+ return self._fade_depth
2630
2645
 
2631
- def set_fade_arg(self, fade_arg: int) -> None:
2632
- """Set the 8-bit fade-depth control byte."""
2633
- self._fade_arg = UInt8(fade_arg)
2646
+ def set_fade_depth(self, fade_depth: int) -> None:
2647
+ """Set the fade depth (0-63)."""
2648
+ if not 0 <= fade_depth <= self._MAX_FADE_DEPTH:
2649
+ raise InvalidCommandArgumentException(
2650
+ f"DarkenLayersExceptPaletteRows fade_depth must be 0-{self._MAX_FADE_DEPTH}; "
2651
+ f"got {fade_depth}"
2652
+ )
2653
+ self._fade_depth = UInt8(fade_depth)
2634
2654
 
2635
2655
  @property
2636
- def filler(self) -> UInt8:
2637
- """Filler byte ignored by the handler at $C0:4FD9."""
2638
- return self._filler
2656
+ def duration_frames(self) -> UInt16:
2657
+ """Fade duration in frames, 0-1023."""
2658
+ return self._duration_frames
2639
2659
 
2640
- def set_filler(self, filler: int) -> None:
2641
- """Set the filler byte (no effect in-game)."""
2642
- self._filler = UInt8(filler)
2660
+ def set_duration_frames(self, duration_frames: int) -> None:
2661
+ """Set the fade duration in frames (0-1023)."""
2662
+ if not 0 <= duration_frames <= self._MAX_DURATION:
2663
+ raise InvalidCommandArgumentException(
2664
+ f"DarkenLayersExceptPaletteRows duration_frames must be 0-{self._MAX_DURATION}; "
2665
+ f"got {duration_frames}"
2666
+ )
2667
+ self._duration_frames = UInt16(duration_frames)
2643
2668
 
2644
2669
  @property
2645
2670
  def preserve_rows(self) -> list[PaletteRow]:
@@ -2677,18 +2702,22 @@ class DarkenLayersExceptPaletteRows(UsableEventScriptCommand, EventScriptCommand
2677
2702
 
2678
2703
  def __init__(
2679
2704
  self,
2680
- fade_arg: int,
2705
+ fade_depth: int,
2706
+ duration_frames: int,
2681
2707
  preserve_rows: list[PaletteRow | int],
2682
- filler: int = 0,
2683
2708
  identifier: str | None = None,
2684
2709
  ) -> None:
2685
2710
  super().__init__(identifier)
2686
- self.set_fade_arg(fade_arg)
2687
- self.set_filler(filler)
2711
+ self.set_fade_depth(fade_depth)
2712
+ self.set_duration_frames(duration_frames)
2688
2713
  self.set_preserve_rows(preserve_rows)
2689
2714
 
2690
2715
  def render(self, *args) -> bytearray:
2691
- return super().render(self.fade_arg, self.filler, self.preserve_rows_mask)
2716
+ # The handler reads byte 2 (low 6 bits = depth, high 2 bits = duration[0:2])
2717
+ # and byte 3 (duration[2:10]), so re-pack here.
2718
+ byte_2 = ((self._duration_frames & 0x03) << 6) | (self._fade_depth & 0x3F)
2719
+ byte_3 = (self._duration_frames >> 2) & 0xFF
2720
+ return super().render(UInt8(byte_2), UInt8(byte_3), self.preserve_rows_mask)
2692
2721
 
2693
2722
 
2694
2723
  class StoreBytesTo0335And0556(UsableEventScriptCommand, EventScriptCommand):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smrpgpatchbuilder
3
- Version: 6.0.0
3
+ Version: 6.1.0
4
4
  Summary: Patchable base class support for some SMRPG concepts similar to their definitions in Lazy Shell
5
5
  Author-email: pidgezero_one <s.kischak@gmail.com>
6
6
  License-Expression: MIT