装备:一键装备顺序

This commit is contained in:
luying
2021-08-03 14:26:27 +08:00
parent ac2c18dff8
commit 3fb0e80272
4 changed files with 24 additions and 17 deletions
@@ -11,7 +11,7 @@ import { calPlayerCeAndSave } from "../../../services/playerCeService";
import { getGoodById, gameData } from "../../../pubUtils/data";
import { EQUIP } from "../../../pubUtils/dicParam";
import { ITID, QUALITY_TYPE, equipTypeToSortAttr, IT_TYPE, QUENCH_TYPE, REFINE_TYPE } from "../../../consts";
import { changeEquip, dressEquip, checkMaterialEnough, takeOffEquipAndCalPlayerCe, checkEquipCanPut, quenchOnce, checkQuenchMaxByQualityAndGrade, getRandSeResult, refineOnce, checkRefineReachNextLv } from "../../../services/equipService";
import { changeEquip, dressEquip, checkMaterialEnough, takeOffEquipAndCalPlayerCe, checkEquipCanPut, quenchOnce, checkQuenchMaxByQualityAndGrade, getRandSeResult, refineOnce, checkRefineReachNextLv, calEquipCe } from "../../../services/equipService";
import { findIndex, pick } from 'underscore';
import { pushEquipRefineSucMsg, pushNormalEquipMsg, pushNormalItemMsg } from "../../../services/chatService";
@@ -621,11 +621,9 @@ export class EquipHandler {
let allEquips = await EquipModel.findNotWearEquips(roleId);
let sortEquips = allEquips.map(equip => {
let { id, quality, randRange, ePlaceId } = equip;
let { id, quality, ePlaceId, randMain } = equip;
let { goodsAbility, lvLimited } = gameData.goods.get(id);
let attrObj = new AttributeCal();
attrObj.setByMap(goodsAbility, HERO_CE_RATIO + randRange);
let ce = attrObj.calEquipCe();
let ce = calEquipCe(goodsAbility, randMain);
return { id, quality, ce, equip, goodsAbility, lvLimited, ePlaceId }
});
let { ePlace, lv } = hero;
+11 -1
View File
@@ -261,6 +261,16 @@ export function checkRefineReachNextLv(oldRefineLv: number, refineLv: number) {
let dic = gameData.refine.get(refineLv);
if(!oldDic || !dic) return true;
console.log('*******', dic.level, oldDic.level)
return dic.level > oldDic.level;
}
export function calEquipCe(goodsAbility: Map<number, number>, randMain: RandMain[]) {
let ce = 0;
for(let [ id, ratio ] of gameData.equipAttributeRatio) {
let valueBase = goodsAbility.get(id);
let curRand = randMain.find(cur => cur.id == id);
let valueRand = curRand?curRand.rand: 0;
ce += Math.floor(valueBase * valueRand * ratio / 100);
}
return ce
}