# Damage
# 说明
Damage命名空间提供了伤害计算相关的功能,用于预测和计算各类伤害数值。
# 如何使用
// 计算普通攻击伤害
float adDamage = Damage::CalculateAutoAttackDamage(myHero, target);
// 计算技能伤害
float skillDamage = Damage::CalculateSkillDamage(myHero, target, SkillSlot::Q, 1);
// 获取目标剩余血量
float healthAfterDamage = Damage::GetHealthAfterDamage(target, 100.0f, DamageType::Physical);
# CalculateAutoAttackDamage
float CalculateAutoAttackDamage(Unit* source, Unit* target, bool includeCritical = false)
计算从源单位对目标单位的普通攻击伤害。
参数名字 | 参数类型 | 描述 |
---|---|---|
source | Unit* | 伤害来源单位 |
target | Unit* | 伤害目标单位 |
includeCritical | bool | 是否计入暴击,默认为false |
// 计算普通攻击伤害
float damage = Damage::CalculateAutoAttackDamage(myHero, enemy);
// 计算包含暴击的普通攻击伤害
float critDamage = Damage::CalculateAutoAttackDamage(myHero, enemy, true);
# CalculateSkillDamage
float CalculateSkillDamage(Unit* source, Unit* target, SkillSlot slot, int level = -1)
计算技能伤害。
参数名字 | 参数类型 | 描述 |
---|---|---|
source | Unit* | 伤害来源单位 |
target | Unit* | 伤害目标单位 |
slot | SkillSlot | 技能槽位,如Q、W、E、R |
level | int | 技能等级,默认为-1表示使用当前等级 |
// 计算Q技能当前等级的伤害
float qDamage = Damage::CalculateSkillDamage(myHero, enemy, SkillSlot::Q);
// 计算Q技能1级伤害
float qLevel1Damage = Damage::CalculateSkillDamage(myHero, enemy, SkillSlot::Q, 1);
// 计算大招满级伤害
float rMaxDamage = Damage::CalculateSkillDamage(myHero, enemy, SkillSlot::R, 3);
# GetHealthAfterDamage
float GetHealthAfterDamage(Unit* target, float rawDamage, DamageType damageType)
计算目标受到指定伤害后的剩余生命值。
参数名字 | 参数类型 | 描述 |
---|---|---|
target | Unit* | 伤害目标单位 |
rawDamage | float | 原始伤害数值 |
damageType | DamageType | 伤害类型,如物理、魔法或真实伤害 |
// 计算受到100点物理伤害后的剩余血量
float healthAfterPhysical = Damage::GetHealthAfterDamage(enemy, 100.0f, DamageType::Physical);
// 计算受到100点魔法伤害后的剩余血量
float healthAfterMagical = Damage::GetHealthAfterDamage(enemy, 100.0f, DamageType::Magical);
// 计算受到100点真实伤害后的剩余血量
float healthAfterTrue = Damage::GetHealthAfterDamage(enemy, 100.0f, DamageType::True);
# CalculateDamageReduction
float CalculateDamageReduction(Unit* target, DamageType damageType)
计算目标对特定伤害类型的减伤百分比。
参数名字 | 参数类型 | 描述 |
---|---|---|
target | Unit* | 目标单位 |
damageType | DamageType | 伤害类型 |
// 计算物理伤害减免率
float physicalReduction = Damage::CalculateDamageReduction(enemy, DamageType::Physical);
// 计算魔法伤害减免率
float magicalReduction = Damage::CalculateDamageReduction(enemy, DamageType::Magical);
# IsTargetKillable
bool IsTargetKillable(Unit* source, Unit* target, float extraDamage = 0.0f)
判断目标是否可以被击杀(计算所有可用技能和普攻的总伤害)。
参数名字 | 参数类型 | 描述 |
---|---|---|
source | Unit* | 伤害来源单位 |
target | Unit* | 目标单位 |
extraDamage | float | 额外伤害,默认为0 |
// 判断目标是否可击杀
bool canKill = Damage::IsTargetKillable(myHero, enemy);
// 判断目标是否可被额外100点伤害击杀
bool canKillWithExtra = Damage::IsTargetKillable(myHero, enemy, 100.0f);