private void AddListViewItem(SecretBase secretBase) { ListViewItem listViewItem = new ListViewItem(); FillListViewItem(listViewItem, secretBase); listViewSecretBases.Items.Add(listViewItem); }
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 = ""; } } } }
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(); }
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; } }
public static void Show(Window owner, SecretBase secretBase) { SecretBaseEditor window = new SecretBaseEditor(); window.Owner = owner; window.LoadSecretBase(secretBase); window.ShowDialog(); }