This commit is contained in:
mamengke01
2020-12-22 17:25:55 +08:00
parent eec53b688f
commit 9a377e94d8
18 changed files with 218 additions and 115 deletions
@@ -1,7 +1,7 @@
import { Application, BackendSession } from "pinus";
import { STATUS, EQUIP_STRENGTHEN_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, HERO_SYSTEM_TYPE, CONSUME_TYPE, GOOD_TYPE, HERO_GROW_MAX } from "../../../consts";
import { ItemInter } from "../../../pubUtils/interface";
import { resResult, parseReward, getRandomByLen, deepCopy } from "../../../pubUtils/util";
import { resResult, parseGoodStr, getRandomByLen, deepCopy } from "../../../pubUtils/util";
import { addItems, handleCost } from "../../../services/rewardService";
import { EquipModel, RandSe } from "../../../db/Equip";
import { HeroModel, EPlace } from "../../../db/Hero";
@@ -228,11 +228,11 @@ export class EquipHandler {
let lockNum = randSe.filter(cur => cur.locked).length;
let consumes: Array<{ id: number, count: number }> = [];
if (lockNum == 0) {
consumes = parseReward(EQUIP.EQUIP_ONE_LOCKED);
consumes = parseGoodStr(EQUIP.EQUIP_ONE_LOCKED);
} else if (lockNum == 1) {
consumes = parseReward(EQUIP.EQUIP_TWO_LOCKED);
consumes = parseGoodStr(EQUIP.EQUIP_TWO_LOCKED);
} else if (lockNum == 2) {
consumes = parseReward(EQUIP.EQUIP_THREE_LOCKED);
consumes = parseGoodStr(EQUIP.EQUIP_THREE_LOCKED);
} else {
return resResult(STATUS.ROLE_ALL_SE_LOCK);
}
@@ -295,13 +295,13 @@ export class EquipHandler {
// 消耗
let consumes: Array<{ id: number, count: number }> = [];
if (lockNum == 0) {
consumes = parseReward(EQUIP.EQUIP_ONE_REFORGED);
consumes = parseGoodStr(EQUIP.EQUIP_ONE_REFORGED);
} else if (lockNum == 1) {
consumes = parseReward(EQUIP.EQUIP_TWO_REFORGED);
consumes = parseGoodStr(EQUIP.EQUIP_TWO_REFORGED);
} else if (lockNum == 2) {
consumes = parseReward(EQUIP.EQUIP_THREE_REFORGED);
consumes = parseGoodStr(EQUIP.EQUIP_THREE_REFORGED);
} else {
consumes = parseReward(EQUIP.EQUIP_FOUR_REFORGED);
consumes = parseGoodStr(EQUIP.EQUIP_FOUR_REFORGED);
}
let result = await handleCost(roleId, sid, consumes);
@@ -352,6 +352,7 @@ export class EquipHandler {
let { eid, hid, type } = msg;
let roleId: string = session.get('roleId');
let equip = await EquipModel.getEquip(eid);
let sid: string = session.get('sid');
let goodInfo = getGoodById(equip.id);
let obj = ITID.get(goodInfo.itid);
let id = obj.type;
@@ -378,6 +379,7 @@ export class EquipHandler {
curEquips.push({ seqId, hid, ePlaceId });
}
await HeroModel.addEquip(roleId, hid, id, equip._id);
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.EQUIP, []);
curEquips.push({ seqId: eid, hid, ePlaceId:id});
} else if (type == 2) {
if (!equip.hid)
@@ -386,8 +388,9 @@ export class EquipHandler {
if (index < 0)
return resResult(STATUS.WRONG_PARMS);
hero.ePlace[index].equip = null;
await HeroModel.updateHeroInfo(roleId, hid, { ePlace: hero.ePlace });
//await HeroModel.updateHeroInfo(roleId, hid, { ePlace: hero.ePlace });
let {seqId, ePlaceId} = await EquipModel.updateEquipInfo(eid, { hid: 0, ePlaceId: 0 });
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.EQUIP, []);
curEquips.push({ seqId, hid, ePlaceId });
}
return resResult(STATUS.SUCCESS, { curEquips: curEquips });
@@ -406,11 +409,11 @@ export class EquipHandler {
return resResult(STATUS.EQUIP_HOLE_IS_DUG);
let consumes: Array<{ id: number, count: number }> = [];
if (id == 1) {
consumes = parseReward(EQUIP.EQUIP_ONE_HOLE);
consumes = parseGoodStr(EQUIP.EQUIP_ONE_HOLE);
} else if (id == 2) {
consumes = parseReward(EQUIP.EQUIP_TWO_HOLE);
consumes = parseGoodStr(EQUIP.EQUIP_TWO_HOLE);
} else if (id == 3) {
consumes = parseReward(EQUIP.EQUIP_THREE_HOLE);
consumes = parseGoodStr(EQUIP.EQUIP_THREE_HOLE);
}
let result = await handleCost(roleId, sid, consumes);
if (!result)
@@ -438,8 +441,9 @@ export class EquipHandler {
return resResult(STATUS.EQUIP_HOLE_NOT_FIND);
if (!equip.holes[index].isOpen)
return resResult(STATUS.EQUIP_HOLE_IS_NOT_DUG);
if (!!equip.holes[index].jewel)
goods.push({id: equip.holes[index].jewel, count:1});
let oldJewel = equip.holes[index].jewel;
if (!!oldJewel)
goods.push({id: oldJewel, count:1});
consumes.push({ id: jewel, count: 1 });
let result = await handleCost(roleId, sid, consumes);
if (!result)
@@ -449,6 +453,10 @@ export class EquipHandler {
let roleName: string = session.get('roleName');
if (goods.length)
await addItems(roleId, roleName, sid, goods);
if (!!equip.hid) {
let hero = await HeroModel.findByHidAndRole(equip.hid, roleId);
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.JEWEL_ON, [jewel, oldJewel]);
}
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
}
@@ -514,12 +522,17 @@ export class EquipHandler {
let index = _.findIndex(equip.holes, { id });
if (index > 0)
return resResult(STATUS.EQUIP_HOLE_NOT_FIND);
if (!equip.holes[index].jewel)
let jewel = equip.holes[index].jewel;
if (!jewel)
return resResult(STATUS.EQUIP_NOT_FILL_HOLE);
goods.push({ id: equip.holes[index].jewel, count: 1 });
goods.push({ id: jewel, count: 1 });
equip.holes[index].jewel = 0;
await EquipModel.updateEquipInfo(eid, { holes: equip.holes });
await addItems(roleId, roleName, sid, goods);
if (!!equip.hid) {
let hero = await HeroModel.findByHidAndRole(equip.hid, roleId);
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.JEWEL_OFF, [jewel]);
}
return resResult(STATUS.SUCCESS, { curEquip: { seqId: eid, holes: equip.holes } });
}
}