3#include "software/ai/hl/stp/tactic/primitive.h"
4#include "software/ai/hl/stp/tactic/tactic_fsm.h"
5#include "software/ai/hl/stp/tactic/tactic_visitor.h"
6#include "software/ai/hl/stp/tactic/transition_conditions.h"
7#include "software/world/world.h"
15#define COPY_TACTIC(new_class, parent_class) \
16 class new_class : public parent_class \
18 using parent_class::parent_class; \
20 void accept(TacticVisitor &visitor) const \
22 visitor.visit(*this); \
46 explicit Tactic(
const std::set<RobotCapability> &capability_reqs_);
55 virtual bool done()
const = 0;
93 std::map<RobotId, std::shared_ptr<Primitive>>
get(
const WorldPtr &world_ptr);
105 std::optional<RobotId> last_execution_robot;
108 std::shared_ptr<Primitive> primitive;
116 virtual void updatePrimitive(
const TacticUpdate &tactic_update,
bool reset_fsm) = 0;
119 std::set<RobotCapability> capability_reqs;
Definition tactic_visitor.h:39
std::map< RobotId, std::shared_ptr< Primitive > > get(const WorldPtr &world_ptr)
Definition tactic.cpp:30
void setLastExecutionRobot(std::optional< RobotId > last_execution_robot)
Definition tactic.cpp:25
std::set< RobotCapability > & mutableRobotCapabilityRequirements()
Definition tactic.cpp:20
virtual void accept(TacticVisitor &visitor) const =0
virtual bool done() const =0
const std::set< RobotCapability > & robotCapabilityRequirements() const
Definition tactic.cpp:15
virtual std::string getFSMState() const =0
Definition tactic_fsm.h:16