属性随机使用既有方法
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { Application, BackendSession } from "pinus";
|
||||
import { STATUS, EQUIP_STRENGTHEN_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, HERO_SYSTEM_TYPE, CONSUME_TYPE, GOOD_TYPE, HERO_GROW_MAX } from "../../../consts";
|
||||
import { ItemInter } from "../../../pubUtils/interface";
|
||||
import { resResult, parseGoodStr, getRandomByLen, deepCopy } from "../../../pubUtils/util";
|
||||
import { resResult, parseGoodStr, getRandomByLen, deepCopy, getRandValueByMinMax, getRandEelm } from "../../../pubUtils/util";
|
||||
import { addItems, handleCost } from "../../../services/rewardService";
|
||||
import { EquipModel, RandSe } from "../../../db/Equip";
|
||||
import { HeroModel, EPlace } from "../../../db/Hero";
|
||||
@@ -9,7 +9,7 @@ import Role from "../../../db/Role";
|
||||
import { calPlayerCeAndSave } from "../../../services/playerCeService";
|
||||
import { getHeroJob, getGoodById, gameData, getJewelById, getHeroEquipByClassId } from "../../../pubUtils/data";
|
||||
import { EQUIP } from "../../../pubUtils/dicParam";
|
||||
import { ITID, SPEICAL_ITEM } from "../../../consts/constModules/itemConst";
|
||||
import { ITID, SPEICAL_ITEM, RANDOM_SE_COUNT } from "../../../consts/constModules/itemConst";
|
||||
|
||||
const _ = require('underscore');
|
||||
|
||||
@@ -271,28 +271,28 @@ export class EquipHandler {
|
||||
if (!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let { randomEffect } = dicGoods;
|
||||
let pool = randomEffect.map(cur => gameData.randomEffectPool.get(cur));
|
||||
let chosen = randSe.map(cur => cur.seid); // 上一轮和这一轮随机出来的
|
||||
let hasReset = false, lockNum = 0;
|
||||
let chosen = randSe.map(cur => cur.seid); // 上一轮随机出来的
|
||||
let randomResult: number[] = getRandEelm(randomEffect.filter(cur => !chosen.includes(cur)), randSe.length);
|
||||
|
||||
let lockNum = 0;
|
||||
let removeSeidList = new Array<number>(); // 原装备上的seid [seid, rand, ...]
|
||||
|
||||
for(let i = 0; i < randSe.length; i++) {
|
||||
removeSeidList.push(randSe[i].seid, randSe[i].rand);
|
||||
|
||||
if(!randSe[i].locked) {
|
||||
let newPool = pool.filter(cur => !chosen.includes(cur.id));
|
||||
let random = getRandomByLen(newPool);
|
||||
if (!random) { break };
|
||||
let random = gameData.randomEffectPool.get(randomResult[i]);
|
||||
if (!random) break ;
|
||||
let rand = 0;
|
||||
if (random.id > 0) rand = Math.floor(Math.random() * (random.Max - random.Min) + random.Min);
|
||||
if (random.id > 0) rand = getRandValueByMinMax(random.Min, random.Max, 0);
|
||||
randSe[i].seid = random.id;
|
||||
randSe[i].rand = rand;
|
||||
hasReset = true;
|
||||
} else {
|
||||
lockNum++;
|
||||
}
|
||||
}
|
||||
if (!hasReset) {
|
||||
|
||||
if (lockNum >= randSe.length) {
|
||||
return resResult(STATUS.ROLE_EQUIP_CANNOT_RESTRENGTHEN);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user