- 在 HeroAttrs 枚举中添加 critical_damage 属性 - 修改 HeroAtkSystem 的暴击伤害计算逻辑,支持基础暴伤和英雄额外暴伤叠加 - 在 Skill 类中设置技能属性时,使用 HeroAttrsComp 的运行时属性获取方法 - 为 FieldSkillSet 添加 HeroFrost、HeroCrit、HeroCritDamage 和 HeroSpeed 驻场技能配置 - 在 HeroAttrsComp 中新增 crit_damage 字段和相关运行时属性计算方法 - 实现驻场技能百分比值统一换算逻辑,支持 0.2 和 20 两种配置写法 - 添加攻速加成机制,通过缩短技能 CD 实现攻击速度提升
94 lines
3.2 KiB
TypeScript
94 lines
3.2 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", // 暴击伤害
|
|
|
|
// ==================== 特殊效果属性 ====================
|
|
freeze_chance = "freeze_chance", // 冰冻概率
|
|
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[];
|
|
}
|
|
|
|
|