예제 #1
0
        public ScenarioFrame Post(StoryProgressionObject manager, bool fullUpdate, bool initialPass)
        {
            if (!Allow(fullUpdate, initialPass))
            {
                manager.IncStat("Fail " + UnlocalizedName);
                return(null);
            }

            return(manager.Main.Scenarios.Post(new ScenarioRun(this, manager, ScenarioResult.Start), false));
        }
예제 #2
0
        public static CASAgeGenderFlags CalculateGenderBalancer(StoryProgressionObject manager, bool isPet)
        {
            int males = 0, females = 0;

            foreach (SimDescription sim in manager.Sims.GetSpecies(isPet))
            {
                if (sim.LotHome == null)
                {
                    continue;
                }

                if (sim.IsPregnant)
                {
                    if (sim.Pregnancy.mGender == CASAgeGenderFlags.Male)
                    {
                        males += 7;
                    }
                    else
                    {
                        females += 7;
                    }
                }

                if (sim.IsMale)
                {
                    males++;
                }
                else
                {
                    females++;
                }

                if (sim.AdultOrBelow)
                {
                    if (sim.IsMale)
                    {
                        males++;
                    }
                    else
                    {
                        females++;
                    }
                }

                if (sim.YoungAdultOrBelow)
                {
                    if (sim.IsMale)
                    {
                        males++;
                    }
                    else
                    {
                        females++;
                    }
                }

                if (sim.TeenOrBelow)
                {
                    if (sim.IsMale)
                    {
                        males++;
                    }
                    else
                    {
                        females++;
                    }
                }

                if (sim.ChildOrBelow)
                {
                    if (sim.IsMale)
                    {
                        males++;
                    }
                    else
                    {
                        females++;
                    }
                }

                if (sim.ToddlerOrBelow)
                {
                    if (sim.IsMale)
                    {
                        males++;
                    }
                    else
                    {
                        females++;
                    }
                }

                if (sim.Baby)
                {
                    if (sim.IsMale)
                    {
                        males++;
                    }
                    else
                    {
                        females++;
                    }
                }
            }

            if (males > females)
            {
                manager.IncStat("First Born Balanced Female");

                return(CASAgeGenderFlags.Female);
            }
            else
            {
                manager.IncStat("First Born Balanced Male");

                return(CASAgeGenderFlags.Male);
            }
        }