project-topaz / topaz

Server emulator for FFXI
Other
157 stars 222 forks source link

Octave Club should occ. attack twice when job level is even number #1498

Closed MarianArlt closed 3 years ago

MarianArlt commented 3 years ago

I have:

This is not merged yet but I'm opening this because I can't figure out a way to handle this well in #1490

1490 will already come with the multiplier of 8 activated but:

The concrete issue is that Octave Club sets a modifier value once when the Players main job level is a multiple of 8 and another value when the level is even (multiple of 2).

Problem is that apparently all levels that are multiples of 8 are also even, and the current logic will try to apply both mod values at the same time. There needs to be a check made somewhere when adding the latents to give preference to either the latent that gives the higher modifier, or to the latentid that has the higher value.

This could maybe become its own function in latent_effect_container.cpp where job level divisors are structured in order of priority from highest to lowest: void CLatentEffectContainer::CheckLatentsJobMultiple() or something along those lines. Say: for each latentlist latentid that is JOB_MULTIPLE get value. Add only the mod of item in list with highest value.

Maybe there's a way easier solution though?

TeoTwawki commented 3 years ago

use 2 rows in latent table, and remember that the modifier will stack

so 2+6 = 8

neuromancerxi commented 3 years ago

use 2 rows in latent table, and remember that the modifier will stack

so 2+6 = 8

Came here to say mostly this as well. Use Latent Cases since you're planning on moving this to a MOD anyway.

MarianArlt commented 3 years ago

Thank you very much both of you! I didn't realize that they add up.