예제 #1
0
        /// <summary>
        /// Initializes the State
        /// </summary>
        public override void Initialize()
        {
            gTargetState = eGameState.gsGame;
            eCurrentMap  = eMapState.ssMain;

            mMainMap = new MainMap();
        }
예제 #2
0
 /// <summary>
 /// Changes the current Map State if it's not equal to the target State
 /// </summary>
 /// <param name="mState">Map State to be disposed</param>
 private void DisposeState(MapState mState)
 {
     if (eTargetMap != eCurrentMap)
     {
         ePreviousMap = eCurrentMap;
         eCurrentMap  = eTargetMap;
     }
 }
예제 #3
0
 /// <summary>
 /// Initializes a Map State when the Map State just changed
 /// </summary>
 /// <param name="mState">Map State to be initialized</param>
 private void InitializeState(MapState mState)
 {
     if (ePreviousMap != eCurrentMap)
     {
         mState.Initialize();
         ePreviousMap = eCurrentMap;
     }
 }
예제 #4
0
        /// <summary>
        /// Updates the State and manages Maps
        /// </summary>
        /// <param name="rWindow">Needed to Calculate MousePosition from its origin</param>
        /// <returns>gTargetState</returns>
        public override eGameState Update(RenderWindow rWindow)
        {
            switch (eCurrentMap)
            {
            case eMapState.ssMain:
                InitializeState(mMainMap);
                eTargetMap = mMainMap.Update(rWindow);
                DisposeState(mMainMap);
                break;
            }

            if (Player.GetHealth() <= 0)
            {
                gTargetState = eGameState.gsGameOver;
            }

            return(gTargetState);
        }