#include #pragma once class ChangeFieldOnFinishTransition : public Transition { public: class Builder : public Transition::Builder { public: Builder(size_t id, GroupStateField field, uint16_t arg, std::shared_ptr delgate); virtual std::shared_ptr _build() const override; private: const std::shared_ptr delegate; const GroupStateField field; const uint16_t arg; }; ChangeFieldOnFinishTransition( std::shared_ptr delegate, GroupStateField field, uint16_t arg, size_t period ); virtual bool isFinished() override; private: std::shared_ptr delegate; const GroupStateField field; const uint16_t arg; bool changeSent; virtual void step() override; virtual void childSerialize(JsonObject& json) override; };