Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 12
0
 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));
 }
Exemplo n.º 14
0
 public abstract Pod SetupState(ProgramContext ProgramContext, ProgramStateContext ProgramStateContext);