コード例 #1
0
 public Controller(State state)
 {
     this.state = state;
     subcontrollerCharacters    = new ControllerPawns(state);
     subcontrollerEquipment     = new ControllerEquipment(state);
     subcontrollerRelationships = new ControllerRelationships(state);
     subcontrollerCharacters.CheckPawnCapabilities();
 }
コード例 #2
0
        public void LoadPreset(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                Logger.Warning("Trying to load a preset without a name");
                return;
            }
            bool result = PresetLoader.LoadFromFile(PrepareCarefully.Instance, name);

            if (result)
            {
                state.AddMessage("EdB.PC.Dialog.Preset.Loaded".Translate(name));
                state.CurrentColonyPawn = state.ColonyPawns.FirstOrDefault();
                state.CurrentWorldPawn  = state.WorldPawns.FirstOrDefault();
            }
            subcontrollerCharacters.CheckPawnCapabilities();
        }
コード例 #3
0
        protected void InstrumentPanels()
        {
            State state = PrepareCarefully.Instance.State;

            GameStarted  += controller.StartGame;
            PresetLoaded += controller.LoadPreset;
            PresetSaved  += controller.SavePreset;

            // Instrument the characters tab view.
            ControllerPawns pawnController = controller.SubcontrollerCharacters;

            tabViewPawns.PanelAge.BiologicalAgeUpdated    += pawnController.UpdateBiologicalAge;
            tabViewPawns.PanelAge.ChronologicalAgeUpdated += pawnController.UpdateChronologicalAge;

            tabViewPawns.PanelAppearance.RandomizeAppearance += pawnController.RandomizeAppearance;
            tabViewPawns.PanelAppearance.GenderUpdated       += (Gender gender) => {
                pawnController.UpdateGender(gender);
                tabViewPawns.PanelAppearance.UpdatePawnLayers();
            };

            tabViewPawns.PanelBackstory.BackstoryUpdated      += pawnController.UpdateBackstory;
            tabViewPawns.PanelBackstory.BackstoryUpdated      += (BackstorySlot slot, Backstory backstory) => { pawnController.CheckPawnCapabilities(); };
            tabViewPawns.PanelBackstory.BackstoriesRandomized += pawnController.RandomizeBackstories;
            tabViewPawns.PanelBackstory.BackstoriesRandomized += () => { pawnController.CheckPawnCapabilities(); };

            tabViewPawns.PanelColonyPawns.PawnSelected           += this.SelectPawn;
            tabViewPawns.PanelColonyPawns.AddingPawn             += pawnController.AddingPawn;
            tabViewPawns.PanelColonyPawns.AddingPawnWithPawnKind += pawnController.AddFactionPawn;
            tabViewPawns.PanelColonyPawns.PawnDeleted            += pawnController.DeletePawn;
            tabViewPawns.PanelColonyPawns.PawnDeleted            += (CustomPawn pawn) => { pawnController.CheckPawnCapabilities(); };
            tabViewPawns.PanelColonyPawns.PawnSwapped            += this.SwapPawn;
            tabViewPawns.PanelWorldPawns.PawnSelected            += this.SelectPawn;
            tabViewPawns.PanelWorldPawns.AddingPawn             += pawnController.AddingPawn;
            tabViewPawns.PanelWorldPawns.AddingPawnWithPawnKind += pawnController.AddFactionPawn;
            tabViewPawns.PanelWorldPawns.PawnDeleted            += pawnController.DeletePawn;
            tabViewPawns.PanelWorldPawns.PawnDeleted            += (CustomPawn pawn) => { pawnController.CheckPawnCapabilities(); };
            tabViewPawns.PanelWorldPawns.PawnSwapped            += this.SwapPawn;

            tabViewPawns.PanelColonyPawns.Maximize += () => {
                state.PawnListMode = PawnListMode.ColonyPawnsMaximized;
                tabViewPawns.ResizeTabView();
            };
            tabViewPawns.PanelWorldPawns.Maximize += () => {
                state.PawnListMode = PawnListMode.WorldPawnsMaximized;
                tabViewPawns.ResizeTabView();
            };

            pawnController.PawnAdded += (CustomPawn pawn) => {
                PanelPawnList pawnList = null;
                if (pawn.Type == CustomPawnType.Colonist)
                {
                    pawnList = tabViewPawns.PanelColonyPawns;
                }
                else
                {
                    pawnList = tabViewPawns.PanelWorldPawns;
                }
                pawnList.ScrollToBottom();
                pawnList.SelectPawn(pawn);
            };
            pawnController.PawnAdded    += (CustomPawn pawn) => { pawnController.CheckPawnCapabilities(); };
            pawnController.PawnReplaced += (CustomPawn pawn) => { pawnController.CheckPawnCapabilities(); };

            tabViewPawns.PanelHealth.InjuryAdded  += pawnController.AddInjury;
            tabViewPawns.PanelHealth.InjuryAdded  += (Injury i) => { tabViewPawns.PanelHealth.ScrollToBottom(); };
            tabViewPawns.PanelHealth.ImplantAdded += pawnController.AddImplant;
            tabViewPawns.PanelHealth.ImplantAdded += (Implant i) => { tabViewPawns.PanelHealth.ScrollToBottom(); };

            tabViewPawns.PanelName.FirstNameUpdated += pawnController.UpdateFirstName;
            tabViewPawns.PanelName.NickNameUpdated  += pawnController.UpdateNickName;
            tabViewPawns.PanelName.LastNameUpdated  += pawnController.UpdateLastName;
            tabViewPawns.PanelName.NameRandomized   += pawnController.RandomizeName;

            tabViewPawns.PanelRandomize.RandomizeAllClicked += pawnController.RandomizeAll;
            tabViewPawns.PanelRandomize.RandomizeAllClicked += () => { pawnController.CheckPawnCapabilities(); };

            tabViewPawns.PanelSaveLoad.CharacterLoaded += pawnController.LoadCharacter;
            tabViewPawns.PanelSaveLoad.CharacterLoaded += (string filename) => { pawnController.CheckPawnCapabilities(); };
            tabViewPawns.PanelSaveLoad.CharacterSaved  += pawnController.SaveCharacter;

            tabViewPawns.PanelSkills.SkillLevelUpdated   += pawnController.UpdateSkillLevel;
            tabViewPawns.PanelSkills.SkillPassionUpdated += pawnController.UpdateSkillPassion;
            tabViewPawns.PanelSkills.SkillsReset         += pawnController.ResetSkills;
            tabViewPawns.PanelSkills.SkillsCleared       += pawnController.ClearSkills;

            tabViewPawns.PanelTraits.TraitAdded       += pawnController.AddTrait;
            tabViewPawns.PanelTraits.TraitAdded       += (Trait t) => { tabViewPawns.PanelTraits.ScrollToBottom(); };
            tabViewPawns.PanelTraits.TraitUpdated     += pawnController.UpdateTrait;
            tabViewPawns.PanelTraits.TraitRemoved     += pawnController.RemoveTrait;
            tabViewPawns.PanelTraits.TraitsRandomized += pawnController.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.PanelColonyPawns.PawnDeleted += relationships.DeleteAllPawnRelationships;
            pawnController.PawnAdded    += relationships.AddPawn;
            pawnController.PawnReplaced += relationships.ReplacePawn;
        }