1. 在HeroAttrs枚举中新增critical_res和freeze_res属性 2. 在HeroAttrsComp中添加对应抗性属性并在重置方法中初始化 3. 修改暴击和冰冻判定逻辑,加入抗性减免计算
99 lines
3.5 KiB
TypeScript
99 lines
3.5 KiB
TypeScript
|
|
|
|
// ========== 属性枚举 ==========
|
|
/**
|
|
* 英雄属性枚举
|
|
* 定义所有可用的战斗属性类型
|
|
* 按逻辑分组排序:基础生存 → 攻击属性 → 防御属性 → 特殊效果 → 基础属性
|
|
*/
|
|
export enum Attrs {
|
|
// ==================== 基础属性 ====================
|
|
ap = "ap", // 基础攻击
|
|
hp = "hp", // 基础血量
|
|
hp_max = "hp_max", // 最大血量
|
|
speed = "speed", // 基础移动速度
|
|
dis = "dis", // 基础距离
|
|
shield = "shield", // 当前护盾
|
|
|
|
// ==================== 攻击属性 ====================
|
|
a_cd = "a_cd", // 攻击计时
|
|
s_cd = "s_cd", // 技能计时
|
|
a_cd_max = "a_cd_max", // 攻击CD
|
|
s_cd_max = "s_cd_max", // 技能CD
|
|
|
|
// ==================== 暴击与命中属性 ====================
|
|
critical = "critical", // 暴击率
|
|
critical_damage = "critical_damage", // 暴击伤害
|
|
critical_res = "critical_res", // 暴击抗性
|
|
|
|
// ==================== 特殊效果属性 ====================
|
|
freeze_chance = "freeze_chance", // 冰冻概率
|
|
freeze_res = "freeze_res", // 冰冻抗性
|
|
knockback_chance = "knockback_chance", // 击退概率
|
|
knockback_distance = "knockback_distance", // 击退距离强化
|
|
knockback_res = "knockback_res", // 击退抗性
|
|
invincible_time = "invincible_time",// 无敌时间
|
|
puncture = "puncture", // 穿刺次数
|
|
wfuny = "wfuny", // 风怒
|
|
}
|
|
|
|
/**
|
|
* 游戏单局统计数据接口
|
|
*/
|
|
export interface GameScoreStats {
|
|
score: number; // 基础得分
|
|
|
|
// 战斗统计
|
|
crt_count: number; // 暴击次数
|
|
wf_count: number; // 风怒次数
|
|
dod_count: number; // 闪避次数
|
|
stun_count: number; // 击晕次数
|
|
freeze_count: number; // 冰冻次数
|
|
|
|
// 伤害统计
|
|
total_dmg: number; // 总伤害
|
|
atk_count: number; // 攻击次数 (用于计算平均伤害)
|
|
avg_dmg: number; // 平均伤害
|
|
thorns_dmg: number; // 反伤伤害
|
|
crit_dmg_total: number; // 暴击伤害总额
|
|
|
|
// 生存统计
|
|
heal_total: number; // 治疗总量
|
|
lifesteal_total: number;// 吸血总量
|
|
shield_block_count: number; // 格挡次数
|
|
dead_trigger_count: number; // 死亡触发次数
|
|
|
|
// 资源统计
|
|
exp_total: number; // 经验总数
|
|
gold_total: number; // 金币总数
|
|
gold_earned: number; // 总收入金币
|
|
gold_spent: number; // 消耗金币
|
|
refresh_count: number; // 刷新次数
|
|
refresh_hit_count: number; // 刷新命中次数(刷新后选中卡)
|
|
|
|
// 击杀统计
|
|
melee_kill_count: number; // 近战怪击杀数量
|
|
remote_kill_count: number; // 远程怪击杀数量
|
|
elite_kill_count: number; // 精英怪击杀数量
|
|
boss_kill_count: number; // Boss击杀数
|
|
|
|
// 战绩统计
|
|
wave_win_count: number; // 回合胜利次数
|
|
wave_remain_monsters: number; // 累计每回合留存敌人数量
|
|
wave_all_alive_count: number; // 全员存活胜利次数
|
|
passed_wave_20: boolean; // 是否通过第20回合
|
|
highest_dmg: number; // 单次最高伤害
|
|
|
|
// 最终结算分
|
|
score_combat: number;
|
|
score_output: number;
|
|
score_defense: number;
|
|
score_build: number;
|
|
score_efficiency: number;
|
|
|
|
// 已达成的亮点成就记录
|
|
achieved_highlights: any[];
|
|
}
|
|
|
|
|