From 1a681c795aa90c588ccd12061455938b2fd1e2dc Mon Sep 17 00:00:00 2001 From: luying Date: Thu, 5 Aug 2021 13:42:21 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A3=85=E5=A4=87=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B7=AC=E7=81=AB=E8=8C=83=E5=9B=B4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pubUtils/dictionary/DicQuenchQuality.ts | 37 ++++++++++++------- shared/pubUtils/itemUtils.ts | 4 +- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/shared/pubUtils/dictionary/DicQuenchQuality.ts b/shared/pubUtils/dictionary/DicQuenchQuality.ts index dc49a4703..f56b22327 100644 --- a/shared/pubUtils/dictionary/DicQuenchQuality.ts +++ b/shared/pubUtils/dictionary/DicQuenchQuality.ts @@ -20,8 +20,8 @@ export interface DicQuenchQuality { readonly critEffect: number; } -export const dicQuenchRangeByQualityAndGrade = new Map(); -export const dicQuenchRangeByQuality = new Map(); // quality => {} +export const dicQuenchRangeByQualityAndGrade = new Map(); +export const dicQuenchRangeByQuality = new Map(); // quality => {} export const dicQuenchByQuality = new Map>(); // quality => grade => dic export function loadQuenchQuality() { dicQuenchByQuality.clear(); @@ -31,18 +31,29 @@ export function loadQuenchQuality() { arr.forEach(o => { if(o.initialAvailable == 1) { - if(!dicQuenchRangeByQuality.has(o.quality)) { - dicQuenchRangeByQuality.set(o.quality, { min: o.singleRatioMin, max: o.singleRatioMax }); - } else { - if(o.singleRatioMin < dicQuenchRangeByQuality.get(o.quality).min) { - dicQuenchRangeByQuality.get(o.quality).min = o.singleRatioMin; - } - if(o.singleRatioMax > dicQuenchRangeByQuality.get(o.quality).max) { - dicQuenchRangeByQuality.get(o.quality).max = o.singleRatioMax; - } - } - dicQuenchRangeByQualityAndGrade.set(`${o.quality}_${o.grade}`, { min: o.singleRatioMin, max: o.singleRatioMax }); } + + + if(!dicQuenchRangeByQuality.has(o.quality)) { + dicQuenchRangeByQuality.set(o.quality, { min: o.singleRatioMin, max: o.singleRatioMax, randMin: o.singleRatioMin, randMax: o.singleRatioMax }); + } else { + if(o.singleRatioMin < dicQuenchRangeByQuality.get(o.quality).min) { + dicQuenchRangeByQuality.get(o.quality).min = o.singleRatioMin; + } + if(o.singleRatioMax > dicQuenchRangeByQuality.get(o.quality).max) { + dicQuenchRangeByQuality.get(o.quality).max = o.singleRatioMax; + } + if(o.singleRatioMin < dicQuenchRangeByQuality.get(o.quality).randMin && o.initialAvailable == 1) { + dicQuenchRangeByQuality.get(o.quality).randMin = o.singleRatioMin; + } + if(o.singleRatioMax > dicQuenchRangeByQuality.get(o.quality).randMax && o.initialAvailable == 1) { + dicQuenchRangeByQuality.get(o.quality).randMax = o.singleRatioMax; + } + + } + dicQuenchRangeByQualityAndGrade.set(`${o.quality}_${o.grade}`, { min: o.singleRatioMin, max: o.singleRatioMax, randMin: o.singleRatioMin, randMax: o.singleRatioMax }); + + if(!dicQuenchByQuality.has(o.quality)) { dicQuenchByQuality.set(o.quality, new Map()); } diff --git a/shared/pubUtils/itemUtils.ts b/shared/pubUtils/itemUtils.ts index 526b739b1..95d23faed 100644 --- a/shared/pubUtils/itemUtils.ts +++ b/shared/pubUtils/itemUtils.ts @@ -113,8 +113,8 @@ export async function getAddEquipInfo(roleId: string, roleName: string, weapon: let grade = 0; for(let [ attrId, attrValue ] of goodsAbility) { if(attrValue > 0) { - let { min, max } = getQuenchByQualityAndGrade(quality, grade); - let rand = getRandValueByMinMax(min, max, 0); + let { randMin, randMax } = getQuenchByQualityAndGrade(quality, grade); + let rand = getRandValueByMinMax(randMin, randMax, 0); console.log(quality, grade, rand) grade = getQuenchGradeByValue(quality, rand); randMain.push({