예제 #1
0
        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);
        }
예제 #2
0
        //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());
        }
예제 #3
0
        //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());
        }