addItem goodType修改

This commit is contained in:
luying
2020-12-18 17:13:49 +08:00
parent f2c124a6e4
commit 623e760005
13 changed files with 187 additions and 242 deletions
@@ -13,7 +13,7 @@ import { Application, BackendSession } from 'pinus';
import { resResult, getRandomByLen, calculateNum, getRandValue, ratioReward } from '../../../pubUtils/util';
import { RoleStatus } from '../../../db/ComBattleTeam';
import { ItemModel } from '../../../db/Item';
import { handleFixedReward, handleReward } from '../../../services/rewardService';
import { handleFixedReward, addItems } from '../../../services/rewardService';
import { checkRoleInQueue, getTeamSearchByQuality, rmRoleFromQueue, setTeamSearchReq } from '../../../services/redisService';
import { transBossHpArr } from '../../../services/battleService';
import { getRandBlueprtId, getRandComBtlRobots, checkComBattleResult, clearComBtlTimer, getRealReward, getAssistTimesByQuality, getFrd } from '../../../services/comBattleService';
@@ -692,7 +692,8 @@ export class ComBattleHandler {
*/
async comBattleEnd(msg: {teamCode: string}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let { teamCode } = msg;
let team = await ComBattleTeamModel.getTeamByCode(teamCode);
if (!team || team.status !== COM_TEAM_STATUS.WIN) return resResult(STATUS.COM_BATTLE_REWARD_ERR);
@@ -718,10 +719,10 @@ export class ComBattleHandler {
}
await ComBattleTeamModel.updateRewardSt(teamCode, roleId, true);
const goods = await handleFixedReward(roleId, roleName, roleSt.fixReward, 1);
const goods = await handleFixedReward(roleId, roleName, sid, roleSt.fixReward, 1);
let actordata = await roleLevelup(roleId, warInfo.kingExp, this.app, session);// 主公升级经验
return resResult(STATUS.SUCCESS, { ...goods, ...actordata, teamInfo: {status, teamCode, roleStatus, bossHpArr} });
return resResult(STATUS.SUCCESS, { goods, ...actordata, teamInfo: {status, teamCode, roleStatus, bossHpArr} });
}
async getComBtlStatus(msg: {teamCode: string}, session: BackendSession) {
@@ -780,6 +781,8 @@ export class ComBattleHandler {
async composeBlueprt(msg: {original: Array<{id: number, count: number}>}, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const sid = session.get('sid');
const { original } = msg;
// 原材料检查
@@ -817,9 +820,9 @@ export class ComBattleHandler {
const targetList = getBluePrtByQuality(dicCompose.targetQuality);
const target = getRandomByLen(targetList);
const reward = [{gid: target, count: 1}];
const goods = await handleReward(roleId, roleName, reward);
const goods = await addItems(roleId, roleName, sid, reward);
return resResult(STATUS.SUCCESS, { ...goods, costGold: 0 });
return resResult(STATUS.SUCCESS, { goods, costGold: 0 });
}
}
@@ -78,6 +78,7 @@ export class EventBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let eventStatus = session.get('eventStatus');
let sid = session.get('sid');
let event = await EventRecordModel.getEventRecordByCode(roleId, eventCode);
if(!event) {
@@ -109,7 +110,7 @@ export class EventBattleHandler {
let result = await EventRecordModel.setStatusByCode(roleId, eventCode, isSuccess?EVENT_RECORD_STATUS.SUCCESS_RECEIVED:EVENT_RECORD_STATUS.FAIL_RECEIVED);
// 保存奖励
let rewardStr = isSuccess?curEvent.winReward:curEvent.loseReward;
let goods = await handleFixedReward(roleId, roleName, rewardStr, 1);
let goods = await handleFixedReward(roleId, roleName, sid, rewardStr, 1);
if(eventStatus == EVENT_STATUS.STARTING) { // 如果是第一次开启的挑战,保存成开启状态
await RoleModel.setEventStatus(roleId, EVENT_STATUS.OPEN);
// 第一场时间挑战完,开始正常刷新事件,所以刷新时间也重置起来
@@ -123,7 +124,7 @@ export class EventBattleHandler {
eventCode: result.eventCode,
eventId: result.eventId,
status: result.status,
...goods
goods
});
}
}
@@ -210,6 +210,7 @@ export class ExpeditionBattleHandler {
const { expeditionCode, battleCode, battleId, expeditionId, isSuccess, heroes, star, enemies } = msg;
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let warInfo = getWarById(battleId);
if(!warInfo) {
@@ -259,7 +260,7 @@ export class ExpeditionBattleHandler {
let { expeditionPoint = 0 } = role;
// 关卡奖励
let warReward = new WarReward(roleId, roleName, battleId, isSuccess);
let warReward = new WarReward(roleId, roleName, sid, battleId, isSuccess);
let reward = await warReward.saveReward(1);
let actordata = await roleLevelup(roleId, isSuccess?warInfo.kingExp:0, this.app, session);// 主公升级经验
@@ -272,7 +273,7 @@ export class ExpeditionBattleHandler {
expeditionCode, expeditionId,
battleCode, battleId,
battleStatus: expeditionWarRecord.battleStatus,
...reward,
goods: reward,
apJson,
expeditionPoint,
...actordata
@@ -288,6 +289,7 @@ export class ExpeditionBattleHandler {
const { point } = msg;
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let role = await RoleModel.findByRoleId(roleId);
let {expeditionPoint} = role;
@@ -325,12 +327,12 @@ export class ExpeditionBattleHandler {
}
let pointRewards = await getPointRewardStatus(roleId);
let goods = await handleFixedReward(roleId, roleName, curDicExpeditionPoint.reward, 1);
let goods = await handleFixedReward(roleId, roleName, sid, curDicExpeditionPoint.reward, 1);
return resResult(STATUS.SUCCESS, {
costPoint: hasReceivedAll?maxPoint: 0,
pointRewards,
...goods
goods
})
}
@@ -191,7 +191,7 @@ export class NormalBattleHandler {
let channelService = this.app.get('channelService');
let warReward = new WarReward(roleId, roleName, battleId, isSuccess);
let warReward = new WarReward(roleId, roleName, sid, battleId, isSuccess);
let dailyNum = {};
let towerStatus = null;
@@ -254,7 +254,7 @@ export class NormalBattleHandler {
// towerStatus: false-本层未通过, true-本层已通过
return resResult(STATUS.SUCCESS, {
battleCode, battleId, status,
...reward,
goods: reward,
apJson,
towerStatus, dailyNum, dungeonNum,
...actordata
@@ -266,6 +266,7 @@ export class NormalBattleHandler {
const { battleId, count } = msg;
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let warInfo = getWarById(battleId);
if(!warInfo) {
return resResult(STATUS.BATTLE_MISS_INFO);
@@ -305,7 +306,7 @@ export class NormalBattleHandler {
}
// 发奖励
let warReward = new WarReward(roleId, roleName, battleId, true);
let warReward = new WarReward(roleId, roleName, sid, battleId, true);
let result = await warReward.saveReward(count);
let actordata = await roleLevelup(roleId, warInfo.kingExp * count, this.app, session)// 主公升级经验
@@ -322,7 +323,7 @@ export class NormalBattleHandler {
return resResult(STATUS.SUCCESS, {
battleId, count,
...result,
goods: result,
apJson,
dailyNum, dungeonNum,
...actordata
@@ -9,7 +9,7 @@ import { Application, BackendSession } from 'pinus';
import { getTaskById, getTowerDataByLv } from '../../../pubUtils/gamedata';
import { decodeArrayStr, resResult, shouldRefresh, calculateNum, getRefTime, genCode } from '../../../pubUtils/util';
import { calcuHangUpReward, checkTaskConditions, checkHangUpSpdUpCnt, createCurTasks, treatTask, getRemainTime, getTasksReward, getTaskStatus, getDoingOrWaitingTasks } from '../../../services/battleService';
import { handleFixedReward, handleReward } from '../../../services/rewardService';
import { handleFixedReward, addItems } from '../../../services/rewardService';
import { checkBattleHeroes } from '../../../services/normalBattleService';
import { getRank, setRank, initRank, existsRank } from '../../../services/redisService';
@@ -97,21 +97,23 @@ export class TowerBattleHandler {
async recHangUpRewards(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
const result = await calcuHangUpReward(roleId);
if(result.status == -1) {
return result.resResult
}
let { timeReward, endLv, endTime, deltaTime, needReceiveGoods } = result.data;
const goods = await handleReward(roleId, roleName, timeReward);
const goods = await addItems(roleId, roleName, sid, timeReward);
await HangUpRecordModel.updateRec(roleId, roleName, endLv, endTime, needReceiveGoods);
return resResult(STATUS.SUCCESS, { endTime, hangUpPassTime: Math.floor((deltaTime%HANG_UP_CONSTS.UNIT_TIME)/1000), ...goods });
return resResult(STATUS.SUCCESS, { endTime, hangUpPassTime: Math.floor((deltaTime%HANG_UP_CONSTS.UNIT_TIME)/1000), goods });
}
async hangUpSpeedUp(msg: {speedUpCnt: number}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
if (msg.speedUpCnt <= 0) {
return resResult(STATUS.WRONG_PARMS);
}
@@ -137,12 +139,12 @@ export class TowerBattleHandler {
return resResult(STATUS.TOWER_HANG_UP_FAILED);
}
const spdUpRec = await HangUpSpdUpRecModel.updateRec(roleId, roleName, msg.speedUpCnt, endLv, needReceiveGoods);
const goods = await handleReward(roleId, roleName, timeReward);
const goods = await addItems(roleId, roleName, sid, timeReward);
hangUpSpdUpCnt -= msg.speedUpCnt;
let num = HANG_UP_CONSTS.MAX_SPD_UP_CNT - hangUpSpdUpCnt + 1;
let nextCostGold = calculateNum(GOLD_COST_RATIO.TOWER_HANG_SPDUP, {num}, 50);
return resResult(STATUS.SUCCESS, { ...goods, hangUpSpdUpCnt, nextCostGold, hangUpPassTime: Math.floor(deltaTime/1000), rewardLv: endLv, costGold });
return resResult(STATUS.SUCCESS, { goods, hangUpSpdUpCnt, nextCostGold, hangUpPassTime: Math.floor(deltaTime/1000), rewardLv: endLv, costGold });
}
getHangUpCost(originCnt: number, count: number) {
@@ -267,6 +269,7 @@ export class TowerBattleHandler {
async settleTask(msg: {batchCode: string, taskCode: string}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
let allFlag = !msg.taskCode;
@@ -285,12 +288,12 @@ export class TowerBattleHandler {
let {completeTime, reward, termsForAdd, additionalReward} = getTaskById(task.taskId);
if (task.sendTime && task.sendTime.getTime() + completeTime * 1000 < curTime.getTime()) {
compTasks.push(task.taskCode);
const rewardGoods = await handleFixedReward(roleId, roleName, reward, 1);
goods = goods.concat(rewardGoods.goods);
const rewardGoods = await handleFixedReward(roleId, roleName, sid, reward, 1);
goods = goods.concat(rewardGoods);
if(termsForAdd) {
const result = await checkTaskConditions(roleId, task.heroes, termsForAdd);
const bonusGoods = await handleFixedReward(roleId, roleName, result?additionalReward:'', 1);
goods = goods.concat(bonusGoods.goods);
const bonusGoods = await handleFixedReward(roleId, roleName, sid, result?additionalReward:'', 1);
goods = goods.concat(bonusGoods);
}
}
}