装备:一键装备顺序

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 { getGoodById, gameData } from "../../../pubUtils/data";
import { EQUIP } from "../../../pubUtils/dicParam"; import { EQUIP } from "../../../pubUtils/dicParam";
import { ITID, QUALITY_TYPE, equipTypeToSortAttr, IT_TYPE, QUENCH_TYPE, REFINE_TYPE } from "../../../consts"; 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 { findIndex, pick } from 'underscore';
import { pushEquipRefineSucMsg, pushNormalEquipMsg, pushNormalItemMsg } from "../../../services/chatService"; import { pushEquipRefineSucMsg, pushNormalEquipMsg, pushNormalItemMsg } from "../../../services/chatService";
@@ -621,11 +621,9 @@ export class EquipHandler {
let allEquips = await EquipModel.findNotWearEquips(roleId); let allEquips = await EquipModel.findNotWearEquips(roleId);
let sortEquips = allEquips.map(equip => { 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 { goodsAbility, lvLimited } = gameData.goods.get(id);
let attrObj = new AttributeCal(); let ce = calEquipCe(goodsAbility, randMain);
attrObj.setByMap(goodsAbility, HERO_CE_RATIO + randRange);
let ce = attrObj.calEquipCe();
return { id, quality, ce, equip, goodsAbility, lvLimited, ePlaceId } return { id, quality, ce, equip, goodsAbility, lvLimited, ePlaceId }
}); });
let { ePlace, lv } = hero; 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); let dic = gameData.refine.get(refineLv);
if(!oldDic || !dic) return true; if(!oldDic || !dic) return true;
console.log('*******', dic.level, oldDic.level)
return 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
}
-9
View File
@@ -156,15 +156,6 @@ export class AttributeCal {
return ce > 0? ce: 1; 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() { public calCelAndReduce() {
return Math.floor(this.calCe() / HERO_CE_RATIO / HERO_CE_RATIO); return Math.floor(this.calCe() / HERO_CE_RATIO / HERO_CE_RATIO);
} }
+10 -2
View File
@@ -222,7 +222,8 @@ export const gameData = {
quenchRangeByQuality: dicQuenchRangeByQuality, quenchRangeByQuality: dicQuenchRangeByQuality,
quenchRangeByQualityAndGrade: dicQuenchRangeByQualityAndGrade, quenchRangeByQualityAndGrade: dicQuenchRangeByQualityAndGrade,
quenchConsume: dicQuenchConsume, quenchConsume: dicQuenchConsume,
quenchByQuality: dicQuenchByQuality quenchByQuality: dicQuenchByQuality,
equipAttributeRatio: new Map<number, number>()
}; };
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据 // 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
@@ -759,6 +760,13 @@ export function getQuenchConsume(lvLimited: number, quality: number) {
return gameData.quenchConsume.get(`${lvLimited}_${quality}`); 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() { function initDatas() {
parseDicParam(); parseDicParam();
@@ -862,7 +870,7 @@ function loadDatas() {
loadTskExp(); loadTskExp();
loadQuenchQuality(); loadQuenchQuality();
loadQuenchConsume(); loadQuenchConsume();
loadEquipAttributeRatio();
} }
// 重载dicParam // 重载dicParam