装备:洗练

This commit is contained in:
luying
2022-02-17 12:41:40 +08:00
parent 82b15e5792
commit 2bfc27356f
10 changed files with 1295 additions and 1992 deletions
+19 -11
View File
@@ -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]));
}
}