YAPOG  0.0.1
Yet Another Pokemon Online Game
IBattleEntity.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_IBATTLEENTITYE_HPP
2 # define YAPOG_IBATTLEENTITYE_HPP
3 
4 # include "YAPOG/Macros.hpp"
6 # include "YAPOG/System/String.hpp"
13 
14 namespace yap
15 {
16  class HitPoint;
17 
19  {
20  virtual ~IBattleEntity () {}
21 
24  virtual const String& GetName () const = 0;
25  virtual const UInt16& GetLevel () const = 0;
26  virtual const Gender& GetGender () const = 0;
27  virtual const UInt16& GetCurrentHP () const = 0;
28  virtual const UInt16& GetMaxHP () const = 0;
29  virtual float GetHPPercentage () const = 0;
30  virtual const collection::Array<PokemonMove*>& GetMoves () const = 0;
31  virtual const PokemonMove& GetMove (int index) const = 0;
32  virtual const PokemonStat& GetStats () const = 0;
34 
37  virtual void TakeDamage (int value) = 0;
39 
42  virtual Event<
43  const IBattleEntity&,
45  OnHPChangedEvent () = 0;
47  };
48 } // namespace yap
49 
50 #endif // YAPOG_IBATTLEENTITYE_HPP