Pokebot
Pokemon FireRed bot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
IPokeData.hh
Go to the documentation of this file.
1 #ifndef __IPOKEDATA_HH__
2 #define __IPOKEDATA_HH__
3 
4 class IPokeData
5 {
6 protected:
7  enum Status {
14  };
15 
16 private:
17  float _getMultiplier(float n, float d) const
18  {
19  float r = ((n < 0 ? -n : n) + d) / d;
20  return (n < 0 ? 1 / r : r);
21  }
22 
23 public:
24  virtual ~IPokeData() {}
25  virtual void update() = 0;
26 
27 public:
28  const char *getNick() const { return (_nick); }
29  const char *getOtName() const { return (_otName); }
30  uint16_t getRealAtk() const { return ((float) getAtk() * _getMultiplier(getAtkBuff(), 2)); }
31  uint16_t getRealDef() const { return ((float) getDef() * _getMultiplier(getDefBuff(), 2)); }
32  uint16_t getRealSpeed() const { return ((float) getSpeed() * _getMultiplier(getSpeedBuff(), 2)); }
33  uint16_t getRealSpAtk() const { return ((float) getSpAtk() * _getMultiplier(getSpAtkBuff(), 2)); }
34  uint16_t getRealSpDef() const { return ((float) getSpDef() * _getMultiplier(getSpDefBuff(), 2)); }
35  uint16_t getRealAccuracy() const { return (100 * _getMultiplier(getAccuracyBuff(), 3)); }
36  uint16_t getRealEvasion() const { return (100 * _getMultiplier(getEvasionBuff(), 3)); }
37 
38  int isSleeping() const { return (getStatus(ST_SLEEP)); }
39  bool isPoisoned() const { return (getStatus(ST_POISON)); }
40  bool isBurnt() const { return (getStatus(ST_BURN)); }
41  bool isFreezed() const { return (getStatus(ST_FREEZE)); }
42  bool isParalysed() const { return (getStatus(ST_PARALYSIS)); }
43  bool isBadlyPoisoned() const { return (getStatus(ST_BAD_POISON)); }
44 
45  uint16_t getMove(uint8_t i) const { return (getMoves()[i]); }
46  uint8_t getPP(uint8_t i) const { return (getPPs()[i]); }
47 
48 public:
49  virtual int getStatus(Status s) const = 0;
50  virtual uint8_t getLevel() const = 0;
51  virtual uint16_t getSpecies() const = 0;
52 
53  virtual uint16_t getHP() const = 0;
54  virtual uint16_t getMaxHP() const = 0;
55  virtual uint16_t getAtk() const = 0;
56  virtual uint16_t getDef() const = 0;
57  virtual uint16_t getSpeed() const = 0;
58  virtual uint16_t getSpAtk() const = 0;
59  virtual uint16_t getSpDef() const = 0;
60 
61  virtual int getAtkBuff() const = 0;
62  virtual int getDefBuff() const = 0;
63  virtual int getSpeedBuff() const = 0;
64  virtual int getSpAtkBuff() const = 0;
65  virtual int getSpDefBuff() const = 0;
66  virtual int getAccuracyBuff() const = 0;
67  virtual int getEvasionBuff() const = 0;
68 
69  virtual uint16_t *getMoves() const = 0;
70  virtual uint8_t *getPPs() const = 0;
71 
72 protected:
73  char _nick[12];
74  char _otName[9];
75 };
76 
77 #endif
bool isBurnt() const
Definition: IPokeData.hh:40
Status
Definition: IPokeData.hh:7
virtual ~IPokeData()
Definition: IPokeData.hh:24
virtual int getAccuracyBuff() const =0
virtual int getAtkBuff() const =0
bool isParalysed() const
Definition: IPokeData.hh:42
virtual uint16_t getDef() const =0
uint16_t getRealAtk() const
Definition: IPokeData.hh:30
virtual int getDefBuff() const =0
virtual uint16_t getAtk() const =0
uint16_t getRealEvasion() const
Definition: IPokeData.hh:36
Definition: IPokeData.hh:11
uint16_t getMove(uint8_t i) const
Definition: IPokeData.hh:45
virtual uint16_t * getMoves() const =0
virtual uint16_t getMaxHP() const =0
Definition: IPokeData.hh:4
Definition: IPokeData.hh:13
Definition: IPokeData.hh:8
bool isPoisoned() const
Definition: IPokeData.hh:39
const char * getOtName() const
Definition: IPokeData.hh:29
virtual uint16_t getHP() const =0
virtual void update()=0
virtual uint16_t getSpDef() const =0
virtual uint16_t getSpeed() const =0
virtual uint8_t getLevel() const =0
bool isFreezed() const
Definition: IPokeData.hh:41
virtual int getSpAtkBuff() const =0
uint16_t getRealAccuracy() const
Definition: IPokeData.hh:35
virtual uint16_t getSpecies() const =0
const char * getNick() const
Definition: IPokeData.hh:28
uint16_t getRealDef() const
Definition: IPokeData.hh:31
uint16_t getRealSpAtk() const
Definition: IPokeData.hh:33
virtual uint16_t getSpAtk() const =0
Definition: IPokeData.hh:12
virtual uint8_t * getPPs() const =0
Definition: IPokeData.hh:10
virtual int getStatus(Status s) const =0
uint16_t getRealSpeed() const
Definition: IPokeData.hh:32
bool isBadlyPoisoned() const
Definition: IPokeData.hh:43
uint16_t getRealSpDef() const
Definition: IPokeData.hh:34
int isSleeping() const
Definition: IPokeData.hh:38
char _nick[12]
Definition: IPokeData.hh:73
Definition: IPokeData.hh:9
char _otName[9]
Definition: IPokeData.hh:74
virtual int getSpeedBuff() const =0
virtual int getSpDefBuff() const =0
virtual int getEvasionBuff() const =0
uint8_t getPP(uint8_t i) const
Definition: IPokeData.hh:46