演武台:伤害测试
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 { 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) {//进入结算
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user