コード例 #1
0
 public override ISpell GenerateAttack()
 {
     Spell spell = new Cleave(this.Unit);
     if (this.Unit.EnergyPoints - spell.EnergyCost < 0)
     {
         throw new NotEnoughEnergyException(string.Format(GlobalMessages.NotEnoughEnergy, this.Unit.Name, spell.GetType().Name));
     }
     this.Unit.EnergyPoints -= spell.EnergyCost;
     return spell;
 }
        public override ISpell GenerateAttack()
        {
            var attack = new Cleave(this.AttackDamage);

            if (this.Unit.HealthPoints > 50)
            {
                if (this.Unit.EnergyPoints < attack.EnergyCost)
                {
                    throw new NotEnoughEnergyException(string.Format(
                        GlobalMessages.NotEnoughEnergy,
                        this.Unit.Name, attack.GetType().Name));
                }

                this.Unit.EnergyPoints -= attack.EnergyCost;
            }

            return attack;
        }
コード例 #3
0
        public override ISpell GenerateAttack()
        {
            int damage = this.Unit.AttackPoints;
            if (this.Unit.HealthPoints <= 80)
            {
                damage += 2 * this.Unit.HealthPoints;
            }

            ISpell attack = new Cleave(damage);
            if (this.Unit.EnergyPoints < attack.EnergyCost)
            {
                throw new NotEnoughEnergyException(
                    string.Format(string.Format("{0}", GlobalMessages.NotEnoughEnergy)
                    , this.Unit.Name,
                    attack.GetType().Name));
            }
            if (this.Unit.EnergyPoints > 50)
            {
                this.Unit.EnergyPoints -= attack.EnergyCost;
            }

            return attack;
        }