YAPOG  0.0.1
Yet Another Pokemon Online Game
PokemonFighter.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_CLIENT_POKEMONFIGHTER_HPP
2 # define YAPOG_CLIENT_POKEMONFIGHTER_HPP
3 
4 # include "YAPOG/Macros.hpp"
5 # include "YAPOG/System/String.hpp"
7 
9 
10 namespace yap
11 {
12  struct ISprite;
13 } // namespace yap
14 
16 {
19 };
20 
21 namespace ycl
22 {
23  class Pokemon;
24 
26  : public yap::PokemonFighter
27  , public IDrawableBattleEntity
28  {
30 
31  public:
32  PokemonFighter (Pokemon* originalPokemon, bool isOpponent);
33  virtual ~PokemonFighter ();
34 
37  virtual void Draw (yap::IDrawingContext& context);
38 
39  virtual bool IsVisible () const;
40  virtual void Show (bool isVisible);
41 
42  virtual void ChangeColor (const sf::Color& color);
44 
47  virtual yap::ISprite& GetBattleSprite ();
49 
52  void SetBattleSprite (const BattleSpriteType& battleSpriteType);
54 
55  protected:
56  virtual void HandleInit ();
57  virtual void HandleUpdate (const yap::Time& dt);
58  virtual void HandleDraw (yap::IDrawingContext& context);
59  virtual void HandleShow (bool isVisible);
60  virtual void HandleChangeColor (const sf::Color& color);
61 
62  static const bool DEFAULT_VISIBLE_STATE;
63  static const sf::Color DEFAULT_COLOR;
64 
65  bool isVisible_;
66  sf::Color color_;
67 
68  private:
72 
74  };
75 } // namespace ycl
76 
77 #endif // YAPOG_CLIENT_POKEMONFIGHTER_HPP