Changes
Jump to navigation
Jump to search
New Page to explain some of FF7's Targeting System.
== Targeting Data ==
Before targeting is explained in full, some information of rows must be understood. There are two or three rows in any battle. Most normal battles have two rows, allies and enemies. Pincer Attacks and Side Attacks have three rows. Two enemy rows for pincer attacks and one for side attacks.
Furthermore, under most conditions, a "viable target" is a battle participant (enemy or ally) that is not inflicted with "Death".
Targeting is set by a single byte with eight different effects for each bit that is set:
{| border="0" cellpadding="3" cellspacing="1" style="background: rgb(0,0,0)" align="center"
!style="background:rgb(204,204,204)" | Bit
!style="background:rgb(204,204,204)" | Effect on Target Selection
!style="background:rgb(204,204,204)" | Explanation
|-
|style="background:rgb(255,255,255)" | 01h
|style="background:rgb(255,255,255)" | Enable Selection
|style="background:rgb(255,255,255)" | Cursor will move to the battle field and a target can be selected with the constraints in the following.
|-
|style="background:rgb(255,255,255)" | 02h
|style="background:rgb(255,255,255)" | Start Cursor on Enemy Row
|style="background:rgb(255,255,255)" | Cursor will start on the first enemy row.
|-
|style="background:rgb(255,255,255)" | 04h
|style="background:rgb(255,255,255)" | Multiple Targets by Default
|style="background:rgb(255,255,255)" | Cursor will select all targets in a given row.
|-
|style="background:rgb(255,255,255)" | 08h
|style="background:rgb(255,255,255)" | Toggle Multiple/Single Targets
|style="background:rgb(255,255,255)" | Caster can switch cursor between multiple targets or single targets.
|-
|style="background:rgb(255,255,255)" | 10h
|style="background:rgb(255,255,255)" | One Row Only
|style="background:rgb(255,255,255)" | Cursor will only target allies or enemies as defined in 02h and cannot be moved from the row.
|-
|style="background:rgb(255,255,255)" | 20h
|style="background:rgb(255,255,255)" | "Short Range" (Physical attacks only?)
|style="background:rgb(255,255,255)" | If either the target or the caster is not in the front of their row, the target will take half damage.
|-
|style="background:rgb(255,255,255)" | 40h
|style="background:rgb(255,255,255)" | All Rows
|style="background:rgb(255,255,255)" | Cursor will select viable targets
|-
|style="background:rgb(255,255,255)" | 80h
|style="background:rgb(255,255,255)" | Random Target among Selected
|style="background:rgb(255,255,255)" | When multiple targets are selected, one will be selected at random to be the receiving target. Cursor will cycle among all viable targets.
|}
Targets are set in three places. On Commands, on Attacks, and on Weapons. The Command's target (if not NULL [FFh]) trumps any target information provided by the Attack or the Weapon. As such, it is analyzed first. Any additional settings are added through the weapon or attack.
<br/>This is further trumped by "Confuse" and "Berserk" which will set the target data to C0h and 97h respectively. Confuse will pick any available command to perform and Berserk will just attack with the equipped weapon.
Although the cursor can move to an ally with the "Death" status, if no targets selected to receive the attack are viable the attack will "re-target". A dead enemy cannot be targeted, dead allies can. This is true for monsters and PCs.
A "re-target" takes the original targeting data and multiple targets and random is added.
Eg1: Fire (Target of 0Fh) is selected to be performed on an enemy. That action is put into the queue, but the enemy dies before Fire is performed. Fire's targeting data (0Fh) is then and'd with 87h.
New Target = (0Fh And 87h) = 87h ' random enemy
Eg2: Cure (Target of 0Dh) is queued to heal a suffering ally. Before Cure is cast, the ally dies. Cure is re-targeted:
New Target = (0Dh And 87h) = 85h ' random ally
==Examples:==
Shield: This has a target of 00h. This will only allow the caster to perform the spell on itself. Cursor can not be moved because 01h is not set.
Summons: Target of 17h. A PC cannot perform a summon that attacks on his/her own character or row. It will only target all of any enemy row, but only one row.
Some of Aeris's and Cait Sith's Limit Breaks: Set at 15h. Same as above, but only the caster's row.
Most weapons: 23h. This makes some of the weapons into a short range attack. If the "Long Range" Materia is equipped, bit 20h of this targeting data is forced to 0.
Comet2/Berserk: 97h. This will target one target of the enemy row at random.
Roulette: C7h. Will choose one target at random from among all battle participants not inflicted with "Death" status.
Before targeting is explained in full, some information of rows must be understood. There are two or three rows in any battle. Most normal battles have two rows, allies and enemies. Pincer Attacks and Side Attacks have three rows. Two enemy rows for pincer attacks and one for side attacks.
Furthermore, under most conditions, a "viable target" is a battle participant (enemy or ally) that is not inflicted with "Death".
Targeting is set by a single byte with eight different effects for each bit that is set:
{| border="0" cellpadding="3" cellspacing="1" style="background: rgb(0,0,0)" align="center"
!style="background:rgb(204,204,204)" | Bit
!style="background:rgb(204,204,204)" | Effect on Target Selection
!style="background:rgb(204,204,204)" | Explanation
|-
|style="background:rgb(255,255,255)" | 01h
|style="background:rgb(255,255,255)" | Enable Selection
|style="background:rgb(255,255,255)" | Cursor will move to the battle field and a target can be selected with the constraints in the following.
|-
|style="background:rgb(255,255,255)" | 02h
|style="background:rgb(255,255,255)" | Start Cursor on Enemy Row
|style="background:rgb(255,255,255)" | Cursor will start on the first enemy row.
|-
|style="background:rgb(255,255,255)" | 04h
|style="background:rgb(255,255,255)" | Multiple Targets by Default
|style="background:rgb(255,255,255)" | Cursor will select all targets in a given row.
|-
|style="background:rgb(255,255,255)" | 08h
|style="background:rgb(255,255,255)" | Toggle Multiple/Single Targets
|style="background:rgb(255,255,255)" | Caster can switch cursor between multiple targets or single targets.
|-
|style="background:rgb(255,255,255)" | 10h
|style="background:rgb(255,255,255)" | One Row Only
|style="background:rgb(255,255,255)" | Cursor will only target allies or enemies as defined in 02h and cannot be moved from the row.
|-
|style="background:rgb(255,255,255)" | 20h
|style="background:rgb(255,255,255)" | "Short Range" (Physical attacks only?)
|style="background:rgb(255,255,255)" | If either the target or the caster is not in the front of their row, the target will take half damage.
|-
|style="background:rgb(255,255,255)" | 40h
|style="background:rgb(255,255,255)" | All Rows
|style="background:rgb(255,255,255)" | Cursor will select viable targets
|-
|style="background:rgb(255,255,255)" | 80h
|style="background:rgb(255,255,255)" | Random Target among Selected
|style="background:rgb(255,255,255)" | When multiple targets are selected, one will be selected at random to be the receiving target. Cursor will cycle among all viable targets.
|}
Targets are set in three places. On Commands, on Attacks, and on Weapons. The Command's target (if not NULL [FFh]) trumps any target information provided by the Attack or the Weapon. As such, it is analyzed first. Any additional settings are added through the weapon or attack.
<br/>This is further trumped by "Confuse" and "Berserk" which will set the target data to C0h and 97h respectively. Confuse will pick any available command to perform and Berserk will just attack with the equipped weapon.
Although the cursor can move to an ally with the "Death" status, if no targets selected to receive the attack are viable the attack will "re-target". A dead enemy cannot be targeted, dead allies can. This is true for monsters and PCs.
A "re-target" takes the original targeting data and multiple targets and random is added.
Eg1: Fire (Target of 0Fh) is selected to be performed on an enemy. That action is put into the queue, but the enemy dies before Fire is performed. Fire's targeting data (0Fh) is then and'd with 87h.
New Target = (0Fh And 87h) = 87h ' random enemy
Eg2: Cure (Target of 0Dh) is queued to heal a suffering ally. Before Cure is cast, the ally dies. Cure is re-targeted:
New Target = (0Dh And 87h) = 85h ' random ally
==Examples:==
Shield: This has a target of 00h. This will only allow the caster to perform the spell on itself. Cursor can not be moved because 01h is not set.
Summons: Target of 17h. A PC cannot perform a summon that attacks on his/her own character or row. It will only target all of any enemy row, but only one row.
Some of Aeris's and Cait Sith's Limit Breaks: Set at 15h. Same as above, but only the caster's row.
Most weapons: 23h. This makes some of the weapons into a short range attack. If the "Long Range" Materia is equipped, bit 20h of this targeting data is forced to 0.
Comet2/Berserk: 97h. This will target one target of the enemy row at random.
Roulette: C7h. Will choose one target at random from among all battle participants not inflicted with "Death" status.