炼器堂,练兵场,事件开启,redlock注释

This commit is contained in:
mamengke01
2021-02-24 15:13:46 +08:00
parent dd995e67eb
commit 0e933d1ec4
14 changed files with 157 additions and 85 deletions

View File

@@ -23,7 +23,11 @@ export class GuildRefineHandler {
constructor(private app: Application) {
}
/**
* 获得科技树信息
* @param msg
* @param session
*/
async getRefine(msg: {}, session: BackendSession) {
const roleId = session.get('roleId');
let userGuild = await UserGuildModel.getMyGuild(roleId, 'guildCode');
@@ -36,7 +40,11 @@ export class GuildRefineHandler {
}
return resResult(STATUS.SUCCESS, { scienceTrees: guildRefine.scienceTrees });
}
/**
* 炼器
* @param msg
* @param session
*/
async refineEquip(msg: {pid: number}, session: BackendSession) {
let { pid } = msg;
const roleId: string = session.get('roleId');
@@ -50,6 +58,7 @@ export class GuildRefineHandler {
let { scienceTrees } = await GuildRefineModel.getRefine(code);
let findDevelopConsume;
//判断是否可以炼该兵器
for (let scienceTree of scienceTrees) {
if (scienceTree.endTime < nowSeconds()) {
let developConsume = getArmyDevelopConsumeById(scienceTree.id);
@@ -67,7 +76,11 @@ export class GuildRefineHandler {
let goods = await addItems(roleId, roleName, sid, [{id: pid, count: 1}]);
return resResult(STATUS.SUCCESS, { goods });
}
/**
* 点亮科技树
* @param msg
* @param session
*/
async lightUpTree(msg: {id: number}, session: BackendSession) {
let { id } = msg;
const roleId: string = session.get('roleId');
@@ -87,23 +100,25 @@ 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) {
res.releaseCallback();
return resResult(STATUS.GUILD_SCIENCETREE_IS_RUNNING);
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) {
res.releaseCallback();
return resResult(STATUS.GUILD_PERSITION_TREE_NOT_LIGHT);
return resResult(STATUS.GUILD_PERSITION_TREE_NOT_LIGHT);//前置科技树未点亮
}
}
//点亮消耗
const costResult = await GuildModel.costFund(code, developConsume.fundConsume);
if(!costResult) {
res.releaseCallback();
@@ -114,7 +129,11 @@ export class GuildRefineHandler {
res.releaseCallback();
return resResult(STATUS.SUCCESS, { scienceTrees });
}
/**
* 协助点亮科技树
* @param msg
* @param session
*/
async assistRefine(msg: {id: number}, session: BackendSession) {
let { id } = msg;
const roleId: string = session.get('roleId');
@@ -137,11 +156,11 @@ export class GuildRefineHandler {
let scienceTree = guildRefine.scienceTrees[index];
if (scienceTree.assistRoleIds.indexOf(roleId) != -1) {
res.releaseCallback();
return resResult(STATUS.GUILD_IS_ASSISTED_SCIENCETREE);
return resResult(STATUS.GUILD_IS_ASSISTED_SCIENCETREE); //玩家已经协助过
}
if (scienceTree.assistRoleIds.length >= ARMY.ARMY_DEVELOPMENT_SPEEDTMES) {
res.releaseCallback();
return resResult(STATUS.GUILD_REACH_MAX_ASSIST_COUNT);
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) {