/// <summary> /// Generates a new NPC based on parents' statistics /// </summary> /// <returns>NonPlayerCharacter or null</returns> /// <param name="mummy">The new NPC's mother</param> /// <param name="daddy">The new NPC's father</param> public static NonPlayerCharacter GenerateNewNPC(Character mummy, Character daddy) { NonPlayerCharacter newNPC = new NonPlayerCharacter(); // charID newNPC.charID = Globals_Game.GetNextCharID(); // first name newNPC.firstName = "Baby"; // family name newNPC.familyName = daddy.familyName; // date of birth newNPC.birthDate = new Tuple <uint, byte>(Globals_Game.clock.currentYear, Globals_Game.clock.currentSeason); // sex newNPC.isMale = Birth.GenerateSex(); // nationality newNPC.nationality = daddy.nationality; // whether is alive newNPC.isAlive = true; // maxHealth newNPC.maxHealth = Birth.GenerateKeyCharacteristics(mummy.maxHealth, daddy.maxHealth); // virility newNPC.virility = Birth.GenerateKeyCharacteristics(mummy.virility, daddy.virility); // goTo queue newNPC.goTo = new Queue <Fief>(); // language newNPC.language = daddy.language; // days left newNPC.days = 90; // stature modifier newNPC.statureModifier = 0; // management newNPC.management = Birth.GenerateKeyCharacteristics(mummy.management, daddy.management); // combat newNPC.combat = Birth.GenerateKeyCharacteristics(mummy.combat, daddy.combat); // traits newNPC.traits = Birth.GenerateTraitSetFromParents(mummy.traits, daddy.traits, newNPC.isMale); // if in keep newNPC.inKeep = mummy.inKeep; // if pregnant newNPC.isPregnant = false; // familyID newNPC.familyID = daddy.familyID; // spouse newNPC.spouse = null; // father newNPC.father = daddy.charID; // mother newNPC.mother = mummy.charID; // fiancee newNPC.fiancee = null; // location newNPC.location = null; // titles newNPC.myTitles = new List <string>(); // armyID newNPC.armyID = null; // ailments newNPC.ailments = new Dictionary <string, Ailment>(); // employer newNPC.employer = null; // salary/allowance newNPC.salary = 0; // lastOffer (will remain empty for family members) newNPC.lastOffer = new Dictionary <string, uint>(); // inEntourage newNPC.setEntourage(false); // isHeir newNPC.isHeir = false; return(newNPC); }