public QuestStateMachine(GameManager gameManager, GameDevice gameDevice)
        {
            this.gameDevice  = gameDevice;
            this.gameManager = gameManager;
            states           = new Dictionary <GuildState, IGuildState>();
            states.Add(GuildState.Menu, new GuildMenu(gameManager, gameDevice));
            states.Add(GuildState.SelectQuestRank, new SelectQuestRank(gameManager, gameDevice));
            states.Add(GuildState.GetQuest, new GetQuest(gameManager, gameDevice));
            states.Add(GuildState.GetAward, new GetReward(gameManager, gameDevice));

            currentState  = GuildState.Menu;
            currentSystem = states[GuildState.Menu];
            currentSystem.Initialize();
            gameManager.EnemyName.Load();
        }
        public void Update()
        {
            if (currentState == GuildState.End)
            {
                return;
            }

            currentSystem.Update();

            if (currentSystem.IsEnd())
            {
                currentState = currentSystem.NextState();
                currentSystem.ShutDown();

                if (currentState == GuildState.End)
                {
                    return;
                }
                currentSystem = states[currentState];
                currentSystem.Initialize();
            }
        }