Exemple #1
0
        public void OpenMainMenu()
        {
            ViewModels.MenuViewModel menuViewModel = new ViewModels.MenuViewModel(_windowManager);
            menuViewModel.WillOpenSetup = false;

            Dictionary <string, object> settings = new Dictionary <string, object>();

            settings.Add("WindowStartupLocation", WindowStartupLocation.CenterOwner);
            settings.Add("WindowStyle", WindowStyle.ThreeDBorderWindow);
            settings.Add("ResizeMode", System.Windows.ResizeMode.NoResize);
            settings.Add("Height", 300);
            settings.Add("Width", 400);
            settings.Add("ShowInTaskbar", false);
            settings.Add("Title", "Menu");
            Uri iconUri = new Uri("pack://application:,,,/Images/FirePokemon/Charizard.ico", UriKind.Absolute);

            settings.Add("Icon", BitmapFrame.Create(iconUri));

            bool?startNewGame = _windowManager.ShowDialog(menuViewModel, null, settings);

            if (startNewGame != null && startNewGame.Value)
            {
                if (menuViewModel.WillOpenSetup)
                {
                    ViewModels.SetupViewModel setupViewModel = new ViewModels.SetupViewModel(_windowManager);
                    setupViewModel.BlackTeamType = this.BlackTeamType;
                    setupViewModel.WhiteTeamType = this.WhiteTeamType;

                    Dictionary <string, object> setupSettings = new Dictionary <string, object>();
                    setupSettings.Add("WindowStartupLocation", WindowStartupLocation.CenterOwner);
                    setupSettings.Add("WindowStyle", WindowStyle.ThreeDBorderWindow);
                    setupSettings.Add("ResizeMode", System.Windows.ResizeMode.NoResize);
                    setupSettings.Add("Height", 300);
                    setupSettings.Add("Width", 400);
                    setupSettings.Add("ShowInTaskbar", false);
                    setupSettings.Add("Title", "Menu");
                    Uri setupIconUri = new Uri("pack://application:,,,/Images/FirePokemon/Charizard.ico", UriKind.Absolute);
                    setupSettings.Add("Icon", BitmapFrame.Create(iconUri));
                    bool?closeClicked = _windowManager.ShowDialog(setupViewModel, null, setupSettings);
                    if (closeClicked != null && closeClicked.Value)
                    {
                        this.BlackTeamType = setupViewModel.BlackTeamType;
                        this.WhiteTeamType = setupViewModel.WhiteTeamType;
                    }
                    OpenMainMenu();
                }
                else
                {
                    CurrentGame = new Game(this.WhiteTeamType, this.BlackTeamType);
                    NotifyOfPropertyChange(() => CurrentGame);
                }
            }
            else
            {
                if (this.CurrentGame != null)
                {
                    this.CurrentGame.IsSaved = true;
                }
            }
        }
Exemple #2
0
 public Team(Enums.BlackOrWhite teamColor, Enums.TeamType pokeType)
 {
     this.Side           = teamColor;
     this.PokemonType    = pokeType;
     this.Pieces         = SetPieces(teamColor, pokeType);
     this.CanCastleLeft  = true;
     this.CanCastleRight = true;
 }
Exemple #3
0
 public Board(BindableCollection <String> importedStrings, Enums.TeamType blackType, Enums.TeamType whiteType)
 {
     this.BoardPieceCollection = new BindableCollection <IPiece>();
     this.MoveableSpaces       = new BindableCollection <Location>();
     foreach (String pokemonData in importedStrings)
     {
         string[] pokemonDataPieces = pokemonData.Split(' ');
         this.BoardPieceCollection.Add(General.GetPieceInstanceFromString(pokemonDataPieces[0], Int32.Parse(pokemonDataPieces[1]), blackType, whiteType));
     }
 }
Exemple #4
0
        private List <IPiece> SetPieces(Enums.BlackOrWhite teamColor, Enums.TeamType pokeType)
        {
            List <IPiece> returnList = new List <IPiece>();

            switch (pokeType)
            {
            case Enums.TeamType.Fire:
                for (int x = 0; x < 8; x++)
                {
                    returnList.Add(new Vulpix(teamColor, (Enums.BoardColumns)x));
                }
                returnList.Add(new Arcanine(teamColor, Enums.BoardColumns.A));
                returnList.Add(new Rapidash(teamColor, Enums.BoardColumns.B));
                returnList.Add(new Magmar(teamColor, Enums.BoardColumns.C));
                returnList.Add(new Ninetails(teamColor));
                returnList.Add(new Charizard(teamColor));
                returnList.Add(new Magmar(teamColor, Enums.BoardColumns.F));
                returnList.Add(new Rapidash(teamColor, Enums.BoardColumns.G));
                returnList.Add(new Arcanine(teamColor, Enums.BoardColumns.H));
                break;

            case Enums.TeamType.Water:
                for (int x = 0; x < 8; x++)
                {
                    returnList.Add(new Magikarp(teamColor, (Enums.BoardColumns)x));
                }
                returnList.Add(new Poliwrath(teamColor, Enums.BoardColumns.A));
                returnList.Add(new Seadra(teamColor, Enums.BoardColumns.B));
                returnList.Add(new Golduck(teamColor, Enums.BoardColumns.C));
                returnList.Add(new Lapras(teamColor));
                returnList.Add(new Blastoise(teamColor));
                returnList.Add(new Golduck(teamColor, Enums.BoardColumns.F));
                returnList.Add(new Seadra(teamColor, Enums.BoardColumns.G));
                returnList.Add(new Poliwrath(teamColor, Enums.BoardColumns.H));
                break;

            case Enums.TeamType.Grass:
                for (int x = 0; x < 8; x++)
                {
                    returnList.Add(new Oddish(teamColor, (Enums.BoardColumns)x));
                }
                returnList.Add(new Victreebell(teamColor, Enums.BoardColumns.A));
                returnList.Add(new Tangela(teamColor, Enums.BoardColumns.B));
                returnList.Add(new Exeggutor(teamColor, Enums.BoardColumns.C));
                returnList.Add(new Vileplume(teamColor));
                returnList.Add(new Venusaur(teamColor));
                returnList.Add(new Exeggutor(teamColor, Enums.BoardColumns.F));
                returnList.Add(new Tangela(teamColor, Enums.BoardColumns.G));
                returnList.Add(new Victreebell(teamColor, Enums.BoardColumns.H));
                break;

            case Enums.TeamType.Poison:
                for (int x = 0; x < 8; x++)
                {
                    returnList.Add(new Grimer(teamColor, (Enums.BoardColumns)x));
                }
                returnList.Add(new Gengar(teamColor, Enums.BoardColumns.A));
                returnList.Add(new Weezing(teamColor, Enums.BoardColumns.B));
                returnList.Add(new Arbok(teamColor, Enums.BoardColumns.C));
                returnList.Add(new Nidoqueen(teamColor));
                returnList.Add(new Nidoking(teamColor));
                returnList.Add(new Arbok(teamColor, Enums.BoardColumns.F));
                returnList.Add(new Weezing(teamColor, Enums.BoardColumns.G));
                returnList.Add(new Gengar(teamColor, Enums.BoardColumns.H));
                break;

            default:
                break;
            }

            return(returnList);
        }
Exemple #5
0
        public static IPiece GetPieceInstanceFromString(String pokemonName, int arrayLocation, Enums.TeamType blackType, Enums.TeamType whiteType)
        {
            switch (pokemonName)
            {
            case PokemonNames.Arcanine:
                if (blackType == Enums.TeamType.Fire)
                {
                    return(new Arcanine(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Fire)
                {
                    return(new Arcanine(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Vulpix:
                if (blackType == Enums.TeamType.Fire)
                {
                    return(new Vulpix(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Fire)
                {
                    return(new Vulpix(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Ninetails:
                if (blackType == Enums.TeamType.Fire)
                {
                    return(new Ninetails(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Fire)
                {
                    return(new Ninetails(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Charizard:
                if (blackType == Enums.TeamType.Fire)
                {
                    return(new Charizard(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Fire)
                {
                    return(new Charizard(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Magmar:
                if (blackType == Enums.TeamType.Fire)
                {
                    return(new Magmar(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Fire)
                {
                    return(new Magmar(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Rapidash:
                if (blackType == Enums.TeamType.Fire)
                {
                    return(new Rapidash(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Fire)
                {
                    return(new Rapidash(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Venusaur:
                if (blackType == Enums.TeamType.Grass)
                {
                    return(new Venusaur(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Grass)
                {
                    return(new Venusaur(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Victreebell:
                if (blackType == Enums.TeamType.Grass)
                {
                    return(new Victreebell(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Grass)
                {
                    return(new Victreebell(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Oddish:
                if (blackType == Enums.TeamType.Grass)
                {
                    return(new Oddish(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Grass)
                {
                    return(new Oddish(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Tangela:
                if (blackType == Enums.TeamType.Grass)
                {
                    return(new Tangela(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Grass)
                {
                    return(new Tangela(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Exeggutor:
                if (blackType == Enums.TeamType.Grass)
                {
                    return(new Exeggutor(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Grass)
                {
                    return(new Exeggutor(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Vileplume:
                if (blackType == Enums.TeamType.Grass)
                {
                    return(new Vileplume(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Grass)
                {
                    return(new Vileplume(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Grimer:
                if (blackType == Enums.TeamType.Poison)
                {
                    return(new Grimer(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Poison)
                {
                    return(new Grimer(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Weezing:
                if (blackType == Enums.TeamType.Poison)
                {
                    return(new Weezing(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Poison)
                {
                    return(new Weezing(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Arbok:
                if (blackType == Enums.TeamType.Poison)
                {
                    return(new Arbok(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Poison)
                {
                    return(new Arbok(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Gengar:
                if (blackType == Enums.TeamType.Poison)
                {
                    return(new Gengar(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Poison)
                {
                    return(new Gengar(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Nidoking:
                if (blackType == Enums.TeamType.Poison)
                {
                    return(new Nidoking(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Poison)
                {
                    return(new Nidoking(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Nidoqueen:
                if (blackType == Enums.TeamType.Poison)
                {
                    return(new Nidoqueen(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Poison)
                {
                    return(new Nidoqueen(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Seadra:
                if (blackType == Enums.TeamType.Water)
                {
                    return(new Seadra(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Water)
                {
                    return(new Seadra(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Poliwrath:
                if (blackType == Enums.TeamType.Water)
                {
                    return(new Poliwrath(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Water)
                {
                    return(new Poliwrath(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Lapras:
                if (blackType == Enums.TeamType.Water)
                {
                    return(new Lapras(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Water)
                {
                    return(new Lapras(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Magikarp:
                if (blackType == Enums.TeamType.Water)
                {
                    return(new Magikarp(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Water)
                {
                    return(new Magikarp(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Golduck:
                if (blackType == Enums.TeamType.Water)
                {
                    return(new Golduck(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Water)
                {
                    return(new Golduck(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            case PokemonNames.Blastoise:
                if (blackType == Enums.TeamType.Water)
                {
                    return(new Blastoise(Enums.BlackOrWhite.Black, arrayLocation));
                }
                else if (whiteType == Enums.TeamType.Water)
                {
                    return(new Blastoise(Enums.BlackOrWhite.White, arrayLocation));
                }
                break;

            default: break;
            }
            return(null);
        }