public AirlineValue GetReputation()
{
//0-100 with 0-10 as very_low, 11-30 as low, 31-70 as normal, 71-90 as high,91-100 as very_high
if (Reputation < 11)
{
return AirlineValue.VeryLow;
}
if (Reputation > 10 && Reputation < 31)
{
return AirlineValue.Low;
}
if (Reputation > 30 && Reputation < 71)
{
return AirlineValue.Normal;
}
if (Reputation > 70 && Reputation < 91)
{
return AirlineValue.High;
}
if (Reputation > 90)
{
return AirlineValue.VeryHigh;
}
return AirlineValue.Normal;
}
//returns the discount factor for a manufactorer for an airline and for a period public static double GetAirlineManufactorerDiscountFactor(Airline airline, int length, bool forReputation) { double score; if (forReputation) score = 0.3*(1 + (int) airline.GetReputation()); else score = 0.005*(1 + (int) airline.GetValue()); double discountFactor = (Convert.ToDouble(length)/20) + (score); double discount = Math.Pow(discountFactor, 5); if (discount > 30) discount = length*3; return discount; }