protected override UnitInfo GetOptimalAttackableUnit(IEnumerable<UnitInfo> attackableUnits) { UnitInfo optimalAttackableUnit = new UnitInfo(null, UnitClassification.Unknown, 0, int.MaxValue, 0); foreach (var unit in attackableUnits) { if (unit.Health > optimalAttackableUnit.Health && unit.Power <= this.Aggression) { optimalAttackableUnit = unit; } } return optimalAttackableUnit; }
protected override UnitInfo GetOptimalAttackableUnit(IEnumerable<UnitInfo> attackableUnits) { UnitInfo optimalAttackableUnit = new UnitInfo(null, UnitClassification.Unknown, int.MaxValue, 0, 0); foreach (var unit in attackableUnits) { if (unit.Health < optimalAttackableUnit.Health && InfestationRequirements.RequiredClassificationToInfest(unit.UnitClassification) == this.UnitClassification) { optimalAttackableUnit = unit; } } return optimalAttackableUnit; }
protected virtual UnitInfo GetOptimalAttackableUnit(IEnumerable<UnitInfo> attackableUnits) { //This method finds the unit with the least power and attacks it UnitInfo optimalAttackableUnit = new UnitInfo(null, UnitClassification.Unknown, 0, int.MaxValue, 0); foreach (var unit in attackableUnits) { if (unit.Power < optimalAttackableUnit.Power) { optimalAttackableUnit = unit; } } return optimalAttackableUnit; }
protected virtual bool CanAttackUnit(UnitInfo unit) { bool attackUnit = false; if (this.Id != unit.Id) { if (this.Aggression >= unit.Power) { attackUnit = true; } } return attackUnit; }