/* * Uses the CharacterBuildController to edit level plans * Refer MainMenu.StartChargen which sets up the state and then calls CharacterBuildController.HandleLevelUpStart * */ public static void EditLevelPlan(LevelPlanHolder levelPlanHolder, int level) { var unit = levelPlanHolder.CreateUnit(level); if (Main.settings.ShowDollRoom) { ShowDollRoom(unit); } CharacterBuildController characterBuildController = Game.Instance.UI.CharacterBuildController; var mode = level == 1 ? LevelUpState.CharBuildMode.CharGen : LevelUpState.CharBuildMode.LevelUp; CurrentLevelUpController = LevelUpController.Start( unit: unit.Descriptor, instantCommit: false, unitJson: null, onSuccess: null, mode: mode); CurrentLevelUpController.SelectPortrait(Game.Instance.BlueprintRoot.CharGen.Portraits[0]); CurrentLevelUpController.SelectGender(Gender.Male); CurrentLevelUpController.SelectRace(Game.Instance.BlueprintRoot.Progression.CharacterRaces[0]); CurrentLevelUpController.SelectAlignment(Kingmaker.Enums.Alignment.TrueNeutral); CurrentLevelUpController.SelectVoice(Game.Instance.BlueprintRoot.CharGen.MaleVoices[0]); CurrentLevelUpController.SelectName("LevelPlan"); Traverse.Create(characterBuildController).Property <LevelUpController>("LevelUpController").Value = CurrentLevelUpController; Traverse.Create(characterBuildController).Field("Mode").SetValue(CurrentLevelUpController.State.Mode); Traverse.Create(characterBuildController).Field("Unit").SetValue(unit.Descriptor); characterBuildController.Show(true); }