Thunderbots Project
Loading...
Searching...
No Matches
dribble_tactic.h
1#pragma once
2
3#include "software/ai/hl/stp/tactic/dribble/dribble_fsm.h"
4#include "software/ai/hl/stp/tactic/tactic.h"
5
14class DribbleTactic : public Tactic
15{
16 public:
22 explicit DribbleTactic(TbotsProto::AiConfig ai_config);
23
24 DribbleTactic() = delete;
25
36 void updateControlParams(std::optional<Point> dribble_destination,
37 std::optional<Angle> final_dribble_orientation,
38 bool allow_excessive_dribbling = false);
39
40 void accept(TacticVisitor& visitor) const override;
41
42 DEFINE_TACTIC_DONE_AND_GET_FSM_STATE
43
44 private:
45 void updatePrimitive(const TacticUpdate& tactic_update, bool reset_fsm) override;
46
47 std::map<RobotId, std::unique_ptr<FSM<DribbleFSM>>> fsm_map;
48 DribbleFSM::ControlParams control_params;
49 TbotsProto::AiConfig ai_config;
50};
51
52COPY_TACTIC(PlaceBallTactic, DribbleTactic)
Definition dribble_tactic.h:15
void accept(TacticVisitor &visitor) const override
Definition dribble_tactic.cpp:29
void updateControlParams(std::optional< Point > dribble_destination, std::optional< Angle > final_dribble_orientation, bool allow_excessive_dribbling=false)
Definition dribble_tactic.cpp:20
Definition tactic_visitor.h:39
Definition tactic.h:39
Definition dribble_fsm.h:31
Definition tactic_fsm.h:16