Exemple #1
0
        private void Start()
        {
            var homeState = new HomeState();

            var optionsState      = new OptionsState();
            var audioOptionsState = new AudioOptionsState();
            var controlsState     = new ControlsState();

            AddOverlapTransition(homeState, optionsState, () => { return(Input.GetKeyDown(KeyCode.Space)); });

            AddOverlapTransition(optionsState, controlsState, () => { return(Input.GetKeyDown(KeyCode.Alpha1)); });
            AddOverlapTransition(optionsState, audioOptionsState, () => { return(Input.GetKeyDown(KeyCode.Alpha2)); });
            AddReturnTransition(optionsState, () => { return(Input.GetKeyDown(KeyCode.Escape)); });

            AddReturnTransition(controlsState, () => { return(Input.GetKeyDown(KeyCode.Escape)); });
            AddReturnTransition(audioOptionsState, () => { return(Input.GetKeyDown(KeyCode.Escape)); });

            _initialState = homeState;

            OnStateExit    += HandleStatExit;
            OnStateEnter   += HandleStateEnter;
            OnStateFocus   += HandleStateFocus;
            OnStateObscure += HandleStateObscure;

            ChangeToInitialState();
        }
    void Awake()
    {
        homeSet         = false;
        survivorFood    = 0;
        survivorWater   = 0;
        survivorBandage = 0;
        survivorScrap   = 0;

        survivorHealth    = 100;
        survivorHunger    = 90;
        survivorThirst    = 90;
        survivorTiredness = 90;

        wayPointsList = new List <Vector3>();

        collectState  = new CollectState(this);
        buildState    = new BuildState(this);
        nourrishState = new NourrishState(this);
        fightState    = new FightState(this);
        repairState   = new RepairState(this);
        sleepState    = new SleepState(this);
        homeState     = new HomeState(this);
        healState     = new HealState(this);
        currentMap    = GameObject.Find("Map");
    }
Exemple #3
0
        private void CleanupPlayback(bool normalEnd)
        {
            if (Service.IsSet <GameStateMachine>() && this.preVideoState != null)
            {
                if (this.preVideoState is HomeState)
                {
                    HomeState.GoToHomeStateAndReloadMap();
                }
                else
                {
                    Service.Get <GameStateMachine>().SetState(this.preVideoState);
                    if (Service.IsSet <WorldInitializer>() && Service.IsSet <CurrentPlayer>())
                    {
                        Service.Get <WorldInitializer>().ProcessMapData(Service.Get <CurrentPlayer>().Map);
                    }
                }
            }
            this.playing       = false;
            this.displayed     = false;
            this.preVideoState = null;
            KeyValuePair <bool, string> keyValuePair = new KeyValuePair <bool, string>(normalEnd, this.Guid);

            if (Service.IsSet <EventManager>())
            {
                Service.Get <EventManager>().SendEvent(EventId.VideoEnd, keyValuePair);
            }
        }
Exemple #4
0
        /// <summary>
        /// Puts to end the battle state.
        /// </summary>
        public void EndBattleState()
        {
            this.State = HomeState.None;

            this.Replay        = null;
            this.Battle        = null;
            this.SectorManager = null;
        }
Exemple #5
0
        /// <summary>
        /// Loads home state.
        /// </summary>
        public void LoadBattleState()
        {
            this.State = HomeState.Attack;

            this.ClearClientTicks();

            this.Battle        = new Battle(this);
            this.Replay        = new Replay(this);
            this.SectorManager = new SectorManager(this);
        }
 public void SupportsQueryCommand()
 {
     HomeState state = new HomeState();
     state.CreateFurniture("sofa","room",new DateTime(2015,12,01));
     Mock<TextWriter> writerMock = new Mock<TextWriter>();
     CommandProcessor processor = new CommandProcessor(state, writerMock.Object);
     string command = "query -date 01.12.2015";
     processor.Process(command);
     writerMock.Verify(w=>w.WriteLine(It.IsAny<string>()));
 }
Exemple #7
0
        /// <summary>
        /// Loads home state.
        /// </summary>
        public void LoadHomeState(Player Player, int SecondsSinceLastSave, int RandomSeed)
        {
            this.State = HomeState.Home;

            this.ClearClientTicks();
            this.SetPlayer(Player);
            this.FastForwardTime(SecondsSinceLastSave);
            this.SetRandomSeed(RandomSeed);
            this.Home.LoadingFinished();
        }
Exemple #8
0
 public override void Execute()
 {
     base.Execute();
     if (Service.Get <GameStateMachine>().CurrentState is HomeState)
     {
         Service.Get <StaRTSLogger>().Warn("TransitionToHomeStoryAction executed but already home.");
         this.OnTransitionComplete();
         return;
     }
     HomeState.GoToHomeState(new TransitionCompleteDelegate(this.OnTransitionComplete), false);
 }
 private void FinishUp(bool didSkip)
 {
     if (!this.finishing)
     {
         Service.Get <IBackButtonManager>().UnregisterBackButtonHandler(this);
         this.StopNow();
         this.finishing = true;
         Service.Get <EventManager>().SendEvent(EventId.TextCrawlComplete, null);
         HomeState.GoToHomeState(new TransitionCompleteDelegate(this.OnWipeComplete), true);
     }
 }
Exemple #10
0
 protected void OnMapLoadFailure()
 {
     Service.Get <CameraManager>().UXCamera.Camera.enabled = true;
     Service.Get <UXController>().HUD.Visible = false;
     if (Service.Get <GameStateMachine>().CurrentState is HomeState)
     {
         this.FinishWipe();
         return;
     }
     HomeState.GoToHomeState(null, false);
 }
Exemple #11
0
 protected void OnMapLoadFailure()
 {
     Service.CameraManager.UXCamera.Camera.enabled = true;
     Service.UXController.HUD.Visible = false;
     if (Service.GameStateMachine.CurrentState is HomeState)
     {
         this.FinishWipe();
     }
     else
     {
         HomeState.GoToHomeState(null, false);
     }
 }
Exemple #12
0
    // Use this for initialization
    void Start()
    {
        //worldState = new WorldState();
        AnimalFactory animalFactory = GetComponent <AnimalFactory>();

        worldState.Initialize(animalFactory);

        TraitFactory.instantiateAllTraits();

        homeState = new HomeState();
        homeState.Initialize();
        activeState = homeState;
    }
Exemple #13
0
 public void OnReplayLoadFailed(uint status, object cookie)
 {
     ProcessingScreen.Hide();
     if (!(Service.GameStateMachine.CurrentState is HomeState))
     {
         HomeState.GoToHomeState(null, false);
     }
     if (status == 2110u)
     {
         string message = Service.Lang.Get("REPLAY_DATA_NOT_FOUND", new object[0]);
         AlertScreen.ShowModal(false, null, message, null, null);
     }
 }
Exemple #14
0
 internal async Task<bool> Update(HomeState homeState, ClassStanding classStanding, CollegeName collegeName, Major major)
 {
     if (_currentUser != null)
     {
         _currentUser.HomeState = homeState;
         _currentUser.ClassStanding = classStanding;
         _currentUser.College = collegeName;
         _currentUser.Major = major;
         await _usersTable.UpdateAsync(_currentUser);
         return true;
     }
     return false;
 }
Exemple #15
0
 public override void Execute()
 {
     base.Execute();
     if (Service.GameStateMachine.CurrentState is HomeState)
     {
         Service.Logger.Warn("TransitionToHomeStoryAction executed but already home.");
         this.OnTransitionComplete();
     }
     else
     {
         HomeState.GoToHomeState(new TransitionCompleteDelegate(this.OnTransitionComplete), false);
     }
 }
Exemple #16
0
 public override void Process(bool continueProcessing)
 {
     this.continueProcessing = continueProcessing;
     if (base.ShouldProcess)
     {
         Service.RUFManager.UpdateProcessingLoadState(false);
         if (Service.GameStateMachine.CurrentState is HomeState)
         {
             base.Process(continueProcessing);
             return;
         }
         HomeState.GoToHomeState(new TransitionCompleteDelegate(this.OnHomeLoaded), true);
     }
 }
Exemple #17
0
 private void ExitBaseLayoutTool(bool afterSave)
 {
     if (Service.Get <GameStateMachine>().CurrentState is WarBaseEditorState)
     {
         HomeMapDataLoader mapDataLoader = Service.Get <HomeMapDataLoader>();
         Service.Get <WorldTransitioner>().StartTransition(new WarbaseToWarboardTransition(new WarBoardState(), mapDataLoader, null, false, false));
         return;
     }
     if (afterSave)
     {
         HomeState.GoToHomeState(null, false);
         return;
     }
     Service.Get <GameStateMachine>().SetState(new EditBaseState(false));
 }
Exemple #18
0
 private void ExitBaseLayoutTool(bool afterSave)
 {
     if (Service.GameStateMachine.CurrentState is WarBaseEditorState)
     {
         HomeMapDataLoader homeMapDataLoader = Service.HomeMapDataLoader;
         Service.WorldTransitioner.StartTransition(new WarbaseToWarboardTransition(new WarBoardState(), homeMapDataLoader, null, false, false));
     }
     else if (afterSave)
     {
         HomeState.GoToHomeState(null, false);
     }
     else
     {
         Service.GameStateMachine.SetState(new EditBaseState(false));
     }
 }
Exemple #19
0
 public override void Execute()
 {
     base.Execute();
     if (Service.Get <GameStateMachine>().CurrentState is EditBaseState)
     {
         HomeState.GoToHomeState(null, false);
     }
     else
     {
         Service.Get <StaRTSLogger>().WarnFormat("Story Action {0} is attempting to exit Edit mode, which we are not in", new object[]
         {
             this.vo.Uid
         });
     }
     this.parent.ChildComplete(this);
 }
        /// <summary>
        /// 更新状态;
        /// </summary>
        public override void OnUpdateState()
        {
            homeTime += Time.deltaTime;
            switch (homeState)
            {
            case HomeState.None:
            {
                homeState = HomeState.ReadBook;
            }
            break;

            case HomeState.ReadBook:
            {
                if (homeTime > 3)
                {
                    //读完书了,开始烧饭;
                    homeTime  = 0;
                    homeState = HomeState.Cook;
                }
                else if (homeTime > 1)
                {
                    //烧饭之前先读书;
                    doReadBook();
                }
            }
            break;

            case HomeState.Cook:
                //开始烧饭;
                if (!doCook())
                {
                    if (homeTime > 2)
                    {
                        //添加一个去超市的状态;
                        controller.AddStateStack(HFSMBase.Place.Shop);
                        return;
                    }
                    SetText("没有盐了");
                }
                else
                {
                    //材料齐全,开始烧饭;
                    SetText("正在烧饭");
                }
                break;
            }
        }
Exemple #21
0
        private void OnPrimaryActionButtonClicked(UXButton button)
        {
            button.Enabled = false;
            this.replayBattleButton.Enabled = false;
            BattleType type = Service.Get <BattleController>().GetCurrentBattle().Type;

            if (type == BattleType.PveDefend)
            {
                HomeState.GoToHomeStateAndReloadMap();
                this.Close(null);
            }
            else
            {
                HomeState.GoToHomeState(null, false);
            }
            Service.Get <BattlePlaybackController>().DiscardLastReplay();
        }
        public void CanCreateFurniture()
        {
            HomeState stateHolder = new HomeState();
            DateTime date = new DateTime(2015, 01, 01);
            const string roomName = "bedroom";
            const string furnitureName = "sofa";
            stateHolder.CreateFurniture(furnitureName, roomName, date);
            Assert.AreEqual(1, stateHolder.GetRoomsList(date).Count);
            Assert.AreEqual(roomName, stateHolder.GetRoomsList(date).First().Name);
            Assert.AreEqual(1, stateHolder.GetRoomsList(date).First().GetFurnitures().Count);
            Assert.AreEqual(furnitureName, stateHolder.GetRoomsList(date).First().GetFurnitures().First().Type);

            stateHolder.CreateFurniture(furnitureName, roomName, date);
            Assert.AreEqual(1, stateHolder.GetRoomsList(date).Count);
            Assert.AreEqual(roomName, stateHolder.GetRoomsList(date).First().Name);
            Assert.AreEqual(2, stateHolder.GetRoomsList(date).First().GetFurnitures().Count);
            Assert.AreEqual(furnitureName, stateHolder.GetRoomsList(date).First().GetFurnitures().First().Type);
            Assert.AreEqual(furnitureName, stateHolder.GetRoomsList(date).First().GetFurnitures().Last().Type);
        }
Exemple #23
0
 public EatResponse OnEvent(EventId id, object cookie)
 {
     if (id != EventId.ScreenLoaded)
     {
         if (id == EventId.WorldInTransitionComplete)
         {
             Service.EventManager.UnregisterObserver(this, EventId.WorldInTransitionComplete);
             Service.BotRunner.Performing = false;
             base.Perform();
         }
     }
     else if (cookie is BattleEndScreen)
     {
         Service.EventManager.UnregisterObserver(this, EventId.ScreenLoaded);
         Service.EventManager.RegisterObserver(this, EventId.WorldInTransitionComplete);
         HomeState.GoToHomeStateAndReloadMap();
     }
     return(EatResponse.NotEaten);
 }
        public void CanGetHomeChangeDates()
        {
            HomeState stateHolder = new HomeState();
            DateTime date = new DateTime(2015, 01, 01);
            const string roomName = "bedroom";
            const string furnitureName = "sofa";
            stateHolder.CreateFurniture(furnitureName, roomName, date);

            var dates = stateHolder.GetHomeChangeDates();
            Assert.IsNotNull(dates);
            Assert.AreEqual(1, dates.Count);
            Assert.AreEqual(date, dates.First());

            DateTime anotherDate = new DateTime(2015, 01, 02);
            stateHolder.CreateFurniture(furnitureName, roomName, anotherDate);
            dates = stateHolder.GetHomeChangeDates();
            Assert.IsNotNull(dates);
            Assert.AreEqual(2, dates.Count);
            Assert.IsTrue(dates.Contains(date));
            Assert.IsTrue(dates.Contains(anotherDate));
        }
Exemple #25
0
    protected override void MakeFSM()
    {
        HomeState homeState = new HomeState();

        homeState.AddTransition(TRANSITION.TRANSITION_TO_ARSTATE, STATE_ID.AR_STATE);

        ARState arState = new ARState();

        arState.AddTransition(TRANSITION.TRANSITION_TO_HOMESTATE, STATE_ID.HOME_STATE);
        arState.AddTransition(TRANSITION.TRANSITION_TO_VIDEOTUTORIALSTATE, STATE_ID.VIDEO_TUTORIAL_STATE);

        VideoTutorialState videoState = new VideoTutorialState();

        videoState.AddTransition(TRANSITION.TRANSITION_TO_ARSTATE, STATE_ID.AR_STATE);

        _FSM = new FSMSystem(this);
        _FSM.AddState(homeState);
        _FSM.AddState(arState);
        _FSM.AddState(videoState);

        base.MakeFSM();
    }
Exemple #26
0
        public void OnPvpGetNextTargetFailure()
        {
            IState            currentState      = Service.Get <GameStateMachine>().CurrentState;
            WorldTransitioner worldTransitioner = Service.Get <WorldTransitioner>();

            worldTransitioner.SetAlertMessage(Service.Get <Lang>().Get("GET_PVP_TARGET_FAILURE", new object[0]));
            if (worldTransitioner.IsSoftWiping())
            {
                worldTransitioner.FinishWipe();
            }
            if (!(currentState is HomeState))
            {
                if (currentState is GalaxyState)
                {
                    HomeState.GoToHomeState(null, false);
                }
                else
                {
                    worldTransitioner.SetTransitionInStartCallback(new TransitionInStartDelegate(this.OnTransitionInStartLoadHome));
                }
            }
            Service.Get <UserInputInhibitor>().AllowAll();
        }
        public void CanGetRoomsList()
        {
            HomeState stateHolder = new HomeState();
            DateTime date = new DateTime(2015, 01, 01);
            const string roomName = "bedroom";
            stateHolder.CreateRoom(roomName, date);
            var list = stateHolder.GetRoomsList(date);
            Assert.IsNotNull(list);
            Assert.AreEqual(1, list.Count);

            stateHolder.CreateRoom(roomName, date);
            list = stateHolder.GetRoomsList(date);
            Assert.IsNotNull(list);
            Assert.AreEqual(2, list.Count);

            DateTime anotherDate = new DateTime(2014, 10, 11);
            stateHolder.CreateRoom(roomName, anotherDate);
            list = stateHolder.GetRoomsList(date);
            Assert.IsNotNull(list);
            Assert.AreEqual(2, list.Count);
            list = stateHolder.GetRoomsList(anotherDate);
            Assert.IsNotNull(list);
            Assert.AreEqual(1, list.Count);
        }
        public void CreateRoomShouldCreateNewStateIfDateNotExists()
        {
            HomeState stateHolder = new HomeState();
            const string roomName = "bedroom";
            DateTime date = new DateTime(2015, 01, 05);
            stateHolder.CreateRoom(roomName, date);
            var history = stateHolder.GetHistory();

            Assert.AreEqual(1, history.Count);

            Assert.AreEqual(date, history.First().Key);
            Assert.IsNotNull(history.First().Value);
            Assert.AreEqual(1, history.First().Value.GetRooms().Count);
            Assert.AreEqual(roomName, history.First().Value.GetRooms().First().Name);

            DateTime newDate = new DateTime(2015, 01, 06);
            stateHolder.CreateRoom(roomName, newDate);
            Assert.AreEqual(2, history.Count);

            newDate = new DateTime(2014, 01, 01);
            stateHolder.CreateRoom(roomName, newDate);
            Assert.AreEqual(3, history.Count);
        }
        /// <summary>
        /// Loads home state.
        /// </summary>
        public void LoadBattleState()
        {
            this.State = HomeState.Attack;

            this.ClearClientTicks();
        }
Exemple #30
0
        internal List<User> Search(HomeState homeState, ClassStanding classStanding, CollegeName collegeName, Major major)
        {
            List<User> mentorList = _usersList.Where(User => User.IsMentor).ToList();

            if(homeState != HomeState.NA)
            {
                mentorList = mentorList.Where(User => User.HomeState == homeState).ToList();
            }
            if(classStanding != ClassStanding.NA)
            {
                mentorList = mentorList.Where(User => User.ClassStanding == classStanding).ToList();
            }
            if (collegeName != CollegeName.NA)
            {
                mentorList = mentorList.Where(User => User.College == collegeName).ToList();
            }
            if (major != Major.NA)
            {
                mentorList = mentorList.Where(User => User.Major == major).ToList();
            }

            mentorList.OrderBy(User => User.College).ThenBy(User => User.Major).ThenBy(User => User.HomeState).ThenBy(User => User.ClassStanding);

            return mentorList;
            
        }
Exemple #31
0
 private void OnTransitionInStartLoadHome()
 {
     HomeState.GoToHomeStateAndReloadMap();
 }
        public override int GetHashCode()
        {
            int hash = 1;

            if (entityId_ != null)
            {
                hash ^= EntityId.GetHashCode();
            }
            if (FirstName.Length != 0)
            {
                hash ^= FirstName.GetHashCode();
            }
            if (LastName.Length != 0)
            {
                hash ^= LastName.GetHashCode();
            }
            if (HomeAddress1.Length != 0)
            {
                hash ^= HomeAddress1.GetHashCode();
            }
            if (HomeAddress2.Length != 0)
            {
                hash ^= HomeAddress2.GetHashCode();
            }
            if (HomeCity.Length != 0)
            {
                hash ^= HomeCity.GetHashCode();
            }
            if (HomeState.Length != 0)
            {
                hash ^= HomeState.GetHashCode();
            }
            if (HomeZip.Length != 0)
            {
                hash ^= HomeZip.GetHashCode();
            }
            if (HomeNation.Length != 0)
            {
                hash ^= HomeNation.GetHashCode();
            }
            if (HomePhoneNumber.Length != 0)
            {
                hash ^= HomePhoneNumber.GetHashCode();
            }
            if (OfficeAddress1.Length != 0)
            {
                hash ^= OfficeAddress1.GetHashCode();
            }
            if (OfficeAddress2.Length != 0)
            {
                hash ^= OfficeAddress2.GetHashCode();
            }
            if (OfficeCity.Length != 0)
            {
                hash ^= OfficeCity.GetHashCode();
            }
            if (OfficeState.Length != 0)
            {
                hash ^= OfficeState.GetHashCode();
            }
            if (OfficeZip.Length != 0)
            {
                hash ^= OfficeZip.GetHashCode();
            }
            if (OfficeNation.Length != 0)
            {
                hash ^= OfficeNation.GetHashCode();
            }
            if (OfficePhoneNumber.Length != 0)
            {
                hash ^= OfficePhoneNumber.GetHashCode();
            }
            if (MobilePhoneNumber.Length != 0)
            {
                hash ^= MobilePhoneNumber.GetHashCode();
            }
            if (FaxNumber.Length != 0)
            {
                hash ^= FaxNumber.GetHashCode();
            }
            if (EmailAddress.Length != 0)
            {
                hash ^= EmailAddress.GetHashCode();
            }
            if (IsBlacklisted != false)
            {
                hash ^= IsBlacklisted.GetHashCode();
            }
            if (CompanyName.Length != 0)
            {
                hash ^= CompanyName.GetHashCode();
            }
            if (GivenName2.Length != 0)
            {
                hash ^= GivenName2.GetHashCode();
            }
            return(hash);
        }
Exemple #33
0
        private void HandleBackButton()
        {
            IState currentState = Service.GameStateMachine.CurrentState;

            if (currentState is IntroCameraState)
            {
                IntroCameraAnimation intro = Service.UXController.Intro;
                if (intro != null)
                {
                    intro.FinishUp(true);
                }
                return;
            }
            for (int i = this.backButtonHandlers.Count - 1; i >= 0; i--)
            {
                if (this.backButtonHandlers[i].HandleBackButtonPress())
                {
                    return;
                }
            }
            UICamera.selectedObject = null;
            UICamera.hoveredObject  = null;
            if (TouchScreenKeyboard.visible)
            {
                return;
            }
            ScreenController screenController = null;

            if (Service.ScreenController != null)
            {
                screenController = Service.ScreenController;
                AlertScreen highestLevelScreen = screenController.GetHighestLevelScreen <AlertScreen>();
                if (highestLevelScreen != null && highestLevelScreen.IsAlwaysOnTop)
                {
                    this.HandleScreenBack(highestLevelScreen);
                    return;
                }
            }
            if (Service.HoloController != null)
            {
                HoloController holoController = Service.HoloController;
                if (holoController.HasAnyCharacter())
                {
                    Service.EventManager.SendEvent(EventId.StoryNextButtonClicked, null);
                    return;
                }
            }
            if (screenController != null)
            {
                ScreenBase     highestLevelScreen2 = screenController.GetHighestLevelScreen <ScreenBase>();
                ClosableScreen highestLevelScreen3 = screenController.GetHighestLevelScreen <ClosableScreen>();
                if (Service.CurrentPlayer.CampaignProgress.FueInProgress || Service.UserInputInhibitor.IsDenying())
                {
                    if (highestLevelScreen2 != null && highestLevelScreen2.AllowFUEBackButton && this.HandleScreenBack(highestLevelScreen2))
                    {
                        return;
                    }
                    this.TryQuit();
                    return;
                }
                else
                {
                    if (highestLevelScreen2 != null && this.HandleScreenBack(highestLevelScreen2))
                    {
                        return;
                    }
                    if (highestLevelScreen3 != null && this.HandleScreenBack(highestLevelScreen3))
                    {
                        return;
                    }
                }
            }
            if (currentState is EditBaseState)
            {
                HomeState.GoToHomeState(null, false);
                return;
            }
            if (Service.BuildingController != null)
            {
                BuildingController buildingController = Service.BuildingController;
                if (buildingController.SelectedBuilding != null)
                {
                    buildingController.EnsureDeselectSelectedBuilding();
                    return;
                }
            }
            if (currentState is BaseLayoutToolState)
            {
                UXController uXController = Service.UXController;
                uXController.HUD.BaseLayoutToolView.CancelBaseLayoutTool();
                return;
            }
            if (Service.GalaxyViewController != null && currentState is GalaxyState)
            {
                GalaxyViewController galaxyViewController = Service.GalaxyViewController;
                galaxyViewController.GoToHome();
                return;
            }
            this.TryQuit();
        }
Exemple #34
0
 /// <summary>
 /// Puts to end the home state.
 /// </summary>
 public void EndHomeState()
 {
     this.State = HomeState.None;
 }
        public void CreateRoomShouldCreateRoomInExistingState()
        {
            HomeState stateHolder = new HomeState();
            const string roomName = "bedroom";
            DateTime date = new DateTime(2015, 01, 05);
            stateHolder.CreateRoom(roomName, date);
            var history = stateHolder.GetHistory();

            Assert.AreEqual(1, history.Count);
            stateHolder.CreateRoom(roomName, date);
            Assert.AreEqual(1, history.Count);
            Assert.AreEqual(2, history.First().Value.GetRooms().Count);
        }
        public override int GetHashCode()
        {
            int hash = 1;

            if (GivenName.Length != 0)
            {
                hash ^= GivenName.GetHashCode();
            }
            if (GivenName2.Length != 0)
            {
                hash ^= GivenName2.GetHashCode();
            }
            if (FamilyName.Length != 0)
            {
                hash ^= FamilyName.GetHashCode();
            }
            if (Email.Length != 0)
            {
                hash ^= Email.GetHashCode();
            }
            if (HomePhone.Length != 0)
            {
                hash ^= HomePhone.GetHashCode();
            }
            if (MobilePhone.Length != 0)
            {
                hash ^= MobilePhone.GetHashCode();
            }
            if (FaxNumber.Length != 0)
            {
                hash ^= FaxNumber.GetHashCode();
            }
            if (OfficePhone.Length != 0)
            {
                hash ^= OfficePhone.GetHashCode();
            }
            if (OfficeAddress1.Length != 0)
            {
                hash ^= OfficeAddress1.GetHashCode();
            }
            if (OfficeAddress2.Length != 0)
            {
                hash ^= OfficeAddress2.GetHashCode();
            }
            if (OfficeCity.Length != 0)
            {
                hash ^= OfficeCity.GetHashCode();
            }
            if (OfficeState.Length != 0)
            {
                hash ^= OfficeState.GetHashCode();
            }
            if (OfficeZip.Length != 0)
            {
                hash ^= OfficeZip.GetHashCode();
            }
            if (OfficeNation.Length != 0)
            {
                hash ^= OfficeNation.GetHashCode();
            }
            if (HomeAddress1.Length != 0)
            {
                hash ^= HomeAddress1.GetHashCode();
            }
            if (HomeAddress2.Length != 0)
            {
                hash ^= HomeAddress2.GetHashCode();
            }
            if (HomeCity.Length != 0)
            {
                hash ^= HomeCity.GetHashCode();
            }
            if (HomeState.Length != 0)
            {
                hash ^= HomeState.GetHashCode();
            }
            if (HomeZip.Length != 0)
            {
                hash ^= HomeZip.GetHashCode();
            }
            if (HomeNation.Length != 0)
            {
                hash ^= HomeNation.GetHashCode();
            }
            if (CompanyName.Length != 0)
            {
                hash ^= CompanyName.GetHashCode();
            }
            return(hash);
        }
 public void CanRemoveRoomWithoutFurniture()
 {
     HomeState stateHolder = new HomeState();
     DateTime date = DateTime.Now;
     const string roomName = "bedroom";
     stateHolder.CreateRoom(roomName, date);
     stateHolder.RemoveRoom(roomName, null, date);
     Assert.AreEqual(0, stateHolder.GetHistory()[date].GetRooms().Count);
     stateHolder.CreateRoom(roomName, date);
     stateHolder.RemoveRoom(roomName, roomName, date);
     Assert.AreEqual(0, stateHolder.GetHistory()[date].GetRooms().Count);
 }
 public void CanMoveFurniture()
 {
     HomeState stateHolder = new HomeState();
     DateTime date = new DateTime(2015, 01, 01);
     const string roomName = "bedroom";
     const string anotherRoom = "anotherRoom";
     const string furnitureName = "sofa";
     stateHolder.CreateFurniture(furnitureName, roomName, date);
     stateHolder.CreateRoom(anotherRoom, date);
     stateHolder.MoveFurniture(furnitureName, roomName, anotherRoom, date);
 }
 public void RemoveRoomShouldThrowNoHomeForThisDateExceptionWhenNoDateFound()
 {
     HomeState stateHolder = new HomeState();
     stateHolder.RemoveRoom("some room", "other room", DateTime.Now);
 }
        public void CreateRoomShouldContainAllRoomsFromPreviousState()
        {
            HomeState stateHolder = new HomeState();
            const string roomName = "bedroom";
            DateTime date = new DateTime(2015, 01, 05);
            stateHolder.CreateRoom(roomName, date);
            var history = stateHolder.GetHistory();

            Assert.AreEqual(1, history.Count);
            DateTime newDate = new DateTime(2015, 01, 06);
            stateHolder.CreateRoom(roomName, newDate);

            Assert.AreEqual(2, history.Count);
            Assert.AreEqual(2, history.Last().Value.GetRooms().Count);
        }
 public void TiggerHomeState(object sender, HomeStateEventArgs args)
 {
     HomeState.Invoke(sender, args);
 }