军团bug和备注
This commit is contained in:
@@ -6,7 +6,7 @@ import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { nowSeconds, getTodayZeroPoint } from '../../../pubUtils/timeUtil';
|
||||
import { getBossInstanceInfo, bossResult, checkMemberExists, pushBossHpMessage, getBossInstanceWhenEnd, addBossInstance } from '../../../services/guildBossService';
|
||||
import { findWhere } from 'underscore'
|
||||
import { GUILD_STRUCTURE, GUILD_POINT_WAYS } from '../../../consts/constModules/guildConst';
|
||||
import { GUILD_STRUCTURE, GUILD_BOSS_STATUS, GUILD_POINT_WAYS } from '../../../consts/constModules/guildConst';
|
||||
import { DATA_NAME } from '../../../consts/dataName';
|
||||
import { UserGuildModel } from '../../../db/UserGuild';
|
||||
import { GUILD_OPERATE } from '../../../consts';
|
||||
@@ -14,7 +14,6 @@ import { checkAuth, addActive } from '../../../services/guildService';
|
||||
import { GuildModel } from '../../../db/Guild';
|
||||
import { getBossByLv } from '../../../pubUtils/data';
|
||||
import { lockData } from '../../../services/redLockService';
|
||||
import { handleCost } from '../../../services/rewardService';
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GuildHandler(app);
|
||||
@@ -51,10 +50,9 @@ export class GuildHandler {
|
||||
const { guildCode: code } = userGuild;
|
||||
let bossInstance = await BossInstanceModel.findBossInstance(code);
|
||||
if (!bossInstance) {
|
||||
return resResult(STATUS.SUCCESS, {status: 1});//1:等待团长开启,2:今日已开启,且boss通关,3:开启中
|
||||
return resResult(STATUS.SUCCESS, {status: GUILD_BOSS_STATUS.WAIT_OPEN});//等待团长开启
|
||||
}
|
||||
let result = await getBossInstanceInfo(bossInstance, roleId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, result);
|
||||
}
|
||||
|
||||
@@ -75,22 +73,27 @@ export class GuildHandler {
|
||||
return resResult(STATUS.REDLOCK_ERR);
|
||||
let bossInstance = await BossInstanceModel.findBossInstance(code);
|
||||
if (!!bossInstance && ( bossInstance.bossHp > 0 || bossInstance.startTime >= getTodayZeroPoint() )) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_SCRIPT_IS_OPENED_TODAY);
|
||||
}
|
||||
const guild = await GuildModel.findByCode(code, serverId, 'lv structure');
|
||||
if(!guild) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_NOT_FOUND);
|
||||
}
|
||||
const { structure } = guild;
|
||||
const curStructure = structure.find(cur => cur.id == GUILD_STRUCTURE.BOSS);
|
||||
if(!curStructure) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_STRUCTURE_NOT_FOUND);
|
||||
}
|
||||
let bossBase = getBossByLv(curStructure.lv);
|
||||
let { bossHp, warId } = getRandomByLen(bossBase.wars);
|
||||
let resGuild = await GuildModel.costFund(code, bossBase.opencost);
|
||||
if (!resGuild)
|
||||
if (!resGuild) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_FUND_NOT_ENOUGH);
|
||||
}
|
||||
await BossInstanceModel.openBossInstance(code, bossHp, warId, bossBase.bossLevel);
|
||||
res.releaseCallback();
|
||||
let result = {warId, ranks: [], myRank: {}, bossHp, status: 3, bossLv: bossBase.bossLevel, isBattled: false};
|
||||
@@ -145,7 +148,7 @@ export class GuildHandler {
|
||||
}
|
||||
//记录伤害
|
||||
let bossInstance = await BossInstanceModel.updateBossHp(code, damage, roleId);
|
||||
if (!bossInstance) {//进入结算
|
||||
if (!bossInstance|| bossInstance.bossHp == 0) {//进入结算
|
||||
let flag = await bossResult(code, serverId, DATA_NAME.BOSS_SCRIPT, roleId, damage);
|
||||
if (!flag) {
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
@@ -87,20 +87,28 @@ export class GuildRefineHandler {
|
||||
let guildRefine = await GuildRefineModel.getRefine(code);
|
||||
let nowTime = nowSeconds();
|
||||
for (let scienceTree of guildRefine.scienceTrees) {
|
||||
if (scienceTree.id == id)
|
||||
if (scienceTree.id == id) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_LIGHT_UP_THE_SCIENCETREE);
|
||||
}
|
||||
|
||||
if (scienceTree.endTime > nowTime)
|
||||
if (scienceTree.endTime > nowTime) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_SCIENCETREE_IS_RUNNING);
|
||||
}
|
||||
}
|
||||
for (let prePosition of developConsume.prePositions) {
|
||||
let scienceTree = findWhere(guildRefine.scienceTrees, {id: prePosition});
|
||||
if (!scienceTree||scienceTree.endTime > nowTime)
|
||||
if (!scienceTree||scienceTree.endTime > nowTime) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_PERSITION_TREE_NOT_LIGHT);
|
||||
}
|
||||
}
|
||||
const costResult = await GuildModel.costFund(code, developConsume.fundConsume);
|
||||
if(!costResult)
|
||||
if(!costResult) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_FUND_NOT_ENOUGH);
|
||||
}
|
||||
let scienceTree = { id, endTime: nowTime + developConsume.timeConsume, assistRoleIds: []}
|
||||
let { scienceTrees } = await GuildRefineModel.pushRefine(code, scienceTree);
|
||||
res.releaseCallback();
|
||||
@@ -122,16 +130,24 @@ export class GuildRefineHandler {
|
||||
let guildRefine = await GuildRefineModel.getRefine(code);
|
||||
|
||||
let index = findIndex(guildRefine.scienceTrees, { id });
|
||||
if (index == -1)
|
||||
if (index == -1) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let scienceTree = guildRefine.scienceTrees[index];
|
||||
if (scienceTree.assistRoleIds.indexOf(roleId) != -1)
|
||||
if (scienceTree.assistRoleIds.indexOf(roleId) != -1) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_IS_ASSISTED_SCIENCETREE);
|
||||
if (scienceTree.assistRoleIds.length >= ARMY.ARMY_DEVELOPMENT_SPEEDTMES)
|
||||
}
|
||||
if (scienceTree.assistRoleIds.length >= ARMY.ARMY_DEVELOPMENT_SPEEDTMES) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.GUILD_REACH_MAX_ASSIST_COUNT);
|
||||
}
|
||||
let result = await handleCost(roleId, sid, [{id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.GOLD), count: ARMY.ARMY_DEVELOPMENT_SPEEDCOST}]);
|
||||
if (!result)
|
||||
if (!result) {
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
}
|
||||
scienceTree.assistRoleIds.push(roleId);
|
||||
scienceTree.endTime = scienceTree.endTime - ARMY.ARMY_DEVELOPMENT_SPEED * 60;
|
||||
let { scienceTrees } = await GuildRefineModel.updateRefine(code, { scienceTrees: guildRefine.scienceTrees })
|
||||
|
||||
@@ -180,18 +180,24 @@ export class GuildTrainHandler {
|
||||
return resResult(STATUS.GUILD_TRAIN_SCRIPT_NOT_OPENED);
|
||||
}
|
||||
let trainInstance = findWhere(guildTrain.trainInstances, { hid });
|
||||
if (!trainInstance)
|
||||
if (!trainInstance) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
|
||||
let { trainInstances, soloRewardRatio } = getArmyTrainJuDian(trainId);
|
||||
let instance = findWhere(trainInstances, { hid });
|
||||
if (!instance)
|
||||
if (!instance) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
}
|
||||
let trainSoloReward = getTrainSoloReward(battleRecord.record.difficulty);
|
||||
if (!trainSoloReward)
|
||||
if (!trainSoloReward) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
let addScore = Math.floor((isSuccess?trainSoloReward.winScore:trainSoloReward.failScore) * (soloRewardRatio + 100 ) / 100);
|
||||
let goods = await addItems(roleId, roleName, sid, [{id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.HONOUR), count: isSuccess?trainSoloReward.failHonour:trainSoloReward.failHonour}]);
|
||||
}
|
||||
let addScore = Math.floor((isSuccess?trainSoloReward.winScore:trainSoloReward.failScore));
|
||||
let goods = await addItems(roleId, roleName, sid, [{id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.HONOUR), count: (isSuccess?trainSoloReward.failHonour:trainSoloReward.failHonour) * (soloRewardRatio + 100 ) / 100}]);
|
||||
//是否压制
|
||||
let { isComplete, ranks } = guildTrain;
|
||||
let reports = [];
|
||||
@@ -266,14 +272,20 @@ export class GuildTrainHandler {
|
||||
return resResult(STATUS.GUILD_TRAIN_SCRIPT_NOT_OPENED);
|
||||
}
|
||||
let trainInstance = findWhere(guildTrain.trainInstances, { hid });
|
||||
if (trainInstance.endTime < nowSeconds())
|
||||
if (trainInstance.endTime < nowSeconds()) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.GUILD_TRAIN_BOX_IS_OVER_TIME);
|
||||
}
|
||||
let trainBox = findWhere(trainInstance.trainBoxs, { index })
|
||||
if (!!trainBox)
|
||||
if (!!trainBox) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.GUILD_TRAIN_BOX_INDEX_IS_GOT);
|
||||
}
|
||||
trainBox = findWhere(trainInstance.trainBoxs, { roleId })
|
||||
if (!!trainBox)
|
||||
if (!!trainBox) {
|
||||
res.releaseCallback();//解锁
|
||||
return resResult(STATUS.GUILD_TRAIN_BOX_IS_GOT);
|
||||
}
|
||||
let good = getRandomByLen(heroRewards);
|
||||
good.count = Math.floor((100 + shilianRewardRatio) * good.count/100);
|
||||
let goods = await addItems(roleId, roleName, sid, [good]);
|
||||
@@ -282,8 +294,7 @@ export class GuildTrainHandler {
|
||||
res.releaseCallback();//解锁
|
||||
|
||||
if (!resGuildTrain) {
|
||||
let result:any = getGuildTrainRewards(guildTrain);
|
||||
return resResult(STATUS.GUILD_GET_TRAIN_BOX_FAIL, result);
|
||||
return resResult(STATUS.GUILD_GET_TRAIN_BOX_FAIL);
|
||||
}
|
||||
let result:any = getGuildTrainRewards(resGuildTrain);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user