refactor: 移除战斗结束相关的FEnd触发逻辑
此次提交全面清理了所有与战斗结束(FEnd)相关的代码: 1. 移除了Hero、Monster等实体中的fend属性与运行时处理 2. 删除了SkillTriggerHelper中的FEnd触发分支 3. 移除了GameEvent中的FightEnd事件与相关监听 4. 清理了配置文件中的FEnd相关枚举、字段与装备 5. 重构了MissionComp的回合逻辑,不再触发战后技能 6. 更新了注释与文档,移除过时的FEnd相关说明 彻底移除了已不再使用的战斗结束触发机制,简化了代码架构。
This commit is contained in:
@@ -164,7 +164,6 @@ export enum SkillTriggerType {
|
||||
Call = "call", // 召唤后触发 降临
|
||||
Dead = "dead", // 死亡后触发 遗志
|
||||
FStart = "fstart", // 战斗开始 先手
|
||||
FEnd = "fend", // 战斗结束 终战
|
||||
Field = "field", // 驻场 光环
|
||||
Atking = "atking", // 攻击后触发 追击
|
||||
Atked = "atked", // 受击后触发 反击
|
||||
@@ -175,7 +174,6 @@ export const SkillTriggerName = {
|
||||
[SkillTriggerType.Call]: "召唤",
|
||||
[SkillTriggerType.Dead]: "死亡后",
|
||||
[SkillTriggerType.FStart]: "回合开始",
|
||||
[SkillTriggerType.FEnd]: "回合结束",
|
||||
[SkillTriggerType.Field]: "光环",
|
||||
[SkillTriggerType.Atking]: "攻击",
|
||||
[SkillTriggerType.Atked]: "受伤",
|
||||
@@ -186,7 +184,6 @@ export const SkillTriggerDesc = {
|
||||
[SkillTriggerType.Call]: "召唤时",
|
||||
[SkillTriggerType.Dead]: "死亡时",
|
||||
[SkillTriggerType.FStart]: "战斗开始时",
|
||||
[SkillTriggerType.FEnd]: "战斗结束时",
|
||||
[SkillTriggerType.Field]: "光环",
|
||||
[SkillTriggerType.Atking]: "攻击n次",
|
||||
[SkillTriggerType.Atked]: "受伤n次",
|
||||
@@ -298,7 +295,6 @@ export interface heroInfo {
|
||||
[SkillTriggerType.Call]?: TriggerGrouped; // 召唤后触发的技能配置(按 s_uuid 分组,每组按 lv 升序)
|
||||
[SkillTriggerType.Dead]?: TriggerGrouped; // 死亡后触发的技能配置
|
||||
[SkillTriggerType.FStart]?: TriggerGrouped; // 战斗开始时释放的技能配置
|
||||
[SkillTriggerType.FEnd]?: TriggerGrouped; // 战斗结束时释放的技能配置
|
||||
[SkillTriggerType.Field]?: LvFieldEntry[]; // 驻场光环(按 lv 升序,运行时取 ≤英雄等级 的最大档)
|
||||
[SkillTriggerType.Atking]?: TriggerGrouped; // 普通攻击后触发的技能配置,s_uuid: 技能id, t_num: 触发所需的普攻次数
|
||||
[SkillTriggerType.Atked]?: TriggerGrouped; // 受击后触发的技能配置,s_uuid: 技能id, t_num: 触发所需的受击次数
|
||||
@@ -938,7 +934,7 @@ export const HeroComboList: number[] = [8001, 8002, 8003, 8004, 8005, 8006];
|
||||
* - W_HP: 每 1 点生命值折算 1 分(生命值不随时间变化)
|
||||
* - W_DPS_PER_SEC: 每 1 点 DPS 持续 1 秒折算 0.5 分
|
||||
* (默认 60 秒评估窗下,1 DPS ≈ 30 分,与旧版 W_DPS=30 等效)
|
||||
* - WAVE_DURATION / HITS_PER_WAVE: 回合参数,用于估算 atked/fstart/fend/dead 触发次数
|
||||
* - WAVE_DURATION / HITS_PER_WAVE: 回合参数,用于估算 atked/fstart/dead 触发次数
|
||||
* - DEFAULT_EVAL_SECONDS: calcHeroPower 默认使用的评估时间窗
|
||||
*/
|
||||
export const HERO_POWER_WEIGHTS = {
|
||||
@@ -947,7 +943,6 @@ export const HERO_POWER_WEIGHTS = {
|
||||
W_atking: 1.0,
|
||||
W_atked: 0.8,
|
||||
W_fstart: 1.0,
|
||||
W_fend: 1.2,
|
||||
W_dead: 0.6,
|
||||
W_field_alive: 1.0,
|
||||
W_revive: 1.0,
|
||||
@@ -1071,7 +1066,6 @@ function getTriggerCount(
|
||||
case SkillTriggerType.Atked:
|
||||
return getHitCount(seconds) / t_num;
|
||||
case SkillTriggerType.FStart:
|
||||
case SkillTriggerType.FEnd:
|
||||
return getWaveCount(seconds);
|
||||
case SkillTriggerType.Dead:
|
||||
return getWaveCount(seconds) * (1 + (resolveReviveByLv(hero.revive, FightSet.HERO_MAX_LV)?.r_num || 0));
|
||||
@@ -1203,7 +1197,6 @@ export interface HeroPowerBreakdown {
|
||||
atking: number;
|
||||
atked: number;
|
||||
fstart: number;
|
||||
fend: number;
|
||||
dead: number;
|
||||
field: number;
|
||||
revive: number;
|
||||
@@ -1218,7 +1211,7 @@ export interface HeroPowerDetailed {
|
||||
normalAttack: { s_uuid: number, name: string, cd: number, dps: number, value: number };
|
||||
}
|
||||
|
||||
/** 计算普通触发类技能(atking/atked/fstart/fend/dead)的详细价值 */
|
||||
/** 计算普通触发类技能(atking/atked/fstart/dead)的详细价值 */
|
||||
function calcTriggerPowerDetailed(
|
||||
triggerConfigs: { s_uuid: number, t_num?: number, overrides?: SkillOverrides }[],
|
||||
hero: heroInfo,
|
||||
@@ -1252,9 +1245,6 @@ function calcTriggerPowerDetailed(
|
||||
case SkillTriggerType.FStart:
|
||||
weight = weights.W_fstart;
|
||||
break;
|
||||
case SkillTriggerType.FEnd:
|
||||
weight = weights.W_fend;
|
||||
break;
|
||||
case SkillTriggerType.Dead:
|
||||
weight = weights.W_dead;
|
||||
break;
|
||||
@@ -1351,7 +1341,6 @@ export function calcHeroPowerDetailed(hero: heroInfo, targetLv: number = 1, seco
|
||||
const atking = hero.atking ? calcTriggerPowerDetailed(resolveTriggerByLv(hero.atking, targetLv), hero, targetLv, SkillTriggerType.Atking, seconds) : { total: 0, items: [] as TriggerSkillEval[] };
|
||||
const atked = hero.atked ? calcTriggerPowerDetailed(resolveTriggerByLv(hero.atked, targetLv), hero, targetLv, SkillTriggerType.Atked, seconds) : { total: 0, items: [] as TriggerSkillEval[] };
|
||||
const fstart = hero.fstart ? calcTriggerPowerDetailed(resolveTriggerByLv(hero.fstart, targetLv), hero, targetLv, SkillTriggerType.FStart, seconds) : { total: 0, items: [] as TriggerSkillEval[] };
|
||||
const fend = hero.fend ? calcTriggerPowerDetailed(resolveTriggerByLv(hero.fend, targetLv), hero, targetLv, SkillTriggerType.FEnd, seconds) : { total: 0, items: [] as TriggerSkillEval[] };
|
||||
const dead = hero.dead ? calcTriggerPowerDetailed(resolveTriggerByLv(hero.dead, targetLv), hero, targetLv, SkillTriggerType.Dead, seconds) : { total: 0, items: [] as TriggerSkillEval[] };
|
||||
const fieldEntries = resolveFieldByLv(hero.field, targetLv);
|
||||
const field = fieldEntries.length > 0 ? calcFieldPowerDetailed(fieldEntries, hero, targetLv, seconds) : { total: 0, items: [] as FieldSkillEval[] };
|
||||
@@ -1362,7 +1351,7 @@ export function calcHeroPowerDetailed(hero: heroInfo, targetLv: number = 1, seco
|
||||
reviveValue = hpEff * revive.upr * revive.r_num * weights.W_revive * getWaveCount(seconds);
|
||||
}
|
||||
|
||||
const total = hpValue + dpsValue + atking.total + atked.total + fstart.total + fend.total + dead.total + field.total + reviveValue;
|
||||
const total = hpValue + dpsValue + atking.total + atked.total + fstart.total + dead.total + field.total + reviveValue;
|
||||
|
||||
return {
|
||||
total,
|
||||
@@ -1372,12 +1361,11 @@ export function calcHeroPowerDetailed(hero: heroInfo, targetLv: number = 1, seco
|
||||
atking: atking.total,
|
||||
atked: atked.total,
|
||||
fstart: fstart.total,
|
||||
fend: fend.total,
|
||||
dead: dead.total,
|
||||
field: field.total,
|
||||
revive: reviveValue,
|
||||
},
|
||||
triggerSkills: [...atking.items, ...atked.items, ...fstart.items, ...fend.items, ...dead.items],
|
||||
triggerSkills: [...atking.items, ...atked.items, ...fstart.items, ...dead.items],
|
||||
fieldSkills: field.items,
|
||||
normalAttack,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user