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; }
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; }