예제 #1
0
        public override void OnTurn()
        {
            var target = Core.GetNearestEnemy(Unit);

            if (target != null && target.IsAlive())
            {
                if (Core.GetDistance(Unit, target) > _attackDistance)
                {
                    Unit.MoveTo(target.X, target.Y);
                }
                else
                {
                    target.Damage(_damage);
                }
            }
            Unit.AddMana(_manaRegen);
        }
        public override void OnTurn()
        {
            var target = Core.GetNearestEnemy(Unit);

            if (target != null && target.IsAlive())
            {
                if (Core.GetDistance(Unit, target) > 1)
                {
                    Unit.MoveTo(target.X, target.Y);
                }
                else
                {
                    var damage = Random.Range(0, 100) < _critChance ? _damage * _critRate : _damage;
                    target.Damage(damage);
                }
            }
            Unit.AddMana(_manaRegen);
        }
예제 #3
0
 public override void OnTurn()
 {
     if (_stunned == 0)
     {
         var target = Core.GetNearestEnemy(Unit);
         if (target != null && target.IsAlive())
         {
             if (Core.GetDistance(Unit, target) > _attackDistance)
             {
                 Unit.MoveTo(target.X, target.Y);
             }
             else
             {
                 target.Damage(_damage);
             }
         }
         Unit.AddMana(_manaRegen);
     }
     _stunned           = System.Math.Max(0, _stunned - 1);
     _turnReceiveDamage = 0;
 }
예제 #4
0
 public override void OnTurn()
 {
     if (_stunned == 0)
     {
         var target = Core.GetNearestEnemy(Unit);
         if (target != null && target.IsAlive())
         {
             if (Core.GetDistance(Unit, target) > _attackDistance)
             {
                 Unit.MoveTo(target.X, target.Y);
             }
             else
             {
                 target.Damage(_damage);
             }
         }
         Unit.AddMana(_manaRegen);
     }
     Unit.Heal((int)Math.Round(_turnReceiveDamage * _healDamagePercent / 100f));
     _stunned           = Math.Max(0, _stunned - 1);
     _turnReceiveDamage = 0;
 }