装备:一键装备顺序
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user