public override DeploymentPage MakePage(DeploymentPane Pane, UnitConfigurationRenderer Renderer)
 {
     _DeploymentPage = new ConvoyDeploymentPage(_Deployment, Renderer, Pane);
     _DeploymentPage.OnLoadAction   += HandleLoad;
     _DeploymentPage.OnUnloadAction += HandleUnload;
     return(_DeploymentPage);
 }
예제 #2
0
        public ConvoyDeploymentPage(
            ConvoyDeployment Deployment, UnitConfigurationRenderer Renderer, DeploymentPane Pane)
        {
            _Deployment = Deployment;
            _Renderer   = Renderer;

            _MoveUpButton.OnClick   += HandleMoveUp;
            _MoveDownButton.OnClick += HandleMoveDown;
            _LoadButton.OnClick     += HandleLoadButton;
            _UnloadButton.OnClick   += HandleUnloadButton;

            _Selection = new ValuedScrollCollection <SingularUnitSelectionOption, StackView>("deployment-select");

            var units = Deployment.Units.ToList();

            units.Sort(new FluentComparator <Unit>(i => i.Configuration.IsVehicle)
                       .ThenCompare(i => i.Configuration.IsArmored)
                       .ThenCompare(i => i.Configuration.UnitClass != UnitClass.TRANSPORT)
                       .ThenCompare(i => i.Configuration.Movement)
                       .Invert());
            foreach (Unit u in units)
            {
                u.OnLoad   += HandleLoad;
                u.OnUnload += HandleUnload;

                var option = new SingularUnitSelectionOption("deployment-selection-option", u, _Renderer);
                _Selection.Add(option);
            }

            _Selection.Position      = new Vector2f(0, 48);
            _LoadButton.Position     = new Vector2f(0, Pane.Size.Y - _LoadButton.Size.Y - 32);
            _UnloadButton.Position   = new Vector2f(_LoadButton.Size.X + 8, Pane.Size.Y - _UnloadButton.Size.Y - 32);
            _MoveUpButton.Position   = new Vector2f(0, Pane.Size.Y - _LoadButton.Size.Y - _MoveUpButton.Size.Y - 36);
            _MoveDownButton.Position = new Vector2f(
                _MoveUpButton.Size.X + 8, Pane.Size.Y - _UnloadButton.Size.Y - _MoveDownButton.Size.Y - 36);

            Add(_Selection);
            Add(_LoadButton);
            Add(_UnloadButton);
            Add(_MoveUpButton);
            Add(_MoveDownButton);
        }
예제 #3
0
        public override void Begin()
        {
            base.Begin();

            _DeploymentPane = new DeploymentPane();
            _DeploymentPane.OnDeploymentSelected += HandleDeploymentSelected;
            _DeploymentMicrocontrollers.Clear();
            foreach (Deployment d in _Controller.CurrentTurn.Army.Deployments)
            {
                DeploymentMicrocontroller c;
                if (d is PositionalDeployment)
                {
                    c = new PositionalDeploymentMicrocontroller(
                        _Controller, (PositionalDeployment)d);
                }
                else
                {
                    c = new ConvoyDeploymentMicrocontroller(_Controller, (ConvoyDeployment)d);
                }
                _DeploymentMicrocontrollers.Add(d, c);
                _DeploymentPane.AddPage(c.MakePage(_DeploymentPane, _Controller.UnitConfigurationRenderer));
            }
            _Controller.AddPane(_DeploymentPane);
        }
예제 #4
0
 public override DeploymentPage MakePage(DeploymentPane Pane, UnitConfigurationRenderer Renderer)
 {
     _DeploymentPage = new PositionalDeploymentPage(_Deployment, Renderer);
     _DeploymentPage.OnSelectedStack += HighlightDeploymentArea;
     return(_DeploymentPage);
 }