Game mechanics: Difference between revisions

From Ephinea PSO Wiki
 
(8 intermediate revisions by 3 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. The damage a inflicted on a target is not consistent. <code>Variance</code> is introduced by:
3. Then, determine the minimum and maximum Variance (V):
*Classes
**5 ATP for all [[Hunters]]
**4 ATP for all [[Rangers]]
**2 ATP for all [[Forces]]
*Weapon spreads <code>MWA-MinWA</code>
The class specific variance is a random value within its range that is subtracted. Weapon spread is a random value within its range that is added.


For example, the minimum and maximum <code>Variance</code> for a Hunter class with a weapon with <code>MinWA=300</code> and <code>MWA=400</code>
<code>V(min) = -CV</code>
would be:
* CV = [[Class_comparison#Maximum_stats|Class Variance]]
*<code>Minimum Variance = -5 + 0 = -5 ATP</code>
**5 for [[Hunters]]
*<code>Maximum Variance = 0 + 100 = 100 ATP</code>
**3 for [[Rangers]]
**2 for [[Forces]]
<code>V(max) = MWA - MinWA</code>


<code>Variance</code> is thus a random ATP value between <code>-5 to 100</code>.
4. To determine your final ATP, add your BA, EA, SA and V together:


4. To determine your final ATP, add your BA, EA, SA and Variance together:
<code>ATP = BA + EA + SA + V</code>
 
* V is a random value between V(min) and V(max)
<code>ATP = BA + EA + SA + Variance</code>


5. Finally, to calculate your damage on an [[Monsters|enemy]]:
5. Finally, to calculate your damage on an [[Monsters|enemy]]:
Line 50: 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 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==

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