flyxiv / ffxiv_simbot

0 stars 0 forks source link

Make Skill/Buff Implementation #5

Closed flyxiv closed 1 month ago

flyxiv commented 1 month ago

Before implementing simulator, we need to map all the job skills into a Buff implementation

flyxiv commented 1 month ago

Skills need a lot of data: GCD flag/Delay/Cooldown/Buff/Debuff/Resource Requirements..

Screenshot 2024-04-13 at 8 06 56 PM
flyxiv commented 1 month ago

Damage Buff Calculation

1) Every Buff can be transferred to an expected damage increase

expected_damage(damage_buff(n%)) = n%
expected_damage(crit_buff(n%, player crit damage %)) = n% * (player crit dmg % - 100%)
expected_damage(dh_buff(n%) = 25% * n%

2. By using log, We can count the damage contribution of each buff.

damage = raw_damage * a * b * c * d
ln(damage) = ln(raw_damage) + ln(a) + ln(b) + ln(c) + ln(d)
damage_contribution(a) = raw_damage * a = e^(ln(damage) - ln(b) - ln(c) - ln(d))
we do this for all a, b, c, d and we get damage contribution for each buff/debuff.
flyxiv commented 1 month ago

Skill buff implementations are complete. Closing issue.