public override bool Run() { try { if (!Target.StartComputing(this, SurfaceHeight.Table, true)) { return(false); } if (!UIUtils.IsOkayToStartModalDialog()) { return(false); } Target.StartVideo(Computer.VideoType.Browse); AnimateSim("GenericTyping"); string failReason = null; if (((Actor.Household == Household.ActiveHousehold) && !MovingSituation.MovingInProgress) && InWorldSubState.IsEditTownValid(Actor.LotHome, ref failReason)) { Definition interactionDefinition = InteractionDefinition as Definition; if (interactionDefinition.LocalMove) { if (!Household.ActiveHousehold.LotHome.IsApartmentLot && (Household.ActiveHousehold.GetNumberOfRoommates() > 0)) { if (!TwoButtonDialog.Show(Localization.LocalizeString("Ui/Caption/Roommates:MovingDismissConfirmation", new object[0]), LocalizationHelper.Yes, LocalizationHelper.No)) { Target.StopComputing(this, Computer.StopComputingAction.TurnOff, false); return(true); } Household.RoommateManager.StopAcceptingRoommates(true); } MovingDialogEx.Show(new GameplayMovingModelEx(Actor)); } else { MovingWorldsModel model = new MovingWorldsModel(Actor); MovingWorldDialog.Show(model); if ((model.WorldName != null) && MovingWorldUtil.VerifyWorldMove()) { Common.FunctionTask.Perform(model.TriggerSaveAndTravel); } } } Target.StopComputing(this, Computer.StopComputingAction.TurnOff, false); return(true); } catch (ResetException) { throw; } catch (Exception e) { Common.Exception(Actor, Target, e); return(false); } }
public override bool Run() { try { bool success = false; Actor.SynchronizationLevel = Sim.SyncLevel.NotStarted; Target.SynchronizationLevel = Sim.SyncLevel.NotStarted; if (BeginSocialInteraction(new SocialInteractionB.Definition(null, Localization.LocalizeString(Actor.IsFemale, "Gameplay/Excel/Socializing/Action:BeAskedToMoveIn", new object[0x0]), false), false, true)) { BeginCommodityUpdates(); mCurrentStateMachine = StateMachineClient.Acquire(Simulator.CurrentTask, "social_AskFor"); mCurrentStateMachine.SetActor("x", Actor); mCurrentStateMachine.SetActor("y", Target); mCurrentStateMachine.EnterState("x", "Enter"); mCurrentStateMachine.EnterState("y", "Enter"); if (AcceptCancelDialog.Show(Localization.LocalizeString("Gameplay/Moving:MoveInPrompt", new object[] { Target, Actor }))) { mCurrentStateMachine.RequestState(false, "y", "Friendly"); mCurrentStateMachine.RequestState(true, "x", "Friendly"); if (!MovingSituation.MovingInProgress) { // Custom using (GameplayMovingModelEx.ProtectFunds protect = new GameplayMovingModelEx.ProtectFunds(Target.Household)) { MovingDialogEx.Show(new GameplayMovingModelEx(Target, Actor.Household)); } } } else { mCurrentStateMachine.RequestState(false, "y", "Neutral"); mCurrentStateMachine.RequestState(true, "x", "Neutral"); Actor.SocialComponent.OnMoveInRequestRejected(); } if (Actor.Household != Target.Household) { Actor.SocialComponent.OnMoveInRequestRejected(); } success = true; EndCommodityUpdates(true); } Actor.ClearSynchronizationData(); return(success); } catch (ResetException) { throw; } catch (Exception e) { Common.Exception(Actor, Target, e); return(false); } }
public override Phone.Call.ConversationBehavior OnCallConnected() { try { if (UIUtils.IsOkayToStartModalDialog()) { string failReason = null; if (((Actor.Household == Household.ActiveHousehold) && !MovingSituation.MovingInProgress) && InWorldSubState.IsEditTownValid(Actor.LotHome, ref failReason)) { Definition interactionDefinition = InteractionDefinition as Definition; if (interactionDefinition.LocalMove) { if (!Household.ActiveHousehold.LotHome.IsApartmentLot && (Household.ActiveHousehold.GetNumberOfRoommates() > 0)) { if (!TwoButtonDialog.Show(Localization.LocalizeString("Ui/Caption/Roommates:MovingDismissConfirmation", new object[0]), LocalizationHelper.Yes, LocalizationHelper.No)) { return(Phone.Call.ConversationBehavior.JustHangUp); } Household.RoommateManager.StopAcceptingRoommates(true); } MovingDialogEx.Show(new GameplayMovingModelEx(Actor)); } else { MovingWorldsModel model = new MovingWorldsModel(Actor); MovingWorldDialog.Show(model); if ((model.WorldName != null) && MovingWorldUtil.VerifyWorldMove()) { Common.FunctionTask.Perform(model.TriggerSaveAndTravel); } } } } } catch (ResetException) { throw; } catch (Exception e) { Common.Exception(Actor, Target, e); } return(Phone.Call.ConversationBehavior.JustHangUp); }