全局:加载json方法全部改为最新
This commit is contained in:
@@ -7,14 +7,13 @@ import { difference } from 'underscore';
|
||||
* @Last Modified time: 2021-03-10 20:15:30
|
||||
*/
|
||||
import { IT_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, COM_TEAM_STATUS, COM_BTL_CONST, CONSUME_TYPE, COM_BTL_QUALITY, MSG_SOURCE, QUALITY_TYPE, ROLE_SELECT, TASK_TYPE } from './../../../consts';
|
||||
import { getGoodById, getBlueprtComposeByQuality, getBluePrtByQuality, getWarById, getWarIdByBlueprtId } from '../../../pubUtils/gamedata';
|
||||
import Role, { RoleModel } from '../../../db/Role';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { resResult, getRandomByLen } from '../../../pubUtils/util';
|
||||
import { RoleStatus, ComBattleTeamModel, ComBattleTeamType } from '../../../db/ComBattleTeam';
|
||||
import { ItemModel } from '../../../db/Item';
|
||||
import { handleFixedReward, addItems, handleCost } from '../../../services/rewardService';
|
||||
import { resResult, getRandSingleEelm } from '../../../pubUtils/util';
|
||||
import { RoleStatus, ComBattleTeamModel, ComBattleTeamType, BossHp } from '../../../db/ComBattleTeam';
|
||||
import { ItemModel, ItemType } from '../../../db/Item';
|
||||
import { addItems, handleCost } from '../../../services/rewardService';
|
||||
import { checkRoleInQueue, rmRoleFromQueue, setTeamSearchReq } from '../../../services/redisService';
|
||||
import { getRandBlueprtId, clearComBtlTimer, getAssistTimesByQuality, getFrd, updateRobotHurtByTime, comBtlLvInvalid, clearRobotHurtTimer, setDismissTimer, dismissTeam, incEquipPrintDrop, randEquipPrintId, handleComBtlProgress, getComBattleFriendAdd, teammateInBlackList, blueprtIdValid, createComTeamData, hasEnoughBlueprt, addRoleToTeam, addRoleStToTeam, addValidSearchingRoles, validToJoin, addRobotsToTeam, addRobotsLater, teamIsFullToStart, oneTeamNotInBlack } from '../../../services/comBattleService';
|
||||
import { setAp } from '../../../services/actionPointService';
|
||||
@@ -26,6 +25,7 @@ import { EXTERIOR } from '../../../pubUtils/dicParam';
|
||||
import { getTodayZeroDate } from '../../../pubUtils/timeUtil';
|
||||
import { FriendParams } from '../../../domain/roleField/friend';
|
||||
import { checkTask, checkTaskWithGoods } from '../../../services/taskService';
|
||||
import { gameData, getWarByBlueprtId } from '../../../pubUtils/data';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new ComBattleHandler(app);
|
||||
@@ -126,7 +126,7 @@ export class ComBattleHandler {
|
||||
let blueprtId = getRandBlueprtId(qualityArr).pop();
|
||||
let comTeam: MemComBtlTeam = createComTeamData(teamCode, false, blueprtId, 'robot', 0)
|
||||
|
||||
let { quality } = getGoodById(blueprtId);
|
||||
let { quality } = gameData.goods.get(blueprtId);
|
||||
let isFrd = await getFrd(roleId, quality);
|
||||
// 将玩家加入队伍
|
||||
addRoleToTeam(comTeam, roleInfo, false, isFrd);
|
||||
@@ -179,7 +179,7 @@ export class ComBattleHandler {
|
||||
if (teamStatus.roleIds.indexOf(roleId) !== -1) return resResult(STATUS.COM_BATTLE_DUP_ENTER);
|
||||
let { lv = 1, head = EXTERIOR.EXTERIOR_FACE, topLineupCe = 0, frame = EXTERIOR.EXTERIOR_FACECASE, spine = EXTERIOR.EXTERIOR_APPEARANCE } = await Role.findByRoleId(roleId, null, true);
|
||||
|
||||
let { quality } = getGoodById(teamStatus.blueprtId);
|
||||
let { quality } = gameData.goods.get(teamStatus.blueprtId);
|
||||
if (lv < COM_BTL_CONST.ENABLE_LV) {
|
||||
return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
||||
} else if (comBtlLvInvalid(lv, teamStatus.lvRange)) {
|
||||
@@ -346,7 +346,7 @@ export class ComBattleHandler {
|
||||
let channel = channelService.getChannel(teamCode, false);
|
||||
// 先推送离队消息,再将玩家从房间中移除
|
||||
channel.pushMessage('onLeaveTeam', resResult(STATUS.SUCCESS, {teamCode, roleId: roleIdToRm}));
|
||||
let users = channel.getMembers();
|
||||
let users: string[] = channel.getMembers();
|
||||
if (users.indexOf(roleIdToRm) !== -1) {
|
||||
channel.removeMember(roleIdToRm);
|
||||
}
|
||||
@@ -455,7 +455,7 @@ export class ComBattleHandler {
|
||||
}
|
||||
}
|
||||
// 重置总血量,计算真实伤害
|
||||
let actBossHurts = [];
|
||||
let actBossHurts: {dataId: number, hurtHp: number}[] = [];
|
||||
let totalHurtHp = 0;
|
||||
teamStatus.bossHpArr.forEach(boss => {
|
||||
for (let bh of bossHurts) {
|
||||
@@ -546,13 +546,9 @@ export class ComBattleHandler {
|
||||
}
|
||||
});
|
||||
if (roleSt.gotReward) return resResult(STATUS.COM_BATTLE_REWARDED);
|
||||
let warInfo = getWarById(getWarIdByBlueprtId(blueprtId));
|
||||
let warInfo = getWarByBlueprtId(blueprtId);
|
||||
if (!warInfo) return resResult(STATUS.BATTLE_MISS_INFO);
|
||||
|
||||
if(!warInfo.hasOwnProperty('cost')) {
|
||||
warInfo['cost'] = 0;
|
||||
}
|
||||
|
||||
const now = Date.now(); // 当前时间戳
|
||||
let apJson = await setAp(now, roleId, sid, funcs, -1 * warInfo.cost); // 扣除体力
|
||||
if(!apJson) {
|
||||
@@ -563,12 +559,12 @@ export class ComBattleHandler {
|
||||
if (dropResult) {
|
||||
const dropEquipId = randEquipPrintId(warInfo);
|
||||
if (dropEquipId) {
|
||||
roleSt.fixReward = `${roleSt.fixReward}|${dropEquipId}&${1}`;
|
||||
roleSt.fixReward.push({ id: dropEquipId, count: 1 });
|
||||
}
|
||||
}
|
||||
|
||||
await ComBattleTeamModel.updateRewardSt(teamCode, roleId, true);
|
||||
const goods = await handleFixedReward(roleId, roleName, sid, roleSt.fixReward, 1);
|
||||
const goods = await addItems(roleId, roleName, sid, roleSt.fixReward);
|
||||
let actordata = await roleLevelup(roleId, warInfo.kingExp, session);// 主公升级经验
|
||||
// 任务
|
||||
await checkTaskWithGoods(roleId, sid, funcs, TASK_TYPE.COM_BATTLE_DROP, goods);
|
||||
@@ -578,7 +574,7 @@ export class ComBattleHandler {
|
||||
|
||||
async getComBtlStatus(msg: {teamCode: string}, session: BackendSession) {
|
||||
let { teamCode } = msg;
|
||||
let roleStatus, status, bossHpArr, timeout;
|
||||
let roleStatus: RoleStatus[], status: number, bossHpArr: BossHp[], timeout: boolean;
|
||||
let memTeam = this.teamMap.get(teamCode);
|
||||
if (memTeam) {
|
||||
({ roleStatus, status, bossHpArr, timeout } = memTeam);
|
||||
@@ -615,7 +611,7 @@ export class ComBattleHandler {
|
||||
async getBlueprtCount(msg: {ids: number[]}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let { ids } = msg;
|
||||
let blueprts;
|
||||
let blueprts: ItemType[];
|
||||
if (ids && ids.length) {
|
||||
blueprts = await ItemModel.findbyRoleAndIds(roleId, ids);
|
||||
} else {
|
||||
@@ -650,7 +646,7 @@ export class ComBattleHandler {
|
||||
async getComBtlCnt(msg: {}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let cntMap = await getAssistTimesByQuality(roleId);
|
||||
let cnt = [];
|
||||
let cnt: number[] = [];
|
||||
for (let i = 0; i < COM_BTL_QUALITY.length; ++i) {
|
||||
cnt[i] = cntMap.get(i + 1) || 0;
|
||||
}
|
||||
@@ -749,7 +745,7 @@ export class ComBattleHandler {
|
||||
// 原材料检查
|
||||
let originalQuality: number, originalSum: number = 0;
|
||||
for(let {id, count} of original) {
|
||||
const goodInfo = getGoodById(id);
|
||||
const goodInfo = gameData.goods.get(id);
|
||||
if(!originalQuality) originalQuality = goodInfo.quality;
|
||||
if(originalQuality != goodInfo.quality) {
|
||||
return resResult(STATUS.COM_BLUEPRT_QUALITY_ERROR);
|
||||
@@ -760,7 +756,7 @@ export class ComBattleHandler {
|
||||
}
|
||||
}
|
||||
|
||||
const dicCompose = getBlueprtComposeByQuality(originalQuality);
|
||||
const dicCompose = gameData.blurprtCompose.get(originalQuality);
|
||||
if(!dicCompose) {
|
||||
return resResult(STATUS.COM_BLUEPRT_QUALITY_CANNOT_COMPOSE);
|
||||
}
|
||||
@@ -777,12 +773,12 @@ export class ComBattleHandler {
|
||||
let costResult = await handleCost(roleId, sid, original);
|
||||
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
|
||||
const targetList = getBluePrtByQuality(dicCompose.targetQuality);
|
||||
const target = getRandomByLen(targetList);
|
||||
const targetList = gameData.blueprt.get(dicCompose.targetQuality);
|
||||
const target = getRandSingleEelm(targetList);
|
||||
const reward = [{id: target, count: 1}];
|
||||
const goods = await addItems(roleId, roleName, sid, reward);
|
||||
if (dicCompose.targetQuality >= QUALITY_TYPE.ORANGE) {
|
||||
const { name } = getGoodById(target);
|
||||
const { name } = gameData.goods.get(target);
|
||||
pushNormalItemMsg(roleId, roleName, serverId, MSG_SOURCE.ORANGE_BLUEPRT_COMPOSE, target, name);
|
||||
}
|
||||
await checkTask(roleId, sid, funcs, TASK_TYPE.COM_BATTLE_BLUEPRT, 1, true, { quality: dicCompose.targetQuality });
|
||||
|
||||
Reference in New Issue
Block a user