Closed asciisyaez closed 4 years ago
Duplicate of #368.
Duplicate of #368.
Separate issue, Previous case was 200% buff being applied without Name of Elements, Current issue is Name of Elements buffing progress by 200% irregardless of current progress.
0 80 384 7914 0 0 838 0 0 0 0 Normal 0 1 Name of the Elements 80 354 7914 0 0 838 0 0 0 0 Good 1 2 Brand of the Elements 70 348 7914 447 0 838 0 447 0 0 Normal 1 3 Brand of the Elements 60 342 7914 894 0 838 0 447 0 0 Good 1 4 Brand of the Elements 50 336 7914 1341 0 838 0 447 0 0 Normal 1 Progress Check: false, Durability Check: false, CP Check: true, Tricks Check: true, Reliability Check: true, Wasted Actions: 0
Math.min(...)
should probably be replaced with Math.max(...)
in line 307 of ffxivcraftmodel.js
. I am not at my computer atm, but I believe this may fix the issue.
The above is not the fix, my brain was backwards.
I don't know how the multiplier is being calculated, that may also affect this.
Rather than issue 368, I think this is a more direct reporting of one of the problems described in Issue #357
@asciisyaez what's your progress at 100% efficiency?
If I understand correctly, Name of Elements + Brand of Elements at 0% progress should produce 300% efficiency progress, but that doesn't match your example of 705 which is 219.6% efficiency (given an 100% efficiency progress of 321).
My setup: GSM Level 63 Craftmanship 547 Control 498 CP 327 Recipe: Koppranickel Rapier (Level 63)
100% efficiency = 111
# Action PRG BPRG
0 0 0
1 Muscle Memory 333 333
2 Name of the Elements 333 0
3 Brand of the Elements 777 444
4 Brand of the Elements 1110 333
5 Brand of the Elements 1429 319
6 Waste Not 1429 0
7 Basic Synthesis 1562 133
8 Basic Synthesis 1695 133
9 Basic Synthesis 1828 133
10 Basic Synthesis 1961 133
11 Basic Synthesis 2094 133
The problem I see above is that the BotE uses in step 4 should be less than the 300% increase shown since progress has already been made by this point.
100% efficiency = 111
# Action PRG BPRG
0 0 0
1 Muscle Memory 333 333
2 Name of the Elements 333 0
3 Brand of the Elements 728 395
4 Brand of the Elements 952 224
5 Brand of the Elements 1142 190
6 Waste Not II 1142 0
7 Basic Synthesis 1275 133
8 Basic Synthesis 1408 133
9 Basic Synthesis 1541 133
I modified the sim to use a linear formula of (-2*<%complete>)+2 and was able to produce the correct numbers in the modified simulator. I will be creating a pull request shortly with these changes.
Note: My GSM is actually level 62, but the sim calculates my 100% progress to be 97 while the game says it is 111. Note: The sim shows incorrect difficulty and max quality values for the Koppranickel Rapier (and likely other recipes). I changed the recipe data on my local version of the sim when executing this test, but will not be pushing these changes as they are not related to this issue.
I modified the sim to use a linear formula of (-2*<%complete>)+2 and was able to produce the correct numbers in the modified simulator. I will be creating a pull request shortly with these changes.
I was thinking of something like this:
function calcNameOfElementsBonus(s) {
// Progress is determined by calculating the percentage and rounding down to the nearest percent.
var percentComplete = Math.floor(s.progressState / s.synth.recipe.difficulty * 100);
// Bonus ranges from 0 to 200% based on the inverse of the progress.
return 2 * (100 - percentComplete) / 100;
}
And removing the Math.min
where calcNameOfElementsBonus
is called.
Note: My GSM is actually level 62, but the sim calculates my 100% progress to be 97 while the game says it is 111.
That's quite a bit off...
Note: The sim shows incorrect difficulty and max quality values for the Koppranickel Rapier (and likely other recipes).
Hmm... I'll rerun the recipe scraper.
I was thinking of something like this:
function calcNameOfElementsBonus(s) { // Progress is determined by calculating the percentage and rounding down to the nearest percent. var percentComplete = Math.floor(s.progressState / s.synth.recipe.difficulty * 100); // Bonus ranges from 0 to 200% based on the inverse of the progress. return 2 * (100 - percentComplete) / 100; }
And removing the
Math.min
wherecalcNameOfElementsBonus
is called.
Yeah, I think that is mathematically equivalent and a bit easier to read. It should work.
The Math.max and Math.min calls are really just sanity checks at this point. Assuming s.progressState
is never less than 0
or greater than s.synth.recipe.difficulty
, the bonus will always be between 0% and 200%. That said, explicitly bounding them is probably good practice.
Deployed to beta site.
Required Information
Class: GSM Level: 70 Craftsmanship: 975 Control: 856 CP: 385 Recipe Name: Skybuilders' Candelabra Recipe Level: 60 Solver Seed:
Expected Behaviour
Each Brand of Elements cast after the first should have diminished buff due to progress
Step1- Name of the Elements: Progress 0 Step2- Brand of the Elements: Progress 705 Step3 - Brand of the Elements: Progress 1236 Step 4 - Brand of the Elements: Progress 1635
Actual Behaviour
Each Name of Elements cast after Brand of the Elements is always buffed by 200% regardless of progress
Step1- Name of the Elements: Progress 0 Step2- Brand of the Elements: Progress 705 Step3 - Brand of the Elements: Progress 1410 Step 4 - Brand of the Elements: Progress 2002
Steps To Reproduce
Manually input Name of Elements, and 3 Brand of Elements after and monitor Monte Carlo Sim