private void MakeBaseAttack(ICharacterObject actor, CombatDesicion attackHand) { var min = actor.GetMinDamage(true); var max = actor.GetMaxDamage(true); var damage = CalculateDamage(min, max, actor.Character.Stats.CritChance); actor.Target.Character.ChangeCurrentHealth(-damage); actor.CombatStats.DpsStat.UpdateDamage(damage); actor.Target.Threat.ChangeThreat(actor, damage); CombatOutput.NewLine($"{_timer} {actor.Character.Name} hits {actor.Target.Character.Name} for {damage} damage"); }
private void ExecuteAction(CombatDesicion action, ICharacterObject actor) { if (action == CombatDesicion.ChangeTarget) { CombatOutput.NewLine($"{_timer} {actor.Character.Name} targets {actor.Target.Character.Name}"); } if (action == CombatDesicion.MainHandBaseAttack) { MakeBaseAttack(actor, CombatDesicion.MainHandBaseAttack); actor.UpdateNextMainHandAttack(_timer); } if (action == CombatDesicion.UseSKill) { ExecuteSkill(actor); } }