147 lines
5.0 KiB
C#
147 lines
5.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Programmation_objet_TLESIO21.projet {
|
|
public class GameManager {
|
|
|
|
public static void AlterPokemonStat(String stat, double value, Pokemon p) {
|
|
switch(stat) {
|
|
case "PV":
|
|
p.setPV((int)Math.Floor(p.getPV() * value));
|
|
break;
|
|
case "ATKPhys":
|
|
p.setATKPhys(((int)Math.Floor(p.getATKPhys() * value)));
|
|
break;
|
|
case "ATKSpe":
|
|
p.setATKSpe(((int)Math.Floor(p.getATKSpe() * value)));
|
|
break;
|
|
case "DEFPhys":
|
|
p.setDefPhys(((int)Math.Floor(p.getDEFPhys() * value)));
|
|
break;
|
|
case "DEFSpe":
|
|
p.setDefSpe(((int)Math.Floor(p.getDEFSpe() * value)));
|
|
break;
|
|
case "Speed":
|
|
p.setSpeed(((int)Math.Floor(p.getSpeed() * value)));
|
|
break;
|
|
default:
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
public void ApplyNatureEffect(Enum nature, Pokemon p) {
|
|
switch(nature) { //malus
|
|
case Nature.BOLD:
|
|
case Nature.CALM:
|
|
case Nature.MODEST:
|
|
case Nature.TIMID:
|
|
AlterPokemonStat("ATKPhys", 0.9, p);
|
|
break;
|
|
case Nature.MILD:
|
|
case Nature.GENTLE:
|
|
case Nature.HASTY:
|
|
case Nature.LONELY:
|
|
AlterPokemonStat("DEFPhys", 0.9, p);
|
|
break;
|
|
case Nature.JOLLY:
|
|
case Nature.IMPISH:
|
|
case Nature.CAREFUL:
|
|
case Nature.ADAMANT:
|
|
AlterPokemonStat("ATKSpe", 0.9, p);
|
|
break;
|
|
case Nature.RASH:
|
|
case Nature.LAX:
|
|
case Nature.NAUGHTY:
|
|
case Nature.NAIVE:
|
|
AlterPokemonStat("DEFSpe", 0.9, p);
|
|
break;
|
|
case Nature.BRAVE:
|
|
case Nature.QUIET:
|
|
case Nature.SASSY:
|
|
case Nature.RELAXED:
|
|
AlterPokemonStat("Speed", 0.9, p);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
switch(nature) { //bonus
|
|
case Nature.BRAVE:
|
|
case Nature.NAUGHTY:
|
|
case Nature.ADAMANT:
|
|
case Nature.LONELY:
|
|
AlterPokemonStat("ATKPhys", 1.1, p);
|
|
break;
|
|
case Nature.BOLD:
|
|
case Nature.LAX:
|
|
case Nature.IMPISH:
|
|
case Nature.RELAXED:
|
|
AlterPokemonStat("DEFPhys", 1.1, p);
|
|
break;
|
|
case Nature.QUIET:
|
|
case Nature.MILD:
|
|
case Nature.RASH:
|
|
case Nature.MODEST:
|
|
AlterPokemonStat("ATKSpe", 1.1, p);
|
|
break;
|
|
case Nature.CALM:
|
|
case Nature.GENTLE:
|
|
case Nature.SASSY:
|
|
case Nature.CAREFUL:
|
|
AlterPokemonStat("DEFSpe", 1.1, p);
|
|
break;
|
|
case Nature.JOLLY:
|
|
case Nature.NAIVE:
|
|
case Nature.HASTY:
|
|
case Nature.TIMID:
|
|
AlterPokemonStat("Speed", 1.1, p);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void ApplyPlayerEffect(String playerName, Pokemon p) {
|
|
switch(playerName) {
|
|
case "Applejack":
|
|
AlterPokemonStat("PV", 0.95, p);
|
|
break;
|
|
case "Rainbow Dash":
|
|
AlterPokemonStat("ATKPhys", 1.03, p);
|
|
break;
|
|
case "Twilight Sparkle":
|
|
AlterPokemonStat("Speed", 1.07, p);
|
|
break;
|
|
case "Pinkie Pie":
|
|
AlterPokemonStat("DEFPhys", 1.04, p);
|
|
break;
|
|
case "Fluttershy":
|
|
AlterPokemonStat("DEFPhys", 0.96, p);
|
|
break;
|
|
case "Izzy Moonbow":
|
|
AlterPokemonStat("PV", 1.05, p);
|
|
AlterPokemonStat("Speed", 0.95, p);
|
|
break;
|
|
case "Zipp Storm":
|
|
AlterPokemonStat("PV", 0.95, p);
|
|
AlterPokemonStat("Speed", 1.05, p);
|
|
break;
|
|
case "Sunny Starscout":
|
|
AlterPokemonStat("ATKSpe", 1.03, p);
|
|
break;
|
|
case "Derpy Hooves":
|
|
AlterPokemonStat("PV", 0.95, p);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|