装备:洗练
This commit is contained in:
@@ -9,6 +9,7 @@ import { QuenchLogParam } from '../domain/roleField/equip';
|
||||
import { QUENCH } from '../pubUtils/dicParam';
|
||||
import { DicQuenchQuality } from '../pubUtils/dictionary/DicQuenchQuality';
|
||||
import { JewelType, RandSe } from '../db/Jewel';
|
||||
import { getJewelRandSe } from '../pubUtils/itemUtils';
|
||||
|
||||
/**
|
||||
* 校验前端传入的消耗数量是否准确,并返回消耗的道具并加上特殊材料needConsumes
|
||||
@@ -148,22 +149,29 @@ export function checkQuenchMaxByQualityAndGrade(quality: number, grade: number,
|
||||
}
|
||||
|
||||
export function getRandSeResult(id: number, randSe: RandSe[]) {
|
||||
let { randomEffect } = gameData.jewel.get(id);
|
||||
let { randomEffect, effectCount } = gameData.jewel.get(id);
|
||||
|
||||
let chosen = randSe.filter(cur => cur.locked).map(cur => cur.seid); // 上一轮随机出来的
|
||||
let randomResult: number[] = getRandEelm(randomEffect.filter(cur => !chosen.includes(cur)), randSe.length); // 随机出的结果
|
||||
let randomResult: number[] = getRandEelm(randomEffect.filter(cur => !chosen.includes(cur)), effectCount); // 随机出的结果
|
||||
if(randomResult.length < effectCount) { // 去上轮之后不够,把上轮加入
|
||||
let chosenRandom = getRandEelm(chosen, effectCount - randomResult.length);
|
||||
randomResult.push(...chosenRandom);
|
||||
}
|
||||
if(randomResult.length < effectCount) { // 还是不够
|
||||
let allRandom = getRandEelm(randomEffect, effectCount - randomResult.length);
|
||||
randomResult.push(...allRandom);
|
||||
}
|
||||
|
||||
let newRandSe: RandSe[] = [];
|
||||
for (let i = 0; i < randSe.length; i++) {
|
||||
if(randSe[i].locked) {
|
||||
newRandSe.push(randSe[i]);
|
||||
for (let i = 0; i < effectCount; i++) {
|
||||
if(randSe[i]) {
|
||||
if(randSe[i] && randSe[i].locked) {
|
||||
newRandSe.push(randSe[i]);
|
||||
} else {
|
||||
newRandSe.push(getJewelRandSe(randSe[i].id, randomResult[i]));
|
||||
}
|
||||
} else {
|
||||
let random = gameData.randomEffectPool.get(randomResult[i]);
|
||||
if (!random) break;
|
||||
let rand = 0;
|
||||
if (random.id > 0) rand = getRandValueByMinMax(random.Min, random.Max, 0);
|
||||
let newSe = new RandSe(randSe[i].id, random.id, rand);
|
||||
newRandSe.push(newSe)
|
||||
newRandSe.push(getJewelRandSe(i + 1, randomResult[i]));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user