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