Peoplemon  0.1.0
Peoplemon 3 game source documentation
BattleWrapperState.hpp
Go to the documentation of this file.
1 #ifndef GAME_STATES_BATTLEWRAPPERSTATE_HPP
2 #define GAME_STATES_BATTLEWRAPPERSTATE_HPP
3 
4 #include <Game/States/State.hpp>
5 
6 namespace game
7 {
8 namespace state
9 {
10 namespace intros
11 {
12 class SequenceBase {
13 public:
14  virtual ~SequenceBase() = default;
15  virtual void start(bl::engine::Engine& engine) = 0;
16  virtual void update(float dt) = 0;
17  virtual bool finished() const = 0;
18 };
19 } // namespace intros
20 
27 : public State
28 , public bl::input::Listener {
29 public:
37  static bl::engine::State::Ptr create(core::system::Systems& systems,
38  std::unique_ptr<core::battle::Battle>&& battle);
39 
43  virtual ~BattleWrapperState() = default;
44 
48  const char* name() const override;
49 
55  virtual void activate(bl::engine::Engine& engine) override;
56 
62  virtual void deactivate(bl::engine::Engine& engine) override;
63 
70  virtual void update(bl::engine::Engine& engine, float dt, float) override;
71 
72 private:
73  enum struct Substate { BattleIntro, Battling, Evolving };
74 
75  Substate state;
76  std::unique_ptr<core::battle::Battle> battle;
77  std::unique_ptr<intros::SequenceBase> sequence;
78  unsigned int evolveIndex;
79 
81  std::unique_ptr<core::battle::Battle>&& battle,
82  std::unique_ptr<intros::SequenceBase>&& sequence);
83 
84  void incEvolveIndex();
85  void startEvolve();
86  virtual bool observe(const bl::input::Actor&, unsigned int, bl::input::DispatchType,
87  bool) override;
88 };
89 
90 } // namespace state
91 } // namespace game
92 
93 #endif
Parent namespace for all functionality unique to the game.
Owns all primary systems and a reference to the engine.
Definition: Systems.hpp:47
virtual void update(float dt)=0
virtual void start(bl::engine::Engine &engine)=0
virtual bool finished() const =0
Wrapper state that manages battle intro transitions as well as post-battle evolutions.
const char * name() const override
Returns "BattleWrapperState".
virtual void activate(bl::engine::Engine &engine) override
Initiates the battle transition or evolution if applicable, otherwise pops this state.
static bl::engine::State::Ptr create(core::system::Systems &systems, std::unique_ptr< core::battle::Battle > &&battle)
Creates a new BattleState.
virtual void deactivate(bl::engine::Engine &engine) override
Does nothing.
virtual void update(bl::engine::Engine &engine, float dt, float) override
Updates the intro sequence.
virtual ~BattleWrapperState()=default
Destroy the Battle Wrapper State.
Parent to all game states. Provides some commonly required data like core game systems.
Definition: State.hpp:29
core::system::Systems & systems
Definition: State.hpp:66