This commit is contained in:
mamengke01
2020-12-18 17:59:23 +08:00
parent d25771f9b0
commit 2a3cb06927
3 changed files with 43 additions and 16 deletions

View File

@@ -315,41 +315,68 @@ export class EquipHandler {
return resResult(STATUS.SUCCESS,{goods:result});
}
//穿戴或卸载装备 1-穿上装备 2-脱下装备
//穿戴或卸载装备 1-穿上装备(包括替换) 2-脱下装备
public async putOnOrOff(msg: {eid: number, hid: number, type: number}, session: BackendSession) {
let { eid, hid, type } = msg;
let roleId: string = session.get('roleId');
let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let equip = await EquipModel.getEquip(eid);
let returnEquips:Array<{seqId:number, id:number, hid:number, ePlaceId:number}>;
let goodInfo = getGoodById(equip.id);
let obj = ITID.get(goodInfo.itid);
let ePlaceId = obj.type;
let curEquips:Array<{seqId: number, hid: number, ePlaceId: number }> = [];
if (type == 1) {
if (!!equip.hid)
return resResult(STATUS.EQUIP_IS_EQUIPED);
let hero = await HeroModel.getHeroAndEquip(roleId, hid);
if (!hero)
let ePlace = await HeroModel.getHeroEquip(roleId, hid);
if (!ePlace)
return resResult(STATUS.HERO_NOT_FIND);
//修改数据库TODO
let index = _.findIndex(ePlace, {id: ePlaceId});
if (index < 0)
return resResult(STATUS.WRONG_PARMS);
if (!!ePlace[index].equip) {
let lastEquip = await EquipModel.updateEquipInfo(ePlace[index].equip.seqId, {hid:0, ePlaceId: 0});
curEquips.push({
seqId: lastEquip.seqId,
hid: lastEquip.hid,
ePlaceId: lastEquip.ePlaceId
});
}
await HeroModel.addEquip(roleId, hid, ePlaceId, equip._id);
curEquips.push({
seqId: eid,
hid: hid,
ePlaceId: ePlaceId
});
} else if (type == 2) {
if (!equip.hid)
return resResult(STATUS.EQUIP_NOT_EQUIPED);
//修改数据库TODO
let ePlace = await HeroModel.getHeroEquip(roleId, hid);
if (!ePlace)
return resResult(STATUS.HERO_NOT_FIND);
let index = _.findIndex(ePlace, {id: ePlaceId});
if (index < 0)
return resResult(STATUS.WRONG_PARMS);
if (!ePlace[index].equip||ePlace[index].equip.seqId != eid)
return resResult(STATUS.WRONG_PARMS);
await HeroModel.unloadHeroAndEquip(roleId, hid, eid);
equip = await EquipModel.updateEquipInfo(eid, {hid:0, ePlaceId: 0});
curEquips.push({
seqId: equip.seqId,
hid: equip.hid,
ePlaceId: equip.ePlaceId
});
}
return resResult(STATUS.SUCCESS,{curEquips:curEquips});
}
//装备打孔
public async digHole(msg: {eid: number, id: number}, session: BackendSession) {
let { eid, id } = msg;
let roleId: string = session.get('roleId');
let roleName: string = session.get('roleName');
let sid: string = session.get('sid');
let equip = await EquipModel.getEquip(eid);
let index = _.indexOf(equip.holes, {id});
if (index > 0)
let index = _.findIndex(equip.holes, {id});
if (index < 0)
return resResult(STATUS.EQUIP_HOLE_NOT_FIND);
if (equip.holes[index].isOpen)
return resResult(STATUS.EQUIP_HOLE_IS_DUG);
@@ -376,7 +403,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let consumes:Array<{id: number, count: number}> = [];
let equip = await EquipModel.getEquip(eid);
let index = _.indexOf(equip.holes, {id});
let index = _.findIndex(equip.holes, {id});
if (index > 0)
return resResult(STATUS.EQUIP_HOLE_NOT_FIND);
if (equip.holes[index].isOpen)
@@ -421,7 +448,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let goods:Array<{id: number, count: number}> = [];
let equip = await EquipModel.getEquip(eid);
let index = _.indexOf(equip.holes, {id});
let index = _.findIndex(equip.holes, {id});
if (index > 0)
return resResult(STATUS.EQUIP_HOLE_NOT_FIND);
if (equip.holes[index].isOpen)

View File

@@ -26,7 +26,7 @@ export class RoleHandler {
// type: 1
// }
// const equip = await EquipModel.createEquip(equipInfo);
// await HeroModel.addEquip(roleId, 12, equip._id);
// await HeroModel.addEquip(roleId, 12, 1, equip._id);
}
async initHeros(roleId: string, roleName: string) {

View File

@@ -188,7 +188,7 @@ function sortItems (goods: Array<ItemInter>, bags: Array<BagInter>, skins: Array
if (!!isCurrency) {
let curname = getCurNameById(goodInfo.good_id);
if (!!curname) {
let index = _.indexOf(showItems, {id: good.id});
let index = _.findIndex(showItems, {id: good.id});
if (index > 0) {
showItems[index].count = showItems[index].count + good.count;
} else {