feat:数据统计计入1防御与1护盾减伤
This commit is contained in:
parent
8169653d94
commit
7f963be004
@ -444,6 +444,8 @@ control.prototype._initStatistics = function (totalTime) {
|
||||
'extraDamage': 0,
|
||||
'moveDirectly': 0,
|
||||
'ignoreSteps': 0,
|
||||
'oneDefEffect': 0,
|
||||
'oneMdefEffect': 0,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -407,6 +407,16 @@ enemys.prototype.getDefDamage = function (enemy, k, x, y, floorId) {
|
||||
return nowDamage - nextDamage;
|
||||
}
|
||||
|
||||
////// N魔防减伤计算 //////
|
||||
enemys.prototype.getMdefDamage = function (enemy, k, x, y, floorId) {
|
||||
if (typeof enemy == 'string') enemy = core.getEnemyValue(enemy, null, x, y, floorId);
|
||||
k = k || 1;
|
||||
const nowDamage = this._getDamage(enemy, null, x, y, floorId);
|
||||
const nextDamage = this._getDamage(enemy, { "mdef": core.status.hero.mdef + k }, x, y, floorId);
|
||||
if (nowDamage == null || nextDamage == null) return "???";
|
||||
return nowDamage - nextDamage;
|
||||
}
|
||||
|
||||
enemys.prototype.getEnemyInfo = function (enemy, hero, x, y, floorId) {
|
||||
if (enemy == null) return null;
|
||||
if (typeof enemy == 'string') enemy = core.getEnemyValue(enemy, null, x, y, floorId);
|
||||
|
||||
@ -271,6 +271,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
"afterBattle": function (enemyId, x, y) {
|
||||
// 战斗结束后触发的事件
|
||||
|
||||
const floorId = core.status.floorId;
|
||||
var enemy = core.getEnemyValue(enemyId, null, x, y);
|
||||
var special = enemy.special;
|
||||
|
||||
@ -308,6 +309,11 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
return;
|
||||
}
|
||||
|
||||
const defDamage = core.enemys.getDefDamage(enemy, -1, x, y, floorId);
|
||||
if (typeof defDamage === "number") core.status.hero.statistics.oneDefEffect -= defDamage;
|
||||
const mdefDamage = core.enemys.getMdefDamage(enemy, -1, x, y, floorId);
|
||||
if (typeof mdefDamage === "number") core.status.hero.statistics.oneMdefEffect -= mdefDamage;
|
||||
|
||||
// 扣减体力值并记录统计数据
|
||||
core.status.hero.hp -= damage;
|
||||
core.status.hero.statistics.battleDamage += damage;
|
||||
|
||||
@ -10129,7 +10129,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
|
||||
+ "受到的总伤害为" + core.formatBigNumber(statistics.battleDamage + statistics.poisonDamage + statistics.extraDamage)
|
||||
+ ",其中战斗伤害" + core.formatBigNumber(statistics.battleDamage) + "点"
|
||||
+ (core.flags.statusBarItems.indexOf('enableDebuff') >= 0 ? (",中毒伤害" + core.formatBigNumber(statistics.poisonDamage) + "点") : "")
|
||||
+ ",领域/夹击/阻击/血网伤害" + core.formatBigNumber(statistics.extraDamage) + "点。";
|
||||
+ ",领域/夹击/阻击/血网伤害" + core.formatBigNumber(statistics.extraDamage) + "点。\n\n"
|
||||
+ "1防御累计减伤为" + core.formatBigNumber(statistics.oneDefEffect || 0)
|
||||
+ ",1护盾累计减伤为" + core.formatBigNumber(statistics.oneMdefEffect || 0) + "。";
|
||||
core.drawTextContent(ctx, str, {
|
||||
left: 30, top: 30, color: "black", maxWidth: 360, fontSize: 14
|
||||
});
|
||||
|
||||
21
runtime.d.ts
vendored
21
runtime.d.ts
vendored
@ -198,7 +198,9 @@ type HeroStatus = {
|
||||
moveDirectly: number
|
||||
poisonDamage: number
|
||||
start: number
|
||||
totalTime: number
|
||||
totalTime: number,
|
||||
oneDefEffect: number,
|
||||
oneMdefEffect: number,
|
||||
}
|
||||
[key: string]: any
|
||||
}
|
||||
@ -1642,6 +1644,18 @@ interface enemys {
|
||||
*/
|
||||
getDefDamage(enemy: string | Enemy, k?: number, x?: number, y?: number, floorId?: string): number
|
||||
|
||||
/**
|
||||
* 计算再加若干点护盾能使某只敌人对主角的总伤害降低多少
|
||||
* @example core.nextCriticals('greenSlime', 10, 0, 0, 'MT0') // 再加10点防御能使绿头怪的伤害降低多少
|
||||
* @param enemy 敌人id或敌人对象
|
||||
* @param k 假设主角增加的护盾,可选,默认为1
|
||||
* @param x 敌人的横坐标,可选
|
||||
* @param y 敌人的纵坐标,可选
|
||||
* @param floorId 敌人所在的地图,可选
|
||||
* @returns 总伤害的减少量
|
||||
*/
|
||||
getMdefDamage(enemy: string | Enemy, k?: number, x?: number, y?: number, floorId?: string): number
|
||||
|
||||
/**
|
||||
* 获得某张地图的敌人集合,用于手册绘制
|
||||
* @example core.getCurrentEnemys('MT0') // 主塔0层的敌人集合
|
||||
@ -3358,7 +3372,10 @@ declare class PaginationClass extends MenuBaseClass {
|
||||
|
||||
type CoreMixin = {
|
||||
firstData: { [x: string]: any }
|
||||
/** 全塔属性开关 */flags: { [flagName: string]: boolean | number}
|
||||
/** 全塔属性开关 */flags: {
|
||||
statusBarItems: string[]
|
||||
[flagName: string]: boolean | number
|
||||
}
|
||||
/** 全局数值 */values:
|
||||
{
|
||||
/** 全局帧动画时间 */animateSpeed: number;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user