コード例 #1
0
ファイル: CombatResolver.cs プロジェクト: GooDer/descent
        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();
        }
コード例 #2
0
ファイル: Character.cs プロジェクト: GooDer/descent
        public DefenseResult RollDefense()
        {
            var result = new DefenseResult();
            foreach (var dice in defenseDices)
            {
                dice.RollDefense();
                result.DefenseDices.Add(dice);
            }

            return result;
        }
コード例 #3
0
 public override void UseIt(DefenseResult defense, int diceIndex)
 {
     SetDefenseDice(diceIndex);
     UseAbility(defense);
 }
コード例 #4
0
 private void UseAbility(DefenseResult defense)
 {
     defense.RerollSpecificDice(DiceIndex);
 }
コード例 #5
0
ファイル: SurgeAbility.cs プロジェクト: GooDer/descent
 public virtual void UseIt(DefenseResult defense, int diceIndex)
 {
 }