YAPOG  0.0.1
Yet Another Pokemon Online Game
PokemonFighterTeam.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_CLIENT_POKEMONFIGHTERTEAM_HPP
2 # define YAPOG_CLIENT_POKEMONFIGHTERTEAM_HPP
3 
4 # include "YAPOG/Macros.hpp"
7 
9 # include "Battle/PokemonFighter.hpp"
10 
11 namespace ycl
12 {
13  class Pokemon;
14  class PokemonTeam;
15 
18  , public IDrawableBattleEntity
19  {
21  public:
23  virtual ~PokemonFighterTeam ();
24 
25  void LoadFromPokemonTeam (PokemonTeam& pokemonTeam, bool isOpponent);
26 
29  virtual void Draw (yap::IDrawingContext& context);
30 
31  virtual bool IsVisible () const;
32  virtual void Show (bool isVisible);
33 
34  virtual void ChangeColor (const sf::Color& color);
36 
39  virtual yap::ISprite& GetBattleSprite ();
41 
42  protected:
43  virtual void HandleInit ();
44  virtual void HandleUpdate (const yap::Time& dt);
45  virtual void HandleDraw (yap::IDrawingContext& context);
46  virtual void HandleShow (bool isVisible);
47  virtual void HandleChangeColor (const sf::Color& color);
48 
49  static const bool DEFAULT_VISIBLE_STATE;
50  static const sf::Color DEFAULT_COLOR;
51 
52  bool isVisible_;
53  sf::Color color_;
54 
55  private:
56  virtual bool AddPokemon (PokemonFighter* pokemon);
58  virtual const PokemonFighter& GetCurrentFighter () const;
60  };
61 } // namespace ycl
62 
63 #endif // YAPOG_CLIENT_POKEMONFIGHTERTEAM_HPP