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());
        }
示例#2
0
 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;
        }
示例#4
0
 protected PokemonNew()
 {
     this.deoxysForm = byte.MaxValue;
     this.gameType   = GameTypes.Any;
     this.container  = null;
     this.raw        = null;
 }
        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 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 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();
 }
示例#15
0
 public PokeContainerEnumerator(IPokeContainer container)
 {
     this.pokeContainer = container;
     this.index         = -1;
 }