using Milimoe.FunGame.Core.Entity;
namespace Milimoe.FunGame.Core.Model
{
///
/// 精准的分步控制伤害计算
///
public class DamageCalculationOptions
{
///
/// 完整计算伤害
///
public bool NeedCalculate { get; set; } = true;
///
/// 计算减伤
///
public bool CalculateReduction { get; set; } = true;
///
/// 计算暴击
///
public bool CalculateCritical { get; set; } = true;
///
/// 计算闪避
///
public bool CalculateEvade { get; set; } = true;
///
/// 计算护盾
///
public bool CalculateShield { get; set; } = true;
///
/// 触发特效
///
public bool TriggerEffects { get; set; } = true;
///
/// 无视免疫
///
public bool IgnoreImmune { get; set; } = false;
///
/// 伤害基底(期望)
///
internal double ExpectedDamage { get; set; } = 0;
///
/// 特效伤害加成记录(乘区1:暴击和减伤计算前)
///
internal Dictionary BeforeDamageBonus { get; set; } = [];
///
/// 暴击伤害
///
internal double CriticalDamage { get; set; } = 0;
///
/// 伤害减免
///
internal double DefenseReduction { get; set; } = 0;
///
/// 特效伤害加成记录(乘区2:暴击和减伤计算后)
///
internal Dictionary AfterDamageBonus { get; set; } = [];
///
/// 最终伤害
///
internal double FinalDamage { get; set; } = 0;
///
/// 护盾减免
///
internal double ShieldReduction { get; set; } = 0;
///
/// 实际造成伤害
///
internal double ActualDamage { get; set; } = 0;
}
}