Game mechanics: Difference between revisions
m (→Frame data) |
|||
(27 intermediate revisions by 7 users not shown) | |||
Line 2: | Line 2: | ||
==Physical damage== | ==Physical damage== | ||
To calculate physical damage ( | '''To calculate physical damage (i.e. any damage not resulting from a fire/electric [[Weapons#Special attacks|special attack]] or a [[Techniques|Technique]])''': | ||
1. Begin by calculating the equipment [[ATP]] (EA): | |||
<code>EA = [MinWA + (Grind x 2) + FA + BaA] x [ATR + 1.0]</code> | |||
* MinWA = Minimum possible weapon ATP | |||
* FA = [[Frames|Frame]] ATP | |||
* BaA = [[Barriers|Barrier]] ATP | |||
* ATR = Weapon [[Weapon attributes|attribute %]] | |||
Next, | 2. Next, calculate the bonuses from {{Shifta}} (SA) and ATP variance: | ||
<code>SA = [BA x Shifta] + [(MWA - MinWA) x Shifta]</code> | <code>SA = [BA x Shifta] + [(Random Float) x (MWA - MinWA) x Shifta]</code> | ||
* | * BA = [[Stats#Total_stats_and_base_stats|Base ATP]] | ||
* | * Random Float = A random value in range [0, 1) for the ATP variance per attack. | ||
* Shifta = Shifta | * Shifta = {{Shifta|n}} [[Shifta#Level_progression|base power in %]] | ||
* MWA = Maximum possible weapon ATP | * MWA = Maximum possible weapon ATP | ||
3. Then, determine the minimum and maximum Variance (V): | |||
<code>V(min) = -CV</code> | |||
* CV = [[Class_comparison#Maximum_stats|Class Variance]] | |||
**5 for [[Hunters]] | |||
**3 for [[Rangers]] | |||
**2 for [[Forces]] | |||
<code>V(max) = MWA - MinWA</code> | |||
4. To determine your final ATP, add your BA, EA, SA and V together: | |||
<code>ATP = BA + EA + SA + V</code> | |||
* V is a random value between V(min) and V(max) | |||
5. Finally, to calculate your damage on an [[Monsters|enemy]]: | |||
<code>Damage = [(ATP - Enemy DFP)/5] x Attack modifier</code> | |||
* '''Attack modifier''' is: | |||
** Normal: {{Note|9/10|0.9}} | |||
** Heavy: {{Note|17/9|1.89}} | |||
** {{Note|Excluding Fire damage, Lightning damage, HP cut, and Sacrificial specials|Special|}}: {{Note|5/9|0.56}} | |||
** [[Weapons#Sacrificial damage increase|Sacrificial]]: {{Note|10/3|3.33}} | |||
** {{Sword|rare|Vjaya}}: {{Note|17/3|5.67}} | |||
5a. If the attack is a critical hit, calculate critical damage: | |||
<code>Critical damage = Damage x 1.5</code> | |||
* The chance for an attack to be a critical hit is calculated with the following formula: | |||
<code>Critical hit rate = [LCK / 5]%</code> | |||
<code> | ''Note: the game doesn't round up damage values and instead truncates them. E.g. if the final calculated damage is <code>100.92</code>, the real damage output is <code>100</code>. | ||
''Note: the formulas above show that a weapons attribute percentages are only applied to its minimum possible weapon ATP. E.g. if a weapon has 300-400 ATP and 100% in an attribute, the ATP is increased to 600-700 (not 600-800). The variable spread remains a fixed value. | |||
''Note: the ATP values shown ingame are always the maximum ATP values. E.g. for a [[HUcast]] with max ATP, a BA value of 1639 is shown in the menu in golden font. In reality, the value is randomly picked between [[Class_comparison#Maximum_stats|1634 to 1639]]. The same applies to weapons: a weapon with 900-950 ATP adds 950 to the total stats in the menu (the formulas above take all of this into consideration). | |||
==Knockdown== | |||
Characters will be knocked down if a single attack does more than 25% of their max [[HP]]. | |||
==Accuracy== | ==Accuracy== | ||
'''To calculate accuracy''': | |||
1. Begin by calculating "Effective" [[ATA]]: | |||
<code>Effective ATA = (Total ATA) * (Attack Type modifier) * (Combo Step modifier)</code> | <code>Effective ATA = (Total ATA) * (Attack Type modifier) * (Combo Step modifier)</code> | ||
* '''Attack Type modifier''' is: | |||
** Normal: 1.0 | |||
** Heavy: 0.7 | |||
** Special: 0.5 | |||
* '''Combo Step modifier''' is: | |||
** First attack: 1.0 | |||
** Second attack: 1.3 | |||
** Third attack: 1.69 | |||
2. Next, calculate the [[Monsters|enemy's]] "Effective" [[EVP]]: | |||
<code>Effective EVP = (Enemy EVP) * (Status Effect modifier)</code> | <code>Effective EVP = (Enemy EVP) * (Status Effect modifier)</code> | ||
* '''Status Effect modifier''' is: | |||
** {{Paralyzed}} or {{Shocked}}: 0.85 | |||
** {{Frozen}}: 0.7 | |||
** Both: 0.55 | |||
** No status: 1 | |||
3. Finally, calculate accuracy using the appropriate melee or ranged accuracy formula: | |||
* Accuracy is | <code>Melee Attack Accuracy = (Effective ATA) - ((Effective EVP) * 0.2)</code><br> | ||
<code>Ranged Attack Accuracy = (Effective ATA) - ((Effective EVP) * 0.2) - (Distance Penalty)</code> | |||
* The calculated numbers are percentages. For accuracy values above <code>100</code>, the given attack hits 100%. For negative values, the attack always misses (0%). | |||
* '''Distance Penalty''' is <code>Distance * 0.33</code> if the character is a [[Hunter]] or [[Force]] without {{Unit|rare|Smartlink}} (see Smartlink page for more detail), and 0 otherwise. | |||
The accuracy check does not occur for certain projectiles if the target has moved too far when the projectile reaches the target's hitbox. This distance is 8 units for bullets. If the target has moved towards the player when manual evasion occurs, the "MISS" text is displayed. Certain weapons create attacks with launcher projectiles that do not have a manual evasion check. | The accuracy check does not occur for certain projectiles if the target has moved too far when the projectile reaches the target's hitbox. This distance is 8 units for bullets. If the target has moved towards the player when manual evasion occurs, the "MISS" text is displayed. Certain weapons create attacks with launcher projectiles that do not have a manual evasion check. | ||
Line 62: | Line 96: | ||
Slicer projectiles follow different rules for collision. The projectile must come within 10 units of its intended target's original position for any collision check to occur. When this condition is met, the projectile connects with the target if the distance between the target's hitbox and the slicer's original position is less than the weapon's max distance. Due to consideration of the target's hitbox, slicers rarely experience manual evasion on most enemies. | Slicer projectiles follow different rules for collision. The projectile must come within 10 units of its intended target's original position for any collision check to occur. When this condition is met, the projectile connects with the target if the distance between the target's hitbox and the slicer's original position is less than the weapon's max distance. Due to consideration of the target's hitbox, slicers rarely experience manual evasion on most enemies. | ||
Projectiles that are both subject to manual evasion and specifically fired at a target will have a lifetime calculated by <code>(Distance to Target) / Speed</code>. It is possible for the game to destroy the projectile before it physically collides with the target's hitbox if the target was pushed back. There will be no "MISS" text in this case. This is commonly seen when using Heavy Attacks with weapons such as L&K38 Combat and Yasminkov 9000M at a distance. | Projectiles that are both subject to manual evasion and specifically fired at a target will have a lifetime calculated by <code>(Distance to Target) / Speed</code>. It is possible for the game to destroy the projectile before it physically collides with the target's hitbox if the target was pushed back. There will be no "MISS" text in this case. This is commonly seen when using Heavy Attacks with weapons such as {{Gun|rare|L&K38 Combat}} and {{Gun|rare|Yasminkov 9000M}} at a distance. | ||
== | ==Techniques== | ||
Technique damage formula | ===[[Techniques|Technique]] damage formula=== | ||
<code> | <code>[(MST + TBP)/5] x (1.0 + CB + WB + FB + MB) x (1 - RES)</code> | ||
* TBP: Technique Base Power | * TBP: [[Game mechanics#Technique Base Power|Technique Base Power]] | ||
* CB: Class | * CB: [[Techniques#Class-based boosts|Class Boost]] | ||
* WB: Weapon | * WB: [[Techniques#Weapons|Weapon Boost]] | ||
* MB: Merge | * FB: [[Techniques#Frames|Frame Boost]] | ||
* RES: Resistance | * MB: [[Techniques#Barriers|Merge Boost]] | ||
* RES: [[Stats#Resistance stats|Enemy Resistance]] | |||
Amount healed by Resta (including Leilla Photon Blast): | ===Resta power=== | ||
'''Amount healed by {{Resta}} (including {{PSO icon|Leilla|link=}}[[Photon Blasts#Leilla|Leilla]] [[Photon Blasts|Photon Blast]])''': | |||
<code>MST * 0.5 + TBP</code> | <code>MST * 0.5 + TBP</code> | ||
{|class="wikitable" style="text-align: left | ===Technique Base Power=== | ||
!|Technique | * TLv = Technique level | ||
!|Base Power Formula | {|class="wikitable sortable" style="text-align:left" | ||
!|TP Cost Formula | |- | ||
!class="unsortable" |Technique | |||
!class="unsortable" |Base Power Formula | |||
!class="unsortable" |TP Cost Formula | |||
|- | |- | ||
|Foie | !style="text-align:left"|{{Foie}} | ||
| | | | ||
Lv. 1-15: <code>[50 * (TLv - 1)] + 110</code><br> | |||
Lv. 16-30: <code>[65 * (TLv - 1)] - 85</code> | |||
|[1.3 * (TLv - 1)] + 5 | |<code>[1.3 * (TLv - 1)] + 5</code> | ||
|- | |- | ||
|Gifoie | !style="text-align:left"|{{Gifoie}} | ||
| | | | ||
Lv. 1-15: <code>[26 * (TLv - 1)] + 260</code><br> | |||
Lv. 16-30: <code>[42 * (TLv - 1)] + 30</code> | |||
|[0.37 x (TLv - 1)] + 20 | |<code>[0.37 x (TLv - 1)] + 20</code> | ||
|- | |- | ||
| | !style="text-align:left"|{{Rafoie}} | ||
| | | | ||
Lv. 1-15: <code>[22 * (TLv - 1)] + 350</code><br> | |||
Lv. 16-30: <code>[21 * (TLv - 1)] + 370</code> | |||
|[0.25 * (TLv - 1)] + 30 | |<code>[0.25 * (TLv - 1)] + 30</code> | ||
|- | |- | ||
|Barta | !style="text-align:left"|{{Barta}} | ||
| | | | ||
Lv. 1-15: <code>[50 * (TLv - 1)] + 50</code><br> | |||
Lv. 16-30: <code>[63 * (TLv - 1)] - 125</code> | |||
|[1.2 * (TLv - 1)] + 4 | |<code>[1.2 * (TLv - 1)] + 4</code> | ||
|- | |- | ||
|Gibarta | !style="text-align:left"|{{Gibarta}} | ||
| | | | ||
Lv. 1-15: <code>[24 * (TLv - 1)] + 230</code><br> | |||
Lv. 16-30: <code>[40 * (TLv - 1)]</code> | |||
|[0.5 * (TLv - 1)] + 25 | |<code>[0.5 * (TLv - 1)] + 25</code> | ||
|- | |- | ||
|Rabarta | !style="text-align:left"|{{Rabarta}} | ||
| | | | ||
Lv. 1-15: <code>[19 * (TLv - 1)] + 400</code><br> | |||
Lv. 16-30: <code>[15 * (TLv - 1)] + 470</code> | |||
|[0.2 * (TLv - 1)] + 35 | |<code>[0.2 * (TLv - 1)] + 35</code> | ||
|- | |- | ||
|Zonde | !style="text-align:left"|{{Zonde}} | ||
| | | | ||
Lv. 1-15: <code>[50 * (TLv - 1)] + 80</code><br> | |||
Lv. 16-30: <code>[55 * (TLv - 1)] + 5</code> | |||
|[1.1 * (TLv - 1)] + 6 | |<code>[1.1 * (TLv - 1)] + 6</code> | ||
|- | |- | ||
|Gizonde | !style="text-align:left"|{{Gizonde}} | ||
| | | | ||
Lv. 1-15: <code>[22 * (TLv - 1)] + 200</code><br> | |||
Lv. 16-30: <code>[38 * (TLv - 1)] - 30</code> | |||
|[0.6 * (TLv - 1)] + 25 | |<code>[0.6 * (TLv - 1)] + 25</code> | ||
|- | |- | ||
|Razonde | !style="text-align:left"|{{Razonde}} | ||
| | | | ||
Lv. 1-15: <code>[16 * (TLv - 1)] + 450</code><br> | |||
Lv. 16-30: <code>[8 * (TLv - 1)] + 565</code> | |||
|[0.3 * (TLv - 1)] + 35 | |<code>[0.3 * (TLv - 1)] + 35</code> | ||
|- | |- | ||
|Grants | !style="text-align:left"|{{Grants}} | ||
| | | | ||
Lv. 1-15: <code>[75 * (TLv - 1)] + 1180</code><br> | |||
Lv. 16-30: <code>[60 * (TLv - 1)] + 1400</code> | |||
|[1.1 * (TLv - 1)] + 45 | |<code>[1.1 * (TLv - 1)] + 45</code> | ||
|- | |- | ||
|Megid | !style="text-align:left"|{{Megid}} | ||
| | | | ||
Lv. 1-15: <code>[3 * (TLv - 1)] + 27</code><br> | |||
Lv. 16-30: <code>[2 * (TLv - 1)] + 42</code> | |||
|[1.05 * (TLv - 1)] + 30 | |<code>[1.05 * (TLv - 1)] + 30</code> | ||
|- | |- | ||
| | !style="text-align:left"|{{Resta}} | ||
| | | | ||
Lv. 1-30: <code>[5 * (TLv - 1)] + 50</code><br> | |||
|<code>[1.2 * (TLv - 1)] + 15</code> | |||
|[ | |- | ||
!style="text-align:left"|{{Anti}} | |||
|style="text-align:center"| - | |||
|<code>[0.5 * (TLv - 1)] + 10</code> | |||
|- | |||
!style="text-align:left"|{{Reverser}} | |||
|style="text-align:center"| - | |||
|style="text-align:center"|20 | |||
|- | |- | ||
| | !style="text-align:left"|{{Shifta}} | ||
| | | | ||
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br> | |||
Duration: <code>[10 * (TLv - 1)] + 30</code> | |||
|[(TLv - 1)] + | |<code>[1.2 * (TLv - 1)] + 15</code> | ||
|- | |- | ||
| | !style="text-align:left"|{{Deband}} | ||
| | | | ||
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br> | |||
Duration: <code>[10 * (TLv - 1)] + 30</code> | |||
|[(TLv - 1)] + 10 | |<code>[(TLv - 1)] + 10</code> | ||
|- | |- | ||
| | !style="text-align:left"|{{Jellen}} | ||
| | | | ||
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br> | |||
Duration: <code>[10 * (TLv - 1)] + 30</code> | |||
|[ | |<code>[(TLv - 1)] + 10</code> | ||
|- | |- | ||
| | !style="text-align:left"|{{Zalure}} | ||
| | | | ||
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br> | |||
|[ | Duration: <code>[10 * (TLv - 1)] + 30</code> | ||
|<code>[0.5 * (TLv - 1)] + 10</code> | |||
|- | |- | ||
|- | |- | ||
| | !style="text-align:left"|{{Ryuker}} | ||
| - | |style="text-align:center"| - | ||
| | |style="text-align:center"|10 | ||
|- | |- | ||
|} | |} | ||
==Special attacks== | ==Special attacks== | ||
: ''Main article: [[Weapons#Special attacks|Special attacks]] | |||
(See also: [[List of weapons with reduced specials]]) | |||
==Frame data== | ==Frame data== |
Latest revision as of 19:05, 13 October 2024
Compilation of formulas and other mechanics.
Physical damage[edit | edit source]
To calculate physical damage (i.e. any damage not resulting from a fire/electric special attack or a Technique):
1. Begin by calculating the equipment ATP (EA):
EA = [MinWA + (Grind x 2) + FA + BaA] x [ATR + 1.0]
- MinWA = Minimum possible weapon ATP
- FA = Frame ATP
- BaA = Barrier ATP
- ATR = Weapon attribute %
2. Next, calculate the bonuses from Shifta (SA) and ATP variance:
SA = [BA x Shifta] + [(Random Float) x (MWA - MinWA) x Shifta]
- BA = Base ATP
- Random Float = A random value in range [0, 1) for the ATP variance per attack.
- Shifta = Shifta base power in %
- MWA = Maximum possible weapon ATP
3. Then, determine the minimum and maximum Variance (V):
V(min) = -CV
- CV = Class Variance
V(max) = MWA - MinWA
4. To determine your final ATP, add your BA, EA, SA and V together:
ATP = BA + EA + SA + V
- V is a random value between V(min) and V(max)
5. Finally, to calculate your damage on an enemy:
Damage = [(ATP - Enemy DFP)/5] x Attack modifier
- Attack modifier is:
- Normal: 0.9
- Heavy: 1.89
- Special: 0.56
- Sacrificial: 3.33
- Vjaya: 5.67
5a. If the attack is a critical hit, calculate critical damage:
Critical damage = Damage x 1.5
- The chance for an attack to be a critical hit is calculated with the following formula:
Critical hit rate = [LCK / 5]%
Note: the game doesn't round up damage values and instead truncates them. E.g. if the final calculated damage is 100.92
, the real damage output is 100
.
Note: the formulas above show that a weapons attribute percentages are only applied to its minimum possible weapon ATP. E.g. if a weapon has 300-400 ATP and 100% in an attribute, the ATP is increased to 600-700 (not 600-800). The variable spread remains a fixed value.
Note: the ATP values shown ingame are always the maximum ATP values. E.g. for a HUcast with max ATP, a BA value of 1639 is shown in the menu in golden font. In reality, the value is randomly picked between 1634 to 1639. The same applies to weapons: a weapon with 900-950 ATP adds 950 to the total stats in the menu (the formulas above take all of this into consideration).
Knockdown[edit | edit source]
Characters will be knocked down if a single attack does more than 25% of their max HP.
Accuracy[edit | edit source]
To calculate accuracy:
1. Begin by calculating "Effective" ATA:
Effective ATA = (Total ATA) * (Attack Type modifier) * (Combo Step modifier)
- Attack Type modifier is:
- Normal: 1.0
- Heavy: 0.7
- Special: 0.5
- Combo Step modifier is:
- First attack: 1.0
- Second attack: 1.3
- Third attack: 1.69
2. Next, calculate the enemy's "Effective" EVP:
Effective EVP = (Enemy EVP) * (Status Effect modifier)
3. Finally, calculate accuracy using the appropriate melee or ranged accuracy formula:
Melee Attack Accuracy = (Effective ATA) - ((Effective EVP) * 0.2)
Ranged Attack Accuracy = (Effective ATA) - ((Effective EVP) * 0.2) - (Distance Penalty)
- The calculated numbers are percentages. For accuracy values above
100
, the given attack hits 100%. For negative values, the attack always misses (0%). - Distance Penalty is
Distance * 0.33
if the character is a Hunter or Force without Smartlink (see Smartlink page for more detail), and 0 otherwise.
The accuracy check does not occur for certain projectiles if the target has moved too far when the projectile reaches the target's hitbox. This distance is 8 units for bullets. If the target has moved towards the player when manual evasion occurs, the "MISS" text is displayed. Certain weapons create attacks with launcher projectiles that do not have a manual evasion check.
Slicer projectiles follow different rules for collision. The projectile must come within 10 units of its intended target's original position for any collision check to occur. When this condition is met, the projectile connects with the target if the distance between the target's hitbox and the slicer's original position is less than the weapon's max distance. Due to consideration of the target's hitbox, slicers rarely experience manual evasion on most enemies.
Projectiles that are both subject to manual evasion and specifically fired at a target will have a lifetime calculated by (Distance to Target) / Speed
. It is possible for the game to destroy the projectile before it physically collides with the target's hitbox if the target was pushed back. There will be no "MISS" text in this case. This is commonly seen when using Heavy Attacks with weapons such as L&K38 Combat and Yasminkov 9000M at a distance.
Techniques[edit | edit source]
Technique damage formula[edit | edit source]
[(MST + TBP)/5] x (1.0 + CB + WB + FB + MB) x (1 - RES)
- TBP: Technique Base Power
- CB: Class Boost
- WB: Weapon Boost
- FB: Frame Boost
- MB: Merge Boost
- RES: Enemy Resistance
Resta power[edit | edit source]
Amount healed by Resta (including Leilla Photon Blast):
MST * 0.5 + TBP
Technique Base Power[edit | edit source]
- TLv = Technique level
Technique | Base Power Formula | TP Cost Formula |
---|---|---|
Foie |
Lv. 1-15: |
[1.3 * (TLv - 1)] + 5
|
Gifoie |
Lv. 1-15: |
[0.37 x (TLv - 1)] + 20
|
Rafoie |
Lv. 1-15: |
[0.25 * (TLv - 1)] + 30
|
Barta |
Lv. 1-15: |
[1.2 * (TLv - 1)] + 4
|
Gibarta |
Lv. 1-15: |
[0.5 * (TLv - 1)] + 25
|
Rabarta |
Lv. 1-15: |
[0.2 * (TLv - 1)] + 35
|
Zonde |
Lv. 1-15: |
[1.1 * (TLv - 1)] + 6
|
Gizonde |
Lv. 1-15: |
[0.6 * (TLv - 1)] + 25
|
Razonde |
Lv. 1-15: |
[0.3 * (TLv - 1)] + 35
|
Grants |
Lv. 1-15: |
[1.1 * (TLv - 1)] + 45
|
Megid |
Lv. 1-15: |
[1.05 * (TLv - 1)] + 30
|
Resta |
Lv. 1-30: |
[1.2 * (TLv - 1)] + 15
|
Anti | - | [0.5 * (TLv - 1)] + 10
|
Reverser | - | 20 |
Shifta |
Lv. 1-30: |
[1.2 * (TLv - 1)] + 15
|
Deband |
Lv. 1-30: |
[(TLv - 1)] + 10
|
Jellen |
Lv. 1-30: |
[(TLv - 1)] + 10
|
Zalure |
Lv. 1-30: |
[0.5 * (TLv - 1)] + 10
|
Ryuker | - | 10 |
Special attacks[edit | edit source]
- Main article: Special attacks
(See also: List of weapons with reduced specials)
Frame data[edit | edit source]
- Phantasy Star Online Blue Burst runs at 30 frames per second ("FPS")
- See Game mechanics/Frame data for individual weapon/technique frame data