Example #1
0
        /// <summary>
        /// Setups the Adventure gameplay state
        /// </summary>
        public void Setup(IStateFactory stateFactory)
        {
            var initial         = stateFactory.Initial("Initial");
            var final           = stateFactory.Final("Final");
            var gameplayLoading = stateFactory.TaskWait("Gameplay Loading");
            var gameplay        = stateFactory.State("Gameplay");

            initial.Transition().Target(gameplayLoading);
            initial.OnExit(SubscribeEvents);

            gameplayLoading.WaitingFor(LoadGameplay).Target(gameplay);

            gameplay.OnEnter(OpenGameplayUi);

            final.OnEnter(UnsubscribeEvents);
        }
        /// <summary>
        /// Setups the Initial Loading state
        /// </summary>
        public void Setup(IStateFactory stateFactory)
        {
            var initial     = stateFactory.Initial("Initial");
            var final       = stateFactory.Final("Final");
            var dataLoading = stateFactory.TaskWait("Initial device data loading");
            var uiLoading   = stateFactory.TaskWait("Initial Ui loading");

            initial.Transition().Target(dataLoading);
            initial.OnExit(SubscribeEvents);

            dataLoading.OnEnter(InitPlugins);
            dataLoading.OnEnter(LoadGameData);
            dataLoading.WaitingFor(LoadConfigs).Target(uiLoading);
            dataLoading.OnExit(_gameLogic.Init);

            uiLoading.WaitingFor(LoadInitialUi).Target(final);

            final.OnEnter(UnsubscribeEvents);
        }