boss返回状态改变
This commit is contained in:
@@ -106,7 +106,6 @@ export class GuildRefineHandler {
|
||||
const roleId: string = session.get('roleId');
|
||||
const serverId: number = session.get('serverId');
|
||||
const sid: string = session.get('sid');
|
||||
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
|
||||
if (!userGuild)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
@@ -124,13 +123,11 @@ export class GuildRefineHandler {
|
||||
return resResult(STATUS.GUILD_IS_ASSISTED_SCIENCETREE);
|
||||
if (scienceTree.assistRoleIds.length >= ARMY.ARMY_DEVELOPMENT_SPEEDTMES)
|
||||
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)
|
||||
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 })
|
||||
res.releaseCallback();
|
||||
return resResult(STATUS.SUCCESS, { scienceTrees });
|
||||
|
||||
@@ -15,6 +15,7 @@ import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/it
|
||||
import { handleCost, addItems } from '../../../services/rewardService';
|
||||
import { ARMY } from '../../../pubUtils/dicParam';
|
||||
import { addActive } from '../../../services/guildService';
|
||||
import { GUILD_STRUCTURE } from '../../../consts/constModules/guildConst';
|
||||
export default function (app: Application) {
|
||||
return new GuildTrainHandler(app);
|
||||
}
|
||||
@@ -131,14 +132,14 @@ export class GuildTrainHandler {
|
||||
if (!trainInstance)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let { trainInstances } = getArmyTrainJuDian(trainId);
|
||||
let { trainInstances, soloRewardRatio } = getArmyTrainJuDian(trainId);
|
||||
let instance = findWhere(trainInstances, { hid });
|
||||
if (!instance)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
let trainSoloReward = getTrainSoloReward(battleRecord.record.difficulty);
|
||||
if (!trainSoloReward)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
let addScore = isSuccess?trainSoloReward.winScore:trainSoloReward.failScore;
|
||||
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 guildTrains = [];
|
||||
let trainIds = [];
|
||||
@@ -210,9 +211,13 @@ export class GuildTrainHandler {
|
||||
if (!userGuild)
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
const { guildCode: code } = userGuild;
|
||||
let { structure } = await GuildModel.findGuild(code, serverId, 'structure');
|
||||
let stru = findWhere(structure, {id: 4});
|
||||
let res:any = await lockData(serverId, GUILD_DATA_NAME.TRAIN_BOX, code + '_' + trainId);//加锁
|
||||
if (!!res.err)
|
||||
return resResult(STATUS.REDLOCK_ERR);
|
||||
|
||||
let { shilianRewardRatio } = getTrainBaseByLv(GUILD_STRUCTURE.TRAIN);
|
||||
let { heroRewards, trainInstances } = getArmyTrainJuDian(trainId);
|
||||
let { progress } = findWhere(trainInstances, {hid});
|
||||
let guildTrain = await GuildTrainModel.findTrainInstanceBoxByIndex(code, roleId, trainId, hid, index, progress, nowSeconds());
|
||||
@@ -222,6 +227,7 @@ export class GuildTrainHandler {
|
||||
}
|
||||
|
||||
let good = getRandomByLen(heroRewards);
|
||||
good.count = Math.floor((100 + shilianRewardRatio) * good.count/100);
|
||||
let goods = await addItems(roleId, roleName, sid, [good]);
|
||||
|
||||
let resGuildTrain = await GuildTrainModel.receiveBoxByIndex(code, roleId, trainId, hid, index, good);
|
||||
|
||||
@@ -27,10 +27,10 @@ export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId
|
||||
await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId);
|
||||
}
|
||||
if (bossInstance.startTime < getTodayZeroPoint()) {
|
||||
result.type = 1;
|
||||
result.status = 1;
|
||||
return result;
|
||||
} else {
|
||||
result.type = 2;
|
||||
result.status = 2;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -45,7 +45,7 @@ export async function getBossInstanceInfo(bossInstance: BossInstanceType, roleId
|
||||
}
|
||||
return {roleId, score, rankLv: index + 1};
|
||||
});
|
||||
return {warId, ranks: lastRanks, myRank, bossHp, type: 3, isBattled};
|
||||
return {warId, ranks: lastRanks, myRank, bossHp, status: 3, isBattled};
|
||||
}
|
||||
/**
|
||||
* 战斗结束返回
|
||||
@@ -59,11 +59,11 @@ export async function getBossInstanceWhenEnd(bossInstance: BossInstanceType, rol
|
||||
let result:any = {};
|
||||
if (battleNum == winNum) {
|
||||
pushRanks = deepCopy(recordRanks);
|
||||
result = {warId: winWarId, bossHp: 0, type: 3};
|
||||
result = {warId: winWarId, bossHp: 0, status: 3};
|
||||
await BossInstanceModel.recordRoleIdWhenCheck(guildCode, roleId);
|
||||
} else {
|
||||
pushRanks = deepCopy(ranks);
|
||||
result = {warId, bossHp, type: 3};
|
||||
result = {warId, bossHp, status: 3};
|
||||
}
|
||||
pushRanks.sort(function(a, b) {
|
||||
return b.score - a.score + a.time - b.time;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { UserGuildModel } from '../db/UserGuild';
|
||||
import { getArmyTrainJuDian } from '../pubUtils/data';
|
||||
import { getArmyTrainJuDian, getTrainBaseByLv } from '../pubUtils/data';
|
||||
import { nowSeconds, getHourPoint } from '../pubUtils/timeUtil';
|
||||
import { GUILD_REPORT_NUM, GUILD_DATA_NAME, REFRESH_HOUR } from '../consts/constModules/guildConst';
|
||||
import { GUILD_REPORT_NUM, GUILD_DATA_NAME, REFRESH_HOUR, GUILD_STRUCTURE } from '../consts/constModules/guildConst';
|
||||
import { GuildTrainType, GuildTrainModel, TrainInstance } from '../db/GuildTrain';
|
||||
import { GuildModel } from '../db/Guild';
|
||||
import { findWhere } from 'underscore';
|
||||
@@ -12,6 +12,7 @@ import { MailModel, MailType } from '../db/Mail';
|
||||
import { getRandomByLen, resResult } from '../pubUtils/util';
|
||||
import { getRedis } from './redisService';
|
||||
import { STATUS } from '../consts/statusCode';
|
||||
|
||||
export async function getUserGuild(roleId: string, serverId: number) {
|
||||
let userGuild = await UserGuildModel.getMyGuild(roleId,'trainCount trainTime trainRewards guildCode');
|
||||
if (!userGuild)
|
||||
@@ -146,6 +147,8 @@ export async function resetTrain(code: string, serverId: number) {
|
||||
let mails = new Array<MailType>();
|
||||
let pushMessage = [];
|
||||
let uids = [];
|
||||
let { shilianRewardRatio } = getTrainBaseByLv(GUILD_STRUCTURE.TRAIN);
|
||||
|
||||
userGuildList.forEach(async function ({roleId, trainRewards}) {
|
||||
let goods = [];
|
||||
guildTrains.forEach(guildTrain=>{
|
||||
@@ -153,6 +156,7 @@ export async function resetTrain(code: string, serverId: number) {
|
||||
if (!findWhere(trainBoxs, {roleId})) {
|
||||
let { heroRewards } = getArmyTrainJuDian(guildTrain.trainId);
|
||||
let good = getRandomByLen(heroRewards);
|
||||
good.count = Math.floor((100 + shilianRewardRatio) * good.count/100);
|
||||
goods.push(good);
|
||||
}
|
||||
})
|
||||
|
||||
@@ -322,7 +322,8 @@ export const FILENAME = {
|
||||
DIC_ARMY_TRAIN_SOLO_REWARD: 'dic_army_trainSoloReward',
|
||||
DIC_ARMY_ACTIVE_POINT_WAYS: 'dic_army_activePointWays',
|
||||
DIC_ARMY_DEVELOPMENTCONSUME: 'dic_army_developmentConsume',
|
||||
DIC_ARMY_BOSS_RANK_REWARD: 'dic_army_bossrankReward'
|
||||
DIC_ARMY_BOSS_RANK_REWARD: 'dic_army_bossrankReward',
|
||||
|
||||
}
|
||||
|
||||
export const WAR_RELATE_TABLES = [
|
||||
|
||||
@@ -11,14 +11,16 @@ export interface DicArmyTrainJuDian {
|
||||
readonly trainInstances: Array<{hid: number, warId: number, progress: number}>;
|
||||
readonly heroRewards: Array<{id: number, count: number}>;
|
||||
// 进阶奖励
|
||||
readonly jinjieReward: RewardInter[];
|
||||
readonly jinjieReward: RewardInter[];
|
||||
readonly soloRewardRatio: number;
|
||||
}
|
||||
|
||||
const DicArmyTrainJuDianKeys: KeysEnum<DicArmyTrainJuDian> = {
|
||||
id: true,
|
||||
trainInstances: true,
|
||||
heroRewards: true,
|
||||
jinjieReward: true
|
||||
jinjieReward: true,
|
||||
soloRewardRatio: true
|
||||
};
|
||||
|
||||
const str = readJsonFile(FILENAME.DIC_ARMY_TRAIN_JU_DIAN);
|
||||
|
||||
@@ -80,7 +80,8 @@ export interface DicTrainBase {
|
||||
readonly difficultyRatio: number;
|
||||
// 据点奖励增长系数
|
||||
readonly judianRewardRatio: number;
|
||||
|
||||
|
||||
readonly shilianRewardRatio: number;
|
||||
}
|
||||
|
||||
const DicTrainKeys: KeysEnum<DicTrainBase> = {
|
||||
@@ -89,6 +90,7 @@ const DicTrainKeys: KeysEnum<DicTrainBase> = {
|
||||
trainLevel: true,
|
||||
difficultyRatio: true,
|
||||
judianRewardRatio: true,
|
||||
shilianRewardRatio: true
|
||||
};
|
||||
|
||||
// 捐献所
|
||||
@@ -200,6 +202,7 @@ const strTrain = readJsonFile(FILENAME.DIC_GUILD_TRAIN_BASE);
|
||||
let arrTrain = JSON.parse(strTrain);
|
||||
arrTrain.forEach(o => {
|
||||
setStructureConsume(o);
|
||||
|
||||
dicTrainBase.set(o.level, _.pick(o, Object.keys(DicTrainKeys)));
|
||||
});
|
||||
arrTrain = undefined;
|
||||
|
||||
Reference in New Issue
Block a user