コード例 #1
0
 private void AddListViewItem(SecretBase secretBase)
 {
     ListViewItem listViewItem = new ListViewItem();
     FillListViewItem(listViewItem, secretBase);
     listViewSecretBases.Items.Add(listViewItem);
 }
コード例 #2
0
        private void OnSecretBaseSelected(object sender, SelectionChangedEventArgs e)
        {
            if (listViewSecretBases.SelectedIndex != -1)
                secretBase = (listViewSecretBases.SelectedItem as ListViewItem).Tag as SecretBase;

            buttonAdd.IsEnabled = (!IsGBAGame || GBAGameSave.SecretBaseManager.SharedSecretBases.Count < 19);
            buttonImport.IsEnabled = (!IsGBAGame || GBAGameSave.SecretBaseManager.SharedSecretBases.Count < 19);
            if (listViewSecretBases.SelectedIndex == -1 || secretBase == null) {
                roomDisplay.UnloadSecretBase();
                locationDisplay.UnloadLocation();
                rectRoomDisplay.Visibility = Visibility.Hidden;
                roomDisplay.Visibility = Visibility.Hidden;
                locationDisplay.Visibility = Visibility.Hidden;
                labelOwner.Content = "";
                labelTrainerID.Content = "";
                labelSecretID.Content = "";
                labelRequires.Content = "";
                gridTeam.Visibility = Visibility.Visible;
                secretBase = null;
                buttonRemove.IsEnabled = false;
                buttonEditBase.IsEnabled = listViewSecretBases.SelectedIndex != -1;
                buttonEditTrainer.IsEnabled = false;
                buttonRegister.IsEnabled = false;
                buttonExport.IsEnabled = false;
                buttonSend.IsEnabled = false;
                for (int i = 0; i < 6; i++) {
                    Image imageTeam = (Image)FindName("imageTeam" + (i + 1).ToString());
                    Label labelTeam = (Label)FindName("labelTeam" + (i + 1).ToString());
                    imageTeam.Source = null;
                    labelTeam.Content = "";
                }
            }
            else {
                buttonRemove.IsEnabled = true;
                buttonEditBase.IsEnabled = true;
                buttonExport.IsEnabled = true;
                buttonSend.IsEnabled = true;
                rectRoomDisplay.Visibility = Visibility.Visible;
                roomDisplay.Visibility = Visibility.Visible;
                locationDisplay.Visibility = Visibility.Visible;
                roomDisplay.LoadSecretBase(secretBase);
                locationDisplay.LoadLocation(secretBase.LocationID);
                labelOwner.Content = secretBase.TrainerName;
                labelTrainerID.Content = secretBase.TrainerID.ToString("00000");
                labelSecretID.Content = secretBase.SecretID.ToString("00000");
                labelRequires.Content = (secretBase.LocationData.Requirements ?? "Nothing");
                if (secretBase.IsPlayerSecretBase) {
                    buttonRegister.IsEnabled = false;
                    buttonEditTrainer.IsEnabled = false;
                }
                else {
                    buttonEditTrainer.IsEnabled = true;
                    buttonRegister.IsEnabled = IsGBAGame;
                    buttonRegister.Content = ((SharedSecretBase)secretBase).IsRegistered ? "Unregister" : "Register";

                }
                gridTeam.Visibility = Visibility.Visible;
                for (int i = 0; i < 6; i++) {
                    Image imageTeam = (Image)FindName("imageTeam" + (i + 1).ToString());
                    Rectangle rectTeam = (Rectangle)FindName("rectTeam" + (i + 1).ToString());
                    Label labelTeam = (Label)FindName("labelTeam" + (i + 1).ToString());
                    if (i < secretBase.PokemonTeam.Count) {
                        imageTeam.Source = PokemonDatabase.GetPokemonBoxImageFromDexID(secretBase.PokemonTeam[i].DexID, false, secretBase.PokemonTeam[i].FormID);
                        labelTeam.Content = secretBase.PokemonTeam[i].Level.ToString();

                        rectTeam.Visibility = Visibility.Visible;
                        ToolTip tooltip = new ToolTip();
                        string content = "";
                        if (secretBase.PokemonTeam[i].IsHoldingItem) {
                            content = "Holding: " + secretBase.PokemonTeam[i].HeldItemData.Name + "\n";
                        }
                        content += secretBase.PokemonTeam[i].Move1Data.Name;
                        for (int j = 1; j < 4; j++) {
                            if (secretBase.PokemonTeam[i].GetMoveIDAt(j) != 0)
                                content += "\n" + secretBase.PokemonTeam[i].GetMoveDataAt(j).Name;
                        }
                        tooltip.Content = content;
                        rectTeam.ToolTip = tooltip;
                    }
                    else {
                        imageTeam.Source = null;
                        rectTeam.Visibility = Visibility.Hidden;
                        rectTeam.ToolTip = null;
                        labelTeam.Content = "";
                    }
                }
            }
        }
コード例 #3
0
        public void LoadSecretBase(SecretBase secretBase)
        {
            this.secretBase = secretBase;
            foreach (Image image in decorationImages) {
                this.gridRoomContents.Children.Remove(image);
            }

            if (pocket != null)
                pocket = secretBase.GameSave.Inventory.Decorations[pocket.PocketType];
            else
                pocket = secretBase.GameSave.Inventory.Decorations[DecorationTypes.Desk];
            comboBoxPockets.SelectedIndex = (int)DecorationTypes.Desk - 1;
            OnPocketSelectionChanged(null, null);

            imageLocation.Source = LocationData.Image;

            imageTrainer.Margin = new Thickness(16 * RoomData.TrainerX, 16 * RoomData.TrainerY - 8, 0, 0);
            imageTrainer.Source = ResourceDatabase.GetImageFromName(secretBase.TrainerGender.ToString() + "SecretBase" + ((byte)secretBase.TrainerID % 5).ToString());

            BitmapSource roomImage = RoomData.Image;

            gridRoomContents.Width = roomImage.PixelWidth;
            gridRoomContents.Height = roomImage.PixelHeight;
            imageRoom.Width = roomImage.PixelWidth;
            imageRoom.Height = roomImage.PixelHeight;
            imageRoom.Source = roomImage;

            imageRouteSign.Source = ResourceDatabase.GetImageFromName("RouteSign" + (RouteData.ID >= 124 ? "Water" : "Land"));
            labelRoute.Content = "Route " + RouteData.ID;

            /*if (RoomData.Type == SecretBaseRoomTypes.Tree || RoomData.Type == SecretBaseRoomTypes.Shrub) {
                rectRoomBackground.Visibility = Visibility.Hidden;
            }
            else {*/
                rectRoomBackground.Margin = new Thickness((1 - RoomData.Width % 2) * -8, (1 - RoomData.Height % 2) * -8, 0, 0);
                rectRoomBackground.Visibility = Visibility.Visible;
                (rectRoomBackground.Fill as ImageBrush).ImageSource = RoomData.BackgroundImage;
            //}

            foreach (PlacedDecoration decoration in secretBase.PlacedDecorations) {
                DecorationData decorationData = decoration.DecorationData;
                BitmapSource decorationImage = ItemDatabase.GetDecorationFullSizeImageFromID(decoration.ID);
                Image image = new OpaqueClickableImage();
                image.Width = decorationImage.PixelWidth;
                image.Height = decorationImage.PixelHeight;
                image.Stretch = Stretch.None;
                image.Source = decorationImage;
                if (decoration.DecorationData.DataType == DecorationDataTypes.NoteMat && showNotes) {
                    image.Source = ResourceDatabase.GetImageFromName("NoteMat" + (decoration.ID - 51).ToString());
                }
                image.Margin = new Thickness(16 * (decoration.X - decorationData.OriginX), 16 * (decoration.Y - decorationData.OriginY), 0, 0);
                image.HorizontalAlignment = HorizontalAlignment.Left;
                image.VerticalAlignment = VerticalAlignment.Top;
                image.Tag = decoration;
                image.PreviewMouseDown += OnDecorationImageMouseDown;
                image.MouseEnter += OnDecorationImageMouseEnter;
                image.MouseLeave += OnDecorationImageMouseLeave;
                image.IsHitTestVisible = mode == PlaceModes.PutAway || mode == PlaceModes.Move;
                decorationImages.Add(image);

                this.gridRoomContents.Children.Add(image);
            }
            OrganizeZIndexes();
            Grid.SetZIndex(imageTrainer, 16 * RoomData.TrainerY);

            routeTooltip = new ToolTip();

            BitmapSource routeImage = RouteData.Image;

            Grid tooltip = new Grid();
            tooltip.Width = routeImage.PixelWidth / 8 + 10;
            tooltip.Height = routeImage.PixelHeight / 8 + 10;

            Image route = new Image();
            route.HorizontalAlignment = HorizontalAlignment.Left;
            route.VerticalAlignment = VerticalAlignment.Top;
            route.Width = routeImage.PixelWidth / 8;
            route.Height = routeImage.PixelHeight / 8;
            route.Margin = new Thickness(5, 5, 5, 5);
            route.Stretch = Stretch.Uniform;
            route.Source = routeImage;

            Image pinpoint = new Image();
            pinpoint.HorizontalAlignment = HorizontalAlignment.Left;
            pinpoint.VerticalAlignment = VerticalAlignment.Top;
            pinpoint.Width = 12;
            pinpoint.Height = 12;
            pinpoint.Source = ResourceDatabase.GetImageFromName("RouteLocationSelector");
            pinpoint.Margin = new Thickness(LocationData.MapX * 2, LocationData.MapY * 2, 0, 0);

            tooltip.Children.Add(route);
            tooltip.Children.Add(pinpoint);
            imageLocation.ToolTip = tooltip;

            UpdateDetails();
        }
コード例 #4
0
        private void FillListViewItem(ListViewItem listViewItem, SecretBase secretBase = null)
        {
            if (secretBase == null)
                secretBase = listViewItem.Tag as SecretBase;
            else
                listViewItem.Tag = secretBase;

            if (secretBase == null) {
                listViewItem.Content = "No Player Secret Base";
            }
            else {
                StackPanel stackPanel = new StackPanel();
                stackPanel.Orientation = Orientation.Horizontal;
                Grid grid = new Grid();
                grid.Width = 16;
                grid.Height = 18;

                Image type = new Image();
                type.Width = 16;
                type.Height = 16;
                type.HorizontalAlignment = HorizontalAlignment.Center;
                type.VerticalAlignment = VerticalAlignment.Center;
                type.Source = ResourceDatabase.GetImageFromName("SecretBaseType" + secretBase.LocationData.Type.ToString());

                Label layout = new Label();
                layout.Padding = new Thickness(0, 0, 0, 0);
                layout.Width = 16;
                layout.Height = 16;
                layout.HorizontalAlignment = HorizontalAlignment.Center;
                layout.VerticalAlignment = VerticalAlignment.Center;
                layout.HorizontalContentAlignment = HorizontalAlignment.Center;
                layout.VerticalContentAlignment = VerticalAlignment.Center;
                layout.Content = secretBase.LocationData.Layout.ToString();
                layout.FontWeight = FontWeights.Bold;
                //layout.Foreground = new SolidColorBrush(Color.FromRgb(255, 255, 255));

                grid.Children.Add(type);
                grid.Children.Add(layout);

                Label label = new Label();
                label.VerticalAlignment = System.Windows.VerticalAlignment.Center;
                label.Padding = new Thickness(4, 0, 4, 0);
                label.Content = "Route " + secretBase.RouteData.ID + " - " + secretBase.TrainerName + "";

                Image registered = new Image();
                registered.Width = 9;
                registered.Height = 9;
                registered.HorizontalAlignment = HorizontalAlignment.Center;
                registered.VerticalAlignment = VerticalAlignment.Center;
                registered.Source = ResourceDatabase.GetImageFromName("PokedexRRegistered");
                registered.Visibility = Visibility.Hidden;
                if (!secretBase.IsPlayerSecretBase && ((SharedSecretBase)secretBase).IsRegistered)
                    registered.Visibility = Visibility.Visible;

                stackPanel.Children.Add(grid);
                stackPanel.Children.Add(label);
                stackPanel.Children.Add(registered);
                listViewItem.Content = stackPanel;
            }
        }
コード例 #5
0
 public static void Show(Window owner, SecretBase secretBase)
 {
     SecretBaseEditor window = new SecretBaseEditor();
     window.Owner = owner;
     window.LoadSecretBase(secretBase);
     window.ShowDialog();
 }