Exemplo n.º 1
0
        /// @param data
        ///     The json data
        ///
        public void Deserialize(object data)
        {
            var jsonData = data.AsDictionary();

            if (jsonData.ContainsKey(k_keyLevels))
            {
                int index     = 0;
                var levelData = jsonData[k_keyLevels] as IEnumerable;
                foreach (var value in levelData)
                {
                    LevelModel level = value.AsSerializable <LevelModel>();
                    level.m_index = index++;
                    m_levels.Add(level);
                }
            }

            if (m_levels.Count == 0)
            {
                // Ensure the first level is accessible
                m_levels.Add(new LevelModel()
                {
                    m_nodeState = NodeState.Open
                });
            }
            m_loaded = true;
        }
Exemplo n.º 2
0
        /// @param localDirector
        ///     The local director owner of the Controller
        /// @param view
        ///     The view of the scene
        /// @param cameraController
        ///     The camera controller
        ///
        public MapNodeController(LocalDirector localDirector, MapNodeView view)
            : base(localDirector, view)
        {
            m_audioService = GlobalDirector.Service <AudioService>();
            m_popupService = GlobalDirector.Service <PopupService>();
            m_levelService = GlobalDirector.Service <LevelService>();

            MapNodeView = view;
            LevelModel  = m_levelService.GetLevelModel(MapNodeView.LevelIndex);
            MapNodeView.SetName(MapNodeView.LevelIndex.ToString());

            m_fsm.RegisterStateCallback(k_stateInit, EnterStateInit, null, null);
            m_fsm.RegisterStateCallback(k_stateIdle, EnterStateIdle, null, ExitStateIdle);
            m_fsm.RegisterStateCallback(k_stateLocked, EnterStateLocked, null, ExitStateLocked);
            m_fsm.RegisterStateCallback(k_stateUnlock, null, null, ExitStateUnlock);
            m_fsm.RegisterStateCallback(k_stateDone, EnterStateDone, null, ExitStateDone);
            m_fsm.ExecuteAction(k_actionNext);
        }