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(); } }