寻宝:奖励
This commit is contained in:
@@ -174,7 +174,6 @@ export class ComBattleHandler {
|
||||
*/
|
||||
async joinTeam(msg: {teamCode: string, isFrd: boolean}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let sid = session.get('sid');
|
||||
let { teamCode, isFrd } = msg;
|
||||
let teamStatus = this.teamMap.get(teamCode);
|
||||
@@ -184,15 +183,11 @@ export class ComBattleHandler {
|
||||
if (teamStatus.roleIds.indexOf(roleId) !== -1) return resResult(STATUS.COM_BATTLE_DUP_ENTER);
|
||||
if (teamStatus.blacklist.indexOf(roleId) != -1) return resResult(STATUS.COM_BATTLE_BE_KICKED);
|
||||
|
||||
let { lv = 1, head = EXTERIOR.EXTERIOR_FACE, topLineupCe = 0, frame = EXTERIOR.EXTERIOR_FACECASE, spine = EXTERIOR.EXTERIOR_APPEARANCE } = await Role.findByRoleId(roleId, null, true);
|
||||
let role = await Role.findByRoleId(roleId, null, true);
|
||||
|
||||
if (lv < COM_BTL_CONST.ENABLE_LV) {
|
||||
return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
||||
} else if (comBtlLvInvalid(lv, [teamStatus.lv])) {
|
||||
return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH);
|
||||
} else if (topLineupCe < teamStatus.ceLimit) {
|
||||
return resResult(STATUS.COM_BATTLE_CE_LIMIT);
|
||||
}
|
||||
if (role.lv < COM_BTL_CONST.ENABLE_LV) return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
||||
if (comBtlLvInvalid(role.lv, [teamStatus.lv])) return resResult(STATUS.COM_BATTLE_ASSIST_LV_NOT_ENOUGH);
|
||||
if (role.topLineupCe < teamStatus.ceLimit) return resResult(STATUS.COM_BATTLE_CE_LIMIT);
|
||||
|
||||
if (!isFrd) {
|
||||
isFrd = await getFrd(roleId);
|
||||
@@ -200,7 +195,7 @@ export class ComBattleHandler {
|
||||
|
||||
// 加入队伍
|
||||
if (!validToJoin(teamStatus, roleId)) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
||||
let roleStatus = new RoleStatus(roleId, roleName, false, isFrd, head, frame, spine, topLineupCe, lv);
|
||||
let roleStatus = new RoleStatus(role, false, isFrd);
|
||||
const team = await ComBattleTeamModel.addRole(teamCode, roleStatus);
|
||||
if (!team) {
|
||||
return resResult(STATUS.COM_BATTLE_JOIN_ERR);
|
||||
@@ -243,51 +238,51 @@ export class ComBattleHandler {
|
||||
return resResult(STATUS.SUCCESS, { teamCode, isFrd });
|
||||
}
|
||||
|
||||
/**
|
||||
* ! 获取队伍列表-deprecated
|
||||
* @param msg
|
||||
* @param session
|
||||
*/
|
||||
async getTeams(msg: { blueprtIds: number[] }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let { lv } = await Role.findByRoleId(roleId);
|
||||
if (lv < COM_BTL_CONST.ENABLE_LV) return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
||||
const teams = await ComBattleTeamModel.getTeamByBlueprt(msg.blueprtIds, COM_TEAM_STATUS.DEFAULT, true);
|
||||
if (!teams) return resResult(STATUS.COM_BATTLE_NO_VALID_TEAM);
|
||||
return resResult(STATUS.SUCCESS, { teamInfos: teams});
|
||||
}
|
||||
// /**
|
||||
// * ! 获取队伍列表-deprecated
|
||||
// * @param msg
|
||||
// * @param session
|
||||
// */
|
||||
// async getTeams(msg: { blueprtIds: number[] }, session: BackendSession) {
|
||||
// let roleId = session.get('roleId');
|
||||
// let { lv } = await Role.findByRoleId(roleId);
|
||||
// if (lv < COM_BTL_CONST.ENABLE_LV) return resResult(STATUS.COM_BATTLE_LV_NOT_ENOUGH);
|
||||
// const teams = await ComBattleTeamModel.getTeamByBlueprt(msg.blueprtIds, COM_TEAM_STATUS.DEFAULT, true);
|
||||
// if (!teams) return resResult(STATUS.COM_BATTLE_NO_VALID_TEAM);
|
||||
// return resResult(STATUS.SUCCESS, { teamInfos: teams});
|
||||
// }
|
||||
|
||||
/**
|
||||
* ! deprecate
|
||||
* @description 队伍准备
|
||||
* @param {{teamCode: string, heroes: number[]}} msg
|
||||
* @param {BackendSession} session
|
||||
* @returns
|
||||
* @memberof ComBattleHandler
|
||||
*/
|
||||
async teammateReady(msg: {teamCode: string, heroes: number[]}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let { teamCode, heroes: hids } = msg;
|
||||
let teamStatus = this.teamMap.get(teamCode);
|
||||
if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
||||
// /**
|
||||
// * ! deprecate
|
||||
// * @description 队伍准备
|
||||
// * @param {{teamCode: string, heroes: number[]}} msg
|
||||
// * @param {BackendSession} session
|
||||
// * @returns
|
||||
// * @memberof ComBattleHandler
|
||||
// */
|
||||
// async teammateReady(msg: {teamCode: string, heroes: number[]}, session: BackendSession) {
|
||||
// let roleId = session.get('roleId');
|
||||
// let { teamCode, heroes: hids } = msg;
|
||||
// let teamStatus = this.teamMap.get(teamCode);
|
||||
// if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
||||
|
||||
const heroDBs = await HeroModel.findByHidRange(hids, roleId);
|
||||
const heroes = heroDBs.map(hero => {
|
||||
return new ComRoleStatusHero(hero);
|
||||
});
|
||||
// const heroDBs = await HeroModel.findByHidRange(hids, roleId);
|
||||
// const heroes = heroDBs.map(hero => {
|
||||
// return new ComRoleStatusHero(hero);
|
||||
// });
|
||||
|
||||
let team = await ComBattleTeamModel.updateHeroes(teamCode, roleId, heroes);
|
||||
if (!team) return resResult(STATUS.COM_BATTLE_UPDATE_HEROES_ERR);
|
||||
// let team = await ComBattleTeamModel.updateHeroes(teamCode, roleId, heroes);
|
||||
// if (!team) return resResult(STATUS.COM_BATTLE_UPDATE_HEROES_ERR);
|
||||
|
||||
teamStatus.roleStatus.forEach(st => {
|
||||
if (st && st.roleId === roleId) {
|
||||
st.heroes = heroes;
|
||||
}
|
||||
});
|
||||
// teamStatus.roleStatus.forEach(st => {
|
||||
// if (st && st.roleId === roleId) {
|
||||
// st.heroes = heroes;
|
||||
// }
|
||||
// });
|
||||
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAMMATE_READY, {teamCode, roleId, heroes});
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
// sendMessageToTeam(teamCode, PUSH_ROUTE.TEAMMATE_READY, {teamCode, roleId, heroes});
|
||||
// return resResult(STATUS.SUCCESS);
|
||||
// }
|
||||
|
||||
/**
|
||||
* @description 出兵时记录玩家阵容
|
||||
@@ -409,10 +404,8 @@ export class ComBattleHandler {
|
||||
if (teamStatus.capId !== roleId && teamStatus.capId !== 'robot') return resResult(STATUS.COM_BATTLE_CAP_ONLY);
|
||||
if (teamStatus.status !== COM_TEAM_STATUS.DEFAULT) return resResult(STATUS.COM_BATTLE_ALREADY_START);
|
||||
|
||||
teamStatus.status = COM_TEAM_STATUS.FIGHTING;
|
||||
teamStatus.endTime = nowSeconds() + COM_BTL_CONST.BTL_TIME_LMT/1000;
|
||||
|
||||
let team = await ComBattleTeamModel.updateStatusByCode(teamCode, COM_TEAM_STATUS.FIGHTING);
|
||||
teamStatus.startTeam();
|
||||
let team = await ComBattleTeamModel.updateStatusByCode(teamCode, teamStatus.status, teamStatus.startTime, teamStatus.endTime, teamStatus.hasTimeExtraReward);
|
||||
if (!team) return resResult(STATUS.COM_BATTLE_START_ERR);
|
||||
|
||||
clearComBtlTimer(teamCode, this.teamDisTimer); // 战斗开始停止解散计时
|
||||
@@ -426,8 +419,6 @@ export class ComBattleHandler {
|
||||
clearRobotHurtTimer(teamStatus, this.robotHurtTimer);
|
||||
let team = await ComBattleTeamModel.syncTeamData({teamCode, status: COM_TEAM_STATUS.LOOSE, roleStatus: teamStatus.roleStatus, bossHpArr: teamStatus.bossHpArr}, true);
|
||||
if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR);
|
||||
// // 将藏宝图加回去
|
||||
// await addItems(roleId, roleName, sid, [{ id: team.blueprtId, count: 1 }])
|
||||
teamStatus.timeout = true;
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_COMPLETE, {teamCode, result: false, timeout: true});
|
||||
thiz.teamMap.delete(teamCode);
|
||||
@@ -507,32 +498,32 @@ export class ComBattleHandler {
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
/**
|
||||
* ! 客户端给服务器的战斗结束通知-deprecated
|
||||
* @param msg
|
||||
* @param session
|
||||
*/
|
||||
async battleEnd(msg: {teamCode: string, isSuccess: boolean}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let { teamCode, isSuccess } = msg;
|
||||
let teamStatus = this.teamMap.get(teamCode);
|
||||
if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
||||
// /**
|
||||
// * ! 客户端给服务器的战斗结束通知-deprecated
|
||||
// * @param msg
|
||||
// * @param session
|
||||
// */
|
||||
// async battleEnd(msg: {teamCode: string, isSuccess: boolean}, session: BackendSession) {
|
||||
// let roleId = session.get('roleId');
|
||||
// let { teamCode, isSuccess } = msg;
|
||||
// let teamStatus = this.teamMap.get(teamCode);
|
||||
// if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
|
||||
|
||||
if (isSuccess && teamStatus.bossCurHp <= 0) {
|
||||
let team = await ComBattleTeamModel.updateResult(teamCode, roleId, isSuccess);
|
||||
if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR);
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_COMPLETE, {teamCode, result: isSuccess});
|
||||
} else if (!isSuccess) {
|
||||
let team = await ComBattleTeamModel.updateResult(teamCode, roleId, isSuccess);
|
||||
if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR);
|
||||
if (team.status === COM_TEAM_STATUS.LOOSE) {
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_COMPLETE, {teamCode, result: isSuccess});
|
||||
} else {
|
||||
sendMessageToTeam(teamCode, PUSH_ROUTE.TEAMMATE_ACT, {teamCode, bossCurHp: teamStatus.bossCurHp, roleStatus: {roleId, battleStatus: 2}});
|
||||
}
|
||||
}
|
||||
return resResult(STATUS.SUCCESS, { bossCurHp: teamStatus.bossCurHp });
|
||||
}
|
||||
// if (isSuccess && teamStatus.bossCurHp <= 0) {
|
||||
// let team = await ComBattleTeamModel.updateResult(teamCode, roleId, isSuccess);
|
||||
// if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR);
|
||||
// sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_COMPLETE, {teamCode, result: isSuccess});
|
||||
// } else if (!isSuccess) {
|
||||
// let team = await ComBattleTeamModel.updateResult(teamCode, roleId, isSuccess);
|
||||
// if (!team) return resResult(STATUS.COM_BATTLE_RESULT_ERR);
|
||||
// if (team.status === COM_TEAM_STATUS.LOOSE) {
|
||||
// sendMessageToTeam(teamCode, PUSH_ROUTE.TEAM_COMPLETE, {teamCode, result: isSuccess});
|
||||
// } else {
|
||||
// sendMessageToTeam(teamCode, PUSH_ROUTE.TEAMMATE_ACT, {teamCode, bossCurHp: teamStatus.bossCurHp, roleStatus: {roleId, battleStatus: 2}});
|
||||
// }
|
||||
// }
|
||||
// return resResult(STATUS.SUCCESS, { bossCurHp: teamStatus.bossCurHp });
|
||||
// }
|
||||
|
||||
/**
|
||||
* @description 寻宝结算
|
||||
@@ -563,25 +554,10 @@ export class ComBattleHandler {
|
||||
let warInfo = getWarByBlueprtId(blueprtId);
|
||||
if (!warInfo) return resResult(STATUS.BATTLE_MISS_INFO);
|
||||
|
||||
let role = await RoleModel.findByRoleId(roleId, 'lv');
|
||||
let apJson = await setAp(serverId, roleId, ip, role.lv, -1 * warInfo.cost, sid, ITEM_CHANGE_REASON.COM_BATTLE_END); // 扣除体力
|
||||
if(!apJson) {
|
||||
return resResult(STATUS.BATTLE_ACTION_POINT_LACK);
|
||||
}
|
||||
|
||||
// const { dropResult } = await incEquipPrintDrop(roleSt);
|
||||
// if (dropResult) {
|
||||
// const dropEquipId = randEquipPrintId(warInfo);
|
||||
// if (dropEquipId) {
|
||||
// roleSt.fixReward.push({ id: dropEquipId, count: 1 });
|
||||
// }
|
||||
// }
|
||||
|
||||
await ComBattleTeamModel.updateRewardSt(teamCode, roleId, true);
|
||||
const goods = await addItems(roleId, roleName, sid, roleSt.fixReward, ITEM_CHANGE_REASON.COM_BATTLE_END);
|
||||
let actordata = await roleLevelup(KING_EXP_RATIO_TYPE.BATTLE, roleId, warInfo.kingExp, session);// 主公升级经验
|
||||
const goods = await addItems(roleId, roleName, sid, roleSt.rewards, ITEM_CHANGE_REASON.COM_BATTLE_END);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { battleGoods: goods, ...actordata, teamInfo: {status, teamCode, roleStatus, bossHpArr} });
|
||||
return resResult(STATUS.SUCCESS, { teamInfo: {status, teamCode, roleStatus, bossHpArr} });
|
||||
}
|
||||
|
||||
async getComBtlStatus(msg: {teamCode: string}, session: BackendSession) {
|
||||
|
||||
@@ -155,7 +155,7 @@ export class NormalBattleHandler {
|
||||
return resResult(STATUS.BATTLE_MISS_INFO);
|
||||
}
|
||||
// 寻宝不使用通用战斗模块结算
|
||||
if (warInfo.warType == WAR_TYPE.WARLOARDS) {
|
||||
if (warInfo.warType == WAR_TYPE.COM_BATTLE) {
|
||||
return resResult(STATUS.BATTLE_END_WRONG_TYPE);
|
||||
}
|
||||
|
||||
|
||||
@@ -560,7 +560,7 @@ export function getRandRobot(cnt = 1, withAttr = false) {
|
||||
let setInfo = getRandExpedition(cnt);
|
||||
if (!setInfo || setInfo.length !== cnt) return null;
|
||||
|
||||
let robots = [];
|
||||
let robots: ComRoleStatusHero[][] = [];
|
||||
for (let info of setInfo) {
|
||||
if (!info || !info.warId) continue;
|
||||
const warInfo = gameData.warJson.get(info.warId);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { MemComBtlTeam } from './../domain/battleField/ComBattleTeamField';
|
||||
import { ItemModel } from './../db/Item';
|
||||
import { ITEM_CHANGE_REASON, IT_TYPE, PUSH_ROUTE } from './../consts';
|
||||
import { BATTLE_REWARD_TYPE, ITEM_CHANGE_REASON, IT_TYPE, PUSH_ROUTE } from './../consts';
|
||||
import { FriendRelationModel } from './../db/FriendRelation';
|
||||
import { RoleModel, RoleType } from './../db/Role';
|
||||
import { EquipPrintDropType, EquipPrintDropModel } from './../db/EquipPrintDrop';
|
||||
import { STATUS } from './../consts/statusCode';
|
||||
import { COM_TEAM_STATUS, FRIEND_DROP_TYPE, COM_BTL_CONST, FRIEND_DROP_MAX } from './../consts';
|
||||
import { RoleStatus, ComBattleTeamModel, ComBattleTeamType } from './../db/ComBattleTeam';
|
||||
import { RoleStatus, ComBattleTeamModel, ComBattleTeamType, ComBattleReward } from './../db/ComBattleTeam';
|
||||
import { getRandEelm, getRandValue, resResult, ratioReward, getRandValueByMinMax, getRandEelmWithWeight, getRobotInfo, getRandSingleEelm } from "../pubUtils/util";
|
||||
import { getRandRobot } from "./battleService";
|
||||
import { Channel, ChannelService, pinus } from 'pinus';
|
||||
@@ -16,9 +16,11 @@ import { getRoleIds } from '../pubUtils/friendUtil';
|
||||
import { getTeamSearchByLv, rmRoleFromQueue } from './redisService';
|
||||
import { getRewardByBlueprtId, gameData, getBossHpByBlueprtId, getDicBlueprtById } from '../pubUtils/data';
|
||||
import { getZeroPointD, nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { handleCost } from './role/rewardService';
|
||||
import { getFriendPointObject, handleCost } from './role/rewardService';
|
||||
import { addUserToTeamChannel, delTeamChannel, sendMessageToTeam, sendMessageToUsersWithSuc, sendMessageToUserWithSuc } from './pushService';
|
||||
import { checkTaskInComBattleEnd } from './task/taskService';
|
||||
import moment = require('moment');
|
||||
import { RewardInter } from '../pubUtils/interface';
|
||||
|
||||
/**
|
||||
* 在给定的品质列表中随机返回一定数量的藏宝图Id
|
||||
@@ -59,7 +61,12 @@ export function getRandComBtlRobots(topLineupCe: number, ceLimit: number, lv: nu
|
||||
if(robotLv > gameData.maxPlayerLv.max) robotLv = gameData.maxPlayerLv.max;
|
||||
// const imgHid = robot[Math.floor(Math.random() * robot.length)];
|
||||
const { robotRoleId, robotRoleName } = robotInfos[idx];
|
||||
let robotStatus = new RoleStatus(robotRoleId, robotRoleName, false, false, EXTERIOR.EXTERIOR_FACE, EXTERIOR.EXTERIOR_FACECASE, EXTERIOR.EXTERIOR_APPEARANCE, robotCe, robotLv, robot, true);
|
||||
let robotStatus = new RoleStatus({
|
||||
roleId: robotRoleId,
|
||||
roleName: robotRoleName,
|
||||
ce: robotCe,
|
||||
lv: robotLv
|
||||
}, false, false, robot, true);
|
||||
robotStArr.push(robotStatus);
|
||||
robotIdArr.push(robotRoleId);
|
||||
});
|
||||
@@ -104,35 +111,35 @@ export function checkComBattleResult(teamStatus) {
|
||||
return COM_TEAM_STATUS.FIGHTING;
|
||||
}
|
||||
|
||||
/**
|
||||
* ! deprecated
|
||||
* @description 计算寻宝结算
|
||||
* @export
|
||||
* @param {string} roleId
|
||||
* @param {string} battleCode
|
||||
* @returns
|
||||
*/
|
||||
export async function checkComBattleDrop(roleId: string, battleCode: string) {
|
||||
let team = await ComBattleTeamModel.getTeamByRoleAndBattleCode(roleId, battleCode);
|
||||
if (team.status !== COM_TEAM_STATUS.WIN) return { status: -1, resResult: resResult(STATUS.COM_BATTLE_REWARD_ERR) };
|
||||
let roleSt = null;
|
||||
team.roleStatus.forEach(st => {
|
||||
if (st.roleId === roleId) {
|
||||
roleSt = st;
|
||||
}
|
||||
});
|
||||
if (!roleSt || roleSt.gotReward) return { status: -1, resResult: resResult(STATUS.COM_BATTLE_REWARD_ERR) };
|
||||
let { fixReward, teammateReward } = getRewardByBlueprtId(team.blueprtId);
|
||||
if (!roleSt.isCap) {
|
||||
if (roleSt.isFrd) {
|
||||
fixReward = [];
|
||||
} else {
|
||||
fixReward = teammateReward;
|
||||
}
|
||||
}
|
||||
await ComBattleTeamModel.updateRewardSt(team.teamCode, roleId, true);
|
||||
return { status: 0, fixReward };
|
||||
}
|
||||
// /**
|
||||
// * ! deprecated
|
||||
// * @description 计算寻宝结算
|
||||
// * @export
|
||||
// * @param {string} roleId
|
||||
// * @param {string} battleCode
|
||||
// * @returns
|
||||
// */
|
||||
// export async function checkComBattleDrop(roleId: string, battleCode: string) {
|
||||
// let team = await ComBattleTeamModel.getTeamByRoleAndBattleCode(roleId, battleCode);
|
||||
// if (team.status !== COM_TEAM_STATUS.WIN) return { status: -1, resResult: resResult(STATUS.COM_BATTLE_REWARD_ERR) };
|
||||
// let roleSt = null;
|
||||
// team.roleStatus.forEach(st => {
|
||||
// if (st.roleId === roleId) {
|
||||
// roleSt = st;
|
||||
// }
|
||||
// });
|
||||
// if (!roleSt || roleSt.gotReward) return { status: -1, resResult: resResult(STATUS.COM_BATTLE_REWARD_ERR) };
|
||||
// let { fixReward, teammateReward } = getRewardByBlueprtId(team.blueprtId);
|
||||
// if (!roleSt.isCap) {
|
||||
// if (roleSt.isFrd) {
|
||||
// fixReward = [];
|
||||
// } else {
|
||||
// fixReward = teammateReward;
|
||||
// }
|
||||
// }
|
||||
// await ComBattleTeamModel.updateRewardSt(team.teamCode, roleId, true);
|
||||
// return { status: 0, fixReward };
|
||||
// }
|
||||
|
||||
export function clearComBtlTimer(teamCode: string, timerMap: Map<string, NodeJS.Timer>) {
|
||||
let timer = timerMap.get(teamCode);
|
||||
@@ -149,16 +156,35 @@ export function setComBtlTimer(teamCode: string, timer: NodeJS.Timer, timerMap:
|
||||
timerMap.set(teamCode, timer);
|
||||
}
|
||||
|
||||
export async function getRealReward(blueprtId: number, roleSt: RoleStatus) {
|
||||
let { fixReward, teammateReward } = getRewardByBlueprtId(blueprtId);
|
||||
if (!roleSt.isCap) {
|
||||
export async function getRealReward(blueprtId: number, roleSts: RoleStatus[], roleSt: RoleStatus, hasTimeExtraReward: boolean): Promise<ComBattleReward[]> {
|
||||
let dicReward = getRewardByBlueprtId(blueprtId);
|
||||
if(!dicReward) return [];
|
||||
|
||||
let fixRewards: RewardInter[], extraRewards: RewardInter[];
|
||||
if (roleSt.isCap) {
|
||||
fixRewards.push(...dicReward.captainReward);
|
||||
} else {
|
||||
if (roleSt.isFrd) {
|
||||
fixReward = []
|
||||
fixRewards.push(getFriendPointObject(TREASURE.REWARD_FRIENDPOINT));
|
||||
} else {
|
||||
fixReward = teammateReward;
|
||||
fixRewards.push(...dicReward.teammateReward)
|
||||
}
|
||||
}
|
||||
return fixReward;
|
||||
if(hasTimeExtraReward) {
|
||||
let sameGuildCnt = roleSts.filter(cur => cur.guildCode == roleSt.guildCode && cur.roleId != roleSt.roleId).length;
|
||||
if(sameGuildCnt > 0) {
|
||||
let dicGuildReward = roleSt.isCap? dicReward.captainTimeGuildReward: dicReward.teammateTimeGuildReward;
|
||||
let guildRewards = dicGuildReward.get(sameGuildCnt)||[]
|
||||
extraRewards.push(...guildRewards);
|
||||
} else {
|
||||
let guildRewards = roleSt.isCap? dicReward.captainTimeReward: dicReward.teammateTimeReward;
|
||||
extraRewards.push(...guildRewards);
|
||||
}
|
||||
}
|
||||
return [
|
||||
...fixRewards.map(reward => ({ type: BATTLE_REWARD_TYPE.FIX_REWARD, ...reward })),
|
||||
...extraRewards.map(reward => ({ type: BATTLE_REWARD_TYPE.EXTRA_REWARD, ...reward }))
|
||||
]
|
||||
}
|
||||
|
||||
export async function getAllAssistCnt(roleId: string) {
|
||||
@@ -225,7 +251,7 @@ export async function handleComBtlProgress(teamStatus: MemComBtlTeam, robotHurtT
|
||||
bs.curHp = 0;
|
||||
});
|
||||
for (let st of teamStatus.roleStatus) {
|
||||
st.fixReward = await getRealReward(teamStatus.blueprtId, st);
|
||||
st.rewards = await getRealReward(teamStatus.blueprtId, teamStatus.roleStatus, st, teamStatus.hasTimeExtraReward);
|
||||
};
|
||||
await checkTaskInComBattleEnd(teamStatus.roleStatus, teamStatus.capId);
|
||||
}
|
||||
@@ -427,13 +453,12 @@ async function teammateValid(roleInfo: Partial<RoleType>, roleId: string, roleId
|
||||
*/
|
||||
export async function getValidTeammateRoleSt(roleId: string, roleIds: string[], ceLimit: number) {
|
||||
let roleInfo = await RoleModel.findByRoleId(roleId, null, true);
|
||||
let { roleName, head = EXTERIOR.EXTERIOR_FACE, frame = EXTERIOR.EXTERIOR_FACECASE, spine = EXTERIOR.EXTERIOR_APPEARANCE, topLineupCe, lv: playerLv } = roleInfo;
|
||||
|
||||
const valid = await teammateValid(roleInfo, roleId, roleIds, ceLimit);
|
||||
if (!valid) return null;
|
||||
|
||||
let isFrd = await getFrd(roleId);
|
||||
const result = new RoleStatus(roleId, roleName, false, isFrd, head, frame, spine, topLineupCe, playerLv);
|
||||
const result = new RoleStatus(roleInfo, false, isFrd);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -485,9 +510,7 @@ export async function hasEnoughBlueprt(roleId: string, sid: string, blueprtId: n
|
||||
* @param {boolean} isFrd
|
||||
*/
|
||||
export function addRoleToTeam(comTeam: MemComBtlTeam, roleInfo: RoleType, isCap: boolean, isFrd: boolean) {
|
||||
const { roleId, roleName, head = EXTERIOR.EXTERIOR_FACE, frame = EXTERIOR.EXTERIOR_FACECASE, spine = EXTERIOR.EXTERIOR_APPEARANCE, lv } = roleInfo;
|
||||
let { topLineupCe = 1000 } = roleInfo;
|
||||
const roleSt = new RoleStatus(roleId, roleName, isCap, isFrd, head, frame, spine, topLineupCe, lv);
|
||||
const roleSt = new RoleStatus(roleInfo, isCap, isFrd);
|
||||
addRoleStToTeam(comTeam, roleSt);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ export const ACTION_POIN = {
|
||||
export const BATTLE_REWARD_TYPE = {
|
||||
FIX_REWARD: 1,
|
||||
CONDITION_REWARD: 2,
|
||||
RANDOM_REWARD: 3
|
||||
RANDOM_REWARD: 3,
|
||||
EXTRA_REWARD: 4,
|
||||
};
|
||||
|
||||
export const WAR_TYPE = {
|
||||
@@ -18,7 +19,7 @@ export const WAR_TYPE = {
|
||||
DAILY: 4, // 每日
|
||||
EXPEDITION: 5, // 远征
|
||||
MYSTERY: 6, // 秘境
|
||||
WARLOARDS: 7, // 群雄
|
||||
COM_BATTLE: 7, // 群雄
|
||||
TOWER: 8, // 天梯
|
||||
PVP: 9, // PVP
|
||||
GUILD_ACTIVITY: 10, // 军团活动
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
import { EXTERIOR } from '../pubUtils/dicParam';
|
||||
import { ItemReward } from '../domain/dbGeneral';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { RoleUpdate } from './Role';
|
||||
|
||||
export class ComRoleStatusHero {
|
||||
@prop({ required: true })
|
||||
@@ -33,12 +33,23 @@ export class ComRoleStatusHero {
|
||||
}
|
||||
}
|
||||
|
||||
export class ComBattleReward {
|
||||
@prop({ required: true })
|
||||
type: number;
|
||||
@prop({ required: true })
|
||||
id: number;
|
||||
@prop({ required: true })
|
||||
count: number;
|
||||
}
|
||||
|
||||
export class RoleStatus {
|
||||
@prop({ required: true })
|
||||
roleId: string;
|
||||
@prop({ required: true })
|
||||
roleName: string;
|
||||
@prop({ required: true })
|
||||
guildCode: string;
|
||||
@prop({ required: true })
|
||||
isCap: boolean;
|
||||
@prop({ required: true, default: 0 })
|
||||
totalDmg: number;
|
||||
@@ -79,30 +90,30 @@ export class RoleStatus {
|
||||
@prop({ required: true, default: false })
|
||||
gotReward: boolean;
|
||||
// 队长奖励
|
||||
@prop({ required: true, default: [], type: ItemReward })
|
||||
fixReward: ItemReward[];
|
||||
// 队友奖励
|
||||
@prop({ required: true, default: [], type: ItemReward })
|
||||
teammateReward: ItemReward[];
|
||||
@prop({ required: true, default: [], type: ComBattleReward, _id: false })
|
||||
rewards: ComBattleReward[];
|
||||
// 好友间伤害加成
|
||||
@prop({ required: true, default: 0 })
|
||||
frdRatio: number = 0;
|
||||
|
||||
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, head: number, frame: number, spine: number, topLineupCe: number, lv: number, heroes: ComRoleStatusHero[] = [], isRobot = false) {
|
||||
this.roleId = roleId;
|
||||
this.roleName = roleName;
|
||||
constructor(role: RoleUpdate, isCap: boolean, isFrd: boolean, heroes: ComRoleStatusHero[] = [], isRobot = false) {
|
||||
if(role) {
|
||||
this.roleId = role.roleId||'';
|
||||
this.roleName = role.roleName||'';
|
||||
this.guildCode = role.guildCode||'';
|
||||
this.head = role.head||EXTERIOR.EXTERIOR_FACE;
|
||||
this.frame = role.frame||EXTERIOR.EXTERIOR_FACECASE;
|
||||
this.spine = role.spine||EXTERIOR.EXTERIOR_APPEARANCE;
|
||||
this.topLineupCe = role.topLineupCe||0;
|
||||
this.lv = role.lv||1;
|
||||
}
|
||||
this.isCap = isCap;
|
||||
this.totalDmg = 0;
|
||||
this.isFrd = isFrd;
|
||||
this.head = head;
|
||||
this.frame = frame;
|
||||
this.spine = spine;
|
||||
this.topLineupCe = topLineupCe;
|
||||
this.lv = lv;
|
||||
this.heroes = heroes;
|
||||
this.killed = [];
|
||||
this.isRobot = isRobot;
|
||||
this.fixReward = [];
|
||||
this.rewards = [];
|
||||
}
|
||||
|
||||
addFrdRatio(frdRatio: number) {
|
||||
@@ -162,7 +173,7 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
status: number;
|
||||
|
||||
@prop({ required: true, type: RoleStatus, default: [] })
|
||||
@prop({ required: true, type: RoleStatus, default: [], _id: false })
|
||||
roleStatus: RoleStatus[];
|
||||
|
||||
// 队长 roleId
|
||||
@@ -178,7 +189,7 @@ export default class ComBattleTeam extends BaseModel {
|
||||
roleCnt: number;
|
||||
|
||||
// 单个 boss 血量状态
|
||||
@prop({ required: false, type: BossHp, default: [] })
|
||||
@prop({ required: false, type: BossHp, default: [], _id: false })
|
||||
bossHpArr: BossHp[];
|
||||
|
||||
// 队伍是否开放加入
|
||||
@@ -188,6 +199,14 @@ export default class ComBattleTeam extends BaseModel {
|
||||
// 黑名单
|
||||
blacklist: string[] = [];
|
||||
|
||||
// 开始时间
|
||||
@prop({ required: true, default: 0 })
|
||||
startTime: number = 0;
|
||||
|
||||
// 是否有特殊时间奖励
|
||||
@prop({ required: true, default: 0 })
|
||||
hasTimeExtraReward: boolean = false;
|
||||
|
||||
// 结束时间
|
||||
@prop({ required: true, default: 0 })
|
||||
endTime: number = 0;
|
||||
@@ -255,8 +274,8 @@ export default class ComBattleTeam extends BaseModel {
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async updateStatusByCode(teamCode: string, status: number, lean = true) {
|
||||
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamCode }, {status}, {new: true}).lean(lean);
|
||||
public static async updateStatusByCode(teamCode: string, status: number, startTime: number, endTime: number, hasTimeExtraReward: boolean) {
|
||||
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamCode }, { $set: {status, startTime, endTime, hasTimeExtraReward }}, {new: true}).lean();
|
||||
return team;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ export default class FriendPoint extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
sendCnt: number; // 当天赠送的点数
|
||||
@prop({ required: true, default: 0 })
|
||||
comBattleCnt: number; // 今天在寻宝上获得的友情点
|
||||
@prop({ required: true, default: 0 })
|
||||
type: number; // 情谊点统计的类型,不同功能都可能有每日获取上限
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { COM_TEAM_STATUS } from '../../consts';
|
||||
import { getBossHpByBlueprtId, getDicBlueprtById } from '../../pubUtils/data';
|
||||
import { COM_BTL_CONST, COM_TEAM_STATUS } from '../../consts';
|
||||
import { gameData, getBossHpByBlueprtId, getDicBlueprtById } from '../../pubUtils/data';
|
||||
import ComBattleTeam from './../../db/ComBattleTeam';
|
||||
import { cloneDeep } from 'lodash'
|
||||
import { FriendParams } from '../roleField/friend';
|
||||
import { nowSeconds } from '../../pubUtils/timeUtil';
|
||||
import moment = require('moment');
|
||||
|
||||
/**
|
||||
* 拷贝敌军数组并添加当前血量字段
|
||||
@@ -48,6 +50,13 @@ export class MemComBtlTeam extends ComBattleTeam {
|
||||
findMemberByRoleId(roleId: string) {
|
||||
return this.roleStatus.find(cur => cur.roleId == roleId);
|
||||
}
|
||||
|
||||
startTeam() {
|
||||
this.status = COM_TEAM_STATUS.FIGHTING;
|
||||
this.startTime = nowSeconds();
|
||||
this.endTime = nowSeconds() + COM_BTL_CONST.BTL_TIME_LMT/1000;
|
||||
this.hasTimeExtraReward = isComBattleTimeLimit();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -65,4 +74,19 @@ export class MemComBtlTeam extends ComBattleTeam {
|
||||
this.roleCnt = comBattle.roleCnt;
|
||||
this.status = comBattle.status;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 当前是否是有加成的特殊时间
|
||||
*/
|
||||
export function isComBattleTimeLimit() {
|
||||
let arr = gameData.comBattleRewardTime;
|
||||
for(let { from, to } of arr) {
|
||||
let fromTime = moment(moment().format(`YYYY-MM-DD ${from}`)).valueOf();
|
||||
let toTime = moment(moment().format(`YYYY-MM-DD ${to}`)).valueOf();
|
||||
let now = moment().valueOf();
|
||||
if(fromTime <= now && toTime >= now) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -11,7 +11,7 @@ import { dicQuestion, loadQuestion } from "./dictionary/DicQuestion";
|
||||
import { dicSe, loadSe } from "./dictionary/DicSe";
|
||||
import { dicTower, loadTower } from "./dictionary/DicTower";
|
||||
import { dicTowerTask, loadTowerTask } from "./dictionary/DicTowerTask";
|
||||
import { dicWar, dicWarPvp, dicDailyWarByType, loadWar, dicHeroIdByWar } from "./dictionary/DicWar";
|
||||
import { dicWar, dicWarPvp, dicDailyWarByType, loadWar, dicHeroIdByWar, dicComBattleReward } from "./dictionary/DicWar";
|
||||
import { dicWarJson, loadWarJson } from "./dictionary/DicWarJson";
|
||||
import { AUCTION_TIME } from "../consts";
|
||||
import { dicFashions, dicFashionsByHeroId, loadFashions } from "./dictionary/DicFashions";
|
||||
@@ -273,7 +273,9 @@ export const gameData = {
|
||||
ladderConsume: new Array<{id: number, count: number, times: number}>(),
|
||||
ladderMatch: dicLadderMatch,
|
||||
ladderDifficultRatio: dicLadderDifficultRatio,
|
||||
ladderRankReward: dicLadderRankReward
|
||||
ladderRankReward: dicLadderRankReward,
|
||||
comBattleRewardTime: new Array<{from: string, to: string}>(),
|
||||
comBattleReward: dicComBattleReward,
|
||||
};
|
||||
|
||||
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
|
||||
@@ -382,8 +384,8 @@ export function getWarByBlueprtId(blueprtId: number) {
|
||||
}
|
||||
|
||||
export function getRewardByBlueprtId(blueprtId: number) {
|
||||
let { fixReward, teammateReward } = getWarByBlueprtId(blueprtId);
|
||||
return { fixReward, teammateReward };
|
||||
let { war_id } = getWarByBlueprtId(blueprtId);
|
||||
return gameData.comBattleReward.get(war_id);
|
||||
}
|
||||
|
||||
function parseComBtlLvRange() {
|
||||
@@ -1038,6 +1040,7 @@ function parseDicParam() {
|
||||
getCeRatio();
|
||||
loadAuctionTime();
|
||||
decodeLadderBuyCost();
|
||||
parseComBattleRewardTime();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1090,6 +1093,17 @@ function treatTaskGroup() {
|
||||
}
|
||||
}
|
||||
|
||||
function parseComBattleRewardTime() {
|
||||
let str = param.TREASURE.TIME_REWARD;
|
||||
if (!str) return
|
||||
let result: { from: string, to: string }[] = [];
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
for (let [from, to] of decodeArr) {
|
||||
result.push({ from, to });
|
||||
}
|
||||
gameData.comBattleRewardTime = result;
|
||||
}
|
||||
|
||||
// 加载json
|
||||
function loadDatas() {
|
||||
loadHero();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 关卡表
|
||||
import {decodeArrayListStr, parseNumberList, readFileAndParse} from '../util'
|
||||
import {decodeArrayListStr, parseGoodStr, parseNumberList, readFileAndParse} from '../util'
|
||||
import { TRAIN_REWARD_TYPE, WAR_RELATE_TABLES, WAR_TYPE } from '../../consts';
|
||||
import { isString } from 'underscore'
|
||||
import { RewardInter } from '../interface';
|
||||
@@ -33,10 +33,6 @@ export interface DicWar {
|
||||
readonly dailyType: number;
|
||||
// 寻宝匹配json
|
||||
readonly dispatchJsonId: number;
|
||||
// 寻宝奖励
|
||||
readonly jackpotReward: Array<{id: number, weight: number}>;
|
||||
// 寻宝队友奖励
|
||||
readonly teammateReward: Array<{id: number, count: number}>;
|
||||
// 镇念塔禁用角色
|
||||
readonly fobiddenCharactor: Array<{type: number, id: number}>;
|
||||
// 推荐战力
|
||||
@@ -59,15 +55,32 @@ export interface DicWar {
|
||||
readonly secondAttrLevel: number;
|
||||
}
|
||||
|
||||
export interface DicComBattleReward {
|
||||
// 关卡固定奖励
|
||||
readonly captainReward: Array<{id: number, count: number}>;
|
||||
// 队友奖励
|
||||
readonly teammateReward: Array<{id: number, count: number}>;
|
||||
// 队长限时段增加奖励
|
||||
readonly captainTimeReward: Array<{id: number, count: number}>;
|
||||
// 队友限时段增加奖励
|
||||
readonly teammateTimeReward: Array<{id: number, count: number}>;
|
||||
// 队长军团加成奖励
|
||||
readonly captainTimeGuildReward: Map<number, {id: number, count: number}[]>;
|
||||
// 队友军团加成奖励
|
||||
readonly teammateTimeGuildReward: Map<number, {id: number, count: number}[]>;
|
||||
}
|
||||
export const dicWar = new Map<number, DicWar>();
|
||||
export const dicWarPvp = new Array<DicWar>();
|
||||
export const dicDailyWarByType = new Map<number, DicWar[]>();
|
||||
export const dicHeroIdByWar = new Map<number, number>();
|
||||
export const dicComBattleReward = new Map<number, DicComBattleReward>(); // warId => DicComBattleReward
|
||||
|
||||
export function loadWar() {
|
||||
dicWar.clear();
|
||||
dicDailyWarByType.clear();
|
||||
dicWarPvp.splice(0, dicWarPvp.length);
|
||||
dicHeroIdByWar.clear();
|
||||
dicComBattleReward.clear();
|
||||
for(let filename of WAR_RELATE_TABLES) {
|
||||
let arr = readFileAndParse(filename);
|
||||
|
||||
@@ -75,7 +88,6 @@ export function loadWar() {
|
||||
o.fixReward = parseFixReward(o.fixReward);
|
||||
o.conditionReward = parseConditionReward(o.conditionReward);
|
||||
o.randomReward = parseRandomReward(o.RandomReward||o.randomReward);
|
||||
o.jackpotReward = parseJackpotReward(o.jackpotReward);
|
||||
o.teammateReward = parseFixReward(o.teammateReward);
|
||||
o.fobiddenCharactor = parseForbiddenChara(o.fobiddenCharactor);
|
||||
o.mapseid = parseNumberList(o.mapseid);
|
||||
@@ -100,6 +112,16 @@ export function loadWar() {
|
||||
} else if (o.warType == WAR_TYPE.GUILD_TRAIN) {
|
||||
o.winReward = parseTrainReward(o.winReward);
|
||||
o.failReward = parseTrainReward(o.failReward);
|
||||
} else if (o.warType == WAR_TYPE.COM_BATTLE) {
|
||||
let reward = {
|
||||
captainReward: parseGoodStr(o.fixReward),
|
||||
teammateReward: parseGoodStr(o.teammateReward),
|
||||
captainTimeReward: parseGoodStr(o.time_captain_normalReward),
|
||||
teammateTimeReward: parseGoodStr(o.time_normalReward),
|
||||
captainTimeGuildReward: parseComBattleTimeReward(o.time_captain_guildReward),
|
||||
teammateTimeGuildReward: parseComBattleTimeReward(o.time_captain_guildReward),
|
||||
}
|
||||
dicComBattleReward.set(o.war_id, reward);
|
||||
}
|
||||
dicWar.set(o.war_id, o);
|
||||
if(!!o.heroId) dicHeroIdByWar.set(o.war_id, o.heroId);
|
||||
@@ -147,18 +169,18 @@ function parseRandomReward(str: string = '') {
|
||||
return result
|
||||
}
|
||||
|
||||
function parseJackpotReward(str: string = '') {
|
||||
let result = new Array<{id: number, weight: number}>();
|
||||
if(!str) return result;
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
for(let [id, weight] of decodeArr) {
|
||||
if(isNaN(parseInt(id)) || isNaN(parseInt(weight))) {
|
||||
throw new Error('data table format wrong');
|
||||
}
|
||||
result.push({id: parseInt(id), weight: parseInt(weight)});
|
||||
}
|
||||
return result
|
||||
}
|
||||
// function parseJackpotReward(str: string = '') {
|
||||
// let result = new Array<{id: number, weight: number}>();
|
||||
// if(!str) return result;
|
||||
// let decodeArr = decodeArrayListStr(str);
|
||||
// for(let [id, weight] of decodeArr) {
|
||||
// if(isNaN(parseInt(id)) || isNaN(parseInt(weight))) {
|
||||
// throw new Error('data table format wrong');
|
||||
// }
|
||||
// result.push({id: parseInt(id), weight: parseInt(weight)});
|
||||
// }
|
||||
// return result
|
||||
// }
|
||||
|
||||
function parseForbiddenChara(str: string = '') {
|
||||
let result = new Array<{type: number, id: number}>();
|
||||
@@ -196,4 +218,15 @@ function parseTrainReward(str: string) {
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function parseComBattleTimeReward(str: string) {
|
||||
let result = new Map<number, {id: number, count: number}[]>();
|
||||
if(!str) return result;
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
for(let i = 0; i < decodeArr.length; i++) {
|
||||
let [id, count] = decodeArr[i]
|
||||
result.set(i + 1, [{ id: parseInt(id), count: parseInt(count) }]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -642,7 +642,7 @@ export function getReasonByWarType(warType: number) {
|
||||
return ITEM_CHANGE_REASON.EXPEDITION_BATTLE_END;
|
||||
case WAR_TYPE.MYSTERY:
|
||||
return ITEM_CHANGE_REASON.MYSTERY_BATTLE_END;
|
||||
case WAR_TYPE.WARLOARDS:
|
||||
case WAR_TYPE.COM_BATTLE:
|
||||
return ITEM_CHANGE_REASON.WARLOARDS_BATTLE_END;
|
||||
case WAR_TYPE.TOWER:
|
||||
return ITEM_CHANGE_REASON.TOWER_BATTLE_END;
|
||||
@@ -685,7 +685,7 @@ export function getWarTypeName(warType: number) {
|
||||
case WAR_TYPE.DAILY: return '每日';
|
||||
case WAR_TYPE.EXPEDITION: return '远征';
|
||||
case WAR_TYPE.MYSTERY: return '秘境';
|
||||
case WAR_TYPE.WARLOARDS: return '群雄';
|
||||
case WAR_TYPE.COM_BATTLE: return '寻宝';
|
||||
case WAR_TYPE.TOWER: return '镇念塔';
|
||||
case WAR_TYPE.PVP: return '竞技';
|
||||
case WAR_TYPE.GUILD_ACTIVITY: return '军团活动';
|
||||
|
||||
Reference in New Issue
Block a user