debut gameManager

This commit is contained in:
OMGiTzPomPom 2022-10-13 22:03:05 +02:00
parent a94c17f1a0
commit 34b6e157c8
26 changed files with 902 additions and 8 deletions

View File

@ -2,6 +2,10 @@
public class Program {
public static void Main(string[] args) {
GameManager gm = new GameManager();
gm.initializeGame();
Console.WriteLine(gm.GetPlayers()[0]);
Console.WriteLine("");
}
}

View File

@ -1,4 +1,5 @@
Applejack;Applejack est une honnête dresseuse pokémon et sait faire preuve d'un grand altruisme envers les pokémon. Elle vit et travaille à la Ferme de la Douce Baie Oran.;Ses Pokémons ont un bonus de PV de 5%
//Nom;Description;Effet
Applejack;Applejack est une honnête dresseuse pokémon et sait faire preuve d'un grand altruisme envers les pokémon. Elle vit et travaille à la Ferme de la Douce Baie Oran.;Ses Pokémons ont un bonus de PV de 5%
Rainbow Dash;Rainbow Dash est une loyale dresseuse pokémon. Elle est en charge de la météo de Pokeville;Ses Pokémons ont un bonus d'ATKPhys de 3%
Twilight Sparkle;Twilight Sparkle est une dresseuse pokémon avec un talent inné. Elle a la capacité d'élever ses pokémons avec aisance. Elle vit dans le palais royal du Bourg Galop;Ses Pokémons ont un bonus de vitesse de 7%
Pinkie Pie;Pinkie Pie est une souriante dresseuse pokémon. Elle fait sourire tous les pokémons en un instant. Elle vit avec sa famille dans une ferme de production de caillous à Mérouville.;Ses Pokémons ont un bonus de DEFPhys de 4%
1 Applejack //Nom Applejack est une honnête dresseuse pokémon et sait faire preuve d'un grand altruisme envers les pokémon. Elle vit et travaille à la Ferme de la Douce Baie Oran. Description Ses Pokémons ont un bonus de PV de 5% Effet
2 Applejack Applejack est une honnête dresseuse pokémon et sait faire preuve d'un grand altruisme envers les pokémon. Elle vit et travaille à la Ferme de la Douce Baie Oran. Ses Pokémons ont un bonus de PV de 5%
3 Rainbow Dash Rainbow Dash Rainbow Dash est une loyale dresseuse pokémon. Elle est en charge de la météo de Pokeville Rainbow Dash est une loyale dresseuse pokémon. Elle est en charge de la météo de Pokeville Ses Pokémons ont un bonus d'ATKPhys de 3% Ses Pokémons ont un bonus d'ATKPhys de 3%
4 Twilight Sparkle Twilight Sparkle Twilight Sparkle est une dresseuse pokémon avec un talent inné. Elle a la capacité d'élever ses pokémons avec aisance. Elle vit dans le palais royal du Bourg Galop Twilight Sparkle est une dresseuse pokémon avec un talent inné. Elle a la capacité d'élever ses pokémons avec aisance. Elle vit dans le palais royal du Bourg Galop Ses Pokémons ont un bonus de vitesse de 7% Ses Pokémons ont un bonus de vitesse de 7%
5 Pinkie Pie Pinkie Pie Pinkie Pie est une souriante dresseuse pokémon. Elle fait sourire tous les pokémons en un instant. Elle vit avec sa famille dans une ferme de production de caillous à Mérouville. Pinkie Pie est une souriante dresseuse pokémon. Elle fait sourire tous les pokémons en un instant. Elle vit avec sa famille dans une ferme de production de caillous à Mérouville. Ses Pokémons ont un bonus de DEFPhys de 4% Ses Pokémons ont un bonus de DEFPhys de 4%

View File

@ -1,4 +1,4 @@
name;type;hp;attack;defense;sp_attack;sp_defense;speed
//Name;Type;Hp;Attack;Defense;Sp_attack;Sp_defense;Speed
Bulbasaur;Grass;45;49;49;65;65;45
Ivysaur;Grass;60;62;63;80;80;60
Venusaur;Grass;80;82;83;100;100;80
@ -14,7 +14,7 @@ Squirtle;Water;44;48;65;50;64;43
Wartortle;Water;59;63;80;65;80;58
Blastoise;Water;79;83;100;85;105;78
Mega Blastoise;Water;79;103;120;135;115;78
Gigantamax Blasoise;Blastoise;79;83;100;85;105;78
Gigantamax Blastoise;Water;79;83;100;85;105;78
Caterpie;Bug;45;30;35;20;20;45
Metapod;Bug;50;20;55;25;25;30
Butterfree;Bug;60;45;50;90;80;70
1 name //Name type Type hp Hp attack Attack defense Defense sp_attack Sp_attack sp_defense Sp_defense speed Speed
2 Bulbasaur Grass 45 49 49 65 65 45
3 Ivysaur Grass 60 62 63 80 80 60
4 Venusaur Grass 80 82 83 100 100 80
14 Wartortle Water 59 63 80 65 80 58
15 Blastoise Water 79 83 100 85 105 78
16 Mega Blastoise Water 79 103 120 135 115 78
17 Gigantamax Blasoise Gigantamax Blastoise Blastoise Water 79 83 100 85 105 78
18 Caterpie Bug 45 30 35 20 20 45
19 Metapod Bug 50 20 55 25 25 30
20 Butterfree Bug 60 45 50 90 80 70

View File

@ -3,11 +3,186 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Programmation_objet_TLESIO21.projet {
public class GameManager {
public static void AlterPokemonStat(String stat, double value, Pokemon p) {
private string Path;
private List<Pokemon> pkm = new List<Pokemon>();
private List<Player> players = new List<Player>();
public GameManager() {
this.Path = "../../../csv/";
}
private static int getRandom(int max) {
Random r = new Random();
return r.Next(max);
}
private Nature GenerateNature() {
switch (getRandom(25)) {
case 0:
return Nature.BOLD;
case 1:
return Nature.QUIRKY;
case 2:
return Nature.BRAVE;
case 3:
return Nature.CALM;
case 4:
return Nature.QUIET;
case 5:
return Nature.DOCILE;
case 6:
return Nature.MILD;
case 7:
return Nature.RASH;
case 8:
return Nature.GENTLE;
case 9:
return Nature.HARDY;
case 10:
return Nature.JOLLY;
case 11:
return Nature.LAX;
case 12:
return Nature.IMPISH;
case 13:
return Nature.SASSY;
case 14:
return Nature.NAUGHTY;
case 15:
return Nature.MODEST;
case 16:
return Nature.NAIVE;
case 17:
return Nature.HASTY;
case 18:
return Nature.CAREFUL;
case 19:
return Nature.BASHFUL;
case 20:
return Nature.RELAXED;
case 21:
return Nature.ADAMANT;
case 22:
return Nature.SERIOUS;
case 23:
return Nature.LONELY;
case 24:
return Nature.TIMID;
default:
return Nature.NULL;
}
}
private Pokemon? CreatePokemon(String s) {
String[] tab = s.Split(";");
switch (tab[1]) {
case "Normal":
return new PokemonNormal(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Grass":
return new PokemonGrass(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Fire":
return new PokemonFire(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Water":
return new PokemonWater(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Electric":
return new PokemonElectric(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Flying":
return new PokemonFlying(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Bug":
return new PokemonBug(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Rock":
return new PokemonRock(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Ground":
return new PokemonGround(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Psychic":
return new PokemonPsychic(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Poison":
return new PokemonPoison(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Ghost":
return new PokemonGhost(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Dark":
return new PokemonDark(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Steel":
return new PokemonSteel(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Fighting":
return new PokemonFighting(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Ice":
return new PokemonIce(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Dragon":
return new PokemonDragon(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
case "Fairy":
return new PokemonFairy(tab[0], int.Parse(tab[2]), int.Parse(tab[3]), int.Parse(tab[5]), int.Parse(tab[4]), int.Parse(tab[6]), int.Parse(tab[7]));
default:
return null;
}
}
private Player createPlayer(String s) {
String[] tab = s.Split(";");
List<Pokemon> pokemons = new List<Pokemon>();
for(int i = 0; i < getRandom(30)+7; ++i) {
pokemons.Add(pkm.ElementAt(getRandom(1072)));
}
foreach (Pokemon pkm in pokemons) {
Nature n = GenerateNature();
pkm.SetNature(n);
this.ApplyNatureEffect(n, pkm);
this.ApplyPlayerEffect(tab[0], pkm);
}
return new Player(tab[0], tab[1], pokemons);
}
public void initializeGame() {
String line;
try {
//Pass the file path and file name to the StreamReader constructor
StreamReader srPkm = new StreamReader(this.Path + "Pokemon.csv");
StreamReader srPerso = new StreamReader(this.Path + "Characters.csv");
//Read the first line of text
line = srPkm.ReadLine();
//Continue to read until you reach end of file
while (line != null) {
if (line[0] == '/') {
line = srPkm.ReadLine();
}
//write the line to console window
pkm.Add(CreatePokemon(line));
//Read the next line
line = srPkm.ReadLine();
}
//close the file
srPkm.Close();
//Read the first line of text
line = srPerso.ReadLine();
//Continue to read until you reach end of file
while (line != null) {
if (line[0] == '/') {
line = srPerso.ReadLine();
}
//write the line to console window
players.Add(createPlayer(line));
//Read the next line
line = srPerso.ReadLine();
}
//close the file
srPkm.Close();
} catch (Exception e) {
Console.WriteLine("Exception: " + e.Message);
}
}
public void AlterPokemonStat(String stat, double value, Pokemon p) {
switch(stat) {
case "PV":
p.setPV((int)Math.Floor(p.getPV() * value));
@ -108,7 +283,7 @@ namespace Programmation_objet_TLESIO21.projet {
public void ApplyPlayerEffect(String playerName, Pokemon p) {
switch(playerName) {
case "Applejack":
AlterPokemonStat("PV", 0.95, p);
AlterPokemonStat("PV", 1.05, p);
break;
case "Rainbow Dash":
AlterPokemonStat("ATKPhys", 1.03, p);
@ -141,6 +316,12 @@ namespace Programmation_objet_TLESIO21.projet {
}
}
public List<Pokemon> GetPokemons() {
return this.pkm;
}
public List<Player> GetPlayers() {
return this.players;
}
}
}

View File

@ -30,6 +30,7 @@ namespace Programmation_objet_TLESIO21.projet {
ADAMANT,
SERIOUS,
LONELY,
TIMID
TIMID,
NULL
}
}

View File

@ -21,5 +21,9 @@ namespace Programmation_objet_TLESIO21.projet {
this.Team = new List<Pokemon>(6);
}
public override string ToString() {
return this.Name + " est level " + this.level + ". Ses pokemon sont : " + this.PC.ToString();
}
}
}

View File

@ -49,6 +49,10 @@ namespace Programmation_objet_TLESIO21.projet {
return this.getName() + " - PV : " + getPV() + ", PC = " + getPC();
}
public void SetNature(Nature n) {
this.Nature = n;
}
public void setPV(int pv) {
this.PV = pv;
}

View File

@ -20,7 +20,7 @@ namespace Programmation_objet_TLESIO21.projet {
GHOST,
DARK,
STEEL,
COMBAT,
FIGHTING,
ICE,
DRAGON,
FAIRY

View File

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonBug : Pokemon {
public PokemonBug(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(92);
this.setType(Type.BUG);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(damage > 0) {
if(cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.POISON) ||
cible.getType().Equals(Type.GHOST) ||
cible.getType().Equals(Type.FLYING)) {
damage /= 2;
}
if(cible.getType().Equals(Type.GRASS) ||
cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.DARK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 3);
int damage = cible.getDEFSpe() - this.getATKSpe();
if(damage > 0) {
if (cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.POISON) ||
cible.getType().Equals(Type.GHOST) ||
cible.getType().Equals(Type.FLYING)) {
damage /= 2;
}
if (cible.getType().Equals(Type.GRASS) ||
cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.DARK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonDark : Pokemon {
public PokemonDark(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(95);
this.setType(Type.DARK);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 4);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(damage > 0) {
if(cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.DARK)) {
damage /= 2;
}
if(cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.GHOST)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFSpe() - this.getATKSpe();
if(damage > 0) {
if (cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.DARK)) {
damage /= 2;
}
if (cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.GHOST)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonDragon : Pokemon {
public PokemonDragon(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(125);
this.setType(Type.DRAGON);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 1);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(cible.getType().Equals(Type.FAIRY)) {
damage = 0;
}
if(damage > 0) {
if(cible.getType().Equals(Type.STEEL)) {
damage /= 2;
}
if(cible.getType().Equals(Type.DRAGON)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 1);
int damage = cible.getDEFSpe() - this.getATKSpe();
if (cible.getType().Equals(Type.FAIRY)) {
damage = 0;
}
if (damage > 0) {
if (cible.getType().Equals(Type.STEEL)) {
damage /= 2;
}
if (cible.getType().Equals(Type.DRAGON)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonFairy : Pokemon {
public PokemonFairy(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(106);
this.setType(Type.FAIRY);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(damage > 0) {
if(cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.POISON)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.DRAGON) ||
cible.getType().Equals(Type.DARK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 4);
int damage = cible.getDEFSpe() - this.getATKSpe();
if(damage > 0) {
if (cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.POISON)) {
damage /= 2;
}
if (cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.DRAGON) ||
cible.getType().Equals(Type.DARK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,63 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonFighting : Pokemon {
public PokemonFighting(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(102);
this.setType(Type.FIGHTING);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 4);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(cible.getType().Equals(Type.GHOST)) {
damage = 0;
}
if(damage > 0) {
if(cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.FLYING) ||
cible.getType().Equals(Type.BUG) ||
cible.getType().Equals(Type.FAIRY)) {
damage /= 2;
}
if(cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.NORMAL) ||
cible.getType().Equals(Type.DARK) ||
cible.getType().Equals(Type.ICE) ||
cible.getType().Equals(Type.ROCK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 1);
int damage = cible.getDEFSpe() - this.getATKSpe();
if (cible.getType().Equals(Type.GHOST)) {
damage = 0;
}
if (damage > 0) {
if (cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.FLYING) ||
cible.getType().Equals(Type.BUG) ||
cible.getType().Equals(Type.FAIRY)) {
damage /= 2;
}
if (cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.NORMAL) ||
cible.getType().Equals(Type.DARK) ||
cible.getType().Equals(Type.ICE) ||
cible.getType().Equals(Type.ROCK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonFlying : Pokemon {
public PokemonFlying(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(120);
this.setType(Type.FLYING);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 4);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(damage > 0) {
if(cible.getType().Equals(Type.ROCK) ||
cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.ELECTRIC)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.BUG) ||
cible.getType().Equals(Type.GRASS)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFSpe() - this.getATKSpe();
if(damage > 0) {
if (cible.getType().Equals(Type.ROCK) ||
cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.ELECTRIC)) {
damage /= 2;
}
if (cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.BUG) ||
cible.getType().Equals(Type.GRASS)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonGhost : Pokemon {
public PokemonGhost(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(80);
this.setType(Type.GHOST);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 3);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(cible.getType().Equals(Type.NORMAL)) {
damage = 0;
}
if(damage > 0) {
if(cible.getType().Equals(Type.DARK)) {
damage /= 2;
}
if(cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.GHOST)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 1);
int damage = cible.getDEFSpe() - this.getATKSpe();
if (cible.getType().Equals(Type.NORMAL)) {
damage = 0;
}
if (damage > 0) {
if (cible.getType().Equals(Type.DARK)) {
damage /= 2;
}
if (cible.getType().Equals(Type.PSYCHIC) ||
cible.getType().Equals(Type.GHOST)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonGround : Pokemon {
public PokemonGround(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(110);
this.setType(Type.ELECTRIC);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 3);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(cible.getType().Equals(Type.FLYING)) {
damage = 0;
}
if(damage > 0) {
if(cible.getType().Equals(Type.BUG) ||
cible.getType().Equals(Type.GRASS)) {
damage /= 2;
}
if(cible.getType().Equals(Type.ROCK) ||
cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.POISON) ||
cible.getType().Equals(Type.ELECTRIC)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 4);
int damage = cible.getDEFSpe() - this.getATKSpe();
if(cible.getType().Equals(Type.FLYING)) {
damage = 0;
}
if(damage > 0) {
if(cible.getType().Equals(Type.DRAGON) ||
cible.getType().Equals(Type.GRASS) ||
cible.getType().Equals(Type.ELECTRIC)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FLYING) ||
cible.getType().Equals(Type.WATER)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonIce : Pokemon {
public PokemonIce(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(85);
this.setType(Type.ICE);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(damage > 0) {
if(cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.WATER) ||
cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.ICE)) {
damage /= 2;
}
if(cible.getType().Equals(Type.DRAGON) ||
cible.getType().Equals(Type.GRASS) ||
cible.getType().Equals(Type.GROUND) ||
cible.getType().Equals(Type.FLYING)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 3);
int damage = cible.getDEFSpe() - this.getATKSpe();
if (damage > 0) {
if (cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.WATER) ||
cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.ICE)) {
damage /= 2;
}
if (cible.getType().Equals(Type.DRAGON) ||
cible.getType().Equals(Type.GRASS) ||
cible.getType().Equals(Type.GROUND) ||
cible.getType().Equals(Type.FLYING)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonPoison : Pokemon {
public PokemonPoison(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(110);
this.setType(Type.POISON);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(cible.getType().Equals(Type.STEEL)) {
damage = 0;
}
if(damage > 0) {
if(cible.getType().Equals(Type.POISON) ||
cible.getType().Equals(Type.ROCK) ||
cible.getType().Equals(Type.GROUND) ||
cible.getType().Equals(Type.GHOST)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.GRASS)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFSpe() - this.getATKSpe();
if (cible.getType().Equals(Type.STEEL)) {
damage = 0;
}
if (damage > 0) {
if (cible.getType().Equals(Type.POISON) ||
cible.getType().Equals(Type.ROCK) ||
cible.getType().Equals(Type.GROUND) ||
cible.getType().Equals(Type.GHOST)) {
damage /= 2;
}
if (cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.GRASS)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonPsychic: Pokemon {
public PokemonPsychic(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(80);
this.setType(Type.PSYCHIC);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 1);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(cible.getType().Equals(Type.DARK)) {
damage = 0;
}
if(damage > 0) {
if(cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.PSYCHIC)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.POISON)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 3);
int damage = cible.getDEFSpe() - this.getATKSpe();
if (cible.getType().Equals(Type.DARK)) {
damage = 0;
}
if (damage > 0) {
if (cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.PSYCHIC)) {
damage /= 2;
}
if (cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.POISON)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonRock : Pokemon {
public PokemonRock(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(105);
this.setType(Type.ROCK);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 4);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(damage > 0) {
if(cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.GROUND)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.ICE) ||
cible.getType().Equals(Type.BUG)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFSpe() - this.getATKSpe();
if(damage > 0) {
if(cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.FIGHTING) ||
cible.getType().Equals(Type.GROUND)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.ICE) ||
cible.getType().Equals(Type.BUG)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}

View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Programmation_objet_TLESIO21.projet {
public class PokemonSteel : Pokemon {
public PokemonSteel(string Name, int PV, int ATKPhys, int ATKSpe, int DEFPhys, int DEFSpe, int Speed) : base(Name, PV, ATKPhys, ATKSpe, DEFPhys, DEFSpe, Speed) {
base.setPC(105);
this.setType(Type.STEEL);
}
public override void PhysAttack(Pokemon cible) {
this.setPC(this.getPC() - 3);
int damage = cible.getDEFPhys() - this.getATKPhys();
if(damage > 0) {
if(cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.WATER) ||
cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.ELECTRIC)) {
damage /= 2;
}
if(cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.ICE) ||
cible.getType().Equals(Type.ROCK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
public override void SpeAttack(Pokemon cible) {
this.setPC(this.getPC() - 2);
int damage = cible.getDEFSpe() - this.getATKSpe();
if(damage > 0) {
if (cible.getType().Equals(Type.STEEL) ||
cible.getType().Equals(Type.WATER) ||
cible.getType().Equals(Type.FIRE) ||
cible.getType().Equals(Type.ELECTRIC)) {
damage /= 2;
}
if (cible.getType().Equals(Type.FAIRY) ||
cible.getType().Equals(Type.ICE) ||
cible.getType().Equals(Type.ROCK)) {
damage *= 2;
}
cible.getDamage(damage);
}
}
}
}