public bool Encounter(Person person) { person.Profession = null; person.Log("I got fired."); return true; }
public bool Encounter(Person person) { var finalTerritory = _rootTerritory.GetLiveableTerritories().First(t => t != person.Location); person.AddFlag(TravelFlags.SettledFlag); finalTerritory.MovePerson(person); person.Log("I have settled permanently at {0}.", person.Location.Name); return true; }
public bool Encounter(Person person) { var newTerritory = _availableTerritory.GetLiveableTerritories().First(t => t != person.Location); newTerritory.MovePerson(person); person.Log("I've moved to a new home at {0}", newTerritory.Name); if (person.Partner != null) { var mate = person.Partner; person.Log("I broke up with {0} to move.", mate.Name); mate.ClearFlags(FlagCategory.Romantic); person.ClearFlags(FlagCategory.Romantic); mate.Partner = null; person.Partner = null; person.PopulationModule.SaveChanges(mate); } return true; }
public bool Encounter(Person person) { person.Gender = person.Gender == "Female" ? "Male" : "Female"; person.FirstName = this._firstNameGenerator.Build(person).FirstName; person.Log(string.Format("Changed their name to {0} {1} and is now transistioning", person.FirstName, person.FamilyName)); person.AddFlag(IdentityFlags.TransitioningFlag); return true; }
public bool Encounter(Person person) { if ((Chance/(person.Children.Count*2)) < Universe.CurrentUniverse.RandomGenerator.NextDouble()) return false; var mate = person.Partner; if (mate == null) { // We're having sex with a stranger! var stranger = person.Location.GetPeopleWhere(p => p.Partner == null && !p.Equals(person)).FirstOrDefault(); if (stranger == null) { // No one to have sex with. return false; } mate = stranger; } var child = person.PopulationModule.CreatePerson(person, mate); person.Children.Add(child); mate.Children.Add(child); child.Parents = new Person[2]; child.Parents[0] = person; child.Parents[1] = mate; person.Log("I had a child with {0}.", mate.FirstName); mate.Log("I had a child with {0}", person.FirstName); if (Universe.CurrentUniverse.RandomGenerator.NextDouble() < 0.12) { person.Log("Passed away having a child."); person.DeathDate = Universe.CurrentUniverse.CurrentTime; } return true; }
public bool Encounter(Person person) { var mate = person.Partner; person.Log("I had a divorce with {0}.", mate.Name); mate.Log("I had a divorce with {0}.", person.Name); person.ClearFlag(RomanticFlags.MarriedFlag); mate.ClearFlag(RomanticFlags.MarriedFlag); mate.History.Divorces.Add(person); person.History.Divorces.Add(mate); mate.Partner = null; person.Partner = null; person.PopulationModule.SaveChanges(mate); return true; }
public bool Encounter(Person person) { var mate = person.Partner; // Mate them up! person.Log("I married {0}.", mate.Name); mate.Log("I married {0}. ", person.Name); person.AddFlag(RomanticFlags.MarriedFlag); mate.AddFlag(RomanticFlags.MarriedFlag); if (person.HasFlag(RomanticFlags.EngagedFlag)) { person.ClearFlag(RomanticFlags.EngagedFlag); mate.ClearFlag(RomanticFlags.EngagedFlag); } person.PopulationModule.SaveChanges(mate); return true; }
public bool Encounter(Person person) { var potentialPartner = person.Location.GetPeopleWhere(p => ValidPartner(person, p)) .OrderBy(_ => Guid.NewGuid()) .FirstOrDefault(); if (potentialPartner == null) { return false; } person.Log("I've started dating {0}!", potentialPartner.Name); potentialPartner.Log("I've started dating {0}!", person.Name); person.AddFlag(RomanticFlags.DatingFlag); potentialPartner.AddFlag(RomanticFlags.DatingFlag); person.Partner = potentialPartner; person.PopulationModule.SaveChanges(potentialPartner); return true; }