public override string ToString()
{
var builder = new StringBuilder();
builder.Append(Name);
builder.Append(" [");
builder.Append("Degree: (");
builder.AppendFormat("Ore x {0:N2}, ", DegreeModifier[DegreeType.Ore]);
builder.AppendFormat("Brick x {0:N2}, ", DegreeModifier[DegreeType.Brick]);
builder.AppendFormat("Wood x {0:N2}, ", DegreeModifier[DegreeType.Wood]);
builder.AppendFormat("Grain x {0:N2}, ", DegreeModifier[DegreeType.Grain]);
builder.AppendFormat("Sheep x {0:N2}", DegreeModifier[DegreeType.Sheep]);
builder.Append("), ");
builder.Append("Setup Phase: (");
builder.AppendFormat("Ore x {0:N2}, ", SetupDegreeModifier[DegreeType.Ore]);
builder.AppendFormat("Brick x {0:N2}, ", SetupDegreeModifier[DegreeType.Brick]);
builder.AppendFormat("Wood x {0:N2}, ", SetupDegreeModifier[DegreeType.Wood]);
builder.AppendFormat("Grain x {0:N2}, ", SetupDegreeModifier[DegreeType.Grain]);
builder.AppendFormat("Sheep x {0:N2}", SetupDegreeModifier[DegreeType.Sheep]);
builder.Append("), ");
builder.AppendFormat("Score x {0:N2}, ", PlayerScoreMultiplier);
builder.AppendFormat("Production# x {0:N2}, ", ProductionMultiplier);
builder.AppendFormat("Student# x {0:N2}, ", StudentNumberMultiplier);
builder.AppendFormat("Future Campus# x {0:N2}, ", FutureCampus);
builder.AppendFormat("Special Site x {0:N2}, ", SpecialSiteMultiplier);
builder.AppendFormat("Internet Link# x {0:N2}, ", InternetLinkMultiplier);
builder.AppendFormat("Taken Other Player Campus x {0:N2}, ", TakenOtherPlayerCampus);
builder.AppendFormat("Normal Site + {0:N2}, ", NormalSite);
builder.AppendFormat("All Degress + {0:N2}, ", HasAllDegrees);
builder.AppendFormat("Lead Longest/Most Failed + {0:N2}", LeadMostScore);
builder.Append("]");
return builder.ToString();
}