Пример #1
0
        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");
        }
Пример #2
0
 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);
     }
 }