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)); }
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); } }