debut gameManager

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

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);
}
}
}
}