-
-
Notifications
You must be signed in to change notification settings - Fork 110
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
feat: Parse charms as gears, show charm identification percentages #2271
Conversation
… correctly Tome base stats are a special kind of identifications. Essentially they behave just like normal identifications, except that they always have a pre-identified, static value, and they are displayed in a non-regular manner. This kind of info is not used at the moment, but they will be used in the tome guide, and when sharing tomes in chat, with the new gear encoding. Charms have this kind of stats as well, except that they display it like normal stats, and are variable. See https://i.imgur.com/AD8O0y2.png for an example.
b444699
to
85eb4a5
Compare
common/src/main/java/com/wynntils/models/wynnitem/parsing/WynnItemParser.java
Outdated
Show resolved
Hide resolved
…lculated for items with fixed stats
common/src/main/java/com/wynntils/models/stats/builders/MiscStatKind.java
Show resolved
Hide resolved
I'm honestly not sure I understood how you are handling the level-variable stats. I will need to read through the code again when I'm more sharp. Apart from that, it looks fine I guess, it was just more of a "standard" conversion. |
Okay, so you're using the levelRange as a requirement on the entire charm, and then you inject this when displaying a certain stat for that charm? This seems to be mandated by the API design, I guess. So if Wynn ever introduces more stats that have a level range, that level range will have to be the same for all stats on that particular charm. (Or they will have to redo the API.) I guess this works. |
…ustom stat type ranges, rework the inverted stat system, other fixes to internal rolls (#2282) * refactor: Allow custom base ranges for items, rework inverted calculation, add option to display stat as inverted * fix: Fix SpellStatType internal names for percentage values * fix: Fix elemental defense stats Turns out the API was wrong, and the removed type does not exist, and is only a typo. This is now confirmed to work in-game. * fix: Correctly calculate internal role in every case I've done throughout testing, but I think just running with the assertions enabled without any issues proves that this should work. * feat: Reworked perfect/increase/decrease percentages * fix: fix legacy order not displaying skill stats (#2283) * chore: [auto-generated] Update urls.json [ci skip] (#2284) Co-authored-by: magicus <[email protected]> * feat: Pet menu search (#2285) * feat: Pet menu search * ci: spotless formatting --------- Co-authored-by: DonkeyBlaster <[email protected]> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: magicus <[email protected]> Co-authored-by: Ryan <[email protected]> Co-authored-by: DonkeyBlaster <[email protected]>
# Conflicts: # common/src/main/java/com/wynntils/features/tooltips/ItemStatInfoFeature.java # common/src/main/java/com/wynntils/handlers/tooltip/gear/IdentifiableGearItemInfo.java # common/src/main/java/com/wynntils/handlers/tooltip/tome/IdentifiableTomeItemInfo.java # common/src/main/java/com/wynntils/models/rewards/TomeInfoRegistry.java # common/src/main/java/com/wynntils/models/rewards/type/TomeInfo.java # common/src/main/java/com/wynntils/models/stats/builders/DefenceStatBuilder.java # common/src/main/java/com/wynntils/models/wynnitem/AbstractItemInfoDeserializer.java
@magicus Do you have time to review this, or should I self-review and merge? |
# Conflicts: # common/src/main/java/com/wynntils/models/stats/StatCalculator.java # common/src/main/java/com/wynntils/models/stats/builders/DefenceStatBuilder.java # common/src/main/java/com/wynntils/models/stats/type/StatType.java
We should not modify the internal roll, as it causes issues in the future, for gear encoding. Also handle star calculations.
I've self-reviewed this, should be good. I will merge this before the announcement on discord. |
Review by commit. I tried to make it integrate as neatly as I could, but I am aware that some parts are a bit more shoehorned than we would like it to be ideally, but I do believe this is the nicest way to integrate this overall, with minor modifications.
Some screenshots:
![image](https://private-user-images.githubusercontent.com/49001742/291818495-9f9878f8-3708-455f-9237-3822ad7280e1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDEwNzMsIm5iZiI6MTczOTYwMDc3MywicGF0aCI6Ii80OTAwMTc0Mi8yOTE4MTg0OTUtOWY5ODc4ZjgtMzcwOC00NTVmLTkyMzctMzgyMmFkNzI4MGUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2MjYxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg1NTEyNjlhMzk1NzY3MTM2ZjE3YTc0OGNmNmExMTA5MzBiZjRlZmI1MTI2NGY1ZmMzNDZmNGViZTgyMWUwMDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.7UHglosFvk6mQDhW85Ba43c1MbyRmwJwvlFfgDcKkck)
![image](https://private-user-images.githubusercontent.com/49001742/291891327-b34f86ba-6ac6-4aa0-ab05-d6db9ce34724.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDEwNzMsIm5iZiI6MTczOTYwMDc3MywicGF0aCI6Ii80OTAwMTc0Mi8yOTE4OTEzMjctYjM0Zjg2YmEtNmFjNi00YWEwLWFiMDUtZDZkYjljZTM0NzI0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2MjYxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI1MGNiZjEwZGE5YTc3NjgyMTJiMDllMzUxNDQ5ODJlZDk0NjE4YzM2NzU3NWI5M2FlNjhjMTYzZGUwOTRiZmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xX_rNCjtvBYDFLBGIm0tSUCXinB1UB1yqawP52p3hhk)
![image](https://private-user-images.githubusercontent.com/49001742/291891344-55cc35d5-78d8-48ac-b028-1a3a8d61de9c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDEwNzMsIm5iZiI6MTczOTYwMDc3MywicGF0aCI6Ii80OTAwMTc0Mi8yOTE4OTEzNDQtNTVjYzM1ZDUtNzhkOC00OGFjLWIwMjgtMWEzYThkNjFkZTljLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2MjYxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVkM2U0NTRlNWExMDk3MTdiODE0MWM3ZDYzMTViM2MxZjc2NjczMmQ4NjllNWQ1MzNhMDFmZWMwODhmOWZlNzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.mXMaRWg2QjdCkfs914hHVFxjIc2jD8lcIJ0P8MwRd94)
![image](https://private-user-images.githubusercontent.com/49001742/291891362-929f3fd3-c377-4e20-9149-a72ae9086c9e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDEwNzMsIm5iZiI6MTczOTYwMDc3MywicGF0aCI6Ii80OTAwMTc0Mi8yOTE4OTEzNjItOTI5ZjNmZDMtYzM3Ny00ZTIwLTkxNDktYTcyYWU5MDg2YzllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2MjYxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBlMmRhYzNiNTI2ZjNkMzc0Y2ZlZjgzODI1ZDlkMzVjOWEzMGVlYTlhMzc4ZGRjZjU1ZTdiYTQyNGZmNzVjNGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.M-UN0bvdKm-WAs6ZOOEGbGzZaNWhqNL7je52YS9P8AA)
Note that charm ids are inverted differently than spell stats. This means they also have 30-130 as the internal roll range, not taking the base value sign into account. They also have the best effects on the lowest internal rolls.
Other items:
![image](https://private-user-images.githubusercontent.com/49001742/291818585-cc7596d0-0c7e-4cea-8d06-4f14dd73c7fb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDEwNzMsIm5iZiI6MTczOTYwMDc3MywicGF0aCI6Ii80OTAwMTc0Mi8yOTE4MTg1ODUtY2M3NTk2ZDAtMGM3ZS00Y2VhLThkMDYtNGYxNGRkNzNjN2ZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2MjYxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkwMDQxMjNlOGQxODZmMjExMDM4NmIyNWNmOTE0Njc0NTVkZGI0OGI0NTZmYTIwOGY5YmFiNjg2MWVkY2FiYjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.92OknnroUi27yKtp4M-GNzMukZRgzHbDYYzhSUGCdsE)
![image](https://private-user-images.githubusercontent.com/49001742/291818757-edb0aae1-e8f0-4392-a325-b509f1034734.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MDEwNzMsIm5iZiI6MTczOTYwMDc3MywicGF0aCI6Ii80OTAwMTc0Mi8yOTE4MTg3NTctZWRiMGFhZTEtZThmMC00MzkyLWEzMjUtYjUwOWYxMDM0NzM0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA2MjYxM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRiOTI5ZDRhZWUwMDA3MmE2NDg3NjYyNzI3YWVjNTVhMDZjM2RjNjBlNGZjNTQ2NGQyYzBiMWMxZjJiMDYyZmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.TcsNnHBgZEqI__7rdFxuzEdxOE__nnkGz5aEbrfvYXg)