public Client(Random rnd, int id, string firstName, string lastName, int age, int currentSkill, int potentialSkill, int popularity, int agencyHappiness, int teamHappiness, Sports sport, Months birthMonth, int birthWeek) { Id = id; First = firstName; Last = lastName; FullName = firstName + " " + lastName; Age = age; CurrentSkill = currentSkill; PotentialSkill = potentialSkill; if (PotentialSkill < CurrentSkill) { PotentialSkill = CurrentSkill; } Popularity = DeterminePopularity(rnd, CurrentSkill, PotentialSkill, Age); PopularityDescription = DescribePopularity(Popularity); PopularityString = EnumToString(PopularityDescription.ToString()); TeamHappiness = DetermineTeamHappiness(rnd); TeamHappinessDescription = DescribeHappiness(TeamHappiness); TeamHappinessString = EnumToString(TeamHappinessDescription.ToString()); AgencyHappiness = DetermineAgencyHappiness(rnd, TeamHappiness); AgencyHappinessDescription = DescribeHappiness(AgencyHappiness); AgencyHappinessString = EnumToString(AgencyHappinessDescription.ToString()); Sport = sport; BirthMonth = birthMonth; BirthWeek = birthWeek; Birthday = new Date((int)birthMonth, birthMonth, birthWeek); }
//want to rewrite this to use players position on depth chart //and team's titleContender and marketValue variables public void DetermineTeamHappiness(Random rnd, bool isStarter) { int happiness = 0; int happinessChecks = 0; //bool marketLifestyleMatch = false; //bool starterCurrentSkillMatch = false; //bool teamPlayerTitleContenderMatch = false; //marketValue and lifestyle match? if (Lifestyle >= 60 && Team.MarketValue >= 50) { happinessChecks++; } //starter and currentSkill match? if (CurrentSkill >= 50 && isStarter) { happinessChecks += 2; } //team titleContender and PlayForTitleContender match? if (Team.TitleConteder >= 50 && PlayForTitleContender >= 65) { happinessChecks++; } //lucky to be on a team? if (CurrentSkill <= 35) { happinessChecks += 2; } if (happinessChecks == 0) { happiness = rnd.Next(0, 50); } else if (happinessChecks == 1) { happiness = rnd.Next(15, 60); } else if (happinessChecks == 2) { happiness = rnd.Next(35, 70); } else if (happinessChecks == 3) { happiness = rnd.Next(50, 80); } else if (happinessChecks == 4) { happiness = rnd.Next(75, 101); } TeamHappiness = happiness; TeamHappinessDescription = DescribeHappiness(TeamHappiness); TeamHappinessString = EnumToString(TeamHappinessDescription.ToString()); }
//want to rewrite this to use TeamHappiness, Contract status //and a little randomness public void DetermineAgencyHappiness(Random rnd, Contract contract) { int happiness; bool contentWithContract = true; if (Sport == Sports.Baseball || Sport == Sports.Basketball || Sport == Sports.Football || Sport == Sports.Hockey || Sport == Sports.Soccer) { if (Greed >= 65 && contract.YearlySalary < (League.MaxSalary * (PotentialSkill / 100))) { contentWithContract = false; } if (contentWithContract) { //happiness = (rnd.Next(41, 100) + TeamHappiness) / 2; if (contract.YearlySalary >= (League.MaxSalary + League.MinSalary) / 2) { happiness = rnd.Next(15, 30) + (TeamHappiness / 10); } else { happiness = rnd.Next(1, 16) + (TeamHappiness / 10); } } else { happiness = (-rnd.Next(1, 20) + TeamHappiness) / 2; } } else if (Sport == Sports.Boxing || Sport == Sports.Golf || Sport == Sports.MMA || Sport == Sports.Tennis) { happiness = rnd.Next(0, 100); } else { happiness = rnd.Next(0, 100); } AgencyHappiness += happiness; AgencyHappinessDescription = DescribeHappiness(AgencyHappiness); AgencyHappinessString = EnumToString(AgencyHappinessDescription.ToString()); }