演武台:伤害测试
This commit is contained in:
@@ -4,7 +4,7 @@ import { AUCTION_SOURCE, DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, MAIL_TYPE, PUSH_R
|
||||
import { BossInstanceModel } from '../../../db/BossInstance';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { nowSeconds, getZeroPoint, getSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { getBossInstanceInfo, checkBossBattleMemberExists, pushBossHpMessage, addBossInstance, refreshUserGuildOfBoss, refreshGuildOfBoss, getBossHp, getBossInstanceInfoByData, pushBossStatus } from '../../../services/guildBossService';
|
||||
import { getBossInstanceInfo, checkBossBattleMemberExists, pushBossHpMessage, addBossInstance, refreshUserGuildOfBoss, refreshGuildOfBoss, getBossHp, getBossInstanceInfoByData, pushBossStatus, zoomOutDamage, zoomInDamage } from '../../../services/guildBossService';
|
||||
import { findWhere } from 'underscore'
|
||||
import { GUILD_STRUCTURE, GUILD_BOSS_STATUS, GUILD_POINT_WAYS } from '../../../consts/constModules/guildConst';
|
||||
import { DATA_NAME } from '../../../consts/dataName';
|
||||
@@ -113,7 +113,7 @@ export class GuildHandler {
|
||||
$set: {
|
||||
roleId, roleName, battleId: warId,
|
||||
status: 0,
|
||||
record: { heroes: [], bossInstanceCode: bossCode, bossHp: bossHp, encourageCnt },
|
||||
record: { heroes: [], bossInstanceCode: bossCode, bossHp: zoomOutDamage(bossHp), encourageCnt },
|
||||
}
|
||||
}, true);
|
||||
const serverId: number = parseInt(session.get('serverId'));
|
||||
@@ -163,11 +163,11 @@ export class GuildHandler {
|
||||
}
|
||||
|
||||
//记录伤害
|
||||
let bossInstance = await BossInstanceModel.updateBossHp(bossCode, damage, roleId);
|
||||
let bossInstance = await BossInstanceModel.updateBossHp(bossCode, zoomInDamage(damage), roleId);
|
||||
if(!bossInstance) { // 如果已经被扣成负的了
|
||||
return resResult(STATUS.SUCCESS, { bossHp: 0 });
|
||||
}
|
||||
await BattleRecordModel.incBossDamage(battleCode, damage, bossInstance.bossHp);
|
||||
await BattleRecordModel.incBossDamage(battleCode, zoomInDamage(damage), bossInstance.bossHp);
|
||||
|
||||
if (bossInstance.bossHp <= 0) {//进入结算
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ export async function getBossInstanceInfoByData(bossInstance: BossInstanceType,
|
||||
let { code, warId, ranks, bossHp, bossTotalHp, ratio, bossLv, encourageCnt } = bossInstance;
|
||||
let dicBossBase = gameData.bossBaseByBossLv.get(bossLv);
|
||||
let rankInfo = getRanks(ranks, userGuild.roleId);
|
||||
bossInfo = { bossCode: code, warId, ...rankInfo, bossHp, bossTotalHp, bossLv, encourageCnt, encourageMax: dicBossBase.encourageSum, ratio };
|
||||
bossInfo = { bossCode: code, warId, ...rankInfo, bossHp: zoomOutDamage(bossHp), bossTotalHp: zoomOutDamage(bossTotalHp), bossLv, encourageCnt, encourageMax: dicBossBase.encourageSum, ratio };
|
||||
}
|
||||
return { status, bossInfo, ...refObj }
|
||||
}
|
||||
@@ -93,9 +93,9 @@ export function getRanks(ranks: {roleId: string; score: number; time: number; jo
|
||||
let myRank = {};
|
||||
let lastRanks = ranks.map(({roleId: battleRoleId, score }, index) => {
|
||||
if (roleId == battleRoleId) {
|
||||
myRank = { roleId, score, rankLv: index + 1 };
|
||||
myRank = { roleId, score: zoomOutDamageWithoutRadix(score), rankLv: index + 1 };
|
||||
}
|
||||
return {roleId: battleRoleId, score, rankLv: index + 1};
|
||||
return {roleId: battleRoleId, score: zoomOutDamageWithoutRadix(score), rankLv: index + 1};
|
||||
});
|
||||
return { ranks: lastRanks, myRank }
|
||||
}
|
||||
@@ -143,7 +143,7 @@ export async function pushBossHpMessage(code: string, serverId:number, bossHp:nu
|
||||
let sid = arr[1];
|
||||
return {uid, sid};
|
||||
});
|
||||
sendMessageToUsersWithSuc(PUSH_ROUTE.BOSS_HP_UPDATE, { bossHp }, uids);
|
||||
sendMessageToUsersWithSuc(PUSH_ROUTE.BOSS_HP_UPDATE, { bossHp: zoomOutDamage(bossHp) }, uids);
|
||||
if (isDelKey) {
|
||||
delAsync(key);
|
||||
}
|
||||
@@ -193,7 +193,7 @@ export async function getBossHp(serverId: number, guildCode: string, dicBossBase
|
||||
console.log('getBossHp', warId, minBossHp, bossHpRatio)
|
||||
|
||||
let serverRecord = await ServerRecordModel.findTodayData(serverId);
|
||||
if(!serverRecord) return { ratio: 1, bossHp: minBossHp };
|
||||
if(!serverRecord) return { ratio: 1, bossHp: zoomInDamage(minBossHp) };
|
||||
|
||||
let dicWar = gameData.war.get(warId);
|
||||
let dicWarJson = gameData.warJson.get(dicWar.dispatchJsonId);
|
||||
@@ -224,5 +224,17 @@ export async function getBossHp(serverId: number, guildCode: string, dicBossBase
|
||||
bossHp = minBossHp;
|
||||
}
|
||||
console.log(`getBossHp B ${B}`);
|
||||
return { ratio: B, bossHp };
|
||||
return { ratio: B, bossHp: zoomInDamage(bossHp) };
|
||||
}
|
||||
|
||||
export function zoomInDamage(damage: number, ratio = 100) {
|
||||
return Math.floor(damage * ratio);
|
||||
}
|
||||
|
||||
export function zoomOutDamage(damage: number, ratio = 100) {
|
||||
return Math.floor(damage)/ratio;
|
||||
}
|
||||
|
||||
export function zoomOutDamageWithoutRadix(damage: number, ratio = 100) {
|
||||
return Math.floor(damage/ratio);
|
||||
}
|
||||
Reference in New Issue
Block a user