diff --git a/apps/frontend/src/app/Data/Artifacts/Artifact.ts b/apps/frontend/src/app/Data/Artifacts/Artifact.ts index a2f0a63921..75cd6562f1 100644 --- a/apps/frontend/src/app/Data/Artifacts/Artifact.ts +++ b/apps/frontend/src/app/Data/Artifacts/Artifact.ts @@ -39,7 +39,9 @@ export default class Artifact { ) ) - //ARTIFACT IN GENERAL + /** + * @deprecate + */ static getArtifactEfficiency( artifact: ICachedArtifact, filter: Set diff --git a/libs/gi-util/src/artifact/artifact.ts b/libs/gi-util/src/artifact/artifact.ts index 437b11f293..f51c236bd5 100644 --- a/libs/gi-util/src/artifact/artifact.ts +++ b/libs/gi-util/src/artifact/artifact.ts @@ -172,17 +172,14 @@ export function getArtifactEfficiency( filter.size - matchedSlotCount - (filter.has(artifact.mainStatKey as any) ? 1 : 0) - let maxEfficiency - if (emptySlotCount && unusedFilterCount) - maxEfficiency = - currentEfficiency + maxSubstatRollEfficiency[rarity] * rollsRemaining - // Rolls into good empty slot - else if (matchedSlotCount) - maxEfficiency = - currentEfficiency + - maxSubstatRollEfficiency[rarity] * (rollsRemaining - emptySlotCount) - // Rolls into existing matched slot - else maxEfficiency = currentEfficiency // No possible roll + + let maxEfficiency = currentEfficiency + const maxRollEff = maxSubstatRollEfficiency[rarity] + // Rolls into good empty slots, assuming max-level artifacts have no empty slots + maxEfficiency += maxRollEff * Math.min(emptySlotCount, unusedFilterCount) + // Rolls into an existing good slot + if (matchedSlotCount || (emptySlotCount && unusedFilterCount)) + maxEfficiency += maxRollEff * (rollsRemaining - emptySlotCount) return { currentEfficiency, maxEfficiency } }