public static bool?ShowSendFromDialog(Window owner, int gameIndex, IPokeContainer container, int containerIndex) { SendPokemonToWindow window = new SendPokemonToWindow(SendPokemonModes.SendFrom, gameIndex, null, container, containerIndex, null); window.Owner = owner; return(window.ShowDialog()); }
protected PokemonNew() { this.deoxysForm = byte.MaxValue; this.gameType = GameTypes.Any; this.container = null; this.raw = null; }
public void UnloadBox() { this.hoverIndex = -1; this.imageBoxSelector.Visibility = Visibility.Hidden; this.imagePartySelector.Visibility = Visibility.Hidden; this.pokeContainer = null; this.labelBoxName.Content = ""; foreach (Image image in boxImages) { image.Source = null; } foreach (Rectangle mask in boxImageMasks) { mask.Visibility = Visibility.Hidden; } foreach (Image image in partyImages) { image.Source = null; } foreach (Rectangle mask in partyImageMasks) { mask.Visibility = Visibility.Hidden; } foreach (Image slot in partySlotImages) { slot.Visibility = Visibility.Hidden; } gridParty.Visibility = Visibility.Hidden; gridBox.Visibility = Visibility.Hidden; }
public void MovePokemon(IGen3Pokemon pokemon, IPokeContainer container, int index) { if (movingPokemon) { RemoveAdornerLayer(); movingPokemon = false; } PokeManager.PickupPokemon(container, index); if (PokeManager.IsHoldingPokemon) { InitializeAdornerLayer(); RemoveAdornerLayer(); ((Image)pickupElement.Children[1]).Source = PokeManager.HoldingPokemon.BoxSprite; ((Rectangle)pickupElement.Children[2]).OpacityMask = new ImageBrush(PokeManager.HoldingPokemon.BoxSprite); ((Rectangle)pickupElement.Children[2]).Visibility = (PokeManager.HoldingPokemon.IsShadowPokemon ? Visibility.Visible : Visibility.Hidden); InitializeAdornerLayer(); movingPokemon = true; OnPreviewMouseMove(null, null); } RefreshUI(); }
public SendPokemonToWindow(SendPokemonModes mode, int gameIndex, IPokemon pokemon, IPokeContainer container, int containerIndex, Item giveItem, bool noEggs = false) { InitializeComponent(); loaded2 = false; loaded = false; this.pokemon = pokemon; this.pokeBoxControl.MouseMoveTarget = this; this.pokeBoxControlParty.MouseMoveTarget = this; this.pokeBoxControl.AddSlave(this.pokeBoxControlParty); this.pokeBoxControlParty.Visibility = Visibility.Hidden; this.mode = mode; this.giveItem = giveItem; this.gameIndex = -2; this.noEggs = noEggs; this.pokeBoxControl.PokemonViewer = pokemonViewer; this.pokeBoxControlParty.PokemonViewer = pokemonViewer; this.pokeBoxControl.PokemonSelected += OnPokemonSelected; this.pokeBoxControlParty.PokemonSelected += OnPokemonSelected; if (mode == SendPokemonModes.SendFrom) { this.container = container; this.containerIndex = containerIndex; } else if (mode == SendPokemonModes.GiveItem) { this.Title = "Give Item"; } for (int i = -1; i < PokeManager.NumGameSaves; i++) { IGameSave game = PokeManager.GetGameSaveAt(i); if (i == gameIndex && (!(game is ManagerGameSave) || (game as ManagerGameSave).NumPokePCRows == 1)) { comboBoxGame.SetGameSaveVisible(i, false); continue; } if (pokemon != null && (mode != SendPokemonModes.GiveItem && (pokemon.IsEgg && (game.GameType == GameTypes.Colosseum || game.GameType == GameTypes.XD)))) { comboBoxGame.SetGameSaveVisible(i, false); continue; } else if (mode == SendPokemonModes.SendMulti && PokeManager.SelectionHasEgg && (game.GameType == GameTypes.Colosseum || game.GameType == GameTypes.XD)) { comboBoxGame.SetGameSaveVisible(i, false); continue; } } this.gameIndex = PokeManager.LastGameInDialogIndex; if (this.gameIndex == -2 || !comboBoxGame.IsGameSaveVisible(this.gameIndex)) { comboBoxGame.SelectedIndex = 0; this.gameIndex = comboBoxGame.SelectedGameIndex; } else { comboBoxGame.SelectedGameIndex = this.gameIndex; } loaded = true; if (this.gameIndex != -2) { boxIndex = comboBoxGame.SelectedGameSave.PokePC.CurrentBox; pokePC = PokeManager.GetGameSaveAt(this.gameIndex).PokePC; if (pokePC.Party == null) { partyMode = false; buttonParty.Content = "Show Party"; buttonParty.IsEnabled = false; pokeBoxControlParty.Visibility = Visibility.Hidden; } else { buttonParty.IsEnabled = true; } pokeBoxControl.LoadBox(pokePC[boxIndex], gameIndex); } GameChanged(null, null); }
public PokemonStorage(byte[] data, PokemonFormatTypes formatType, IPokeContainer container) { int formatSize = 0; this.formatType = formatType; if (formatType == PokemonFormatTypes.Gen3GBA) { formatSize = 80; if (data.Length % formatSize != 0) { throw new Exception("Pokemon Storage data size for GBA games should be divisible by 80"); } this.size = (uint)(data.Length / formatSize); for (int i = 0; i < size; i++) { GBAPokemon pkm = new GBAPokemon(ByteHelper.SubByteArray(i * formatSize, data, formatSize)); if (pkm.DexID != 0 && pkm.Checksum != 0 && pkm.Experience != 0) { if (pkm.IsValid) { Add(pkm); } else { Add(GBAPokemon.CreateInvalidPokemon(pkm)); } this[Count - 1].PokeContainer = container; } else { Add(null); } } } else if (formatType == PokemonFormatTypes.Gen3PokemonBox) { formatSize = 84; if (data.Length % formatSize != 0) { throw new Exception("Pokemon Storage data size for Pokemon Box games should be divisible by 84"); } this.size = (uint)(data.Length / formatSize); for (int i = 0; i < size; i++) { BoxPokemon pkm = new BoxPokemon(ByteHelper.SubByteArray(i * formatSize, data, formatSize)); if (pkm.DexID != 0 && pkm.Checksum != 0 && pkm.Experience != 0) { if (pkm.IsValid) { Add(pkm); } else { Add(BoxPokemon.CreateInvalidPokemon(pkm)); } this[Count - 1].PokeContainer = container; } else { Add(null); } } } else if (formatType == PokemonFormatTypes.Gen3Colosseum) { formatSize = 312; if (data.Length % formatSize != 0) { throw new Exception("Pokemon Storage data size for Colosseum should be divisible by 312"); } this.size = (uint)(data.Length / formatSize); for (int i = 0; i < size; i++) { ColosseumPokemon colopkm = new ColosseumPokemon(ByteHelper.SubByteArray(i * formatSize, data, formatSize)); if (colopkm.DexID != 0 && colopkm.Experience != 0) { if (colopkm.IsValid) { Add(colopkm); } else { Add(ColosseumPokemon.CreateInvalidPokemon(colopkm)); } this[Count - 1].PokeContainer = container; } else { Add(null); } } } else if (formatType == PokemonFormatTypes.Gen3XD) { formatSize = 196; if (data.Length % formatSize != 0) { throw new Exception("Pokemon Storage data size for XD should be divisible by 196"); } this.size = (uint)(data.Length / formatSize); for (int i = 0; i < size; i++) { XDPokemon xdpkm = new XDPokemon(ByteHelper.SubByteArray(i * formatSize, data, formatSize)); if (xdpkm.DexID != 0 && xdpkm.Experience != 0) { if (xdpkm.IsValid) { Add(xdpkm); } else { Add(XDPokemon.CreateInvalidPokemon(xdpkm)); } this[Count - 1].PokeContainer = container; } else { Add(null); } } } }
public void LoadBox(IPokeContainer container) { this.pokeContainer = container; RefreshUI(); }
public void UnloadBox() { this.hoverIndex = -1; /*if (imageBoxHighlighter.Visibility == Visibility.Visible) this.imageBoxHighlighter.Visibility = Visibility.Hidden; if (imagePartyHighlighter.Visibility == Visibility.Visible) this.imagePartyHighlighter.Visibility = Visibility.Hidden; if (imageDaycareHighlighter.Visibility == Visibility.Visible) this.imageDaycareHighlighter.Visibility = Visibility.Hidden;*/ this.pokeContainer = null; this.labelBoxName.Content = ""; foreach (Image image in boxImages) image.Source = null; foreach (Rectangle mask in boxShadowMasks) mask.Visibility = Visibility.Hidden; foreach (Rectangle select in boxSelectMasks) select.Visibility = Visibility.Hidden; foreach (Image egg in boxEggMarkers) egg.Visibility = Visibility.Hidden; foreach (Image image in partyImages) image.Source = null; foreach (Rectangle mask in partyShadowMasks) mask.Visibility = Visibility.Hidden; foreach (Image slot in partySlotImages) slot.Visibility = Visibility.Hidden; foreach (Image egg in partyEggMarkers) egg.Visibility = Visibility.Hidden; foreach (Image image in daycareImages) image.Source = null; foreach (Rectangle mask in daycareShadowMasks) mask.Visibility = Visibility.Hidden; foreach (Image slot in daycareSlotImages) slot.Visibility = Visibility.Hidden; foreach (Image image in purifierImages) image.Source = null; foreach (Rectangle mask in purifierShadowMasks) mask.Visibility = Visibility.Hidden; foreach (Image slot in purifierSlotImages) slot.Visibility = Visibility.Hidden; gridDaycare.Visibility = Visibility.Hidden; gridParty.Visibility = Visibility.Hidden; gridBox.Visibility = Visibility.Hidden; gridPurifier.Visibility = Visibility.Hidden; rectEditBox.Opacity = 0; }
public void RefreshUI(bool onlyThis = false) { if (pokeContainer == null) { UnloadBox(); return; } if (IsViewingPurifier) { this.pokeContainer = ((XDPokePC)pokeContainer.PokePC).GetChamber(chamberIndex); this.labelChamberNumber.Content = (chamberIndex + 1).ToString(); } if (movingPokemon && !PokeManager.IsHoldingPokemon) { RemoveAdornerLayer(); movingPokemon = false; } if (!onlyThis) { foreach (PokeBoxControl slave in slaves) { slave.RefreshUI(); } } if (IsViewingParty) { gridParty.Visibility = Visibility.Visible; gridDaycare.Visibility = Visibility.Hidden; gridBox.Visibility = Visibility.Hidden; gridPurifier.Visibility = Visibility.Hidden; if (hoverIndex != -1) { imagePartySelector.Margin = new Thickness(31 + (hoverIndex % 3) * 32, 51 + (hoverIndex / 3) * 25, 0, 0); imagePartySelector.Visibility = Visibility.Visible; } else { imagePartySelector.Visibility = Visibility.Hidden; } for (int i = 0; i < pokeContainer.NumSlots; i++) { if (pokeContainer[i] != null) { partySlotImages[i].Visibility = Visibility.Visible; if (RevealEggs && pokeContainer[i].IsEgg) { if (PokeManager.IsAprilFoolsMode) partyImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(41, false); else partyImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(pokeContainer[i].DexID, false, pokeContainer[i].FormID); partyEggMarkers[i].Source = ResourceDatabase.GetImageFromName((PokeManager.Settings.UseNewBoxSprites ? "New" : "") + "SideEgg"); partyEggMarkers[i].Visibility = Visibility.Visible; } else { if (PokeManager.IsAprilFoolsMode && !pokeContainer[i].IsEgg) partyImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(41, pokeContainer[i].IsShiny); else partyImages[i].Source = pokeContainer[i].BoxSprite; partyEggMarkers[i].Visibility = Visibility.Hidden; } if (pokeContainer[i].IsShadowPokemon) { partyShadowMasks[i].OpacityMask = new ImageBrush(partyImages[i].Source); partyShadowMasks[i].Visibility = Visibility.Visible; } else { partyShadowMasks[i].Visibility = Visibility.Hidden; } } else { partyImages[i].Source = null; partyShadowMasks[i].OpacityMask = null; partySlotImages[i].Visibility = Visibility.Hidden; partyShadowMasks[i].Visibility = Visibility.Hidden; partyEggMarkers[i].Visibility = Visibility.Hidden; } } } else if (IsViewingPurifier) { gridPurifier.Visibility = Visibility.Visible; gridParty.Visibility = Visibility.Hidden; gridDaycare.Visibility = Visibility.Hidden; gridBox.Visibility = Visibility.Hidden; if (hoverIndex != -1) { imagePurifierSelector.Margin = new Thickness(31 + PurifierSlotOffsets[hoverIndex].X * 32, 32 + PurifierSlotOffsets[hoverIndex].Y * 25, 0, 0); imagePurifierSelector.Visibility = Visibility.Visible; } else { imagePurifierSelector.Visibility = Visibility.Hidden; } for (int i = 0; i < pokeContainer.NumSlots; i++) { if (pokeContainer[i] != null) { purifierSlotImages[i].Visibility = Visibility.Visible; if (PokeManager.IsAprilFoolsMode && !pokeContainer[i].IsEgg) purifierImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(41, pokeContainer[i].IsShiny); else purifierImages[i].Source = pokeContainer[i].BoxSprite; if (pokeContainer[i].IsShadowPokemon) { purifierShadowMasks[i].OpacityMask = new ImageBrush(purifierImages[i].Source); purifierShadowMasks[i].Visibility = Visibility.Visible; } else { purifierShadowMasks[i].Visibility = Visibility.Hidden; } } else { purifierImages[i].Source = null; purifierShadowMasks[i].OpacityMask = null; purifierSlotImages[i].Visibility = Visibility.Hidden; purifierShadowMasks[i].Visibility = Visibility.Hidden; } } } else if (IsViewingDaycare) { gridParty.Visibility = Visibility.Hidden; gridDaycare.Visibility = Visibility.Visible; gridBox.Visibility = Visibility.Hidden; gridPurifier.Visibility = Visibility.Hidden; if (hoverIndex != -1) { imageDaycareSelector.Margin = new Thickness(31 + (hoverIndex % 3) * 32, 61, 0, 0); imageDaycareSelector.Visibility = Visibility.Visible; } else { imageDaycareSelector.Visibility = Visibility.Hidden; } for (int i = 0; i < 3; i++) { if (i < pokeContainer.NumSlots) { daycareSlotCoverImages[i].Visibility = Visibility.Hidden; daycareClickAreas[i].IsEnabled = true; if (pokeContainer[i] != null) { if (PokeManager.IsAprilFoolsMode && !pokeContainer[i].IsEgg) daycareImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(41, pokeContainer[i].IsShiny); else daycareImages[i].Source = pokeContainer[i].BoxSprite; daycareSlotImages[i].Visibility = Visibility.Visible; if (pokeContainer[i].IsShadowPokemon) { daycareShadowMasks[i].OpacityMask = new ImageBrush(daycareImages[i].Source); daycareShadowMasks[i].Visibility = Visibility.Visible; } else { daycareShadowMasks[i].Visibility = Visibility.Hidden; } } else { daycareImages[i].Source = null; daycareShadowMasks[i].OpacityMask = null; daycareSlotImages[i].Visibility = Visibility.Hidden; daycareShadowMasks[i].Visibility = Visibility.Hidden; } } else { daycareSlotCoverImages[i].Visibility = Visibility.Visible; daycareClickAreas[i].IsEnabled = false; daycareImages[i].Source = null; daycareShadowMasks[i].OpacityMask = null; daycareSlotImages[i].Visibility = Visibility.Hidden; daycareShadowMasks[i].Visibility = Visibility.Hidden; } } } else if (IsViewingBox) { gridParty.Visibility = Visibility.Hidden; gridDaycare.Visibility = Visibility.Hidden; gridBox.Visibility = Visibility.Visible; gridPurifier.Visibility = Visibility.Hidden; if (hoverIndex != -1) { imageBoxSelector.Margin = new Thickness(1 + (hoverIndex % 6) * 24, 5 + (hoverIndex / 6) * 24, 0, 0); imageBoxSelector.Visibility = Visibility.Visible; } else { imageBoxSelector.Visibility = Visibility.Hidden; } this.labelBoxName.Content = PokeBox.Name; imageWallpaper.Source = PokeBox.WallpaperImage; for (int i = 0; i < pokeContainer.NumSlots; i++) { if (pokeContainer[i] != null) { boxImages[i].Opacity = 1; if (RevealEggs && pokeContainer[i].IsEgg) { if (PokeManager.IsAprilFoolsMode) boxImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(41, false); else boxImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(pokeContainer[i].DexID, false, pokeContainer[i].FormID); boxEggMarkers[i].Source = ResourceDatabase.GetImageFromName((PokeManager.Settings.UseNewBoxSprites ? "New" : "") + "SideEgg"); boxEggMarkers[i].Visibility = Visibility.Visible; } else { if (PokeManager.IsAprilFoolsMode && !pokeContainer[i].IsEgg) boxImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(41, pokeContainer[i].IsShiny); else boxImages[i].Source = pokeContainer[i].BoxSprite; boxEggMarkers[i].Visibility = Visibility.Hidden; } if (pokeContainer[i].IsShadowPokemon) { boxShadowMasks[i].OpacityMask = new ImageBrush(boxImages[i].Source); boxShadowMasks[i].Visibility = Visibility.Visible; } else { boxShadowMasks[i].Visibility = Visibility.Hidden; } if (PokeManager.IsPokemonSelected(pokeContainer[i])) { boxSelectMasks[i].OpacityMask = new ImageBrush(boxImages[i].Source); boxSelectMasks[i].Visibility = Visibility.Visible; } else { boxSelectMasks[i].OpacityMask = null; boxSelectMasks[i].Visibility = Visibility.Hidden; } } else { boxEggMarkers[i].Visibility = Visibility.Hidden; boxImages[i].Opacity = 1; boxImages[i].Source = null; boxShadowMasks[i].OpacityMask = null; boxShadowMasks[i].Visibility = Visibility.Hidden; boxSelectMasks[i].OpacityMask = null; boxSelectMasks[i].Visibility = Visibility.Hidden; double livingOpacity = 0.4; if (IsUnownLivingBox && i < 28) { boxImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID(201, false, (byte)i); boxImages[i].Opacity = livingOpacity; } else { int start = LivingDexStartNumber; int end = LivingDexEndNumber; if (start != -1 && end != -2) { start = Math.Max(0, Math.Min(386, start)); end = Math.Max(start, Math.Min(386, end)); if (start + i <= end) { boxImages[i].Source = PokemonDatabase.GetPokemonBoxImageFromDexID((ushort)(start + i), false); boxImages[i].Opacity = livingOpacity; } } } } } } }
public void LoadBox(IPokeContainer container, int gameIndex) { this.pokeContainer = container; this.gameIndex = gameIndex; /*if (imageBoxHighlighter.Visibility == Visibility.Visible) this.imageBoxHighlighter.Visibility = Visibility.Hidden; if (imagePartyHighlighter.Visibility == Visibility.Visible) this.imagePartyHighlighter.Visibility = Visibility.Hidden; if (imageDaycareHighlighter.Visibility == Visibility.Visible) this.imageDaycareHighlighter.Visibility = Visibility.Hidden;*/ RefreshUI(true); }
public PokeBoxControl() { InitializeComponent(); this.imageDaycareSelector.Visibility = Visibility.Hidden; this.imageBoxSelector.Visibility = Visibility.Hidden; this.imagePartySelector.Visibility = Visibility.Hidden; this.imagePurifierSelector.Visibility = Visibility.Hidden; this.pokeContainer = null; this.labelBoxName.Content = ""; gridParty.Visibility = Visibility.Hidden; gridBox.Visibility = Visibility.Hidden; rectEditBox.Opacity = 0; this.canChangePickupMode = false; this.pickupMode = false; this.mode = PokeBoxControlModes.ViewOnly; this.hoverIndex = -1; this.slaves = new List<PokeBoxControl>(); this.mouseMoveTarget = this; this.summaryMode = false; if (!DesignerProperties.GetIsInDesignMode(this)) { CreateContextMenu(); CreateBoxContextMenu(); CreatePickupElement(); CreatePartyElements(); CreateDaycareElements(); CreatePurifierElements(); CreateBoxElements(); rectEditBox.Opacity = 0; } this.imageDaycareHighlighter.Visibility = Visibility.Hidden; this.imageBoxHighlighter.Visibility = Visibility.Hidden; this.imagePartyHighlighter.Visibility = Visibility.Hidden; this.imagePurifierHighlighter.Visibility = Visibility.Hidden; }
public static bool? ShowSendFromDialog(Window owner, int gameIndex, IPokeContainer container, int containerIndex) { SendPokemonToWindow window = new SendPokemonToWindow(SendPokemonModes.SendFrom, gameIndex, null, container, containerIndex, null); window.Owner = owner; return window.ShowDialog(); }
public PokeContainerEnumerator(IPokeContainer container) { this.pokeContainer = container; this.index = -1; }