Game mechanics: Difference between revisions

From Ephinea PSO Wiki
 
(19 intermediate revisions by 6 users not shown)
Line 2: Line 2:


==Physical damage==
==Physical damage==
'''To calculate physical damage (i.e. any damage not resulting from a [[Weapons#Special attacks|special attack]] or a [[Techniques|Technique]])''':
'''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):
1. Begin by calculating the equipment [[ATP]] (EA):


<code>EA = [WA + FA + BaA + Grind x 2] x [ATR + 1.0]</code>
<code>EA = [MinWA + (Grind x 2) + FA + BaA] x [ATR + 1.0]</code>
* WA = [[Weapons|Weapon]] base ATP
* MinWA = Minimum possible weapon ATP
* FA = [[Frames|Frame]] ATP
* FA = [[Frames|Frame]] ATP
* BaA = [[Barriers|Barrier]] ATP
* BaA = [[Barriers|Barrier]] ATP
* ATR = Weapon [[Weapon attributes|attribute %]]
* ATR = Weapon [[Weapon attributes|attribute %]]


2. Next, add the bonuses from {{Shifta}} (SA, for "{{Shifta|n}} ATP"):
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 = Base ATP
* BA = [[Stats#Total_stats_and_base_stats|Base ATP]]
* Shifta = {{Shifta|n}} Base Power in % (see table below)
* Random Float = A random value in range [0, 1) for the ATP variance per attack.
* Shifta = {{Shifta|n}} [[Shifta#Level_progression|base power in %]]
* MWA = Maximum possible weapon ATP
* MWA = Maximum possible weapon ATP
* MinWA = Minimum possible weapon ATP


3. To determine your final ATP, add your BA, EA, and SA together:
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</code>
<code>ATP = BA + EA + SA + V</code>
* V is a random value between V(min) and V(max)


4. Finally, to calculate your damage on an [[Monsters|enemy]]:
5. Finally, to calculate your damage on an [[Monsters|enemy]]:


<code>Damage = [(ATP - Enemy DFP)/5] x Attack modifier</code>
<code>Damage = [(ATP - Enemy DFP)/5] x Attack modifier</code>
Line 35: Line 45:
** {{Sword|rare|Vjaya}}: {{Note|17/3|5.67}}
** {{Sword|rare|Vjaya}}: {{Note|17/3|5.67}}


4a. If the attack is a critical hit, calculate critical damage:
5a. If the attack is a critical hit, calculate critical damage:


<code>Critical damage = Damage x 1.5</code>
<code>Critical damage = Damage x 1.5</code>


* The chance for an attack to be a critical hit is calculated with the following formula:
* The chance for an attack to be a critical hit is calculated with the following formula:
* <code>Critical hit rate = [LCK/5]%</code>
<code>Critical hit rate = [LCK / 5]%</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==
==Knockdown==
Line 66: Line 82:
** {{Paralyzed}} or {{Shocked}}: 0.85
** {{Paralyzed}} or {{Shocked}}: 0.85
** {{Frozen}}: 0.7
** {{Frozen}}: 0.7
** Both: 0.595
** Both: 0.55
** No status: 1
** No status: 1


3. Finally, to calculate your accuracy:
3. Finally, calculate accuracy using the appropriate melee or ranged accuracy formula:


<code>Accuracy = Effective ATA - (Effective EVP * 0.2)</code>
<code>Melee Attack Accuracy = (Effective ATA) - ((Effective EVP) * 0.2)</code><br>
* Accuracy is further reduced by <code>Distance*0.33</code> if the character is a [[Hunter]] or [[Force]] without {{Unit|rare|Smartlink}} (see Smartlink page for more detail).
<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 83: Line 101:
===[[Techniques|Technique]] damage formula===
===[[Techniques|Technique]] damage formula===


<code>[(MST + TBP)/5] x (1.0 + CB + WB + MB)} x (1 - RES)</code>
<code>[(MST + TBP)/5] x (1.0 + CB + WB + FB + MB) x (1 - RES)</code>


* TBP: [[Game mechanics#Technique Base Power|Technique Base Power]]
* TBP: [[Game mechanics#Technique Base Power|Technique Base Power]]
* CB: Class Bonus
* CB: [[Techniques#Class-based boosts|Class Boost]]
* WB: Weapon Bonus
* WB: [[Techniques#Weapons|Weapon Boost]]
* MB: Merge Bonus
* FB: [[Techniques#Frames|Frame Boost]]
* RES: Resistance
* MB: [[Techniques#Barriers|Merge Boost]]
* RES: [[Stats#Resistance stats|Enemy Resistance]]


===Resta power===
===Resta power===
Line 98: Line 117:
===Technique Base Power===
===Technique Base Power===
* TLv = Technique level
* TLv = Technique level
{|class="wikitable" style="text-align:left;"
{|class="wikitable sortable" style="text-align:left"
!Technique
|-
!Base Power Formula
!class="unsortable" |Technique
!TP Cost Formula
!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. 1-15: <code>[50 * (TLv - 1)] + 110</code><br>
Line 109: Line 129:
|<code>[1.3 * (TLv - 1)] + 5</code>
|<code>[1.3 * (TLv - 1)] + 5</code>
|-
|-
!{{Gifoie}}
!style="text-align:left"|{{Gifoie}}
|
|
Lv. 1-15: <code>[26 * (TLv - 1)] + 260</code><br>
Lv. 1-15: <code>[26 * (TLv - 1)] + 260</code><br>
Line 115: Line 135:
|<code>[0.37 x (TLv - 1)] + 20</code>
|<code>[0.37 x (TLv - 1)] + 20</code>
|-
|-
!{{Rafoie}}
!style="text-align:left"|{{Rafoie}}
|
|
Lv. 1-15: <code>[22 * (TLv - 1)] + 350</code><br>
Lv. 1-15: <code>[22 * (TLv - 1)] + 350</code><br>
Line 121: Line 141:
|<code>[0.25 * (TLv - 1)] + 30</code>
|<code>[0.25 * (TLv - 1)] + 30</code>
|-
|-
!{{Barta}}
!style="text-align:left"|{{Barta}}
|
|
Lv. 1-15: <code>[50 * (TLv - 1)] + 50</code><br>
Lv. 1-15: <code>[50 * (TLv - 1)] + 50</code><br>
Line 127: Line 147:
|<code>[1.2 * (TLv - 1)] + 4</code>
|<code>[1.2 * (TLv - 1)] + 4</code>
|-
|-
!{{Gibarta}}
!style="text-align:left"|{{Gibarta}}
|
|
Lv. 1-15: <code>[24 * (TLv - 1)] + 230</code><br>
Lv. 1-15: <code>[24 * (TLv - 1)] + 230</code><br>
Line 133: Line 153:
|<code>[0.5 * (TLv - 1)] + 25</code>
|<code>[0.5 * (TLv - 1)] + 25</code>
|-
|-
!{{Rabarta}}
!style="text-align:left"|{{Rabarta}}
|
|
Lv. 1-15: <code>[19 * (TLv - 1)] + 400</code><br>
Lv. 1-15: <code>[19 * (TLv - 1)] + 400</code><br>
Line 139: Line 159:
|<code>[0.2 * (TLv - 1)] + 35</code>
|<code>[0.2 * (TLv - 1)] + 35</code>
|-
|-
!{{Zonde}}
!style="text-align:left"|{{Zonde}}
|
|
Lv. 1-15: <code>[50 * (TLv - 1)] + 80</code><br>
Lv. 1-15: <code>[50 * (TLv - 1)] + 80</code><br>
Line 145: Line 165:
|<code>[1.1 * (TLv - 1)] + 6</code>
|<code>[1.1 * (TLv - 1)] + 6</code>
|-
|-
!{{Gizonde}}
!style="text-align:left"|{{Gizonde}}
|
|
Lv. 1-15: <code>[22 * (TLv - 1)] + 200</code><br>
Lv. 1-15: <code>[22 * (TLv - 1)] + 200</code><br>
Line 151: Line 171:
|<code>[0.6 * (TLv - 1)] + 25</code>
|<code>[0.6 * (TLv - 1)] + 25</code>
|-
|-
!{{Razonde}}
!style="text-align:left"|{{Razonde}}
|
|
Lv. 1-15: <code>[16 * (TLv - 1)] + 450</code><br>
Lv. 1-15: <code>[16 * (TLv - 1)] + 450</code><br>
Line 157: Line 177:
|<code>[0.3 * (TLv - 1)] + 35</code>
|<code>[0.3 * (TLv - 1)] + 35</code>
|-
|-
!{{Grants}}
!style="text-align:left"|{{Grants}}
|
|
Lv. 1-15: <code>[75 * (TLv - 1)] + 1180</code><br>
Lv. 1-15: <code>[75 * (TLv - 1)] + 1180</code><br>
Line 163: Line 183:
|<code>[1.1 * (TLv - 1)] + 45</code>
|<code>[1.1 * (TLv - 1)] + 45</code>
|-
|-
!{{Megid}}
!style="text-align:left"|{{Megid}}
|
|
Lv. 1-15: <code>[3 * (TLv - 1)] + 27</code><br>
Lv. 1-15: <code>[3 * (TLv - 1)] + 27</code><br>
Line 169: Line 189:
|<code>[1.05 * (TLv - 1)] + 30</code>
|<code>[1.05 * (TLv - 1)] + 30</code>
|-
|-
!{{Resta}}
!style="text-align:left"|{{Resta}}
|
|
Lv. 1-30: <code>[5 * (TLv - 1)] + 50</code><br>
Lv. 1-30: <code>[5 * (TLv - 1)] + 50</code><br>
|<code>[1.2 * (TLv - 1)] + 15</code>
|<code>[1.2 * (TLv - 1)] + 15</code>
|-
|-
!{{Anti}}
!style="text-align:left"|{{Anti}}
|style="text-align:center"| -  
|style="text-align:center"| -  
|<code>[0.5 * (TLv - 1)] + 10</code>
|<code>[0.5 * (TLv - 1)] + 10</code>
|-
|-
!{{Reverser}}
!style="text-align:left"|{{Reverser}}
|style="text-align:center"| -  
|style="text-align:center"| -  
|style="text-align:center"|20
|style="text-align:center"|20
|-
|-
!{{Shifta}}
!style="text-align:left"|{{Shifta}}
|
|
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Line 188: Line 208:
|<code>[1.2 * (TLv - 1)] + 15</code>
|<code>[1.2 * (TLv - 1)] + 15</code>
|-
|-
!{{Deband}}
!style="text-align:left"|{{Deband}}
|
|
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Line 194: Line 214:
|<code>[(TLv - 1)] + 10</code>
|<code>[(TLv - 1)] + 10</code>
|-
|-
!{{Jellen}}
!style="text-align:left"|{{Jellen}}
|
|
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Line 200: Line 220:
|<code>[(TLv - 1)] + 10</code>
|<code>[(TLv - 1)] + 10</code>
|-
|-
!{{Zalure}}
!style="text-align:left"|{{Zalure}}
|
|
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Lv. 1-30: <code>[1.3 * (TLv - 1)] + 10</code><br>
Line 207: Line 227:
|-
|-
|-
|-
!{{Ryuker}}
!style="text-align:left"|{{Ryuker}}
|style="text-align:center"| -  
|style="text-align:center"| -  
|style="text-align:center"|10
|style="text-align:center"|10

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]

2. Next, calculate the bonuses from Shifta.pngShifta (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.pngShifta base power in %
  • MWA = Maximum possible weapon ATP

3. Then, determine the minimum and maximum Variance (V):

V(min) = -CV

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:

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 Unit icon.pngSmartlink (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 Gun icon.pngL&K38 Combat and Gun icon.pngYasminkov 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)

Resta power[edit | edit source]

Amount healed by Resta.pngResta (including Leilla.pngLeilla Photon Blast):

MST * 0.5 + TBP

Technique Base Power[edit | edit source]

  • TLv = Technique level
Technique Base Power Formula TP Cost Formula
Foie.pngFoie

Lv. 1-15: [50 * (TLv - 1)] + 110
Lv. 16-30: [65 * (TLv - 1)] - 85

[1.3 * (TLv - 1)] + 5
Gifoie.pngGifoie

Lv. 1-15: [26 * (TLv - 1)] + 260
Lv. 16-30: [42 * (TLv - 1)] + 30

[0.37 x (TLv - 1)] + 20
Rafoie.pngRafoie

Lv. 1-15: [22 * (TLv - 1)] + 350
Lv. 16-30: [21 * (TLv - 1)] + 370

[0.25 * (TLv - 1)] + 30
Barta.pngBarta

Lv. 1-15: [50 * (TLv - 1)] + 50
Lv. 16-30: [63 * (TLv - 1)] - 125

[1.2 * (TLv - 1)] + 4
Gibarta.pngGibarta

Lv. 1-15: [24 * (TLv - 1)] + 230
Lv. 16-30: [40 * (TLv - 1)]

[0.5 * (TLv - 1)] + 25
Rabarta.pngRabarta

Lv. 1-15: [19 * (TLv - 1)] + 400
Lv. 16-30: [15 * (TLv - 1)] + 470

[0.2 * (TLv - 1)] + 35
Zonde.pngZonde

Lv. 1-15: [50 * (TLv - 1)] + 80
Lv. 16-30: [55 * (TLv - 1)] + 5

[1.1 * (TLv - 1)] + 6
Gizonde.pngGizonde

Lv. 1-15: [22 * (TLv - 1)] + 200
Lv. 16-30: [38 * (TLv - 1)] - 30

[0.6 * (TLv - 1)] + 25
Razonde.pngRazonde

Lv. 1-15: [16 * (TLv - 1)] + 450
Lv. 16-30: [8 * (TLv - 1)] + 565

[0.3 * (TLv - 1)] + 35
Grants.pngGrants

Lv. 1-15: [75 * (TLv - 1)] + 1180
Lv. 16-30: [60 * (TLv - 1)] + 1400

[1.1 * (TLv - 1)] + 45
Megid.pngMegid

Lv. 1-15: [3 * (TLv - 1)] + 27
Lv. 16-30: [2 * (TLv - 1)] + 42

[1.05 * (TLv - 1)] + 30
Resta.pngResta

Lv. 1-30: [5 * (TLv - 1)] + 50

[1.2 * (TLv - 1)] + 15
Anti.pngAnti - [0.5 * (TLv - 1)] + 10
Reverser.pngReverser - 20
Shifta.pngShifta

Lv. 1-30: [1.3 * (TLv - 1)] + 10
Duration: [10 * (TLv - 1)] + 30

[1.2 * (TLv - 1)] + 15
Deband.pngDeband

Lv. 1-30: [1.3 * (TLv - 1)] + 10
Duration: [10 * (TLv - 1)] + 30

[(TLv - 1)] + 10
Jellen.pngJellen

Lv. 1-30: [1.3 * (TLv - 1)] + 10
Duration: [10 * (TLv - 1)] + 30

[(TLv - 1)] + 10
Zalure.pngZalure

Lv. 1-30: [1.3 * (TLv - 1)] + 10
Duration: [10 * (TLv - 1)] + 30

[0.5 * (TLv - 1)] + 10
Ryuker.pngRyuker - 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