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

[core] BLU Triple Attack overwrites Double Attack #7101

Merged
merged 2 commits into from
Feb 20, 2025

Conversation

sruon
Copy link
Contributor

@sruon sruon commented Feb 20, 2025

I affirm:

  • I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
  • I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
  • I have read and understood the Contributing Guide and the Code of Conduct.
  • I have tested my code and the things my code has changed since the last commit in the PR and will test after any later commits.

What does this pull request do?

Setting 4 BLU spells with Double Attack currently grants both Double Attack and Triple Attack.

Only Triple Attack is supposed to be set in this condition. Double Attack can still be obtained independently from a WAR subjob.

Setting only one tier will result in the Double Attack Job Trait instead.
https://www.bg-wiki.com/ffxi/Triple_Attack

Setting two tiers will result in the Triple Attack Job Trait instead.
https://www.bg-wiki.com/ffxi/Double_Attack

Set 8 trait points for double attack and 16 for triple attack.
Setting triple attack removes the double attack trait, but it can be regained through subbing warrior which provides a higher double attack rate than the spell trait does.

https://www.bg-wiki.com/ffxi/Blue_Mage_Job_Traits#Double_Attack_&_Triple_Attack

Rank1 can be acquired when the attribute value is 8 or above . Furthermore, when the attribute value reaches 16 or above, the attribute changes to Triple Attack
https://wiki.ffo.jp/html/1904.html

This PR adds a special condition when the check is performed.

As far as I can tell this is the only case where a trait overwrite a different one, hence the direct change to blueutils::CalculateTraits

There might be something smarter to be done as this could break if the following query ever returned the traits in a different order.

server/src/map/trait.cpp

Lines 89 to 92 in f1a5d79

Query = "SELECT trait_category, trait_points_needed, traitid, modifier, value \
FROM blue_traits \
WHERE traitid < %u \
ORDER BY trait_category ASC, trait_points_needed DESC";

Steps to test these changes

  • Change to BLU 99 with a non WAR subjob

  • Equip the following spells
    image

  • Verify only Triple Attack is present

  • Unequip one of the spells

  • Verify only Double Attack is present

  • Repeat first test with a /WAR subjob and verify both Triple Attack and Double Attack are present

Setting 16 points of DA grants Triple Attack alone.
@WinterSolstice8
Copy link
Member

Supposedly gilfinder upgrades to TH:
https://www.bg-wiki.com/ffxi/Gilfinder

@sruon
Copy link
Contributor Author

sruon commented Feb 20, 2025

Pushed another commit to handle TH/Gilfinder as well.

@zach2good zach2good merged commit fc6d15f into LandSandBoat:base Feb 20, 2025
13 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.

3 participants