Exemplo n.º 1
0
        public SquadsPage()
        {
            Pages.pages[PageName.Squads] = this;
            InitializeComponent();

            contentWrapPanel      = new AlignableWrapPanel();
            contentWrapPanel.Name = "contentWrapPanel";
            contentWrapPanel.HorizontalContentAlignment = HorizontalAlignment.Center;
            contentScrollViewer.Content = contentWrapPanel;

            ImageButton addImperialBuild = new ImageButton("add_imperial_squad", 0.5);

            addImperialBuild.MouseDown += new MouseButtonEventHandler(AddImperialBuildClicked);
            addImperialBuild.Margin     = ScaledThicknessFactory.GetThickness(2, 5, 2, 2);
            topToolsWrapPanel.Children.Add(addImperialBuild);

            ImageButton addRebelBuild = new ImageButton("add_rebel_squad", 0.5);

            addRebelBuild.MouseDown += new MouseButtonEventHandler(AddRebelBuildClicked);
            addRebelBuild.Margin     = ScaledThicknessFactory.GetThickness(2, 5, 2, 2);
            topToolsWrapPanel.Children.Add(addRebelBuild);

            ImageButton addScumBuild = new ImageButton("add_scum_squad", 0.5);

            addScumBuild.MouseDown += new MouseButtonEventHandler(AddScumBuildClicked);
            addScumBuild.Margin     = ScaledThicknessFactory.GetThickness(2, 5, 2, 2);
            topToolsWrapPanel.Children.Add(addScumBuild);

            ImageButton browseCards = new ImageButton("browse_cards", 0.5);

            browseCards.MouseDown += new MouseButtonEventHandler(BrowseCardsClicked);
            browseCards.Margin     = ScaledThicknessFactory.GetThickness(60, 5, 2, 2);
            topToolsWrapPanel.Children.Add(browseCards);

            ImageButton quiz = new ImageButton("quiz", 0.5);

            quiz.MouseDown += new MouseButtonEventHandler(QuizClicked);
            quiz.Margin     = ScaledThicknessFactory.GetThickness(2, 5, 2, 2);
            topToolsWrapPanel.Children.Add(quiz);

            //manuNavigationWrapPanel.Width =

            /*
             * Slider zoom = new Slider();
             * zoom.Value = 1;
             * zoom.Width = 70;
             * zoom.Minimum = 0.33;
             * zoom.Maximum = 3;
             * zoom.VerticalAlignment = VerticalAlignment.Center;
             * zoom.ValueChanged += new RoutedPropertyChangedEventHandler<double>(ZoomChanged);
             * topToolsWrapPanel.Children.Add(zoom);
             */
        }
Exemplo n.º 2
0
        protected override void DisplayContent()
        {
            AlignableWrapPanel inputWrapPanel = new AlignableWrapPanel();

            inputWrapPanel.HorizontalContentAlignment = HorizontalAlignment.Center;
            inputWrapPanel.Margin = ScaledThicknessFactory.GetThickness(0, 90, 0, 0);


            RadioButton attackingRadioButton = new RadioButton();

            attackingRadioButton.Name      = "attackingRadioButton";
            attackingRadioButton.Content   = "Attacking";
            attackingRadioButton.Checked  += AttackDefendChecked;
            attackingRadioButton.IsChecked = true;
            inputWrapPanel.Children.Add(attackingRadioButton);

            RadioButton defendingRadioButton = new RadioButton();

            defendingRadioButton.Name      = "defendingRadioButton";
            defendingRadioButton.Content   = "Defending";
            defendingRadioButton.Checked  += AttackDefendChecked;
            defendingRadioButton.IsChecked = false;
            inputWrapPanel.Children.Add(defendingRadioButton);

            ComboBox numberOfDieComboBox = new ComboBox();

            numberOfDieComboBox.Name            = "numberOfDie";
            numberOfDieComboBox.DropDownClosed += NumberOfDieChanged;
            numberOfDieComboBox.Items.Add(1);
            numberOfDieComboBox.Items.Add(2);
            numberOfDieComboBox.Items.Add(3);
            numberOfDieComboBox.Items.Add(4);
            numberOfDieComboBox.Items.Add(5);
            numberOfDieComboBox.Items.Add(6);
            numberOfDieComboBox.Items.Add(7);
            numberOfDieComboBox.Items.Add(8);
            numberOfDieComboBox.Items.Add(9);
            numberOfDieComboBox.Items.Add(10);
            inputWrapPanel.Children.Add(numberOfDieComboBox);

            contentScrollViewer.Content = inputWrapPanel;
        }
Exemplo n.º 3
0
        protected override void DisplayContent()
        {
            contentWrapPanel.Children.Clear();
            foreach (Upgrade upgrade in Upgrades.upgrades.Values)
            {
                upgrade.cardCanvasList.Clear();
            }
            foreach (Pilot pilot in Pilots.pilots.Values)
            {
                pilot.cardCanvasList.Clear();
            }

            foreach (Build build in Builds.builds.OrderByDescending(build => build.displayOrder).ToList())
            {
                AlignableWrapPanel buildWrapPanel = new AlignableWrapPanel();
                buildWrapPanel.HorizontalContentAlignment = HorizontalAlignment.Center;

                AlignableWrapPanel spacerWrapPanel = new AlignableWrapPanel();
                spacerWrapPanel.HorizontalContentAlignment = HorizontalAlignment.Center;

                Canvas topSpacer = new Canvas();
                topSpacer.Width  = 99999;
                topSpacer.Height = Opt.ApResMod(50);
                spacerWrapPanel.Children.Add(topSpacer);

                ImageButton addPilotButton = new ImageButton("add_pilot", 0.5);
                addPilotButton.uniqueBuildId = build.uniqueBuildId;
                addPilotButton.MouseDown    += new MouseButtonEventHandler(AddPilotClicked);
                addPilotButton.Margin        = ScaledThicknessFactory.GetThickness(2, 0, 2, 0);
                spacerWrapPanel.Children.Add(addPilotButton);

                ImageButton upButton = new ImageButton("up", 0.5);
                upButton.uniqueBuildId = build.uniqueBuildId;
                upButton.MouseDown    += new MouseButtonEventHandler(UpClicked);
                upButton.Margin        = ScaledThicknessFactory.GetThickness(2, 0, 2, 0);
                spacerWrapPanel.Children.Add(upButton);

                ImageButton downButton = new ImageButton("down", 0.5);
                downButton.uniqueBuildId = build.uniqueBuildId;
                downButton.MouseDown    += new MouseButtonEventHandler(DownClicked);
                downButton.Margin        = ScaledThicknessFactory.GetThickness(2, 0, 2, 0);
                spacerWrapPanel.Children.Add(downButton);

                OutlinedTextBlock copyFor = new OutlinedTextBlock();
                copyFor.Text            = "COPY FOR";
                copyFor.StrokeThickness = Opt.ApResMod(0.5);
                copyFor.Stroke          = new SolidColorBrush(Color.FromRgb(40, 40, 40));
                copyFor.FontWeight      = FontWeights.Bold;
                copyFor.Fill            = new SolidColorBrush(Color.FromRgb(80, 80, 80));
                copyFor.FontSize        = Opt.ApResMod(15);
                copyFor.FontFamily      = new FontFamily("Segoe UI");
                copyFor.Margin          = ScaledThicknessFactory.GetThickness(2, 3, 2, 0);
                spacerWrapPanel.Children.Add(copyFor);

                ComboBox copyForOption = new ComboBox();
                copyForOption.Items.Add("Vassal 7.0.3+");
                copyForOption.Items.Add("Facebook");
                copyForOption.Items.Add("BBCode");
                copyForOption.Items.Add("Reddit");
                copyForOption.Items.Add("Text");
                copyForOption.HorizontalContentAlignment = HorizontalAlignment.Left;
                copyForOption.VerticalContentAlignment   = VerticalAlignment.Center;
                copyForOption.SelectedIndex = 0;
                copyForOption.FontSize      = Opt.ApResMod(13);
                copyForOption.FontFamily    = new FontFamily("Segoe UI");
                copyForOption.Margin        = ScaledThicknessFactory.GetThickness(2, 3, 2, 3);
                copyForOption.Padding       = ScaledThicknessFactory.GetThickness(3, 0, 3, 0);
                spacerWrapPanel.Children.Add(copyForOption);
                comboBoxes[build.uniqueBuildId] = copyForOption;

                ImageButton copy = new ImageButton("copy", 0.5);
                copy.uniqueBuildId = build.uniqueBuildId;
                copy.MouseDown    += new MouseButtonEventHandler(CopyClicked);
                copy.Margin        = ScaledThicknessFactory.GetThickness(2, 0, 2, 0);
                spacerWrapPanel.Children.Add(copy);

                ImageButton deleteBuildButton = new ImageButton("delete_squad", 0.5);
                deleteBuildButton.uniqueBuildId = build.uniqueBuildId;
                deleteBuildButton.MouseDown    += new MouseButtonEventHandler(DeleteBuildClicked);
                deleteBuildButton.Margin        = ScaledThicknessFactory.GetThickness(2, 0, 2, 0);
                spacerWrapPanel.Children.Add(deleteBuildButton);

                Canvas bottomSpacer = new Canvas();
                bottomSpacer.Width  = 99999;
                bottomSpacer.Height = 1;
                spacerWrapPanel.Children.Add(bottomSpacer);

                OutlinedTextBlock totalCost = new OutlinedTextBlock();
                totalCost.Text            = "TOTAL COST";
                totalCost.StrokeThickness = Opt.ApResMod(0.5);
                totalCost.Stroke          = new SolidColorBrush(Color.FromRgb(40, 40, 40));
                totalCost.FontWeight      = FontWeights.Bold;
                totalCost.Fill            = new SolidColorBrush(Color.FromRgb(80, 80, 80));
                totalCost.FontSize        = Opt.ApResMod(15);
                totalCost.FontFamily      = new FontFamily("Segoe UI");
                totalCost.Margin          = ScaledThicknessFactory.GetThickness(2, 3, 0, 0);
                spacerWrapPanel.Children.Add(totalCost);

                OutlinedTextBlock totalCost2 = new OutlinedTextBlock();
                totalCost2.Text            = ": " + build.totalCost.ToString();
                totalCost2.StrokeThickness = Opt.ApResMod(0.5);
                totalCost2.Stroke          = new SolidColorBrush(Color.FromRgb(40, 40, 40));
                totalCost2.FontWeight      = FontWeights.Bold;
                totalCost2.Fill            = new SolidColorBrush(Color.FromRgb(80, 80, 80));
                totalCost2.FontSize        = Opt.ApResMod(18);
                totalCost2.FontFamily      = new FontFamily("Segoe UI");
                totalCost2.Margin          = ScaledThicknessFactory.GetThickness(2, 0, 0, 0);
                spacerWrapPanel.Children.Add(totalCost2);

                buildWrapPanel.Children.Add(spacerWrapPanel);


                foreach (UniquePilot uniquePilot in build.pilots.Values.OrderByDescending(uniquePilot => uniquePilot.pilot.pilotSkill).ThenByDescending(uniquePilot => uniquePilot.pilot.cost).ToList())
                {
                    StackPanel pilotAndUpgradeInfoStackPanel = new StackPanel();
                    pilotAndUpgradeInfoStackPanel.Orientation = Orientation.Horizontal;


                    StackPanel pilotAndControlls = new StackPanel();
                    pilotAndControlls.Orientation       = Orientation.Vertical;
                    pilotAndControlls.VerticalAlignment = VerticalAlignment.Top;

                    CardCanvas pilotCanvas = uniquePilot.pilot.GetCanvas(pilotCardWidth, pilotCardHeight, new Thickness(2, 2, 2, 2), this);
                    pilotCanvas.AddDeleteButtonEvent(this, build.uniqueBuildId, uniquePilot.id);
                    pilotAndControlls.Children.Add(pilotCanvas);

                    StackPanel controls = new StackPanel();
                    controls.Orientation = Orientation.Horizontal;

                    ImageButton addUpgradeButton = new ImageButton("add_upgrade", 0.5);
                    addUpgradeButton.uniquePilotId = uniquePilot.id;
                    addUpgradeButton.uniqueBuildId = build.uniqueBuildId;
                    addUpgradeButton.MouseDown    += new MouseButtonEventHandler(AddUpgradeClicked);
                    addUpgradeButton.Margin        = ScaledThicknessFactory.GetThickness(2, 10, 2, 0);
                    controls.Children.Add(addUpgradeButton);

                    ImageButton swapPilotButton = new ImageButton("swap_pilot", 0.5);
                    swapPilotButton.uniquePilotId = uniquePilot.id;
                    swapPilotButton.uniqueBuildId = build.uniqueBuildId;
                    swapPilotButton.MouseDown    += new MouseButtonEventHandler(SwapPilotClicked);
                    swapPilotButton.Margin        = ScaledThicknessFactory.GetThickness(2, 10, 2, 0);
                    controls.Children.Add(swapPilotButton);

                    OutlinedTextBlock pilotAndUpgradesCost = new OutlinedTextBlock();
                    pilotAndUpgradesCost.Text            = "COST";
                    pilotAndUpgradesCost.StrokeThickness = Opt.ApResMod(0.5);
                    pilotAndUpgradesCost.Stroke          = new SolidColorBrush(Color.FromRgb(40, 40, 40));
                    pilotAndUpgradesCost.FontWeight      = FontWeights.Bold;
                    pilotAndUpgradesCost.Fill            = new SolidColorBrush(Color.FromRgb(80, 80, 80));
                    pilotAndUpgradesCost.FontSize        = Opt.ApResMod(15);
                    pilotAndUpgradesCost.FontFamily      = new FontFamily("Segoe UI");
                    pilotAndUpgradesCost.Margin          = ScaledThicknessFactory.GetThickness(2, 13, 0, 0);
                    controls.Children.Add(pilotAndUpgradesCost);

                    OutlinedTextBlock pilotAndUpgradesCost2 = new OutlinedTextBlock();
                    pilotAndUpgradesCost2.Text            = ": " + uniquePilot.totalCost.ToString();
                    pilotAndUpgradesCost2.StrokeThickness = Opt.ApResMod(0.5);
                    pilotAndUpgradesCost2.Stroke          = new SolidColorBrush(Color.FromRgb(40, 40, 40));
                    pilotAndUpgradesCost2.FontWeight      = FontWeights.Bold;
                    pilotAndUpgradesCost2.Fill            = new SolidColorBrush(Color.FromRgb(80, 80, 80));
                    pilotAndUpgradesCost2.FontSize        = Opt.ApResMod(18);
                    pilotAndUpgradesCost2.FontFamily      = new FontFamily("Segoe UI");
                    pilotAndUpgradesCost2.Margin          = ScaledThicknessFactory.GetThickness(2, 10, 0, 0);
                    controls.Children.Add(pilotAndUpgradesCost2);

                    pilotAndControlls.Children.Add(controls);
                    pilotAndUpgradeInfoStackPanel.Children.Add(pilotAndControlls);

                    int        currentUpgradeNumber = 0;
                    StackPanel upgradesStackPanel   = new StackPanel();
                    upgradesStackPanel.Orientation       = Orientation.Vertical;
                    upgradesStackPanel.VerticalAlignment = VerticalAlignment.Top;
                    foreach (KeyValuePair <int, Upgrade> upgrade in uniquePilot.upgrades.OrderBy(upgrade => upgrade.Value.upgradeType.ToString()).ThenByDescending(upgrade => upgrade.Value.cost).ThenByDescending(upgrade => upgrade.Value.name))
                    {
                        CardCanvas upgradeCanvas = upgrade.Value.GetCanvas(upgradeCardWidth, upgradeCardHeight, new Thickness(2, 2, 2, 2), this);
                        upgradeCanvas.AddDeleteButtonEvent(this, build.uniqueBuildId, uniquePilot.id);
                        upgradesStackPanel.Children.Add(upgradeCanvas);

                        if (currentUpgradeNumber % 2 == 1)
                        {
                            pilotAndUpgradeInfoStackPanel.Children.Add(upgradesStackPanel);
                            upgradesStackPanel = new StackPanel();
                        }

                        currentUpgradeNumber++;
                    }
                    if (currentUpgradeNumber % 2 == 1)
                    {
                        pilotAndUpgradeInfoStackPanel.Children.Add(upgradesStackPanel);
                    }
                    pilotAndUpgradeInfoStackPanel.Margin = ScaledThicknessFactory.GetThickness(10, 20, 10, 0);
                    buildWrapPanel.Children.Add(pilotAndUpgradeInfoStackPanel);
                }
                contentWrapPanel.Children.Add(buildWrapPanel);
            }
        }
        public void AddCard(Card cardInfo, bool isUpgrade)
        {
            double cardWidth;
            double cardHeight;

            if (isUpgrade)
            {
                cardWidth  = upgradeCardWidth;
                cardHeight = upgradeCardHeight;
            }
            else
            {
                cardWidth  = pilotCardWidth;
                cardHeight = pilotCardHeight;
            }
            Width += cardWidth + 40;
            CardCanvas upgradeCanvas = cardInfo.GetCanvas(cardWidth, cardHeight, new Thickness(20, 2, 2, 2));

            upgradeCanvas.HideInfoButton();
            Grid.SetColumn(upgradeCanvas, 0);
            Grid.SetRow(upgradeCanvas, 0);
            pageStructureGrid.Children.Add(upgradeCanvas);
            pageStructureGrid.ColumnDefinitions[0].Width = GridLength.Auto;


            ScrollViewer upgradeInfoScrollViewer = new ScrollViewer();

            Grid.SetColumn(upgradeInfoScrollViewer, 1);
            Grid.SetRow(upgradeInfoScrollViewer, 0);
            pageStructureGrid.Children.Add(upgradeInfoScrollViewer);

            AlignableWrapPanel upgradeDetails = new AlignableWrapPanel();

            upgradeDetails.VerticalAlignment = VerticalAlignment.Center;
            upgradeDetails.Margin            = ScaledThicknessFactory.GetThickness(20, 0, 20, 0);
            upgradeInfoScrollViewer.Content  = upgradeDetails;


            TextBlock upgradeInfo = new TextBlock();

            upgradeInfo.FontSize          = Opt.ApResMod(14);
            upgradeInfo.Background        = new SolidColorBrush(Color.FromRgb(230, 230, 230));
            upgradeInfo.Padding           = ScaledThicknessFactory.GetThickness(20);
            upgradeInfo.TextWrapping      = TextWrapping.Wrap;
            upgradeInfo.VerticalAlignment = VerticalAlignment.Center;
            upgradeInfo.Inlines.Add(new Run()
            {
                Text = "Availible In", FontWeight = FontWeights.Bold, FontSize = 18
            });
            upgradeInfo.Inlines.Add(new LineBreak());
            foreach (KeyValuePair <ExpansionType, int> expansionType in cardInfo.inExpansion)
            {
                upgradeInfo.Inlines.Add(new LineBreak());
                upgradeInfo.Inlines.Add(Expansions.expansions[expansionType.Key].name + " (" + expansionType.Value.ToString() + ")");
            }
            if (cardInfo.faq.Count > 0)
            {
                upgradeInfo.Inlines.Add(new LineBreak());
                upgradeInfo.Inlines.Add(new LineBreak());
                upgradeInfo.Inlines.Add(new Run()
                {
                    Text = "FAQ", FontWeight = FontWeights.Bold, FontSize = 18
                });
                foreach (string faq in cardInfo.faq)
                {
                    upgradeInfo.Inlines.Add(new LineBreak());
                    upgradeInfo.Inlines.Add(new LineBreak());
                    string[] boldSplit = faq.Split('~');
                    int      i         = 0;
                    foreach (string boldSplitElement in boldSplit)
                    {
                        if (i % 2 != 0)
                        {
                            upgradeInfo.Inlines.Add(new Run()
                            {
                                Text = boldSplitElement, FontWeight = FontWeights.Bold
                            });
                        }
                        else
                        {
                            string[] headingSplit = boldSplitElement.Split('{');
                            int      y            = 0;
                            foreach (string headingSplitElement in headingSplit)
                            {
                                if (y % 2 != 0)
                                {
                                    upgradeInfo.Inlines.Add(new Run()
                                    {
                                        Text = headingSplitElement, FontWeight = FontWeights.Bold, FontSize = 18
                                    });
                                }
                                else
                                {
                                    string[] manouverSplit = headingSplitElement.Split('*');
                                    int      z             = 0;
                                    foreach (string manouverSplitElement in manouverSplit)
                                    {
                                        if (z % 2 != 0)
                                        {
                                            string manouver = "";
                                            switch (manouverSplitElement.ToLower())
                                            {
                                            case "straight":
                                                manouver = "8";
                                                break;

                                            case "left turn":
                                                manouver = "4";
                                                break;

                                            case "right turn":
                                                manouver = "6";
                                                break;

                                            case "k turn":
                                                manouver = "2";
                                                break;

                                            case "hit":
                                                manouver = "d";
                                                break;

                                            case "crit":
                                                manouver = "c";
                                                break;

                                            case "evade":
                                                manouver = "e";
                                                break;

                                            case "focus":
                                                manouver = "f";
                                                break;

                                            case "turret":
                                                manouver = "U";
                                                break;

                                            case "elite":
                                                manouver = "E";
                                                break;
                                            }
                                            upgradeInfo.Inlines.Add(new Run()
                                            {
                                                Text = manouver, FontFamily = new FontFamily("x-wing-symbols")
                                            });
                                        }
                                        else
                                        {
                                            upgradeInfo.Inlines.Add(manouverSplitElement);
                                        }
                                        z++;
                                    }
                                }
                                y++;
                            }
                        }
                        i++;
                    }
                }
            }


            /*
             * *Hit* *K Turn* *Left Turn*
             * ~bold~
             * {Title}
             *
             *
             * Hyperlink hyperlink = new Hyperlink(new Run("Buy here"));
             * hyperlink.NavigateUri = new Uri("http://stackoverflow.com");
             * hyperlink.RequestNavigate += new RequestNavigateEventHandler(ClickedLink);
             *
             * upgradeInfo.Inlines.Add(hyperlink);*/
            upgradeDetails.Children.Add(upgradeInfo);
        }