1 #ifndef GAME_STATES_BATTLEWRAPPERSTATE_HPP
2 #define GAME_STATES_BATTLEWRAPPERSTATE_HPP
15 virtual void start(bl::engine::Engine& engine) = 0;
28 ,
public bl::input::Listener {
38 std::unique_ptr<core::battle::Battle>&& battle);
48 const char*
name()
const override;
55 virtual void activate(bl::engine::Engine& engine)
override;
62 virtual void deactivate(bl::engine::Engine& engine)
override;
70 virtual void update(bl::engine::Engine& engine,
float dt,
float)
override;
73 enum struct Substate { BattleIntro, Battling, Evolving };
76 std::unique_ptr<core::battle::Battle> battle;
77 std::unique_ptr<intros::SequenceBase> sequence;
78 unsigned int evolveIndex;
81 std::unique_ptr<core::battle::Battle>&& battle,
82 std::unique_ptr<intros::SequenceBase>&& sequence);
84 void incEvolveIndex();
86 virtual bool observe(
const bl::input::Actor&,
unsigned int, bl::input::DispatchType,
Parent namespace for all functionality unique to the game.
Owns all primary systems and a reference to the engine.
virtual void update(float dt)=0
virtual void start(bl::engine::Engine &engine)=0
virtual bool finished() const =0
virtual ~SequenceBase()=default
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.
core::system::Systems & systems