寻宝:修改寻宝中类型的使用

This commit is contained in:
liangtongchuan
2021-02-19 14:48:29 +08:00
parent 5cda61fc7c
commit a057da5c13
4 changed files with 40 additions and 62 deletions

View File

@@ -1,3 +1,4 @@
import { MemComBtlTeam } from './../../../domain/battleField/ComBattleTeamField';
import { difference } from 'underscore';
/*
* @Author: 梁桐川
@@ -7,79 +8,26 @@ import { difference } from 'underscore';
*/
import { IT_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, COM_TEAM_STATUS, COM_BTL_CONST, CONSUME_TYPE, COM_BTL_QUALITY } from './../../../consts';
import { getGoodById, getBossHpByBlueprtId, getBlueprtComposeByQuality, getBluePrtByQuality, getWarById, getWarIdByBlueprtId, comBtlRangeByLv } from '../../../pubUtils/gamedata';
import { ComBattleTeamModel, BossHp, ComBattleTeamType } from '../../../db/ComBattleTeam';
import Role, { RoleModel } from '../../../db/Role';
import { STATUS } from '../../../consts/statusCode';
import { Application, BackendSession } from 'pinus';
import { resResult, getRandomByLen, reduceCe, getRandValueByMinMax } from '../../../pubUtils/util';
import { RoleStatus } from '../../../db/ComBattleTeam';
import { RoleStatus, ComBattleTeamModel, ComBattleTeamType } from '../../../db/ComBattleTeam';
import { ItemModel } from '../../../db/Item';
import { handleFixedReward, addItems, handleCost } from '../../../services/rewardService';
import { checkRoleInQueue, getTeamSearchByQuality, rmRoleFromQueue, setTeamSearchReq } from '../../../services/redisService';
import { transBossHpArr } from '../../../services/battleService';
import { getRandBlueprtId, getRandComBtlRobots, clearComBtlTimer, getAssistTimesByQuality, getFrd, updateRobotHurtByTime, comBtlLvInvalid, clearRobotHurtTimer, setDismissTimer, dismissTeam, incEquipPrintDrop, randEquipPrintId, handleComBtlProgress, getComBattleFriendAdd, getValidTeammateRoleSt, teammateInBlackList, blueprtIdValid } from '../../../services/comBattleService';
import { getRandBlueprtId, getRandComBtlRobots, clearComBtlTimer, getAssistTimesByQuality, getFrd, updateRobotHurtByTime, comBtlLvInvalid, clearRobotHurtTimer, setDismissTimer, dismissTeam, incEquipPrintDrop, randEquipPrintId, handleComBtlProgress, getComBattleFriendAdd, getValidTeammateRoleSt, teammateInBlackList, blueprtIdValid, createComTeamData } from '../../../services/comBattleService';
import { setAp } from '../../../services/actionPointService';
import { roleLevelup } from '../../../services/normalBattleService';
export default function(app: Application) {
return new ComBattleHandler(app);
}
class ComTeam {
// 队伍唯一编号
teamCode: string;
// 玩家列表
roleIds: Array<string>
// 队伍是否开放加入
pub: boolean;
// 对应藏宝图 Id
blueprtId: number;
// 战斗状态 0未开始1已开始2胜利3失败
status: number;
// 玩家状态
roleStatus: Array<RoleStatus>;
// 队长 roleId
capId: string;
// 战力限制
ceLimit: number;
// boss 总血量
bossHp: number;
// boss 当前血量
bossCurHp: number;
// 单个 boss 血量状态
bossHpArr: Array<BossHp>;
// 品质
quality: number;
// 当前回合
curRnd: number;
// 队伍中人数
roleCnt: number;
// 藏宝图等级所处范围,用来匹配
lvRange: number;
// 队伍是否开放加入
timeout: boolean;
constructor(teamCode: string, pub: boolean, blueprtId: number, status: number, capId: string, ceLimit: number, bossHp: number, quality: number, bossHpArr:Array<BossHp> ) {
this.teamCode = teamCode;
this.pub = pub;
this.blueprtId = blueprtId;
this.status = status;
this.capId = capId;
this.ceLimit = ceLimit;
this.bossHp = bossHp;
this.bossCurHp = bossHp;
this.quality = quality;
this.bossHpArr = bossHpArr;
this.curRnd = 0;
this.roleCnt = 1;
this.timeout = false;
let { lvLimited } = getGoodById(blueprtId);
this.lvRange = comBtlRangeByLv(lvLimited);
}
}
export class ComBattleHandler {
constructor(private app: Application) {
}
private teamMap: Map<string, ComTeam> = new Map();
private teamMap: Map<string, MemComBtlTeam> = new Map();
private teamDisTimer: Map<string, NodeJS.Timer> = new Map();
private robotHurtTimer: Map<string, NodeJS.Timer> = new Map();
@@ -134,7 +82,7 @@ export class ComBattleHandler {
}
let { bossHpSum, bossHpArr } = getBossHpByBlueprtId(blueprtId);
// 创建队伍数据结构
let comTeam = new ComTeam(teamCode, pub, blueprtId, COM_TEAM_STATUS.DEFAULT, roleId, ceLimit, bossHpSum || 10000, goodData.quality, transBossHpArr(bossHpArr));
let comTeam: MemComBtlTeam = createComTeamData(teamCode, pub, blueprtId, COM_TEAM_STATUS.DEFAULT, roleId, ceLimit, bossHpSum || 10000, goodData.quality, transBossHpArr(bossHpArr));
comTeam.roleStatus = roleStatus;
comTeam.roleIds = roleIds;
@@ -242,7 +190,7 @@ export class ComBattleHandler {
let blueprtId = getRandBlueprtId(qualityArr).pop();
let { quality } = getGoodById(blueprtId);
let { bossHpSum, bossHpArr } = getBossHpByBlueprtId(blueprtId);
let comTeam = new ComTeam(teamCode, false, blueprtId, COM_TEAM_STATUS.DEFAULT, 'robot', 0, bossHpSum || 10000, quality, transBossHpArr(bossHpArr));
let comTeam: MemComBtlTeam = createComTeamData(teamCode, false, blueprtId, COM_TEAM_STATUS.DEFAULT, 'robot', 0, bossHpSum || 10000, quality, transBossHpArr(bossHpArr))
let isFrd = await getFrd(roleId, quality);
// 将玩家加入队伍