Ejemplo n.º 1
0
        public void DoAttack()
        {
            Attack = ((IAbleToAttack)Attacker).RollAttack();
            Defense = Defender.RollDefense();

            if (!Attack.AttackMissed() && Attack.GetRange() >= Attacker.DistanceFrom(Defender))
            {
                var dmg = Attack.GetDamage();
                var def = Defense.GetDefense();
                int result = dmg - def;

                if (result < 0)
                {
                    result = 0;
                }

                Defender.TakeDamage(result);
            }

            Attacker.ActualAction = new MoveAction();
        }
Ejemplo n.º 2
0
        public DefenseResult RollDefense()
        {
            var result = new DefenseResult();
            foreach (var dice in defenseDices)
            {
                dice.RollDefense();
                result.DefenseDices.Add(dice);
            }

            return result;
        }
Ejemplo n.º 3
0
 public override void UseIt(DefenseResult defense, int diceIndex)
 {
     SetDefenseDice(diceIndex);
     UseAbility(defense);
 }
Ejemplo n.º 4
0
 private void UseAbility(DefenseResult defense)
 {
     defense.RerollSpecificDice(DiceIndex);
 }
Ejemplo n.º 5
0
 public virtual void UseIt(DefenseResult defense, int diceIndex)
 {
 }