コード例 #1
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
        //###############################################################################
        //#		                    Fonctions associés                                  #
        //###############################################################################

        // Cette fonction attribut les images au bouton de choix (choix1,choix2,etc.)  ---- (Fonction identique à afficher_team() dans Map.xaml.cs)
        private void init_interface()
        {
            //Choix 1
            string pokemon;

            if (parti.joueur.equipe[0] != null)
            {
                pokemon             = parti.joueur.equipe[0].nomMonstre;
                image_choix1.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_choix1.Source = Monstre.portrait("inconnu");
            }

            //Choix 2
            if (parti.joueur.equipe[1] != null)
            {
                pokemon             = parti.joueur.equipe[1].nomMonstre;
                image_choix2.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_choix2.Source = Monstre.portrait("inconnu");
            }

            //Choix 3
            if (parti.joueur.equipe[2] != null)
            {
                pokemon             = parti.joueur.equipe[2].nomMonstre;
                image_choix3.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_choix3.Source = Monstre.portrait("inconnu");
            }

            //Choix 4
            if (parti.joueur.equipe[3] != null)
            {
                pokemon             = parti.joueur.equipe[3].nomMonstre;
                image_choix4.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_choix4.Source = Monstre.portrait("inconnu");
            }

            //Choix 5
            if (parti.joueur.equipe[4] != null)
            {
                pokemon             = parti.joueur.equipe[4].nomMonstre;
                image_choix5.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_choix5.Source = Monstre.portrait("inconnu");
            }
            afficher_pokemon(parti.joueur.equipe[0]);
        }
コード例 #2
0
 private void button_squirtle_Click(object sender, RoutedEventArgs e)
 {
     Monstre[] liste = Monstre.Charger_Liste_Monstre();
     inconnu.monstreDepart     = liste[4];
     inconnu.monstreCapture[0] = liste[4];
     inconnu.equipe[0]         = liste[4];
 }
コード例 #3
0
        //###############################################################################
        //#		                   Panel Equipe (Pokemon)                               #
        //###############################################################################

        // Affiche le pokémon sélectionné
        private void button_afficher_pokemon_Click(object sender, RoutedEventArgs e)
        {
            string  nom     = comboBox_liste_pokemon.Text;
            Monstre monstre = parti.joueur.trouver_monstre_parNom(nom); // Recherche l'objet monstre avec le nom du pokémon selectionné

            afficher_stat(monstre);

            comboBox_habilete_1.Items.Clear();
            comboBox_habilete_2.Items.Clear();
            int loop = 0;

            foreach (Habilete x in monstre.listeHabilete) // Affiche les habiletés du pokémon
            {
                if (x != null && loop <= monstre.niveauExp - 1)
                {
                    ComboBoxItem item = new ComboBoxItem();
                    item.Content = x.nom;
                    ComboBoxItem item2 = new ComboBoxItem();
                    item2.Content = x.nom;

                    comboBox_habilete_1.Items.Add(item);
                    comboBox_habilete_1.SelectedIndex = 0;
                    comboBox_habilete_2.Items.Add(item2);
                    comboBox_habilete_2.SelectedIndex = 1;
                }
                loop++;
            }
        }
コード例 #4
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
        // Affiche le pokemon dans le panel de pokemon et l'envoie au Combat (utiliser dans bouton_choiX_Click(); )
        private void afficher_pokemon(Monstre monstre)
        {
            // Stats
            label_nom.Content           = monstre.nomMonstre;
            label_level.Content         = "Level " + monstre.niveauExp;
            label_id.Content            = "# " + monstre.id;
            label_element.Content       = monstre.typeMonstre;
            label_xp.Content            = "XP : " + monstre.pointExp;
            label_mana_Copy.Content     = "Regen : +" + monstre.actuel[2];
            label_attaque.Content       = "Attaque : " + monstre.actuel[3];
            label_défense.Content       = "Défense : " + monstre.actuel[4];
            image_pokemon_panel.Source  = Monstre.portrait(monstre.nomMonstre);
            image_pokemon_player.Source = Monstre.portrait(monstre.nomMonstre);
            //Barre de vie/mana
            barre_vie_player.Maximum = monstre.total[0];
            barre_vie_player.Value   = monstre.actuel[0];

            barre_mana_player.Maximum = monstre.total[1];
            barre_mana_player.Value   = monstre.actuel[1];
            // Bouton Habilete 1 (et 2 si applicapable)
            button_habilete_1.Content = monstre.listeHabileteActive[0].nom;
            if (monstre.listeHabileteActive[1] != null)
            {
                button_habilete_2.Content = monstre.listeHabileteActive[1].nom;
            }
            else
            {
                button_habilete_2.Visibility = System.Windows.Visibility.Hidden;
            }
        }
コード例 #5
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
        // Genere un pokemon aleatoire
        public void generer_adversaire(int level)
        {
            Monstre ennemi;

            Monstre[] liste = Monstre.Liste_par_Element(element);

            // Ici un concept de generation de niveau de rarete devrait être retravailler
            Random rand = new Random();
            int    x    = rand.Next(0, 4);

            ennemi = liste[x];
            //---------------------------------------------------------------------------
            ennemi.niveauExp = level;               // Selon la difficulté choisi par l'utilisateur
            ennemi.pointExp  = ennemi.pointExp + 1; // Cette ligne permettera de différencier les pokémons dans la fonction estIdentique de la classe Monstre
            ennemi.calcul_caract();
            adversaire = ennemi;

            // Affichage des caractéristiques du pokémon généré
            image_pokemon_adverse.Source = Monstre.portrait(ennemi.nomMonstre);
            barre_vie_adverse.Maximum    = ennemi.total[0];
            barre_vie_adverse.Value      = ennemi.total[0];
            barre_mana_adverse.Maximum   = ennemi.total[1];
            barre_mana_adverse.Value     = ennemi.total[1];
            textBox_Console.Text         = textBox_Console.Text + "\n" + ennemi.nomMonstre + " apparait face à vous !";
            nb_adversaire--;
        }
コード例 #6
0
 // Créer et attribution du Pokemon de Départ
 private void button_bulbasaur_Click(object sender, RoutedEventArgs e)
 {
     Monstre[] liste = Monstre.Charger_Liste_Monstre();
     inconnu.monstreDepart     = liste[8]; // liste[8] point sur l'objet bulbasaur
     inconnu.monstreCapture[0] = liste[8];
     inconnu.equipe[0]         = liste[8];
 }
コード例 #7
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
 public Combat(Aventure parti, TypeElement element)
 {
     InitializeComponent();
     fenetre_difficulty.Visibility = System.Windows.Visibility.Visible;
     this.parti   = parti;
     this.element = element;
     selectionne  = parti.joueur.equipe[0];
     init_interface();
 }
コード例 #8
0
ファイル: Monstre.cs プロジェクト: Lion001/INF1035
        //Compare 2 Pokemon, cette fonction est utilisé dans les fonctions de combat ( Attaque() )
        public static bool estIdentique(Monstre monstre1, Monstre monstre2)
        {
            bool comparaison = false;

            if (monstre1.pointExp == monstre2.pointExp && monstre1.nomMonstre == monstre2.nomMonstre)  // Je compare simplement les points d'exp (et le nom) car durant la génération d'un pokemon aleatoire, j'ajoute 1 point d'exp.
            {
                comparaison = true;
            }
            return(comparaison);
        }
コード例 #9
0
        //Ajoute un pokemon la liste des pokemons captures
        public void Ajouter_Pokemon_listeTotal(Monstre monstre)
        {
            int x = 0;

            while (monstreCapture[x] != null)
            {
                x++;
            }
            monstreCapture[x] = monstre;
        }
コード例 #10
0
ファイル: Shop.xaml.cs プロジェクト: Lion001/INF1035
        // Charge l'item potion_max.xml et affiche les caractéristiques
        private void button_potion_max_Click(object sender, RoutedEventArgs e)
        {
            Item item = Item.Charger_Item("potion_max.xml");

            image_central.Source      = Monstre.portrait("potion-or");
            label_nom.Content         = item.nom;
            label_description.Content = item.description;
            label_prix.Content        = item.valeur_monetaire;
            selectionne = item;
        }
コード例 #11
0
 //constructeur par defaut
 public Joueur(string nom, Sexe sexe, Monstre monstre_dep)
 {
     nomJoueur      = nom;
     this.sexe      = sexe;
     argent         = 500.00;
     monstreDepart  = monstre_dep;
     monstreCapture = new Monstre[25];
     equipe         = new Monstre[5];
     equipe[0]      = monstreDepart;
     inventaire     = new Inventaire(3, 0, 0, 0); // Inventaire par défaut 3 pokeballs, 0 potions
 }
コード例 #12
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
        //###############################################################################
        //#		             Buttons de l'interface graphique                           #
        //###############################################################################

        //Bouton qui permet de choisir un pokemon parmi la liste des pokemons actif
        private void button_choix1_Click(object sender, RoutedEventArgs e)
        {
            // Cette fonction affiche le pokemon avec ces stats, le déclare à la console et met les barre de vie et de mana a jour
            panel_pokemon.Visibility    = System.Windows.Visibility.Visible;
            panel_inventaire.Visibility = System.Windows.Visibility.Hidden;
            afficher_pokemon(parti.joueur.equipe[0]);
            textBox_Console.Text    = "--------------------------------\n" + parti.joueur.nomJoueur + " envoie " + parti.joueur.equipe[0].nomMonstre + " au combat !";
            selectionne             = parti.joueur.equipe[0];
            barre_vie_player.Value  = parti.joueur.equipe[0].actuel[0];
            barre_mana_player.Value = parti.joueur.equipe[0].actuel[1];
        }
コード例 #13
0
        //Retourne un monstre parmi la liste des monstres capturés (search by name)
        public Monstre trouver_monstre_parNom(string nom)
        {
            Monstre monstre = null;

            foreach (Monstre x in monstreCapture)
            {
                if (x != null && x.nomMonstre == nom)
                {
                    monstre = x;
                }
            }
            return(monstre);
        }
コード例 #14
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
 private void button_choix5_Click(object sender, RoutedEventArgs e)
 {
     if (parti.joueur.equipe[4] != null)
     {
         panel_pokemon.Visibility    = System.Windows.Visibility.Visible;
         panel_inventaire.Visibility = System.Windows.Visibility.Hidden;
         afficher_pokemon(parti.joueur.equipe[4]);
         textBox_Console.Text    = "--------------------------------\n" + parti.joueur.nomJoueur + " envoie " + parti.joueur.equipe[4].nomMonstre + " au combat !";
         selectionne             = parti.joueur.equipe[4];
         barre_vie_player.Value  = parti.joueur.equipe[4].actuel[0];
         barre_mana_player.Value = parti.joueur.equipe[4].actuel[1];
     }
 }
コード例 #15
0
ファイル: Monstre.cs プロジェクト: Lion001/INF1035
        //Retourne un monstre de la liste complete
        public static Monstre trouver_monstre(string nom)
        {
            Monstre[] liste   = Charger_Liste_Monstre();
            Monstre   reponse = new Monstre();
            int       loop;

            for (loop = 0; loop < 20; loop++)
            {
                if (liste[loop] != null && liste[loop].nomMonstre == nom)
                {
                    reponse = liste[loop];
                }
            }
            return(reponse);
        }
コード例 #16
0
        // Affiche les stats du pokémons choisit dans la liste déroulante
        private void afficher_stat(Monstre monstre)
        {
            image_pokemon_afficher.Source = Monstre.portrait(monstre.nomMonstre);
            label_nom.Content             = monstre.nomMonstre;
            label_level.Content           = "Level " + monstre.niveauExp;
            label_id.Content        = "# " + monstre.id;
            label_element.Content   = monstre.typeMonstre;
            label_xp.Content        = "XP : " + monstre.pointExp;
            label_vie.Content       = "Vie : " + monstre.total[0];
            label_mana.Content      = "Mana : " + monstre.total[1];
            label_mana_Copy.Content = "Regen : +" + monstre.total[2];
            label_attaque.Content   = "Attaque : " + monstre.total[3];
            label_défense.Content   = "Défense : " + monstre.total[4];

            monstre_selectionne = monstre;
        }
コード例 #17
0
ファイル: Monstre.cs プロジェクト: Lion001/INF1035
        //Retour une liste de monstre d'un element donnée
        public static Monstre[] Liste_par_Element(TypeElement element)
        {
            Monstre[] liste_general = Monstre.Charger_Liste_Monstre();
            Monstre[] liste_element = new Monstre[5];
            int       loop          = 0;

            foreach (Monstre x in liste_general)
            {
                if (x != null && x.typeMonstre == element)
                {
                    liste_element[loop] = x;
                    loop++;
                }
            }
            return(liste_element);
        }
コード例 #18
0
        //Retourne l'index du monstre de la liste de monstres actif d'un joueur donné
        public int trouver_monstre_equipe(Monstre monstre)
        {
            int loop = 0;

            Monstre[] liste = equipe;

            foreach (Monstre x in liste)
            {
                if (x != null && Monstre.estIdentique(x, monstre))
                {
                    return(loop);
                }
                loop++;
            }

            return(loop);
        }
コード例 #19
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
        //###############################################################################
        //#		                 Button du Panel Inventaire                             #
        //###############################################################################

        // Utilisation d'une pokéball
        private void button_pokeball_Click(object sender, RoutedEventArgs e)
        {
            if (parti.joueur.inventaire.pokeball > 0)
            {
                image_pokemon_adverse.Source = image_pokeball.Source;
                textBox_Console.Text         = "-------------------------------------------------\n" + parti.joueur.nomJoueur + " utilise une pokeball !";
                Task.Delay(3000);

                if (adversaire.actuel[0] < 50)  // Si le pokémon à capturer possède moins de 50 points de vie
                {
                    Random rand   = new Random();
                    int    random = rand.Next(1, 6);

                    if (random >= adversaire.niveauExp) // Voir documentation pour plus d'explication
                    {
                        textBox_Console.AppendText("\n" + adversaire.nomMonstre + " a été capturé !");

                        // Remis a zéro des stats du monstre
                        adversaire.calcul_caract();
                        adversaire.renew_caract();
                        adversaire.pointExp--;
                        //Ajout du pokémon dans la liste de capture
                        parti.joueur.Ajouter_Pokemon_listeTotal(adversaire);
                        generer_adversaire(difficulte);
                    }
                    else
                    {
                        textBox_Console.AppendText("\n" + adversaire.nomMonstre + " résiste à la pokeball !");
                        image_pokemon_adverse.Source = Monstre.portrait(adversaire.nomMonstre);
                        reponse_adverse();
                    }
                }
                else // Donc, la vie du pokémon est plus haut que 40 points, alors celui résiste automatiquement à la pokéball
                {
                    textBox_Console.AppendText("\n" + adversaire.nomMonstre + " résiste à la pokeball !");
                    image_pokemon_adverse.Source = Monstre.portrait(adversaire.nomMonstre);
                    reponse_adverse();
                }
                parti.joueur.inventaire.pokeball--;
                label_pokeball.Content = "x " + parti.joueur.inventaire.pokeball;
            }
        }
コード例 #20
0
        // Permet d'afficher chaque Pokémon de l'équipe ( Choix 1, Choix 2,etc) ainsi que la liste déroulante contenant tout les pokémons attrapés
        public void afficher_team()
        {
            //Choix 1
            string pokemon;

            if (parti.joueur.equipe[0] != null) // Si choix 1 n'est pas vide, affichage de l'image
            {
                pokemon = parti.joueur.equipe[0].nomMonstre;
                image_pokemon_choix_1.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_pokemon_choix_1.Source = Monstre.portrait("inconnu"); // Sinon, affichage d'une image d'un pokémon inconnu
            }

            //Choix 2
            if (parti.joueur.equipe[1] != null)
            {
                pokemon = parti.joueur.equipe[1].nomMonstre;
                image_pokemon_choix_2.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_pokemon_choix_2.Source = Monstre.portrait("inconnu");
            }


            //Choix 3
            if (parti.joueur.equipe[2] != null)
            {
                pokemon = parti.joueur.equipe[2].nomMonstre;
                image_pokemon_choix_3.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_pokemon_choix_3.Source = Monstre.portrait("inconnu");
            }


            //Choix 4
            if (parti.joueur.equipe[3] != null)
            {
                pokemon = parti.joueur.equipe[3].nomMonstre;
                image_pokemon_choix_4.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_pokemon_choix_4.Source = Monstre.portrait("inconnu");
            }


            //Choix 5
            if (parti.joueur.equipe[4] != null)
            {
                pokemon = parti.joueur.equipe[4].nomMonstre;
                image_pokemon_choix_5.Source = Monstre.portrait(pokemon);
            }
            else
            {
                image_pokemon_choix_5.Source = Monstre.portrait("inconnu");
            }


            //Menu déroulant contenant la liste des pokemons capturés
            if (liste_affiche != true)
            {
                foreach (Monstre x in parti.joueur.monstreCapture)
                {
                    if (x != null)
                    {
                        ComboBoxItem item = new ComboBoxItem();
                        item.Content = x.nomMonstre;
                        comboBox_liste_pokemon.Items.Add(item);
                    }
                }
                liste_affiche = true;
            }
        }
コード例 #21
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
        //Reponse de l'adversaire (Intelligence artificielle)
        private void reponse_adverse()
        {
            if (adversaire.actuel[0] <= 0) // Si la vie de l'adversaire est moins ou égal a 0
            {
                if (nb_adversaire > 0)
                {
                    textBox_Console.Text = adversaire.nomMonstre + " est mort !";
                    generer_adversaire(difficulte);
                }
                else
                {
                    textBox_Console.Text     = adversaire.nomMonstre + " est mort !\nVous avez vaincu l'equipe ennemi !";
                    panel_pokemon.Visibility = System.Windows.Visibility.Hidden;
                    disable_button();
                    attribuer_recompense();
                }

                // Fin du combat
            }

            // Si la vie de l'adversaire est égal ou plus petit que 10
            else if (adversaire.actuel[0] <= 10)
            {
                textBox_Console.AppendText("\n" + adversaire.nomMonstre + "s'est enfui !");
                image_pokemon_adverse.Source = Monstre.portrait("iconnu.xml");
                generer_adversaire(difficulte);
            }

            // Si l'adversaire a pas assez de mana pour une habilete
            else if (adversaire.actuel[1] < adversaire.listeHabilete[0].cout && adversaire.actuel[1] < adversaire.listeHabilete[1].cout)
            {
                textBox_Console.AppendText("\n-------------------------------------------------\n" + adversaire.nomMonstre + " n'a pas assez de mana pour utiliser une habilete ! ");
                Regen_mana();
            }

            // Si la vie de l'adversaire est plus petit ou égal a 30 et qu'il possède assez de mana pour un habilet de support
            else if (difficulte > 1)
            {
                if (adversaire.actuel[0] <= 30 || (adversaire.actuel[1] < adversaire.listeHabilete[0].cout && adversaire.actuel[1] > adversaire.listeHabilete[1].cout))
                {
                    TypeElement element    = adversaire.typeMonstre;
                    Habilete    supporting = Habilete.habilete_protection_element(element);
                    textBox_Console.AppendText("\n-------------------------------------------------\n" + adversaire.nomMonstre + " utilise " + supporting.nom + " !");
                    // Utilise l'habilete
                    adversaire.actuel[1] = adversaire.actuel[1] - supporting.cout;
                    if (supporting.effet == Effet.regeneration)
                    {
                        adversaire.actuel[0] = adversaire.actuel[0] + supporting.magnitude;
                        if (adversaire.actuel[0] > adversaire.total[0])
                        {
                            adversaire.actuel[0] = adversaire.total[0];
                        }
                        textBox_Console.AppendText("\n" + adversaire.nomMonstre + " récupère " + supporting.magnitude + " points de vie !");
                    }
                    else
                    {
                        adversaire.actuel[4] = adversaire.actuel[4] + supporting.magnitude;
                        textBox_Console.AppendText("\n" + adversaire.nomMonstre + " augmente ces défenses de " + supporting.magnitude + " points !");
                    }
                    Regen_mana();
                }
            }

            else
            {
                attaquer(adversaire, selectionne, adversaire.listeHabilete[0]);
                if (selectionne.actuel[0] < 1)
                {
                    textBox_Console.AppendText("\n" + selectionne.nomMonstre + " est mort !\nVeuillez sélectionner un autre pokemon ou quitter ! ");
                    int x = parti.joueur.trouver_monstre_equipe(selectionne);

                    switch (x)
                    {
                    case 0:
                        button_choix1.IsEnabled  = false;
                        panel_pokemon.Visibility = System.Windows.Visibility.Hidden;
                        break;

                    case 1:
                        button_choix2.IsEnabled  = false;
                        panel_pokemon.Visibility = System.Windows.Visibility.Hidden;
                        break;

                    case 2:
                        button_choix3.IsEnabled  = false;
                        panel_pokemon.Visibility = System.Windows.Visibility.Hidden;
                        break;

                    case 3:
                        button_choix4.IsEnabled  = false;
                        panel_pokemon.Visibility = System.Windows.Visibility.Hidden;
                        break;

                    case 4:
                        button_choix5.IsEnabled  = false;
                        panel_pokemon.Visibility = System.Windows.Visibility.Hidden;
                        break;
                    }
                    // Si tout les pokemons sont morts, disable le boutton inventaire ainsi que le panel relié
                    if (button_choix1.IsEnabled == false && button_choix2.IsEnabled == false && button_choix3.IsEnabled == false && button_choix4.IsEnabled == false && button_choix5.IsEnabled == false)
                    {
                        button_inventaire.IsEnabled = false;
                        panel_inventaire.Visibility = System.Windows.Visibility.Hidden;
                    }
                }
                else
                {
                    Regen_mana();
                }
            }
        }
コード例 #22
0
 public Aventure(Joueur joueur)
 {
     this.joueur    = joueur;
     liste_habilete = Habilete.Charger_Liste_Habilete();
     liste_monstre  = Monstre.Charger_Liste_Monstre();
 }
コード例 #23
0
ファイル: Combat.xaml.cs プロジェクト: Lion001/INF1035
        //Utilisation d'une attaque
        private void attaquer(Monstre attaquant, Monstre cible, Habilete spell_use)
        {
            Habilete spell = spell_use;

            if (attaquant.actuel[1] < spell.cout)
            {
                System.Windows.MessageBox.Show("Ce pokemon n'a pas assez de mana pour effectuer l'attaque: Mana" + attaquant.actuel[1] + " Cout " + spell.cout);
            }
            else
            {
                int damageBrute = spell.magnitude + attaquant.actuel[3];

                //Si l'attaquant est de type eau, l'electricite diminu de moitier le spell et le feu encaisse le double
                if (attaquant.typeMonstre == TypeElement.Eau)
                {
                    if (cible.typeMonstre == TypeElement.Electricite)
                    {
                        damageBrute = damageBrute / 2;
                    }

                    if (cible.typeMonstre == TypeElement.Feu)
                    {
                        damageBrute = damageBrute * 2;
                    }
                }

                //Si l'attaquant est de type Electricite, l'eau encaisse le double et la vegetation resiste de moititer
                if (attaquant.typeMonstre == TypeElement.Electricite)
                {
                    if (cible.typeMonstre == TypeElement.Vegetation)
                    {
                        damageBrute = damageBrute / 2;
                    }

                    if (cible.typeMonstre == TypeElement.Eau)
                    {
                        damageBrute = damageBrute * 2;
                    }
                }

                //Si l'attaquant est de type Feu, l'eau encaisse la moitier et vegetation le double
                if (attaquant.typeMonstre == TypeElement.Feu)
                {
                    if (cible.typeMonstre == TypeElement.Eau)
                    {
                        damageBrute = damageBrute / 2;
                    }

                    if (cible.typeMonstre == TypeElement.Vegetation)
                    {
                        damageBrute = damageBrute * 2;
                    }
                }

                //Si l'attaquant est de type Vegetation, l'electricite encaisse le double et le feu la moitie
                if (attaquant.typeMonstre == TypeElement.Vegetation)
                {
                    if (cible.typeMonstre == TypeElement.Feu)
                    {
                        damageBrute = damageBrute / 2;
                    }

                    if (cible.typeMonstre == TypeElement.Electricite)
                    {
                        damageBrute = damageBrute * 2;
                    }
                }

                //Calcul de l'attaque
                int damageNet = damageBrute - cible.actuel[4];
                cible.actuel[0]     = cible.actuel[0] - damageNet;
                attaquant.actuel[1] = attaquant.actuel[1] - spell.cout;

                if (Monstre.estIdentique(cible, selectionne))    // Si la cible est le pokemon du joueur
                {
                    selectionne.actuel[0] = cible.actuel[0];     // La vie du pokemon du joueur est = a la vie de la cible
                    adversaire.actuel[1]  = attaquant.actuel[1]; // La mana du pokemon adverse est = a la mana de l'attaquant
                }
                else // Sinon, la cible est le pokemon de l'adversaire
                {
                    adversaire.actuel[0]  = cible.actuel[0];
                    selectionne.actuel[1] = attaquant.actuel[1];
                }

                MAJ_barre();
                textBox_Console.AppendText("\n-------------------------------------------------\n" + attaquant.nomMonstre + " utilise " + spell.nom + " !\n" + cible.nomMonstre + " encaisse " + damageBrute + " de damage !");
            }
        }
コード例 #24
0
ファイル: Nouveau.xaml.cs プロジェクト: Lion001/INF1035
        private void button_ajouter_Click(object sender, RoutedEventArgs e)
        {
            Monstre[]  liste_monstre     = new Monstre[20];
            Habilete[] liste_eau         = Habilete.Charger_Liste_Habilete_Element(TypeElement.Eau);
            Habilete[] liste_electricite = Habilete.Charger_Liste_Habilete_Element(TypeElement.Electricite);
            Habilete[] liste_feu         = Habilete.Charger_Liste_Habilete_Element(TypeElement.Feu);
            Habilete[] liste_veg         = Habilete.Charger_Liste_Habilete_Element(TypeElement.Vegetation);


            Monstre pikachu = new Monstre(1, "Pikachu", "Souris électrique", "aucun", TypeElement.Electricite, "pikachu.png");

            pikachu.deBase[0]              = 100; pikachu.prog[0] = 5;
            pikachu.deBase[1]              = 100; pikachu.prog[1] = 10;
            pikachu.deBase[2]              = 10; pikachu.prog[2] = 2;
            pikachu.deBase[3]              = 20; pikachu.prog[3] = 10;
            pikachu.deBase[4]              = 5; pikachu.prog[4] = 1;
            pikachu.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(pikachu.typeMonstre);
            pikachu.listeHabileteActive[0] = pikachu.listeHabilete[0];
            pikachu.calcul_caract();
            pikachu.listeHabilete          = liste_electricite;
            pikachu.listeHabileteActive[0] = pikachu.listeHabilete[0];
            liste_monstre[0] = pikachu;

            Monstre Magneton = new Monstre(2, "Magneton", "Creature a trois oeil", "aucun", TypeElement.Electricite, "Magneton.png");

            Magneton.deBase[0]              = 100; Magneton.prog[0] = 5;
            Magneton.deBase[1]              = 100; Magneton.prog[1] = 20;
            Magneton.deBase[2]              = 10; Magneton.prog[2] = 2;
            Magneton.deBase[3]              = 20; Magneton.prog[3] = 10;
            Magneton.deBase[4]              = 5; Magneton.prog[4] = 10;
            Magneton.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Magneton.typeMonstre);
            Magneton.listeHabileteActive[0] = Magneton.listeHabilete[0];
            Magneton.calcul_caract();
            Magneton.listeHabilete          = liste_electricite;
            Magneton.listeHabileteActive[0] = Magneton.listeHabilete[0];
            liste_monstre[1] = Magneton;

            Monstre Zapdos = new Monstre(3, "Zapdos", "Oiseau électrique", "aucun", TypeElement.Electricite, "Zapdos.png");

            Zapdos.deBase[0]              = 100; Zapdos.prog[0] = 10;
            Zapdos.deBase[1]              = 100; Zapdos.prog[1] = 10;
            Zapdos.deBase[2]              = 10; Zapdos.prog[2] = 10;
            Zapdos.deBase[3]              = 20; Zapdos.prog[3] = 15;
            Zapdos.deBase[4]              = 5; Zapdos.prog[4] = 5;
            Zapdos.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Zapdos.typeMonstre);
            Zapdos.listeHabileteActive[0] = Zapdos.listeHabilete[0];
            Zapdos.calcul_caract();
            Zapdos.listeHabilete          = liste_electricite;
            Zapdos.listeHabileteActive[0] = Zapdos.listeHabilete[0];
            liste_monstre[2] = Zapdos;

            Monstre Elektek = new Monstre(4, "Elektek", "Creature electrique mortelle", "aucun", TypeElement.Electricite, "Elektek.png");

            Elektek.deBase[0]              = 100; Elektek.prog[0] = 10;
            Elektek.deBase[1]              = 100; Elektek.prog[1] = 20;
            Elektek.deBase[2]              = 10; Elektek.prog[2] = 5;
            Elektek.deBase[3]              = 20; Elektek.prog[3] = 45;
            Elektek.deBase[4]              = 5; Elektek.prog[4] = 10;
            Elektek.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Elektek.typeMonstre);
            Elektek.listeHabileteActive[0] = Elektek.listeHabilete[0];
            Elektek.calcul_caract();
            Elektek.listeHabilete          = liste_electricite;
            Elektek.listeHabileteActive[0] = Elektek.listeHabilete[0];
            liste_monstre[3] = Elektek;

            Monstre Squirtle = new Monstre(5, "Squirtle", "Tortue aquatique", "aucun", TypeElement.Eau, "Squirtle.png");

            Squirtle.deBase[0]              = 100; Squirtle.prog[0] = 5;
            Squirtle.deBase[1]              = 100; Squirtle.prog[1] = 10;
            Squirtle.deBase[2]              = 10; Squirtle.prog[2] = 2;
            Squirtle.deBase[3]              = 20; Squirtle.prog[3] = 10;
            Squirtle.deBase[4]              = 5; Squirtle.prog[4] = 1;
            Squirtle.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Squirtle.typeMonstre);
            Squirtle.listeHabileteActive[0] = Squirtle.listeHabilete[0];
            Squirtle.calcul_caract();
            Squirtle.listeHabilete          = liste_eau;
            Squirtle.listeHabileteActive[0] = Squirtle.listeHabilete[0];
            liste_monstre[4] = Squirtle;

            Monstre Milotic = new Monstre(6, "Milotic", "Serpent aquatique", "aucun", TypeElement.Eau, "Milotic.png");

            Milotic.deBase[0]              = 100; Milotic.prog[0] = 10;
            Milotic.deBase[1]              = 100; Milotic.prog[1] = 20;
            Milotic.deBase[2]              = 10; Milotic.prog[2] = 5;
            Milotic.deBase[3]              = 20; Milotic.prog[3] = 10;
            Milotic.deBase[4]              = 5; Milotic.prog[4] = 1;
            Milotic.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Milotic.typeMonstre);
            Milotic.listeHabileteActive[0] = Milotic.listeHabilete[0];
            Milotic.calcul_caract();
            Milotic.listeHabilete          = liste_eau;
            Milotic.listeHabileteActive[0] = Milotic.listeHabilete[0];
            liste_monstre[5] = Milotic;

            Monstre Golduck = new Monstre(7, "Golduck", "Canard tres agressif", "aucun", TypeElement.Eau, "Golduck.png");

            Golduck.deBase[0]              = 100; Golduck.prog[0] = 10;
            Golduck.deBase[1]              = 100; Golduck.prog[1] = 15;
            Golduck.deBase[2]              = 10; Golduck.prog[2] = 7;
            Golduck.deBase[3]              = 20; Golduck.prog[3] = 30;
            Golduck.deBase[4]              = 5; Golduck.prog[4] = 5;
            Golduck.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Golduck.typeMonstre);
            Golduck.listeHabileteActive[0] = Golduck.listeHabilete[0];
            Golduck.calcul_caract();
            Golduck.listeHabilete          = liste_eau;
            Golduck.listeHabileteActive[0] = Golduck.listeHabilete[0];
            liste_monstre[6] = Golduck;

            Monstre Vapoeron = new Monstre(8, "Vapoeron", "Creature a 4 pattes aquatique", "aucun", TypeElement.Eau, "Vapoeron.png");

            Vapoeron.deBase[0]              = 100; Vapoeron.prog[0] = 10;
            Vapoeron.deBase[1]              = 100; Vapoeron.prog[1] = 15;
            Vapoeron.deBase[2]              = 10; Vapoeron.prog[2] = 10;
            Vapoeron.deBase[3]              = 20; Vapoeron.prog[3] = 50;
            Vapoeron.deBase[4]              = 5; Vapoeron.prog[4] = 20;
            Vapoeron.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Vapoeron.typeMonstre);
            Vapoeron.listeHabileteActive[0] = Vapoeron.listeHabilete[0];
            Vapoeron.calcul_caract();
            Vapoeron.listeHabilete          = liste_eau;
            Vapoeron.listeHabileteActive[0] = Vapoeron.listeHabilete[0];
            liste_monstre[7] = Vapoeron;

            Monstre Bulbasaur = new Monstre(9, "Bulbasaur", "Tortue Vegetale", "aucun", TypeElement.Vegetation, "Bulbasaur.png");

            Bulbasaur.deBase[0]              = 100; Bulbasaur.prog[0] = 5;
            Bulbasaur.deBase[1]              = 100; Bulbasaur.prog[1] = 10;
            Bulbasaur.deBase[2]              = 10; Bulbasaur.prog[2] = 2;
            Bulbasaur.deBase[3]              = 20; Bulbasaur.prog[3] = 10;
            Bulbasaur.deBase[4]              = 5; Bulbasaur.prog[4] = 1;
            Bulbasaur.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Bulbasaur.typeMonstre);
            Bulbasaur.listeHabileteActive[0] = Bulbasaur.listeHabilete[0];
            Bulbasaur.calcul_caract();
            Bulbasaur.listeHabilete          = liste_veg;
            Bulbasaur.listeHabileteActive[0] = Bulbasaur.listeHabilete[0];
            liste_monstre[8] = Bulbasaur;

            Monstre Vileplume = new Monstre(10, "Vileplume", "Fleur mobile", "aucun", TypeElement.Vegetation, "Vileplume.png");

            Vileplume.deBase[0]              = 100; Vileplume.prog[0] = 5;
            Vileplume.deBase[1]              = 100; Vileplume.prog[1] = 30;
            Vileplume.deBase[2]              = 10; Vileplume.prog[2] = 15;
            Vileplume.deBase[3]              = 20; Vileplume.prog[3] = 10;
            Vileplume.deBase[4]              = 5; Vileplume.prog[4] = 1;
            Vileplume.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Vileplume.typeMonstre);
            Vileplume.listeHabileteActive[0] = Vileplume.listeHabilete[0];
            Vileplume.calcul_caract();
            Vileplume.listeHabilete          = liste_veg;
            Vileplume.listeHabileteActive[0] = Vileplume.listeHabilete[0];
            liste_monstre[9] = Vileplume;

            Monstre Exeggutor = new Monstre(11, "Exeggutor", "Anana malefique", "aucun", TypeElement.Vegetation, "Exeggutor.png");

            Exeggutor.deBase[0]              = 500; Exeggutor.prog[0] = 5;
            Exeggutor.deBase[1]              = 100; Exeggutor.prog[1] = 10;
            Exeggutor.deBase[2]              = 10; Exeggutor.prog[2] = 2;
            Exeggutor.deBase[3]              = 20; Exeggutor.prog[3] = 20;
            Exeggutor.deBase[4]              = 5; Exeggutor.prog[4] = 10;
            Exeggutor.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Exeggutor.typeMonstre);
            Exeggutor.listeHabileteActive[0] = Exeggutor.listeHabilete[0];
            Exeggutor.calcul_caract();
            Exeggutor.listeHabilete          = liste_veg;
            Exeggutor.listeHabileteActive[0] = Exeggutor.listeHabilete[0];
            liste_monstre[10] = Exeggutor;

            Monstre Venusaur = new Monstre(12, "Venusaur", "Tortue géante", "aucun", TypeElement.Vegetation, "Venusaur.png");

            Venusaur.deBase[0]              = 500; Venusaur.prog[0] = 20;
            Venusaur.deBase[1]              = 100; Venusaur.prog[1] = 10;
            Venusaur.deBase[2]              = 10; Venusaur.prog[2] = 2;
            Venusaur.deBase[3]              = 20; Venusaur.prog[3] = 10;
            Venusaur.deBase[4]              = 20; Venusaur.prog[4] = 20;
            Venusaur.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Venusaur.typeMonstre);
            Venusaur.listeHabileteActive[0] = Venusaur.listeHabilete[0];
            Venusaur.calcul_caract();
            Venusaur.listeHabilete          = liste_veg;
            Venusaur.listeHabileteActive[0] = Venusaur.listeHabilete[0];
            liste_monstre[11] = Venusaur;

            Monstre Charmander = new Monstre(13, "Charmander", "Lézard de feu", "aucun", TypeElement.Feu, "Charmander.png");

            Charmander.deBase[0]              = 100; Charmander.prog[0] = 5;
            Charmander.deBase[1]              = 100; Charmander.prog[1] = 10;
            Charmander.deBase[2]              = 10; Charmander.prog[2] = 2;
            Charmander.deBase[3]              = 20; Charmander.prog[3] = 10;
            Charmander.deBase[4]              = 5; Charmander.prog[4] = 1;
            Charmander.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Charmander.typeMonstre);
            Charmander.listeHabileteActive[0] = Charmander.listeHabilete[0];
            Charmander.calcul_caract();
            Charmander.listeHabilete          = liste_feu;
            Charmander.listeHabileteActive[0] = Charmander.listeHabilete[0];
            liste_monstre[12] = Charmander;

            Monstre Ninetales = new Monstre(14, "Ninetales", "Loup volcanique", "aucun", TypeElement.Feu, "Ninetales.png");

            Ninetales.deBase[0]              = 100; Ninetales.prog[0] = 5;
            Ninetales.deBase[1]              = 100; Ninetales.prog[1] = 10;
            Ninetales.deBase[2]              = 10; Ninetales.prog[2] = 10;
            Ninetales.deBase[3]              = 30; Ninetales.prog[3] = 30;
            Ninetales.deBase[4]              = 5; Ninetales.prog[4] = 1;
            Ninetales.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Ninetales.typeMonstre);
            Ninetales.listeHabileteActive[0] = Ninetales.listeHabilete[0];
            Ninetales.calcul_caract();
            Ninetales.listeHabilete          = liste_feu;
            Ninetales.listeHabileteActive[0] = Ninetales.listeHabilete[0];
            liste_monstre[13] = Ninetales;

            Monstre Rapidash = new Monstre(15, "Rapidash", "Cheval volcanique", "aucun", TypeElement.Feu, "Rapidash.png");

            Rapidash.deBase[0]              = 100; Rapidash.prog[0] = 15;
            Rapidash.deBase[1]              = 100; Rapidash.prog[1] = 20;
            Rapidash.deBase[2]              = 10; Rapidash.prog[2] = 2;
            Rapidash.deBase[3]              = 20; Rapidash.prog[3] = 30;
            Rapidash.deBase[4]              = 5; Rapidash.prog[4] = 5;
            Rapidash.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Rapidash.typeMonstre);
            Rapidash.listeHabileteActive[0] = Rapidash.listeHabilete[0];
            Rapidash.calcul_caract();
            Rapidash.listeHabilete          = liste_feu;
            Rapidash.listeHabileteActive[0] = Rapidash.listeHabilete[0];
            liste_monstre[14] = Rapidash;

            Monstre Moltres = new Monstre(16, "Moltres", "Oiseau Volcanique", "aucun", TypeElement.Feu, "Moltres.png");

            Moltres.deBase[0]              = 100; Moltres.prog[0] = 30;
            Moltres.deBase[1]              = 100; Moltres.prog[1] = 10;
            Moltres.deBase[2]              = 10; Moltres.prog[2] = 5;
            Moltres.deBase[3]              = 20; Moltres.prog[3] = 60;
            Moltres.deBase[4]              = 5; Moltres.prog[4] = 10;
            Moltres.listeHabilete          = Habilete.Charger_Liste_Habilete_Element(Moltres.typeMonstre);
            Moltres.listeHabileteActive[0] = Moltres.listeHabilete[0];
            Moltres.calcul_caract();
            Moltres.listeHabilete          = liste_feu;
            Moltres.listeHabileteActive[0] = Moltres.listeHabilete[0];
            liste_monstre[15] = Moltres;

            Monstre.Enregistrer_Liste_Monstre(liste_monstre);
        }