Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2-2 jobs skill rebalance - Monk (2018 patch/Renewal) #3253

Merged
merged 10 commits into from
Jun 30, 2024

Conversation

guilherme-gm
Copy link
Member

@guilherme-gm guilherme-gm commented Nov 15, 2023

Pull Request Prelude

Changes Proposed

The main purpose of this PR is to introduce the rebalance of Monk job skills. This change affects Renewal-only.

On official servers this came along with rebalances of 1st, 2nd jobs and transclass too. I am working in additional PRs for the remaining 2-2, including bard/dancer, being in separate PRs in order to keep those PRs in a reasonable size.

The implementation in this PR is based on kRO and kRO zero patch notes, iRO Wiki, rAthena and divine pride info, along with some in-game testing. I can't say everything is 100% accurate because there were discrepancies between different sources, and I could not test everything in kRO, but should be quite close.

I won't list all the rebalance changes in the PR description, but it may be checked in each commit text. Also, the commits are in the same order as they appear in the references below.

Additionally, MO_INVESTIGATE has a separate fix for how its damage works in Renewal. This is made in a separate commit because iRO Wiki reports this formula since 2016, so it is probably a bug that we didn't know.

Affected skills

  • MO_TRIPLEATTACK (Raging Trifecta Blow)
  • MO_CHAINCOMBO (Raging Quadruple Blow)
  • MO_COMBOFINISH (Raging Thrust)
  • MO_EXTREMITYFIST (Asura Strike)
  • MO_BLADESTOP (Root)
  • MO_INVESTIGATE (Occult Impact)
  • MO_FINGEROFFENSIVE (Throw Spirit Sphere)
  • MO_ABSORBSPIRITS (Absorb Spirit Sphere)

Other effects

  • Changed size penalty for Knuckles (Renewal only)

References:

Issues addressed:
Part of #2727

src/map/battle.c Outdated Show resolved Hide resolved
@violent01
Copy link

violent01 commented Feb 14, 2024

MO_FINGEROFFENSIVE is broken or I'm just mistaken? Is this deliberately implemented ratio /= skill->get_num(MO_FINGEROFFENSIVE, skill_lv); If that line of code is implemented Finger Offensive only does 1 hit instead of 5 and the damage is so low. Can you also revisit MO_INVESTIGATE as I'm not convinced that its damage would be just 2k+ only against a high-def and vit enemy like an ancient sea horse (2182 MobID)

@guilherme-gm
Copy link
Member Author

guilherme-gm commented Feb 17, 2024

Thanks for checking.

I double checked in kRO Zero sakray, here are my findings:

MO_FINGEROFFENSIVE (Fixed)

I think there is indeed a small mistake in it. I shouldn't divide the ratio itself, but the damage. But, the damage is close to right. I will try to find what is causing this extra damage to slipping in, but the skill will not be buffed.

Unfortunately they had changed the skill ratio in Zero:

  • from: 800 / 1000 / 1200 / 1400 / 1600
  • to: 1600 / 2000 / 2400 / 2800 / 3200

But we can still compare the overall behavior.

Using a Monk Lv 56/11 with:

  • Iron Fist Lv1 (Zero skill tree is different, Lv1 is enough)
  • STR 4
  • DEX 2
  • LUK 1

This gives base StatusATK = 18, and 3 Mastery ATK from Iron Fist, and each sphere gives +3 ATK too

I've got the following results against DUMMY_10:

  • with 1 Sphere, Throw Sphere Lv1 (SkillRatio = 1600), Damage = 667 (5x 133)
  • with 1 Sphere, Throw Sphere Lv2 (SkillRatio = 2000), Damage = 835 (5x 167)
  • with 1 Sphere, Throw Sphere Lv3 (SkillRatio = 2400), Damage = 1000 (5x 200)
  • with 2 Sphere, Throw Sphere Lv1 (SkillRatio = 1600), Damage = 715 (5x 143)

These values are correct following iRO Wiki formula: https://irowiki.org/wiki/ATK

StatusATK = 18
Mastery = 6 (with 1 sphere)
ATK = 18 * 2 + 6 = 42

SkillDamage(Lv1) = 1600 * 42 / 100 = 672
SkillDamage(Lv2) = 2000 * 42 / 100 = 840
SkillDamage(Lv3) = 2400 * 42 / 100 = 1008

// (Enemy Lv10 = 5 def)
FinalDamage(Lv1) = 672 - 5 = 667
FinalDamage(Lv2) = 840 - 5 = 835
FinalDamage(Lv3) = 1008 - 5 = 1003 (!!)

Now, this damage is given in a bundle of 5 hits. So we have to FinalDamage/5 and apply it 5 times. Thus: (Always rounding down)

HitDamage(Lv1) = 667 / 5 = 133
HitDamage(Lv2) = 835 / 5 = 167
HitDamage(Lv3) = 1003 / 5 = 200

Note that Lv3 damage will go down to 1000 (from 1003) because of the division. This will be delivered as 5 hits of 200 (it is a single hit, but the damage is applied 5 times).

This was for Zero. For main, we just need to change the Ratio:

StatusATK = 18
Mastery = 6 (with 1 sphere)
ATK = 18 * 2 + 6 = 42

SkillDamage(Lv1) = 800 * 42 / 100 = 336

// (Enemy Lv10 = 5 def)
FinalDamage(Lv1) = 336 - 5 = 331

HitDamage(Lv1) = 331 / 5 = 66

On the current code, it is giving a damage of 5x 81 instead of 5x 66.

So yeah, something is still wrong, but the damage should actually be lower, not higher

MO_INVESTIGATE (Fixed)

I have no way to validate it against a high defense target, but I could do some extra tests against some weak mobs (Pupa / Condor / Poring), and looks like:

  1. The initial ATK gets boosted by Target's HardDEF. ATK + HardDEF/2
  2. it should ignore Target's SoftDEF
  3. it should ignore all sorts of Mastery bonuses AND spheres
    • Iron Hand which gives bonus based on the weapon is also ignored

So FinalDamage = (ATK + (Target HardDEF/2)) * SkillRatio (bypassing the step of reducing SoftDEF)

A few in-game tests:

  1. DUMMY_10 (Test Egg, 0 Hard DEF)
    • Lv1. Damage: 36 (18 * 2 + 0 /* Mastery */ + 0 /* Hard DEF / 2 */) * 100% = 36
    • Lv2. Damage: 72 (18 * 2 + 0 /* Mastery */ + 0 /* Hard DEF / 2 */) * 200% = 72
  2. PORING (2 Hard DEF)
    • Lv1. Damage: 37 (18 * 2 + 0 /* Mastery */ + 1 /* Hard DEF / 2 */) * 100% = 37
    • Lv2. Damage: 74 (18 * 2 + 0 /* Mastery */ + 1 /* Hard DEF / 2 */) * 200% = 74
  3. PUPA (24 Hard DEF)
    • Lv1. Damage: 48 (18 * 2 + 0 /* Mastery */ + 12 /* Hard DEF / 2 */) * 100% = 48
    • Lv2. Damage: 96 (18 * 2 + 0 /* Mastery */ + 12 /* Hard DEF / 2 */) * 200% = 96
  4. CONDOR (7 Hard DEF)
    • Lv1. Damage: 39 (18 * 2 + 0 /* Mastery */ + 3 /* Hard DEF / 2 */) * 100% = 39
    • Lv2. Damage: 78 (18 * 2 + 0 /* Mastery */ + 3 /* Hard DEF / 2 */) * 200% = 78

@guilherme-gm guilherme-gm force-pushed the old-job-rebalances-5 branch 2 times, most recently from c907fb8 to 045db95 Compare April 27, 2024 00:22
@guilherme-gm
Copy link
Member Author

Updated the PR with fixes for MO_FINGEROFFENSIVE and MO_INVESTIGATE as described in the previous comment.

@guilherme-gm guilherme-gm changed the base branch from master to rebalance May 30, 2024 00:20
@guilherme-gm guilherme-gm force-pushed the old-job-rebalances-5 branch 3 times, most recently from 26584cb to 81c381d Compare June 2, 2024 19:26
Small: 100% -> 100%
Medium: 75% -> 100%
Large:  50% ->  75%

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
- Chance of activation changed:
  - Old: 30% for level 1, less chance for each level above
  - New: Always 30%

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
- SP cost reduced by 6 in every level
- When used with Knuckle class weapon:
  - Skill damage is doubled
  - Number of hits increased to 6 (visual only)
    Example:
       - Non Knuckle: 4 hits of 100 (Total = 400)
       - Knuckle: 6 hits of 133 (Total = 800)

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
- Damage formula changed
  - New: (450 + SkillLevel * 150 + STR * 5)%
- SP Consumption reduced
  - Old: SkillLevel + 10
  - New: SkillLevel + 2

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
- Change required spheres when used after Raging Thrust or Root
  - Old: 4 spheres were required
  - New: 1 sphere is required
- Doubles damage when there are 6 or more spirit sphere on cast
- SP recovery penalty duration reduced: 10s -> 3s

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
- Cooldown added: 3s
- Boss monsters are now affected
- Duration changed:
  - Old: 10 + (SkillLevel * 10) seconds
  - New: 10 seconds (2 seconds on boss monsters)

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
The base ATK (before skill ratio) should be (ATK + (HardDef/2))
- Damage formula changed
  - New: (SkillLevel * 100)%
- When used on target in Root state, deals 50% more damage
- ATK Mastery no longer increases its damage (Not sure if this was added
  by the Rebalance, but this info only appeared in iRO Wiki after
  rebalance, so I am assuming it was an undocumented change)

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
- Damage formula changed
  - Old: (Spirit Spheres x 350)%
  - New: [600 + (Skill Level x 200)]%
- Casting time changed
  - Old: (Spirit Spheres + 1) seconds
  - New: 0.5 seconds fixed casting time + 0.5 seconds variable casting
    time
- 1 second cooldown added
- SP cost increased
  - Old: 10 at all skill levels
  - New: 8 + (Skill Level x 4)
- Spirit sphere usage changed
  - Old: (Skill Level) sphere
  - New: 1 sphere at all skill levels
- Skill will deal 50% more damage on target caught with Root
- The damage is delivered as a bundle of 5 hits (TotalDMG/5)

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
- Reduced fixed casting time: 1s -> 0.5s
- Removed variable casting time

From massive skills rebalance (1st/2nd/transclass) (2018.10.31)
@guilherme-gm guilherme-gm changed the title 2-2 jobs skill rebalance (Part 3 - Monk) (2018 patch/Renewal) 2-2 jobs skill rebalance - Monk (2018 patch/Renewal) Jun 2, 2024
@guilherme-gm
Copy link
Member Author

updated the PR so it no longer builds over previous one, but is an independent PR built over rebalance. I think this makes things a bit better than chaining all of them, and the 3 remaining PRs for 2nd classes should not conflict between each other; they may also be merged in any order

@guilherme-gm guilherme-gm marked this pull request as ready for review June 2, 2024 20:43
@MishimaHaruna MishimaHaruna added this to the Release v2024.06 milestone Jun 30, 2024
@MishimaHaruna MishimaHaruna merged commit 0d49cdd into HerculesWS:rebalance Jun 30, 2024
357 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants