Merge branch 'feature/equip'

This commit is contained in:
luying
2022-03-04 09:47:00 +08:00
9 changed files with 813 additions and 6711 deletions
@@ -52,7 +52,11 @@ export class EquipHandler {
let newEquip = new EPlace(ePlaceId, dicEquip.id); let newEquip = new EPlace(ePlaceId, dicEquip.id);
let newEplace = [...oldEplace, newEquip]; let newEplace = [...oldEplace, newEquip];
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.COMPOSE_EQUIP, sid, roleId, hero, { ePlace: newEplace }, [ePlaceId]); let update = {
ePlace: newEplace,
consumes: addConsumeToHero(hero.consumes, dicEquip.composeMaterial),
}
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.COMPOSE_EQUIP, sid, roleId, hero, update, [ePlaceId]);
await checkTaskInComposeEquip(serverId, roleId, sid, oldEplace, newEplace, ePlaceId); await checkTaskInComposeEquip(serverId, roleId, sid, oldEplace, newEplace, ePlaceId);
return resResult(STATUS.SUCCESS, { return resResult(STATUS.SUCCESS, {
@@ -415,13 +419,13 @@ export class EquipHandler {
let updateConsumes = hero.consumes; let updateConsumes = hero.consumes;
if(gid > 0) { if(gid > 0) {
addConsumeToHero(updateConsumes, [{ id: gid, count: 1 }]); updateConsumes = addConsumeToHero(updateConsumes, [{ id: gid, count: 1 }]);
let consumeResult = await handleCost(roleId, sid, [{ id: gid, count: 1 }], ITEM_CHANGE_REASON.EQUIP_FILL_HOLE); let consumeResult = await handleCost(roleId, sid, [{ id: gid, count: 1 }], ITEM_CHANGE_REASON.EQUIP_FILL_HOLE);
if (!consumeResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); if (!consumeResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
} }
if(curStone.stone > 0) { // 返回石头 if(curStone.stone > 0) { // 返回石头
addConsumeToHero(updateConsumes, [{ id: curStone.stone, count: -1 }]); updateConsumes = addConsumeToHero(updateConsumes, [{ id: curStone.stone, count: -1 }]);
await addItems(roleId, roleName, sid, [{ id: curStone.stone, count: 1 }], ITEM_CHANGE_REASON.EQUIP_FILL_HOLE); await addItems(roleId, roleName, sid, [{ id: curStone.stone, count: 1 }], ITEM_CHANGE_REASON.EQUIP_FILL_HOLE);
} }
@@ -1,7 +1,7 @@
import { Application, BackendSession, ChannelService, HandlerService, } from 'pinus'; import { Application, BackendSession, ChannelService, HandlerService, } from 'pinus';
import { handleCost, addItems, unlockFigure, createHeroes, createHero, CheckMeterial } from '../../../services/rewardService'; import { handleCost, addItems, unlockFigure, createHeroes, createHero, CheckMeterial } from '../../../services/rewardService';
import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService'; import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService';
import { resResult, deepCopy } from '../../../pubUtils/util'; import { resResult, deepCopy, reduceCe } from '../../../pubUtils/util';
import { STATUS } from '../../../consts/statusCode'; import { STATUS } from '../../../consts/statusCode';
import { HeroModel, Connect, HeroSkin, HeroUpdate, EPlace } from '../../../db/Hero'; import { HeroModel, Connect, HeroSkin, HeroUpdate, EPlace } from '../../../db/Hero';
import { CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY, REDIS_KEY, TASK_TYPE, ITEM_CHANGE_REASON } from '../../../consts'; import { CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY, REDIS_KEY, TASK_TYPE, ITEM_CHANGE_REASON } from '../../../consts';
@@ -14,7 +14,7 @@ import { pushComposeOrangeHero, pushHeroQualityUpMsg, pushHeroStarMax, pushHeroW
import { calculatetopLineup } from '../../../pubUtils/playerCe'; import { calculatetopLineup } from '../../../pubUtils/playerCe';
import { PvpDefenseModel } from '../../../db/PvpDefense'; import { PvpDefenseModel } from '../../../db/PvpDefense';
import { checkTaskWithHero, checkTask, checkActivityTask } from '../../../services/taskService'; import { checkTaskWithHero, checkTask, checkActivityTask } from '../../../services/taskService';
import { pick } from 'underscore'; import { isNumber, pick } from 'underscore';
import { updateEplaces } from '../../../services/equipService'; import { updateEplaces } from '../../../services/equipService';
import { addConsumeToHero } from '../../../services/roleService'; import { addConsumeToHero } from '../../../services/roleService';
import { getCoinObject, getGoldObject } from '../../../pubUtils/itemUtils'; import { getCoinObject, getGoldObject } from '../../../pubUtils/itemUtils';
@@ -649,6 +649,8 @@ export class HeroHandler {
let sid: string = session.get('sid'); let sid: string = session.get('sid');
let { hid } = msg; let { hid } = msg;
if(!isNumber(hid) && !hid) return resResult(STATUS.WRONG_PARMS);
// 武将初始,但是皮肤这里不初始 // 武将初始,但是皮肤这里不初始
let hero = await HeroModel.findByHidAndRole(hid, roleId); let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND); if(!hero) return resResult(STATUS.HERO_NOT_FIND);
@@ -687,11 +689,11 @@ export class HeroHandler {
} }
let { heros } = await calAllHeroCe(HERO_SYSTEM_TYPE.REBIRTH, sid, roleId, {}, [hid], { originHero: hero, heroUpdate: initInfo }); let { heros } = await calAllHeroCe(HERO_SYSTEM_TYPE.REBIRTH, sid, roleId, {}, [hid], { originHero: hero, heroUpdate: initInfo });
let curHeo = heros.find(cur => cur.hid == hid); let curHero = heros.find(cur => cur.hid == hid);
let goods = await addItems(roleId, roleName, sid, consumes, ITEM_CHANGE_REASON.REBIRTH); let goods = await addItems(roleId, roleName, sid, consumes, ITEM_CHANGE_REASON.REBIRTH);
return resResult(STATUS.SUCCESS, { curHeo, curJewels, goods }); return resResult(STATUS.SUCCESS, { curHero: { ...curHero, ce: reduceCe(curHero.ce) }, curJewels, goods });
} }
// ! debug接口 一键全武将 // ! debug接口 一键全武将
+3 -3
View File
@@ -176,7 +176,7 @@ export class SendMailFun {
let originMail = await MailModel.addMail({ roleId, ...mapTemp.getCreateMailParams() }); let originMail = await MailModel.addMail({ roleId, ...mapTemp.getCreateMailParams() });
this.mails.push(originMail); this.mails.push(originMail);
} }
await GMMailModel.sendMail(mapTemp.gmmail._id, mapTemp.sendTime); if(mapTemp.gmmail) await GMMailModel.sendMail(mapTemp.gmmail._id, mapTemp.sendTime);
} }
// 生成多人邮件 // 生成多人邮件
@@ -187,7 +187,7 @@ export class SendMailFun {
return { roleId, status: MAIL_STATUS.CREATE } return { roleId, status: MAIL_STATUS.CREATE }
}) })
let originMail = await GroupMailModel.addMail({ roleStatus, guildCode, ...mapTemp.getCreateMailParams() }); let originMail = await GroupMailModel.addMail({ roleStatus, guildCode, ...mapTemp.getCreateMailParams() });
await GMMailModel.sendMail(mapTemp.gmmail._id, mapTemp.sendTime); if(mapTemp.gmmail) await GMMailModel.sendMail(mapTemp.gmmail._id, mapTemp.sendTime);
this.groupMails.push(originMail); this.groupMails.push(originMail);
} }
@@ -199,7 +199,7 @@ export class SendMailFun {
let originMail = await ServerMailModel.addMail({ serverId, ...mapTemp.getCreateMailParams() }); let originMail = await ServerMailModel.addMail({ serverId, ...mapTemp.getCreateMailParams() });
this.serverMails.push(originMail); this.serverMails.push(originMail);
} }
await GMMailModel.sendMail(mapTemp.gmmail._id, mapTemp.sendTime); if(mapTemp.gmmail) await GMMailModel.sendMail(mapTemp.gmmail._id, mapTemp.sendTime);
} }
public async setMails(mails: MailType[], groupMails: GroupMailType[], serverMails: ServerMailType[]) { public async setMails(mails: MailType[], groupMails: GroupMailType[], serverMails: ServerMailType[]) {
+6 -2
View File
@@ -71,6 +71,7 @@ export async function reCalAllHeroCe(type: number, roleId: string, update: RoleU
let pushHeros = new Array<{ hid: number, ce: number, incHeroCe: number }>(); let pushHeros = new Array<{ hid: number, ce: number, incHeroCe: number }>();
let allIncCe = 0; let allIncCe = 0;
let resultHeroes = [];
for (let hero of heros) { for (let hero of heros) {
let { attr: heroAttrs, lv } = hero; let { attr: heroAttrs, lv } = hero;
let newAttr = new AttributeCal(); let newAttr = new AttributeCal();
@@ -81,8 +82,11 @@ export async function reCalAllHeroCe(type: number, roleId: string, update: RoleU
let incHeroCe = heroCe - hero.ce; let incHeroCe = heroCe - hero.ce;
allIncCe += incHeroCe; allIncCe += incHeroCe;
pushHeros.push({ hid: hero.hid, ce: reduceCe(heroCe), incHeroCe: reduceCe(incHeroCe) }); pushHeros.push({ hid: hero.hid, ce: reduceCe(heroCe), incHeroCe: reduceCe(incHeroCe) });
await HeroModel.updateHeroInfo(roleId, hero.hid, { ce: heroCe }); let resultHero = await HeroModel.updateHeroInfo(roleId, hero.hid, { ce: heroCe });
resultHeroes.push(resultHero);
await PvpDefenseModel.updateCe(roleId, hero.hid, reduceCe(incHeroCe)); // 更新pvp防守阵战力 await PvpDefenseModel.updateCe(roleId, hero.hid, reduceCe(incHeroCe)); // 更新pvp防守阵战力
} else {
resultHeroes.push(hero);
} }
} }
@@ -100,7 +104,7 @@ export async function reCalAllHeroCe(type: number, roleId: string, update: RoleU
let guild = await GuildModel.updateCe(roleId, allIncCe); // 公会更新战力 let guild = await GuildModel.updateCe(roleId, allIncCe); // 公会更新战力
saveCeChangeLog(role, allIncCe, role.ce, type, args); saveCeChangeLog(role, allIncCe, role.ce, type, args);
return { role, pushHeros, ce: role.ce, topLineupCe: role.topLineupCe, guild, serverId: role.serverId, heros } return { role, pushHeros, ce: role.ce, topLineupCe: role.topLineupCe, guild, serverId: role.serverId, heros: resultHeroes }
} }
@@ -19,7 +19,7 @@
"max": 2, "max": 2,
"honourConsume": "40005&60", "honourConsume": "40005&60",
"fundConsume": 19000, "fundConsume": 19000,
"timeConsume": 1200 "timeConsume": 20
}, },
{ {
"id": 3, "id": 3,
@@ -30,7 +30,7 @@
"max": 3, "max": 3,
"honourConsume": "40005&50", "honourConsume": "40005&50",
"fundConsume": 27000, "fundConsume": 27000,
"timeConsume": 1800 "timeConsume": 30
}, },
{ {
"id": 4, "id": 4,
@@ -41,7 +41,7 @@
"max": 1, "max": 1,
"honourConsume": "40005&70", "honourConsume": "40005&70",
"fundConsume": 40000, "fundConsume": 40000,
"timeConsume": 2700 "timeConsume": 40
}, },
{ {
"id": 5, "id": 5,
@@ -52,7 +52,7 @@
"max": 2, "max": 2,
"honourConsume": "40005&60", "honourConsume": "40005&60",
"fundConsume": 40000, "fundConsume": 40000,
"timeConsume": 2700 "timeConsume": 50
}, },
{ {
"id": 6, "id": 6,
@@ -63,7 +63,7 @@
"max": 3, "max": 3,
"honourConsume": "40005&50", "honourConsume": "40005&50",
"fundConsume": 31000, "fundConsume": 31000,
"timeConsume": 2700 "timeConsume": 60
}, },
{ {
"id": 7, "id": 7,
@@ -74,7 +74,7 @@
"max": 1, "max": 1,
"honourConsume": "40005&70", "honourConsume": "40005&70",
"fundConsume": 45000, "fundConsume": 45000,
"timeConsume": 4800 "timeConsume": 70
}, },
{ {
"id": 8, "id": 8,
@@ -85,7 +85,7 @@
"max": 2, "max": 2,
"honourConsume": "40005&60", "honourConsume": "40005&60",
"fundConsume": 60000, "fundConsume": 60000,
"timeConsume": 7200 "timeConsume": 80
}, },
{ {
"id": 9, "id": 9,
@@ -96,7 +96,7 @@
"max": 3, "max": 3,
"honourConsume": "40005&50", "honourConsume": "40005&50",
"fundConsume": 40000, "fundConsume": 40000,
"timeConsume": 2700 "timeConsume": 90
}, },
{ {
"id": 10, "id": 10,
@@ -107,7 +107,7 @@
"max": 1, "max": 1,
"honourConsume": "40005&70", "honourConsume": "40005&70",
"fundConsume": 48000, "fundConsume": 48000,
"timeConsume": 5400 "timeConsume": 100
}, },
{ {
"id": 11, "id": 11,
@@ -118,7 +118,7 @@
"max": 2, "max": 2,
"honourConsume": "40005&60", "honourConsume": "40005&60",
"fundConsume": 66000, "fundConsume": 66000,
"timeConsume": 8400 "timeConsume": 110
}, },
{ {
"id": 12, "id": 12,
@@ -129,7 +129,7 @@
"max": 3, "max": 3,
"honourConsume": "40005&50", "honourConsume": "40005&50",
"fundConsume": 86000, "fundConsume": 86000,
"timeConsume": 10800 "timeConsume": 120
}, },
{ {
"id": 13, "id": 13,
@@ -140,7 +140,7 @@
"max": 1, "max": 1,
"honourConsume": "40005&70", "honourConsume": "40005&70",
"fundConsume": 40000, "fundConsume": 40000,
"timeConsume": 2700 "timeConsume": 130
}, },
{ {
"id": 14, "id": 14,
@@ -151,7 +151,7 @@
"max": 2, "max": 2,
"honourConsume": "40005&60", "honourConsume": "40005&60",
"fundConsume": 84000, "fundConsume": 84000,
"timeConsume": 10800 "timeConsume": 140
}, },
{ {
"id": 15, "id": 15,
@@ -162,6 +162,6 @@
"max": 3, "max": 3,
"honourConsume": "40005&50", "honourConsume": "40005&50",
"fundConsume": 115000, "fundConsume": 115000,
"timeConsume": 16800 "timeConsume": 150
} }
] ]
+108 -3132
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -37,22 +37,22 @@
}, },
{ {
"typeid": 11, "typeid": 11,
"name": "二星套装" "name": "蓝品图纸"
}, },
{ {
"typeid": 12, "typeid": 12,
"name": "三星套装" "name": "紫品图纸"
}, },
{ {
"typeid": 13, "typeid": 13,
"name": "四星套装" "name": "橙品图纸"
}, },
{ {
"typeid": 14, "typeid": 14,
"name": "五星套装" "name": "红品图纸"
}, },
{ {
"typeid": 15, "typeid": 15,
"name": "六星套装" "name": "金品图纸"
} }
] ]