public void updateCultureForCharacter(CK2Character character, bool canOverwrite, HashSet <int> processed) { bool hasChar = !(processed.Add(character.getFamilyTreeID())); if (hasChar) { return; } if (character.getCulture() == null || character.getCulture() == "" || canOverwrite) { character.setCulture(this.culture); } CK2Character father = character.getFather(); if (father != null) { updateCultureForCharacter(father, canOverwrite, processed); } List <CK2Character> children = character.getChildren(); if (children != null) { foreach (CK2Character child in children) { updateCultureForCharacter(child, canOverwrite, processed); } } }
private static void appendCharToCTO(CK2Character character, Dictionary <string, HashSet <CK2Character> > charactersToOutput) { try { HashSet <CK2Character> charList = charactersToOutput[character.getCulture()]; charList.Add(character); } catch (Exception) { HashSet <CK2Character> charList = new HashSet <CK2Character>(); charList.Add(character); charactersToOutput.Add(character.getCulture(), charList); } }
private static void writeCharacter(StreamWriter writer, CK2Character character) { CK2Dynasty dynasty = character.getDynasty(); int dynastyID = 0; if (dynasty != null) { dynastyID = dynasty.getID(); } string name = character.getName(); int charID = character.getID(); int dob = character.getBirthDay(); int mob = character.getBirthMonth(); int yob = character.getBirthYear(); writer.WriteLine(charID + " = {"); writer.WriteLine("\tname=\"" + name + "\""); if (dynastyID != 0) { writer.WriteLine("\tdynasty=" + dynastyID); } else { writer.WriteLine("\tdynasty=" + "NONE"); } writer.WriteLine("\treligion=\"" + character.getReligion() + "\""); writer.WriteLine("\tculture=\"" + character.getCulture() + "\""); if (character.getIsMale() == false) { writer.WriteLine("\tfemale=yes"); } if (character.getIsBastard()) { writer.WriteLine("\tadd_trait=\"bastard\""); } if (character.getFather() != null) { writer.WriteLine("\tfather=" + character.getFather().getID()); } writer.WriteLine("\t" + yob + "." + mob + "." + dob + "={"); writer.WriteLine("\t\tbirth=yes"); writer.WriteLine("\t}"); if (character.getSpouse() != null) { DateTime maxBirthDT = maxBirth(character.getBirth(), character.getSpouse().getBirth()); int yom = maxBirthDT.Year; int mom = maxBirthDT.Month + 1; int dom = maxBirthDT.Day + 1; writer.WriteLine("\t" + yom + "." + mom + "." + dom + "={"); writer.WriteLine("\t\tadd_spouse=" + character.getSpouse().getID()); writer.WriteLine("\t}"); } if (character.getAlive() == false) { int dod = character.getDeathDay(); int mod = character.getDeathMonth(); int yod = character.getDeathYear(); writer.WriteLine("\t" + yod + "." + mod + "." + dod + "={"); writer.WriteLine("\t\tdeath=yes"); writer.WriteLine("\t}"); } writer.WriteLine("}"); }