smrpgpatchbuilder 5.0.0__tar.gz → 5.0.1__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.
- {smrpgpatchbuilder-5.0.0/src/smrpgpatchbuilder.egg-info → smrpgpatchbuilder-5.0.1}/PKG-INFO +1 -1
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/pyproject.toml +1 -1
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemies/classes.py +130 -44
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1/src/smrpgpatchbuilder.egg-info}/PKG-INFO +1 -1
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/LICENSE +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/MANIFEST.in +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/README.md +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/setup.cfg +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/allies/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/allies/ally.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/allies/ally_collection.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/battle_targets.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/bonus_messages.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/flash_colours.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/layer_priority_type.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/mask_effects.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/message_type.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/origins.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/pause_until.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/shift_type.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/arguments/wave_effect.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/ids/monster_entrances.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battle_animation_scripts/types.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/battle_dialog_collection.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/enums.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/formations_packs/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/music.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/characters/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/characters/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/characters/constants.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/characters/enums.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/formatter.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/ids/dialog_bank_ids.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/ids/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemies/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemies/constants.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemies/enums.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemy_attacks/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemy_attacks/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemy_attacks/constants.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/graphics/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/graphics/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/items/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/items/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/items/constants.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/items/encoding.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/items/enums.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/levels/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/levels/room_collection.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/command_types.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/targets.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/monster_scripts/types.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/numbers/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/numbers/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/sequence_speeds.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/arguments/vram_priority.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/action_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/area_objects.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/colours.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/controller_inputs.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/coords.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/directions.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/intro_title_text.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/layers.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_rows.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/palette_types.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/scenes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/tutorials.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/area_object.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/battlefield.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/byte_var.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/colour.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/controller_input.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/coord.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/direction.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/flag.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/intro_title_text.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/layer.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/packet.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_row.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/palette_type.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/party_character.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/scene.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/short_var.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/arguments/types/tutorial.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/commands.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/commands/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/event_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/overworld_scripts/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/scripts_common/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/scripts_common/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/shops/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/shops/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/arguments/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/arguments/damage_modifiers.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/arguments/timing_properties.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/arguments/types/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/enums.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/spells/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/ally_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/collection.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/disassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/exceptions.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/ids/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/ids/event_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/ids/misc.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/ids/sprite_palettes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/palette.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/sprites/sprite.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/world_map_locations/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/world_map_locations/classes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/manage.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/allyassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/allydisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/animationassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/animationdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/battleassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/battledialogassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/battledialogdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/battledisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/bowser_tile_rearranger.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/comboassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/combodisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/dialogassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/dialogdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/enemyassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/enemyattackassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/enemyattackdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/enemydisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/eventassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/eventconverter.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/eventidentifieraudit.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/eventpalettedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/generatesample.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/graphicsassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/graphicsdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/input_file_parser.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/itemassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/itemdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/legacy/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/legacy/docstrings.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/legacy/eventdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/legacy/eventtables.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/legacy/objectsequenceassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/legacy/objectsequencetables.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/make_seed.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/move_spell_gfx.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/npcmodelassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/npcmodeldisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/objectassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/objectdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/packassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/packdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/packetassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/packetdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/palettebytes.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/partitionanalyzer.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/roomassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/roomconverter.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/roomdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/shopassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/shopdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/space_reassigner.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/spellassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/spelldisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/spritepalettedisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/unused_gfx_finder.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover old.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/unused_gfx_remover.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/variableparser.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/worldmaplocationassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/commands/worldmaplocationdisassembler.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/management/django/settings.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/utils/disassembler_common.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/utils/npcs.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/utils/number.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/utils/strings.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder.egg-info/SOURCES.txt +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder.egg-info/dependency_links.txt +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder.egg-info/requires.txt +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder.egg-info/top_level.txt +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/tests/animations/test_animationscripts.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/tests/dialogs/__init__.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/tests/dialogs/test_formatter.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/tests/monsters/test_ai.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/tests/overworld/test_actionscripts.py +0 -0
- {smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/tests/overworld/test_eventscripts.py +0 -0
|
@@ -43,6 +43,7 @@ from .enums import (
|
|
|
43
43
|
EntranceStyle,
|
|
44
44
|
)
|
|
45
45
|
|
|
46
|
+
|
|
46
47
|
class Enemy:
|
|
47
48
|
"""Class representing an enemy in the game."""
|
|
48
49
|
|
|
@@ -486,14 +487,18 @@ class Enemy:
|
|
|
486
487
|
valueerror: if name contains non-latin-1 characters or is too long
|
|
487
488
|
"""
|
|
488
489
|
if len(name) > 13:
|
|
489
|
-
raise ValueError(
|
|
490
|
+
raise ValueError(
|
|
491
|
+
f"Enemy name must be 13 characters or less, got {len(name)}"
|
|
492
|
+
)
|
|
490
493
|
try:
|
|
491
|
-
name.encode(
|
|
494
|
+
name.encode("latin-1")
|
|
492
495
|
except UnicodeEncodeError:
|
|
493
496
|
raise ValueError("name contains characters not encodable in latin-1")
|
|
494
497
|
self._name = name
|
|
495
498
|
|
|
496
|
-
def render(
|
|
499
|
+
def render(
|
|
500
|
+
self, enemy_address: int | None = None, reward_address: int | None = None
|
|
501
|
+
) -> dict[int, bytearray]:
|
|
497
502
|
"""get data for this enemy in `{0x123456: bytearray([0x00])}` format.
|
|
498
503
|
|
|
499
504
|
args:
|
|
@@ -504,7 +509,9 @@ class Enemy:
|
|
|
504
509
|
|
|
505
510
|
# use provided addresses or calculate from monster_id
|
|
506
511
|
addr = enemy_address if enemy_address is not None else self.address
|
|
507
|
-
reward_addr =
|
|
512
|
+
reward_addr = (
|
|
513
|
+
reward_address if reward_address is not None else self.reward_address
|
|
514
|
+
)
|
|
508
515
|
|
|
509
516
|
# main stats.
|
|
510
517
|
data = bytearray()
|
|
@@ -519,7 +526,9 @@ class Enemy:
|
|
|
519
526
|
data += ByteField(self.fp).as_bytes()
|
|
520
527
|
data += ByteField(self.evade).as_bytes()
|
|
521
528
|
data += ByteField(self.magic_evade).as_bytes()
|
|
522
|
-
data += ByteField(
|
|
529
|
+
data += ByteField(
|
|
530
|
+
self.disable_auto_death * 1 + self.share_palette * 2
|
|
531
|
+
).as_bytes()
|
|
523
532
|
patch[addr] = data
|
|
524
533
|
|
|
525
534
|
# special defense bits, sound on hit is top half.
|
|
@@ -557,7 +566,11 @@ class Enemy:
|
|
|
557
566
|
|
|
558
567
|
# other properties
|
|
559
568
|
data = bytearray()
|
|
560
|
-
data += ByteField(
|
|
569
|
+
data += ByteField(
|
|
570
|
+
(self.entrance_style & 0x0F)
|
|
571
|
+
+ ((self.elevate & 0x03) << 4)
|
|
572
|
+
+ (self.coin_sprite << 6)
|
|
573
|
+
).as_bytes()
|
|
561
574
|
patch[addr + 15] = data
|
|
562
575
|
|
|
563
576
|
# flower bonus.
|
|
@@ -586,14 +599,14 @@ class Enemy:
|
|
|
586
599
|
# encode the name with special character replacements
|
|
587
600
|
if self._name:
|
|
588
601
|
for char in self._name[:13]:
|
|
589
|
-
if char ==
|
|
602
|
+
if char == "-":
|
|
590
603
|
name_bytes.append(0x7D) # hyphen -> 0x7d
|
|
591
|
-
elif char ==
|
|
604
|
+
elif char == "\u2019": # closing quote (u+2019: ')
|
|
592
605
|
name_bytes.append(0x7E) # closing quote -> 0x7e
|
|
593
606
|
else:
|
|
594
607
|
try:
|
|
595
608
|
# encode regular latin-1 characters
|
|
596
|
-
name_bytes.extend(char.encode(
|
|
609
|
+
name_bytes.extend(char.encode("latin-1"))
|
|
597
610
|
except UnicodeEncodeError:
|
|
598
611
|
# if character can't be encoded, use '?'
|
|
599
612
|
name_bytes.append(0x3F)
|
|
@@ -610,6 +623,7 @@ class Enemy:
|
|
|
610
623
|
|
|
611
624
|
return patch
|
|
612
625
|
|
|
626
|
+
|
|
613
627
|
class EnemyCollection:
|
|
614
628
|
"""Collection of enemies with rendering support for psychopath messages and pointer tables."""
|
|
615
629
|
|
|
@@ -666,19 +680,17 @@ class EnemyCollection:
|
|
|
666
680
|
# The pointer value is the offset from 0x390000
|
|
667
681
|
enemy_ptr_addr = ENEMY_POINTER_TABLE_ADDRESS + enemy.monster_id * 2
|
|
668
682
|
enemy_data_offset = enemy.address - 0x390000 # Offset from bank start
|
|
669
|
-
patch[enemy_ptr_addr] = bytearray(
|
|
670
|
-
enemy_data_offset & 0xFF,
|
|
671
|
-
|
|
672
|
-
])
|
|
683
|
+
patch[enemy_ptr_addr] = bytearray(
|
|
684
|
+
[enemy_data_offset & 0xFF, (enemy_data_offset >> 8) & 0xFF]
|
|
685
|
+
)
|
|
673
686
|
|
|
674
687
|
# Write reward data pointer table entry
|
|
675
688
|
# Reward pointer table is at 0x39142A, each entry is 2 bytes
|
|
676
689
|
reward_ptr_addr = REWARD_POINTER_TABLE_ADDRESS + enemy.monster_id * 2
|
|
677
690
|
reward_data_offset = enemy.reward_address - REWARD_DATA_BANK
|
|
678
|
-
patch[reward_ptr_addr] = bytearray(
|
|
679
|
-
reward_data_offset & 0xFF,
|
|
680
|
-
|
|
681
|
-
])
|
|
691
|
+
patch[reward_ptr_addr] = bytearray(
|
|
692
|
+
[reward_data_offset & 0xFF, (reward_data_offset >> 8) & 0xFF]
|
|
693
|
+
)
|
|
682
694
|
|
|
683
695
|
# now handle psychopath messages
|
|
684
696
|
# Battle dialog character encoding (NO word compression like overworld dialogs)
|
|
@@ -687,19 +699,77 @@ class EnemyCollection:
|
|
|
687
699
|
# Control characters
|
|
688
700
|
"\n": 0x01,
|
|
689
701
|
# Standard ASCII characters that map directly
|
|
690
|
-
" ": 32,
|
|
691
|
-
"
|
|
692
|
-
"
|
|
693
|
-
"
|
|
702
|
+
" ": 32,
|
|
703
|
+
"!": 33,
|
|
704
|
+
"(": 40,
|
|
705
|
+
")": 41,
|
|
706
|
+
",": 44,
|
|
707
|
+
"-": 45,
|
|
708
|
+
".": 46,
|
|
709
|
+
"/": 47,
|
|
710
|
+
"0": 48,
|
|
711
|
+
"1": 49,
|
|
712
|
+
"2": 50,
|
|
713
|
+
"3": 51,
|
|
714
|
+
"4": 52,
|
|
715
|
+
"5": 53,
|
|
716
|
+
"6": 54,
|
|
717
|
+
"7": 55,
|
|
718
|
+
"8": 56,
|
|
719
|
+
"9": 57,
|
|
694
720
|
"?": 63,
|
|
695
|
-
"A": 65,
|
|
696
|
-
"
|
|
697
|
-
"
|
|
698
|
-
"
|
|
699
|
-
"
|
|
700
|
-
"
|
|
701
|
-
"
|
|
702
|
-
"
|
|
721
|
+
"A": 65,
|
|
722
|
+
"B": 66,
|
|
723
|
+
"C": 67,
|
|
724
|
+
"D": 68,
|
|
725
|
+
"E": 69,
|
|
726
|
+
"F": 70,
|
|
727
|
+
"G": 71,
|
|
728
|
+
"H": 72,
|
|
729
|
+
"I": 73,
|
|
730
|
+
"J": 74,
|
|
731
|
+
"K": 75,
|
|
732
|
+
"L": 76,
|
|
733
|
+
"M": 77,
|
|
734
|
+
"N": 78,
|
|
735
|
+
"O": 79,
|
|
736
|
+
"P": 80,
|
|
737
|
+
"Q": 81,
|
|
738
|
+
"R": 82,
|
|
739
|
+
"S": 83,
|
|
740
|
+
"T": 84,
|
|
741
|
+
"U": 85,
|
|
742
|
+
"V": 86,
|
|
743
|
+
"W": 87,
|
|
744
|
+
"X": 88,
|
|
745
|
+
"Y": 89,
|
|
746
|
+
"Z": 90,
|
|
747
|
+
"a": 97,
|
|
748
|
+
"b": 98,
|
|
749
|
+
"c": 99,
|
|
750
|
+
"d": 100,
|
|
751
|
+
"e": 101,
|
|
752
|
+
"f": 102,
|
|
753
|
+
"g": 103,
|
|
754
|
+
"h": 104,
|
|
755
|
+
"i": 105,
|
|
756
|
+
"j": 106,
|
|
757
|
+
"k": 107,
|
|
758
|
+
"l": 108,
|
|
759
|
+
"m": 109,
|
|
760
|
+
"n": 110,
|
|
761
|
+
"o": 111,
|
|
762
|
+
"p": 112,
|
|
763
|
+
"q": 113,
|
|
764
|
+
"r": 114,
|
|
765
|
+
"s": 115,
|
|
766
|
+
"t": 116,
|
|
767
|
+
"u": 117,
|
|
768
|
+
"v": 118,
|
|
769
|
+
"w": 119,
|
|
770
|
+
"x": 120,
|
|
771
|
+
"y": 121,
|
|
772
|
+
"z": 122,
|
|
703
773
|
# Quote characters (remapped from ASCII)
|
|
704
774
|
'"': 34, # Opening double quote (ASCII " is 34)
|
|
705
775
|
""": 34, # Curly opening double quote
|
|
@@ -708,15 +778,20 @@ class EnemyCollection:
|
|
|
708
778
|
"\u2018": 38, # Curly opening single quote
|
|
709
779
|
"\u2019": 39, # Curly closing single quote
|
|
710
780
|
# Special symbols
|
|
711
|
-
"♥": 36,
|
|
712
|
-
"
|
|
781
|
+
"♥": 36,
|
|
782
|
+
"♪": 37,
|
|
783
|
+
"•": 42,
|
|
784
|
+
"··": 43, # Note: •• handled specially below
|
|
713
785
|
"~": 58,
|
|
714
|
-
"「": 59,
|
|
786
|
+
"「": 59,
|
|
787
|
+
"」": 60,
|
|
788
|
+
"『": 61,
|
|
789
|
+
"』": 62,
|
|
715
790
|
"©": 64,
|
|
716
791
|
# Elemental/status symbols for psychopath messages
|
|
717
|
-
"{": 123,
|
|
718
|
-
"|": 124,
|
|
719
|
-
"}": 125,
|
|
792
|
+
"{": 123, # Weakness symbol
|
|
793
|
+
"|": 124, # Resistance symbol
|
|
794
|
+
"}": 125, # Ice symbol (repurposed from ASCII })
|
|
720
795
|
"~ice~": 125,
|
|
721
796
|
"~fire~": 126,
|
|
722
797
|
"~thunder~": 127,
|
|
@@ -728,10 +803,22 @@ class EnemyCollection:
|
|
|
728
803
|
"~jump~": 133,
|
|
729
804
|
"~empty~": 141, # Invisible placeholder (same width as element symbols)
|
|
730
805
|
# Punctuation remapped to higher values
|
|
731
|
-
":": 142,
|
|
732
|
-
"
|
|
733
|
-
"
|
|
734
|
-
"
|
|
806
|
+
":": 142,
|
|
807
|
+
";": 143,
|
|
808
|
+
"<": 144,
|
|
809
|
+
">": 145,
|
|
810
|
+
"…": 146,
|
|
811
|
+
"···": 146, # Ellipsis
|
|
812
|
+
"#": 147,
|
|
813
|
+
"+": 148,
|
|
814
|
+
"×": 149,
|
|
815
|
+
"%": 150,
|
|
816
|
+
"↑": 151,
|
|
817
|
+
"→": 152,
|
|
818
|
+
"←": 153,
|
|
819
|
+
"*": 154,
|
|
820
|
+
"&": 156,
|
|
821
|
+
"[await]": 0x02,
|
|
735
822
|
}
|
|
736
823
|
|
|
737
824
|
def encode_battle_text(text: str) -> bytearray:
|
|
@@ -742,7 +829,7 @@ class EnemyCollection:
|
|
|
742
829
|
# Check for multi-char sequences first (longest match)
|
|
743
830
|
matched = False
|
|
744
831
|
for length in range(min(10, len(text) - i), 0, -1):
|
|
745
|
-
substr = text[i:i+length]
|
|
832
|
+
substr = text[i : i + length]
|
|
746
833
|
if substr in BATTLE_CHAR_MAP:
|
|
747
834
|
result.append(BATTLE_CHAR_MAP[substr])
|
|
748
835
|
i += length
|
|
@@ -786,10 +873,9 @@ class EnemyCollection:
|
|
|
786
873
|
|
|
787
874
|
# write pointer at the correct position based on monster_id
|
|
788
875
|
pointer_addr = PSYCHOPATH_POINTER_ADDRESS + enemy.monster_id * 2
|
|
789
|
-
patch[pointer_addr] = bytearray(
|
|
790
|
-
pointer_value & 0xFF,
|
|
791
|
-
|
|
792
|
-
])
|
|
876
|
+
patch[pointer_addr] = bytearray(
|
|
877
|
+
[pointer_value & 0xFF, (pointer_value >> 8) & 0xFF]
|
|
878
|
+
)
|
|
793
879
|
|
|
794
880
|
# write message to rom
|
|
795
881
|
patch[current_data_addr] = message_bytes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/allies/ally.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/battles/music.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/dialogs/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/enemies/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/items/classes.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{smrpgpatchbuilder-5.0.0 → smrpgpatchbuilder-5.0.1}/src/smrpgpatchbuilder/datatypes/items/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|