演武台:伤害测试

This commit is contained in:
luying
2022-05-16 10:19:34 +08:00
parent 4c634e5300
commit 8e5047e238
2 changed files with 22 additions and 10 deletions
@@ -4,7 +4,7 @@ import { AUCTION_SOURCE, DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, MAIL_TYPE, PUSH_R
import { BossInstanceModel } from '../../../db/BossInstance'; import { BossInstanceModel } from '../../../db/BossInstance';
import { BattleRecordModel } from '../../../db/BattleRecord'; import { BattleRecordModel } from '../../../db/BattleRecord';
import { nowSeconds, getZeroPoint, getSeconds } from '../../../pubUtils/timeUtil'; 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 { findWhere } from 'underscore'
import { GUILD_STRUCTURE, GUILD_BOSS_STATUS, 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 { DATA_NAME } from '../../../consts/dataName';
@@ -113,7 +113,7 @@ export class GuildHandler {
$set: { $set: {
roleId, roleName, battleId: warId, roleId, roleName, battleId: warId,
status: 0, status: 0,
record: { heroes: [], bossInstanceCode: bossCode, bossHp: bossHp, encourageCnt }, record: { heroes: [], bossInstanceCode: bossCode, bossHp: zoomOutDamage(bossHp), encourageCnt },
} }
}, true); }, true);
const serverId: number = parseInt(session.get('serverId')); 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) { // 如果已经被扣成负的了 if(!bossInstance) { // 如果已经被扣成负的了
return resResult(STATUS.SUCCESS, { bossHp: 0 }); 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) {//进入结算 if (bossInstance.bossHp <= 0) {//进入结算
+18 -6
View File
@@ -45,7 +45,7 @@ export async function getBossInstanceInfoByData(bossInstance: BossInstanceType,
let { code, warId, ranks, bossHp, bossTotalHp, ratio, bossLv, encourageCnt } = bossInstance; let { code, warId, ranks, bossHp, bossTotalHp, ratio, bossLv, encourageCnt } = bossInstance;
let dicBossBase = gameData.bossBaseByBossLv.get(bossLv); let dicBossBase = gameData.bossBaseByBossLv.get(bossLv);
let rankInfo = getRanks(ranks, userGuild.roleId); 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 } return { status, bossInfo, ...refObj }
} }
@@ -93,9 +93,9 @@ export function getRanks(ranks: {roleId: string; score: number; time: number; jo
let myRank = {}; let myRank = {};
let lastRanks = ranks.map(({roleId: battleRoleId, score }, index) => { let lastRanks = ranks.map(({roleId: battleRoleId, score }, index) => {
if (roleId == battleRoleId) { 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 } return { ranks: lastRanks, myRank }
} }
@@ -143,7 +143,7 @@ export async function pushBossHpMessage(code: string, serverId:number, bossHp:nu
let sid = arr[1]; let sid = arr[1];
return {uid, sid}; return {uid, sid};
}); });
sendMessageToUsersWithSuc(PUSH_ROUTE.BOSS_HP_UPDATE, { bossHp }, uids); sendMessageToUsersWithSuc(PUSH_ROUTE.BOSS_HP_UPDATE, { bossHp: zoomOutDamage(bossHp) }, uids);
if (isDelKey) { if (isDelKey) {
delAsync(key); delAsync(key);
} }
@@ -193,7 +193,7 @@ export async function getBossHp(serverId: number, guildCode: string, dicBossBase
console.log('getBossHp', warId, minBossHp, bossHpRatio) console.log('getBossHp', warId, minBossHp, bossHpRatio)
let serverRecord = await ServerRecordModel.findTodayData(serverId); 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 dicWar = gameData.war.get(warId);
let dicWarJson = gameData.warJson.get(dicWar.dispatchJsonId); let dicWarJson = gameData.warJson.get(dicWar.dispatchJsonId);
@@ -224,5 +224,17 @@ export async function getBossHp(serverId: number, guildCode: string, dicBossBase
bossHp = minBossHp; bossHp = minBossHp;
} }
console.log(`getBossHp B ${B}`); 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);
} }