public Controller(State state) { this.state = state; subcontrollerCharacters = new ControllerPawns(state); subcontrollerEquipment = new ControllerEquipment(state); subcontrollerRelationships = new ControllerRelationships(state); subcontrollerCharacters.CheckPawnCapabilities(); }
protected void InstrumentPanels() { State state = PrepareCarefully.Instance.State; GameStarted += controller.StartGame; PresetLoaded += controller.LoadPreset; PresetSaved += controller.SavePreset; // Instrument the characters tab view. ControllerPawns pawns = controller.SubcontrollerCharacters; tabViewPawns.PanelAge.BiologicalAgeUpdated += pawns.UpdateBiologicalAge; tabViewPawns.PanelAge.ChronologicalAgeUpdated += pawns.UpdateChronologicalAge; tabViewPawns.PanelAppearance.RandomizeAppearance += pawns.RandomizeAppearance; tabViewPawns.PanelAppearance.GenderUpdated += pawns.UpdateGender; tabViewPawns.PanelBackstory.BackstoryUpdated += pawns.UpdateBackstory; tabViewPawns.PanelBackstory.BackstoryUpdated += (BackstorySlot slot, Backstory backstory) => { controller.CheckPawnCapabilities(); }; tabViewPawns.PanelBackstory.BackstoriesRandomized += pawns.RandomizeBackstories; tabViewPawns.PanelBackstory.BackstoriesRandomized += () => { controller.CheckPawnCapabilities(); }; tabViewPawns.PanelPawnList.PawnSelected += pawns.SelectPawn; tabViewPawns.PanelPawnList.PawnSelected += (CustomPawn pawn) => { tabViewPawns.PanelName.ClearSelection(); }; tabViewPawns.PanelPawnList.PawnSelected += (CustomPawn pawn) => { tabViewPawns.PanelTraits.ScrollToTop(); }; tabViewPawns.PanelPawnList.PawnSelected += (CustomPawn pawn) => { tabViewPawns.PanelSkills.ScrollToTop(); }; tabViewPawns.PanelPawnList.PawnSelected += (CustomPawn pawn) => { tabViewPawns.PanelHealth.ScrollToTop(); }; tabViewPawns.PanelPawnList.AddingPawn += pawns.AddingPawn; tabViewPawns.PanelPawnList.AddingFactionPawn += pawns.AddFactionPawn; tabViewPawns.PanelPawnList.PawnDeleted += pawns.DeletePawn; tabViewPawns.PanelPawnList.PawnDeleted += (CustomPawn pawn) => { controller.CheckPawnCapabilities(); }; pawns.PawnAdded += (CustomPawn pawn) => { tabViewPawns.PanelPawnList.ScrollToBottom(); tabViewPawns.PanelPawnList.SelectPawn(pawn); }; pawns.PawnAdded += (CustomPawn pawn) => { controller.CheckPawnCapabilities(); }; pawns.PawnReplaced += (CustomPawn pawn) => { controller.CheckPawnCapabilities(); }; tabViewPawns.PanelHealth.InjuryAdded += pawns.AddInjury; tabViewPawns.PanelHealth.InjuryAdded += (Injury i) => { tabViewPawns.PanelHealth.ScrollToBottom(); }; tabViewPawns.PanelHealth.ImplantAdded += pawns.AddImplant; tabViewPawns.PanelHealth.ImplantAdded += (Implant i) => { tabViewPawns.PanelHealth.ScrollToBottom(); }; tabViewPawns.PanelName.FirstNameUpdated += pawns.UpdateFirstName; tabViewPawns.PanelName.NickNameUpdated += pawns.UpdateNickName; tabViewPawns.PanelName.LastNameUpdated += pawns.UpdateLastName; tabViewPawns.PanelName.NameRandomized += pawns.RandomizeName; tabViewPawns.PanelRandomize.RandomizeAllClicked += pawns.RandomizeAll; tabViewPawns.PanelRandomize.RandomizeAllClicked += () => { controller.CheckPawnCapabilities(); }; tabViewPawns.PanelSaveLoad.CharacterLoaded += pawns.LoadCharacter; tabViewPawns.PanelSaveLoad.CharacterLoaded += (string filename) => { controller.CheckPawnCapabilities(); }; tabViewPawns.PanelSaveLoad.CharacterSaved += pawns.SaveCharacter; tabViewPawns.PanelSkills.SkillLevelUpdated += pawns.UpdateSkillLevel; tabViewPawns.PanelSkills.SkillPassionUpdated += pawns.UpdateSkillPassion; tabViewPawns.PanelSkills.SkillsReset += pawns.ResetSkills; tabViewPawns.PanelSkills.SkillsCleared += pawns.ClearSkills; tabViewPawns.PanelTraits.TraitAdded += pawns.AddTrait; tabViewPawns.PanelTraits.TraitAdded += (Trait t) => { tabViewPawns.PanelTraits.ScrollToBottom(); }; tabViewPawns.PanelTraits.TraitUpdated += pawns.UpdateTrait; tabViewPawns.PanelTraits.TraitRemoved += pawns.RemoveTrait; tabViewPawns.PanelTraits.TraitsRandomized += pawns.RandomizeTraits; tabViewPawns.PanelTraits.TraitsRandomized += () => { tabViewPawns.PanelTraits.ScrollToTop(); }; // Instrument the equipment tab view. ControllerEquipment equipment = controller.SubcontrollerEquipment; tabViewEquipment.PanelAvailable.EquipmentAdded += equipment.AddEquipment; tabViewEquipment.PanelAvailable.EquipmentAdded += tabViewEquipment.PanelSelected.EquipmentAdded; tabViewEquipment.PanelSelected.EquipmentRemoved += equipment.RemoveEquipment; tabViewEquipment.PanelSelected.EquipmentCountUpdated += equipment.UpdateEquipmentCount; // Instrument the relationships tab view. ControllerRelationships relationships = controller.SubcontrollerRelationships; tabViewRelationships.PanelRelationshipsOther.RelationshipAdded += relationships.AddRelationship; tabViewRelationships.PanelRelationshipsOther.RelationshipRemoved += relationships.RemoveRelationship; tabViewRelationships.PanelRelationshipsParentChild.ParentAddedToGroup += relationships.AddParentToParentChildGroup; tabViewRelationships.PanelRelationshipsParentChild.ChildAddedToGroup += relationships.AddChildToParentChildGroup; tabViewRelationships.PanelRelationshipsParentChild.ParentRemovedFromGroup += relationships.RemoveParentFromParentChildGroup; tabViewRelationships.PanelRelationshipsParentChild.ChildRemovedFromGroup += relationships.RemoveChildFromParentChildGroup; tabViewRelationships.PanelRelationshipsParentChild.GroupAdded += relationships.AddParentChildGroup; tabViewPawns.PanelPawnList.PawnDeleted += relationships.DeleteAllPawnRelationships; pawns.PawnAdded += relationships.AddPawn; pawns.PawnReplaced += relationships.ReplacePawn; }