Beispiel #1
0
        public override void Startup()
        {
            // From StateMachine:Startup
            mBaseCallFlag |= BaseCallFlag.kStartup;

            // From InWorldSubState
            while (sDelayNextStateStartupCount > 0x0)
            {
                SpeedTrap.Sleep(0x0);
            }
            EventTracker.SendEvent(new InWorldSubStateEvent(this, true));

            // From EditTownState
            if (SeasonsManager.Enabled)
            {
                SeasonsManager.OnEnterEditTown();
            }

            AudioManager.MusicMode = MusicMode.EditTown;
            UserToolUtils.UserToolGeneric(0xc8, new ResourceKey(0x0L, 0x0, 0x0));
            BorderTreatmentsController.Hide();
            GameUtils.Pause();
            base.PlaceLotWizardCheck();
            EditTownController.Load();
            Tutorialette.TriggerLesson(Lessons.EditTown, null);
            Tutorialette.TriggerLesson(Lessons.PlacingNewVenues, null);
            //Household.DestroyHouseholdsWithoutGuardians();
            CASExitLoadScreen.Close();
            InWorldSubState.EdgeScrollCheck();
            InWorldSubState.OpportunityDialogCheck();
        }
Beispiel #2
0
        public static void SplitHousehold(EditTownController ths, UIBinInfo from)
        {
            try
            {
                if (ths == null)
                {
                    return;
                }

                Household household = Household.Find(from.HouseholdId);
                if (household != null)
                {
                    IMovingModel model = new GameEntryMovingModelEx(household);
                    if (model != null)
                    {
                        EditTownSplitDialog.Show(model);
                        Simulator.AddObject(new OneShotFunctionWithParams(ths.SplitHouseholdsTask, from));
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception("SplitHousehold", e);
            }
        }
Beispiel #3
0
        public static void MergeHouseholds(EditTownController ths, UIBinInfo from, UIBinInfo to)
        {
            try
            {
                Household household = Household.Find(from.HouseholdId);
                if (household != null)
                {
                    IMovingModel model = new GameEntryMovingModelEx(household);
                    if (model != null)
                    {
                        model.SetTargetLot(to.LotId);
                        EditTownMergeDialog.Show(model);

                        Common.FunctionTask.Perform(ths.MergeHouseholdsTask);
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception("MergeHouseholds", e);
            }
        }
Beispiel #4
0
        public static void ChangeLotTypeTask(object obj)
        {
            try
            {
                EditTownController ths = EditTownController.Instance;

                UIBinInfo info = obj as UIBinInfo;
                if ((info != null) && (info.LotId != ulong.MaxValue))
                {
                    ths.mModel.SetCurrentSelection(null, InfoSource.Unknown);
                    ILocalizationModel    localizationModel     = Sims3.UI.Responder.Instance.LocalizationModel;
                    LotType               lotType               = info.LotType;
                    CommercialLotSubType  commercialLotSubType  = info.CommercialLotSubType;
                    ResidentialLotSubType residentialLotSubType = info.ResidentialLotSubType;
                    string lotTypeName = "";

                    if (ChangeLotTypeDialogEx.Show(ref lotType, ref commercialLotSubType, ref residentialLotSubType, ref lotTypeName, info.IsHouseboatLot))
                    {
                        if (((lotType == LotType.Commercial) && (commercialLotSubType == CommercialLotSubType.kEP1_BaseCamp)) && ths.mModel.IsAnyLotBaseCamp())
                        {
                            string titleText   = Common.LocalizeEAString("Ui/Caption/Global:Failed");
                            string messageText = Common.LocalizeEAString("Ui/Caption/GameEntry/EditTown/EP01:BaseCampExists");
                            SimpleMessageDialog.Show(titleText, messageText, ModalDialog.PauseMode.PauseSimulator, new Vector2(-1f, -1f), "ui_error", "ui_hardwindow_close");
                        }
                        else if (((lotType == LotType.Commercial) && (commercialLotSubType == CommercialLotSubType.kEP11_BaseCampFuture)) && ths.mModel.IsAnyLotBaseCamp())
                        {
                            string str4 = localizationModel.LocalizeString("Ui/Caption/Global:Failed", new object[0]);
                            string str5 = localizationModel.LocalizeString("Ui/Caption/GameEntry/EditTown/EP11:BaseCampFutureExists", new object[0]);
                            SimpleMessageDialog.Show(str4, str5, ModalDialog.PauseMode.PauseSimulator, new Vector2(-1f, -1f), "ui_error", "ui_hardwindow_close");
                        }
                        else if (EditTownModelEx.ChangeLotType(info.LotId, false, lotType, commercialLotSubType, residentialLotSubType))
                        {
                            EditTownController.AlertLotTypeChangeSuccess(info, localizationModel, lotType, lotTypeName);
                        }
                        else
                        {
                            string promptText = string.Empty;
                            if (commercialLotSubType == CommercialLotSubType.kEP10_Resort)
                            {
                                promptText = localizationModel.LocalizeString("Ui/Caption/GameEntry/EditTown:LotTypeResortFailed", new object[] { info.LotAddress });
                            }
                            else
                            {
                                promptText = localizationModel.LocalizeString((lotType == LotType.Commercial) ? "Ui/Caption/GameEntry/EditTown:LotTypeCommunityFailed" : "Ui/Caption/GameEntry/EditTown:LotTypeResidentialFailed", new object[] { info.LotAddress });
                            }

                            if (AcceptCancelDialog.Show(promptText))
                            {
                                if (EditTownModelEx.ChangeLotType(info.LotId, true, lotType, commercialLotSubType, residentialLotSubType))
                                {
                                    EditTownController.AlertLotTypeChangeSuccess(info, localizationModel, lotType, lotTypeName);
                                    EditTownMaptagController.Instance.ResetMaptags();
                                }
                                else
                                {
                                    string str5 = Common.LocalizeEAString("Ui/Caption/Global:Failed");
                                    promptText = Common.LocalizeEAString("Ui/Caption/GameEntry/EditTown:LotTypeChangeFailed");
                                    SimpleMessageDialog.Show(str5, promptText, ModalDialog.PauseMode.PauseSimulator, new Vector2(-1f, -1f), "ui_error", "ui_hardwindow_close");
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception("ChangeLotTypeTask", e);
            }
        }
        public static void SplitHousehold(EditTownController ths, UIBinInfo from)
        {
            try
            {
                if (ths == null) return;

                Household household = Household.Find(from.HouseholdId);
                if (household != null)
                {
                    IMovingModel model = new GameEntryMovingModelEx(household);
                    if (model != null)
                    {
                        EditTownSplitDialog.Show(model);
                        Simulator.AddObject(new OneShotFunctionWithParams(ths.SplitHouseholdsTask, from));
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception("SplitHousehold", e);
            }
        }
        public static void MergeHouseholds(EditTownController ths, UIBinInfo from, UIBinInfo to)
        {
            try
            {
               Household household = Household.Find(from.HouseholdId);
                if (household != null)
                {
                    IMovingModel model = new GameEntryMovingModelEx(household);
                    if (model != null)
                    {
                        model.SetTargetLot(to.LotId);
                        EditTownMergeDialog.Show(model);

                        Common.FunctionTask.Perform(ths.MergeHouseholdsTask);
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception("MergeHouseholds", e);
            }
        }