Mother 3/Battle tables info chunk: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(No difference)

Revision as of 23:12, 12 June 2017

Overview

PSI data, Item data, Battle skills table and Battle actions table all share this group of 0x28 (40) bytes.

It is called Battle Info chunk.

This is a chunk of bytes of MOTHER 3.

Format

Chunk view

       00   01   02   03   04   05   06   07   08   09   0A   0B   0C   0D   0E   0F
    +--------------------------------------------------------------------------------
00  | [        A        ] [        B        ] [        C        ] [   D   ] [   E   ]
10  | [   F   ] [G ] [H ] [        I        ] [        J        ] [   K   ] [   L  ->
20  | <-  L   ] [   M   ] [N ] [O ] [   P   ]

Effect

Based on the value of these bytes, the action/item/PSI does different things in battle.
These are the possible values:

  • 00 - Random Damage (High/Low HP values)
  • 01 - Attack Based Damage (Uses Attack multiplier)
  • 02 - PSI Random Damage (High/Low HP values)
  • 03 - HP Healing
  • 04 - HP Healing
  • 05 - PP Healing
  • 06 - PP Healing / Shield Removal
  • 07 - Damageless Actions (?)
  • 08 - Damageless Actions

Element

These bytes determine what elemental type of damage the action/item/PSI deals.
These are the possible values:

  • 00 - Neutral
  • 01 - Fire
  • 02 - Freeze
  • 03 - Thunder
  • 04 - Bomb

Target

These bytes determine who will be targeted by the use of the action/item/PSI.
These are the possible values:

  • 00 - To the character/enemy who uses it
  • 01 - Choose one character
  • 02 - Choose one character
  • 03 - To all characters
  • 04 - To all characters
  • 05 - To a random character
  • 06 - Two times to a random number of character slots
  • 07 - Three times to a random number of character slots
  • 08 - Four times to a random number of character slots
  • 09 - Five times to a random number of character slots
  • 0A - Six times to a random number of character slots
  • 0B - Eight times to a random number of character slots
  • 0C - Choose one character
  • 0D - Choose one enemy
  • 0E - To all enemies
  • 0F - To a random enemy
  • 10 - Twice to random enemies
  • 11 - Thrice to random enemies
  • 12 - Four times to random enemies
  • 13 - Five times to random enemies
  • 14 - Choose one enemy
  • 15 - To a random entity on the field
  • 16 - To all the ones on the field
  • 17 - Unselectable action/item/PSI
  • 18 - Can only choose the first character
  • 19 - Can only choose the third character
  • 1A - Can only choose the second character
  • 1B - Can only choose the fourth character

Attack multiplier

If the Effect byte is different from 01, these bytes go unused.
The first byte is the value that multiplies the character's/enemy's Attack.
Together with weaknesses, defense and shields, the result determines the damage output.

Lower and upper HP/PP values

The lower and upper HP/PP values indicate the range of recovery for recovery-based actions/items/PSI and the range of damage for random damage-based ones. Each value uses 16 bits.

Status ailment

This value determines what the action/item/PSI heals, if it heals the target, or deals, if it damages the target. The values are indexed by the Statuses text list.

Status chance

This value determines the probability that the status gets applied.
Here's an example:

Let W = enemy weakness value against this affliction
(W := enemy_weakness_table[statuses])

Let C = affliction chance

Let R = random number from 0 to 99, inclusive

If R < (C * W / 100): status afflicted
Else: status not afflicted

For example, say you're using PK Freeze against a Monkalrus. The Monkalrus has a solidification weakness value of 30. PK Freeze's affliction chance is 8. So,

    If R < (8 * 30 / 100)
or, if R < 2.4
or, if R < 2 (the game does not use fractions here; the quotient is always rounded down)

That is, PK Freeze has a 2% chance of solidifying a Monkalrus.

Notes:

  • Statuses without values in the weaknesses of enemy table use the value of 0x64 (100).
  • Status value 0x10 (16) is the Defend stance.

Status action

This value gets used only if the action/item/PSI doesn't deal damage.
If the first byte's value is 00, the action/item/PSI tries to heal the status. Otherwise, the action/item/PSI tries to inflict the status.
If the action/item/PSI deals damage, it can only inflict the status.

Priority

This value determines which actions/items/PSIs go first. The lower it is, the more priority the action/item/PSI has.
For same values of priority, Speed is used to calculate the order.

Battle text

This value is a pointer to the entry in the Battle text table that must be displayed when using the action/item/PSI.

Animations

These bytes manage which animations get played by the use of actions/items/PSIs.
Byte 1E, if different from 00, will make the background darker while the animation plays.
Byte 1F is the battle animation number.
Byte 20 is the number of the animation that plays only if the action/item/PSI hits the target, otherwise it won't play. This animation also prints the damage/healing numbers.
Byte 21 seems unused.

It is not fully known how byte 1E and 1F correspond to the battle animations entry table.

Sound effect

Bytes 22 and 23 determine which sound effect to play before printing the text of the action/item/PSI.
This number corresponds to the song pointer table, and not to the sound player songlist.

Miss chance

This is the probability of the action/item/PSI to miss.
It's in percentage.
For example, the value of 0x46, of Flint's Power Smash, means that the skill has a 70% chance of missing.

Smash chance

This is the probability of the action/item/PSI to get a smash.
It's in percentage.
For example, normal attacks have a value of 0x03, so they have a 3% chance of doing a smash.

Redirectable

If these bytes have a value of 0, if the target gets killed during the turn but before the enemy/character acts, the action/item/PSI isn't used. This isn't a problem for multiple-target actions/items/PSIs.