public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _Context = ProgramStateContext; var context = (ScenarioBuilderContext)_Context; var builder = context.ScenarioBuilder.Armies.First(i => !i.Validate()); var renderer = new UnitConfigurationRenderer( GameData.UnitConfigurationLinks.Values .Where(builder.Parameters.Matches) .Select(i => i.UnitConfiguration), GameData.UnitRenderDetails, 128, 1024, ClassLibrary.Instance.GetFont("compacta")); var screen = new ArmyBuilderScreen( ProgramContext.ScreenResolution, GameData.UnitConfigurationLinks.Values, builder.Parameters, renderer); screen.OnMainMenuButtonClicked += HandleBack; _Controller = new ArmyBuilderController(builder, screen, renderer); _Controller.OnFinished += HandleFinished; return(screen); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { var screen = new EditScreen( ProgramContext.ScreenResolution, new Map(11, 33, null, new IdGenerator()), GameData.TileRenderers.Values.First()); _Controller = new EditController(screen); return(screen); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _Context = ProgramStateContext; var screen = new LogInPlayerScreen(ProgramContext.ScreenResolution); _Controller = new LogInPlayerController(screen); _Controller.OnLogIn += HandleLogIn; screen.OnRegister += HandleRegister; screen.OnMainMenuButtonClicked += HandleBack; return(screen); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _Context = ProgramStateContext; var context = (MatchContext)ProgramStateContext; var factionRenderer = new FactionRenderer(context.Match.Scenario, GameData.FactionRenderDetails, 512, 1024); var screen = new MatchEndScreen(context.Match, ProgramContext.ScreenResolution, factionRenderer); screen.OnMainMenuButtonClicked += HandleBack; _Controller = new MatchEndController(screen, context); return(screen); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _Context = ProgramStateContext; var scenarioSelect = new ScenarioSelectScreen(ProgramContext.ScreenResolution, GameData.Scenarios); scenarioSelect.OnScenarioSelected += HandleStartScenario; scenarioSelect.OnMainMenuButtonClicked += HandleBack; return(scenarioSelect); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _Context = ProgramStateContext; var scenarioSelect = new MatchRecordSelectScreen( ProgramContext.ScreenResolution, string.Format("./MatchRecords/{0}", GameData.LoadedModule)); scenarioSelect.OnMatchRecordSelected += HandleStartScenario; scenarioSelect.OnMainMenuButtonClicked += HandleBack; return(scenarioSelect); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { var screen = new LandingScreen(ProgramContext.ScreenResolution); screen.LocalMatchButton.OnClick += HandleLocalMatch; screen.HostMatchButton.OnClick += HandleHostMatch; screen.LocalMatchRecordButton.OnClick += HandleLocalMatchRecord; screen.EditButton.OnClick += HandleEdit; screen.ScenarioBuilderButton.OnClick += HandleBuildScenario; screen.JoinServerButton.OnClick += HandleJoinServer; screen.StartServerButton.OnClick += HandleStartServer; _Controller = new LandingController(screen); _Controller.OnConnectionSetup += HandleJoinRemoteMatch; return(screen); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { var defaultParameters = new ScenarioParameters( 1939, GameData.MatchSettings.Values.First(), 8, new Coordinate(33, 33), false); _ScenarioBuilder = new ScenarioBuilder(defaultParameters); var screen = new ScenarioBuilderScreen(ProgramContext.ScreenResolution, _ScenarioBuilder); screen.OnMainMenuButtonClicked += HandleBack; _Controller = new ScenarioBuilderController(_ScenarioBuilder, screen); _Controller.OnFinished += HandleFinished; return(screen); }
public void EnterState(ProgramState ProgramState, ProgramStateContext ProgramStateContext) { _ProgramState = ProgramState; var newController = (ProgramStateController)_ProgramStateControllers[ProgramState] .GetConstructor(new Type[] { }).Invoke(new object[] { }); newController.OnProgramStateTransition += HandleStateChange; if (_Controller != null) { _Controller.OnProgramStateTransition -= HandleStateChange; } _Controller = newController; Interface.Screen.Clear(); Interface.Screen.Add(newController.SetupState(ProgramContext, ProgramStateContext)); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _Context = ProgramStateContext; var context = (MatchLobbyContext)_Context; var screen = new MatchLobbyScreen( ProgramContext.ScreenResolution, context.IsHost, context.Lobby, context.Chat, GameData.Player, GameData.Scenarios); _Controller = new MatchLobbyController(context.MakeMatchLobbyAdapter(), screen); _ChatController = new ChatController(context.MakeChatAdapter(), screen.ChatView, GameData.Player); context.Lobby.OnLaunched += _LaunchBuffer.Hook <ValuedEventArgs <Scenario> >(HandleLaunch).Invoke; screen.OnPulse += HandlePulse; screen.OnMainMenuButtonClicked += HandleBack; return(screen); }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _Context = (MatchContext)ProgramStateContext; _MatchEndBuffer = new EventBuffer <EventArgs>(); var renderer = new UnitConfigurationRenderer( _Context.Match.Scenario, GameData.UnitRenderDetails, 128, 1024, ClassLibrary.Instance.GetFont("compacta")); var factionRenderer = new FactionRenderer(_Context.Match.Scenario, GameData.FactionRenderDetails, 512, 1024); var armies = new HashSet <Army>(_Context.GetPlayerControlledArmies()); var screen = new MatchScreen( ProgramContext.ScreenResolution, _Context.Match, armies, GameData.TileRenderers[_Context.Match.Scenario.Environment.UniqueKey], renderer, factionRenderer); var controller = new HumanMatchPlayerController( _Context.MakeMatchAdapter(), armies, renderer, screen, ProgramContext.KeyController); var playerControllers = new Dictionary <Army, MatchPlayerController>(); foreach (Army a in _Context.Match.Armies) { // var controller = new AIMatchPlayerController(_Context.MakeMatchAdapter(), a); var overrideController = _Context.GetOverridePlayerController(a); playerControllers.Add(a, overrideController ?? controller); } _MatchController = new MatchController(_Context.Match, playerControllers); screen.OnPulse += HandlePulse; _Context.Match.OnMatchEnded += _MatchEndBuffer.Hook <EventArgs>(HandleMatchEnd).Invoke; _Context.Match.Start(); return(screen); }
public ProgramStateTransitionEventArgs(ProgramState TransitionState, ProgramStateContext ProgramStateContext) { this.TransitionState = TransitionState; this.ProgramStateContext = ProgramStateContext; }
public override Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext) { _ServerContext = (ServerContext)ProgramStateContext; return(new ServerScreen(ProgramContext.ScreenResolution)); }
public abstract Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext);