public override SkillEffects ComputeEffects(SkillForecast forecast, IRandomizer randomizer) { var chances = forecast.Chances; var effects = new List <IEffect> { DamageUtils.GetFinalizedPhysicalDamage(forecast.Hit.BaseDamage, chances, randomizer) }; return(new SkillEffects(effects)); }
public override SkillEffects ComputeEffects(SkillForecast forecast, IRandomizer randomizer) { var defender = forecast.Defender; var parryChance = defender.GetStat(StatType.ProjectileParryChance); var didParry = RandomUtils.DidEventHappen(parryChance.Value, randomizer); if (didParry) { return(new SkillEffects( new List <IEffect> { new Miss(MissReason.Parry) } )); } var baseDamage = forecast.Hit.BaseDamage; var hit = DamageUtils.GetFinalizedPhysicalDamage(baseDamage, forecast.Chances, randomizer); return(new SkillEffects(new List <IEffect>() { hit })); }