装备:一键装备顺序

This commit is contained in:
luying
2021-08-03 14:26:22 +08:00
parent ac2c18dff8
commit 3fb0e80272
4 changed files with 24 additions and 17 deletions

View File

@@ -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;

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
}

View File

@@ -156,15 +156,6 @@ export class AttributeCal {
return ce > 0? ce: 1;
}
// 计算未装备的装备的简易战力公式
public calEquipCe() {
let attrMap = this.getRealAttrToMap();
let attrs = new Attribute();
attrs.setByMap(attrMap);
let { hp, atk, def, mdef } = attrs;
return hp * 1 + atk * 3 + def * 2 + mdef * 2;
}
public calCelAndReduce() {
return Math.floor(this.calCe() / HERO_CE_RATIO / HERO_CE_RATIO);
}

View File

@@ -222,7 +222,8 @@ export const gameData = {
quenchRangeByQuality: dicQuenchRangeByQuality,
quenchRangeByQualityAndGrade: dicQuenchRangeByQualityAndGrade,
quenchConsume: dicQuenchConsume,
quenchByQuality: dicQuenchByQuality
quenchByQuality: dicQuenchByQuality,
equipAttributeRatio: new Map<number, number>()
};
// 在此提供一些原先在gamedata中提供的方法以便更方便获取gameData数据
@@ -759,6 +760,13 @@ export function getQuenchConsume(lvLimited: number, quality: number) {
return gameData.quenchConsume.get(`${lvLimited}_${quality}`);
}
function loadEquipAttributeRatio() {
let arr = decodeArrayListStr(param.ATTRIBUTE.ATTRIBUTE_EQUIP_RATIO);
for(let [id, ratio] of arr) {
gameData.equipAttributeRatio.set(parseInt(id), parseInt(ratio));
}
}
// 初始加载
function initDatas() {
parseDicParam();
@@ -862,7 +870,7 @@ function loadDatas() {
loadTskExp();
loadQuenchQuality();
loadQuenchConsume();
loadEquipAttributeRatio();
}
// 重载dicParam