装备:修改装备限制

This commit is contained in:
luying
2021-07-27 20:19:59 +08:00
parent aeb0913c24
commit df48003b76
4 changed files with 28 additions and 21 deletions

View File

@@ -4,16 +4,16 @@ import { ItemInter } from "../../../pubUtils/interface";
import { resResult, parseGoodStr, getRandValueByMinMax, getRandEelm } from "../../../pubUtils/util";
import { addItems, handleCost, decreaseItems } from "../../../services/rewardService";
import Equip, { EquipModel, EquipType } from "../../../db/Equip";
import { EquipModel, EquipType } from "../../../db/Equip";
import { HeroModel, EPlace } from "../../../db/Hero";
import Role from "../../../db/Role";
import { calPlayerCeAndSave } from "../../../services/playerCeService";
import { getHeroJob, getGoodById, gameData, getHeroEquipByClassId } from "../../../pubUtils/data";
import { getGoodById, gameData } from "../../../pubUtils/data";
import { EQUIP } from "../../../pubUtils/dicParam";
import { ITID, SPEICAL_ITEM, QUALITY_TYPE, equipTypeToSortAttr, IT_TYPE } from "../../../consts/constModules/itemConst";
import { changeEquip, dressEquip, checkMaterialEnough, takeOffEquipAndCalPlayerCe } from "../../../services/equipService";
import { changeEquip, dressEquip, checkMaterialEnough, takeOffEquipAndCalPlayerCe, checkEquipCanPut } from "../../../services/equipService";
import { indexOf, findIndex } from 'underscore';
import { findIndex } from 'underscore';
import { pushEquipRefineSucMsg, pushNormalEquipMsg, pushNormalItemMsg } from "../../../services/chatService";
import { checkTaskWithHero, checkTaskWithEquip, checkTask, checkTaskWithArgs, checkTaskConditionEquipSuitJewelStage, checkActivityTask } from "../../../services/taskService";
import { Attribute } from "../../../domain/roleField/attribute";
@@ -511,10 +511,7 @@ export class EquipHandler {
return resResult(STATUS.WRONG_PARMS);
if (goodInfo.lvLimited > hero.lv)
return resResult(STATUS.EQUIP_LEVEL_LIMIT);
let { jobid } = gameData.hero.get(hid);
let { job_class } = getHeroJob(jobid);
let { classId } = getHeroEquipByClassId(goodInfo.itid);
if (indexOf(classId, job_class) < 0)
if(checkEquipCanPut(hid, equip.id))
return resResult(STATUS.EQUIP_NOT_EQUIPED_HERO);
let index = findIndex(hero.ePlace, { id });
if (index < 0)
@@ -560,13 +557,11 @@ export class EquipHandler {
let allEquips = await EquipModel.findNotWearEquips(roleId);
let sortEquips = allEquips.map(equip => {
let { id, quality, randRange, ePlaceId } = equip;
let { goodsAbility, lvLimited, itid } = gameData.goods.get(id);
let { goodsAbility, lvLimited } = gameData.goods.get(id);
let attrObj = new Attribute();
attrObj.setByMap(goodsAbility, HERO_CE_RATIO + randRange);
let ce = attrObj.calEquipCe();
let { classId } = getHeroEquipByClassId(itid);
return { id, quality, ce, equip, goodsAbility, lvLimited, classId, ePlaceId }
return { id, quality, ce, equip, goodsAbility, lvLimited, ePlaceId }
});
let { ePlace, lv } = hero;
@@ -575,8 +570,8 @@ export class EquipHandler {
if (!curEPlace.equip) { // 未装备
let sortAttrId = equipTypeToSortAttr.get(curEPlace.id);
let sortedAndSuitEquips = sortEquips.filter(equipInfos => { // 筛选可穿的
let { lvLimited, classId, ePlaceId } = equipInfos;
return lv >= lvLimited && classId.indexOf(dicJob.job_class) != -1 && curEPlace.id == ePlaceId;
let { id, lvLimited, ePlaceId } = equipInfos;
return lv >= lvLimited && checkEquipCanPut(hid, id) && curEPlace.id == ePlaceId;
}).sort((a, b) => { // 排序按:战力 => 根据位置看个别属性 => 品质
if (b.ce - a.ce != 0) return b.ce - a.ce;
let abilityA = a.goodsAbility.get(sortAttrId) || 0;