This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
battle_draft [2020/01/17 10:18] – [Run Buffering] simbu | battle_draft [2020/01/26 05:37] – [The Timer System] simbu | ||
---|---|---|---|
Line 7: | Line 7: | ||
=====Damage Calculation.===== | =====Damage Calculation.===== | ||
Refer to [[https:// | Refer to [[https:// | ||
- | Refer to [[https:// | + | The [[formulas]] wiki page has more details about specific multipliers, |
+ | Refer to [[https:// | ||
+ | The [[spell data]] wiki page has a few tables of most magic spells.\\ | ||
Refer to [[https:// | Refer to [[https:// | ||
Refer to [[https:// | Refer to [[https:// | ||
Line 20: | Line 22: | ||
Base damage is modified depending on various status effects and conditions, such as critical hits, berserk status, using the jump command, hitting elemental/ | Base damage is modified depending on various status effects and conditions, such as critical hits, berserk status, using the jump command, hitting elemental/ | ||
Example, hitting a mage enemy with a mage killing weapon does increases base damage by 4x.\\ | Example, hitting a mage enemy with a mage killing weapon does increases base damage by 4x.\\ | ||
- | Tables of all the different modifiers listed [[Formulas#Damage | + | Tables of all the different modifiers listed [[Formulas# |
\\ | \\ | ||
After all these modifiers, you are left with an attack value, which is then multiplied by a random number between 1 and 1.5, and then defense is subtracted. Note the multiplication is before the subtraction, | After all these modifiers, you are left with an attack value, which is then multiplied by a random number between 1 and 1.5, and then defense is subtracted. Note the multiplication is before the subtraction, | ||
+ | ** Damage Per Hit = Final Attack Power * (Random between 1 and 1.5) - Target Defense. ** | ||
\\ | \\ | ||
Its also important to note that defense is doubled if the target is in the back row, including enemy targets. An enemy is backrow if the “frontmost” enemy sprite does not vertically share any space with target. The backrow bit does not affect this defense doubling. \\ | Its also important to note that defense is doubled if the target is in the back row, including enemy targets. An enemy is backrow if the “frontmost” enemy sprite does not vertically share any space with target. The backrow bit does not affect this defense doubling. \\ | ||
Line 33: | Line 36: | ||
**Accuracy** is **weapon base accuracy + level/4**. \\ | **Accuracy** is **weapon base accuracy + level/4**. \\ | ||
\\ | \\ | ||
- | Several things effect accuracy as well, most notably being in the back row. If you don’t have the backrow | + | Several things effect accuracy as well, most notably being in the back row. If you don’t have the longrange |
\\ | \\ | ||
For each attack multiplier, a random number is rolled, and based on accuracy its determined if it hits or not. So for 10 attacks with 80% accuracy, about 8 of them should hit, though this could be more or less.\\ | For each attack multiplier, a random number is rolled, and based on accuracy its determined if it hits or not. So for 10 attacks with 80% accuracy, about 8 of them should hit, though this could be more or less.\\ | ||
\\ | \\ | ||
However there is a chance for evading attacks. Enemies are bugged such that evasion isn't loaded unless set by their script, which only kainazzo and valvalis do. For those 2 and your party members however, you have an evade % and evade multipliers, | However there is a chance for evading attacks. Enemies are bugged such that evasion isn't loaded unless set by their script, which only kainazzo and valvalis do. For those 2 and your party members however, you have an evade % and evade multipliers, | ||
- | For example, at fabul in the FE randomizer, Valvalis has 5 evades at 70% chance... and thus she will usually dodge 3-4 of your attacks. If you don't land more attacks than she evades, you won't do any damage. \\ | + | For example, at Fabul in the FE randomizer, Valvalis has 5 evades at 70% chance... and thus she will usually dodge 3-4 of your attacks. If you don't land more attacks than she evades, you won't do any damage. \\ |
\\ | \\ | ||
Finally, once the number of landed hits is calculated, this is multiplied by the damage per hit, and you have your final damage. \\ | Finally, once the number of landed hits is calculated, this is multiplied by the damage per hit, and you have your final damage. \\ | ||
\\ | \\ | ||
+ | **Damage Dealt = Damage Per Hit * Number of Hits ** | ||
====Extra Notes==== | ====Extra Notes==== | ||
---- | ---- | ||
Line 57: | Line 61: | ||
Once crucial note is Rosa’s aim ability sets evasion to 0%, and rosa’s accuracy to 255, so she can ignore val's tornado (beware of using this in the middle slot though, since the accuracy increase will overflow the value, to about 65% accuracy). \\ | Once crucial note is Rosa’s aim ability sets evasion to 0%, and rosa’s accuracy to 255, so she can ignore val's tornado (beware of using this in the middle slot though, since the accuracy increase will overflow the value, to about 65% accuracy). \\ | ||
=====Magic Damage===== | =====Magic Damage===== | ||
- | Magic damage is handled much the same as physical damage is, except spell power is drawn from a table. | + | Magic damage is handled much the same as physical damage is, except spell power is drawn from a table. |
\\ | \\ | ||
Accuracy and spell attack modifiers are also handled similar to physical system.\\ | Accuracy and spell attack modifiers are also handled similar to physical system.\\ | ||
Line 67: | Line 71: | ||
\\ | \\ | ||
Just like physical damage, spell damage per hit is spell power after modifiers, times random number between 1 and 1.5, minus magic defense.\\ | Just like physical damage, spell damage per hit is spell power after modifiers, times random number between 1 and 1.5, minus magic defense.\\ | ||
+ | \\ | ||
+ | If a spell has the option to be single cast, or multi-targeted, | ||
\\ | \\ | ||
Enemies are bugged such that magic evasion is never applied, but for characters you can calculate the magic evade based on stats and equipment, and magic evade multipliers based on stats. \\ | Enemies are bugged such that magic evasion is never applied, but for characters you can calculate the magic evade based on stats and equipment, and magic evade multipliers based on stats. \\ | ||
Line 74: | Line 80: | ||
=====The ATB System===== | =====The ATB System===== | ||
[[https:// | [[https:// | ||
- | [[https:// | + | [[https:// |
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
==== Relative Agility ==== | ==== Relative Agility ==== | ||
---- | ---- | ||
- | At the start of every fight, FF4 runs a calculation to determine the "base speed" of every character | + | At the start of every fight, FF4 runs a calculation to determine the "base speed" of every character. We refer to this as **Relative Agility (RA)**. This is how many atb ticks the character will have to wait after their last action until they can join the character queue. \\ |
\\ | \\ | ||
In order to keep fights a somewhat consistent speed, the vanilla game determines everyone' | In order to keep fights a somewhat consistent speed, the vanilla game determines everyone' | ||
Line 93: | Line 102: | ||
However, FF4 also only allows 1 timer to resolve every atb tick, so it has a pointer that loops thru the characters and enemies, and if a timer is expired on the target, processes that specific timer. If no timer is expired it moves on.\\ | However, FF4 also only allows 1 timer to resolve every atb tick, so it has a pointer that loops thru the characters and enemies, and if a timer is expired on the target, processes that specific timer. If no timer is expired it moves on.\\ | ||
\\ | \\ | ||
- | This is a pretty complicated topic, but the gist of this is, if more then 1 timer is expired on an atb tick, the game handles only 1 of the timers, then advances to the next atb tick. In practice, this means if you add timers quickly enough, the game must handle the actions in character order.\\ | + | This is a pretty complicated topic, but the gist of this is, if more then 1 timer is expired on an atb tick, the game handles only 1 of the timers, then advances to the next atb tick. In practice, this means if you add timers quickly enough, the game must handle the actions in character order.\\ |
+ | If you want to see this in action, watch the [[https:// | ||
\\ | \\ | ||
As well, since each person can have multiple timers on them at once, and only 1 can be processed each time this can lead to some timers never getting processed. An example of this is if you use enough very fast zerkers against plague, even when the count reaches 0, your characters won't die, as it processes the attack timers before the count timer. \\ | As well, since each person can have multiple timers on them at once, and only 1 can be processed each time this can lead to some timers never getting processed. An example of this is if you use enough very fast zerkers against plague, even when the count reaches 0, your characters won't die, as it processes the attack timers before the count timer. \\ | ||
+ | This can be see in the [[https:// | ||
\\ | \\ | ||
This can also lead to virus/sap, wall, and other status effects never running out. \\ | This can also lead to virus/sap, wall, and other status effects never running out. \\ | ||
Line 105: | Line 116: | ||
Its also interesting to look at how you get your turn, first you have to be added to the character queue, then next atb tick the menu can pop up, if you are fast enough, you can input an action that atb (basically BS 6 only), and finally the the action you input gets added to the timer system at the end of the next atb cycle. This means there is always at least 3 atb ticks of delay from when a character gets their turn, and your action goes off, so especially at the start of battles, this can make it difficult to perform actions such as throwing a star-veil against wyvern.\\ | Its also interesting to look at how you get your turn, first you have to be added to the character queue, then next atb tick the menu can pop up, if you are fast enough, you can input an action that atb (basically BS 6 only), and finally the the action you input gets added to the timer system at the end of the next atb cycle. This means there is always at least 3 atb ticks of delay from when a character gets their turn, and your action goes off, so especially at the start of battles, this can make it difficult to perform actions such as throwing a star-veil against wyvern.\\ | ||
+ | ==== Speed Modifier ==== | ||
+ | To handle the slow and fast spells, the game uses a speed modifier during battle. Initially this value starts at 16, and can range between 12, and 32. Any ATB delay is multiplied by speed mod/16, rounded down. This means if someone has a delay of 5, and their speed mod is 32, it would now take 10 atb ticks to process. \\ | ||
+ | \\ | ||
+ | Slow increases the speed mod by 8, and silkweb increases it by 16. Fast decreases it by 3, and hermes is -8. Normally using fast isn't worth it, as you can only reduce delay by 3/4, but sometimes it can be worth it. Notably, max application of fast will take meteo cast time from 20 atb ticks, to 15. On the other hand, it can be useful in berserk scenerios, as RA 2 will become RA 1 with just 1 cast of fast. In the zeromus fight this is less useful, as blackhole resets the speed mod on the party (but not zeromus). \\ | ||
+ | \\ | ||
==== Battle Speed==== | ==== Battle Speed==== | ||
---- | ---- |