18 explicit AttackerFSM(
const TbotsProto::AiConfig& ai_config) : ai_config(ai_config) {}
23 std::optional<Pass> best_pass_so_far = std::nullopt;
25 bool pass_committed =
false;
27 std::optional<Shot> shot = std::nullopt;
30 std::optional<Point> chip_target;
33 DEFINE_TACTIC_UPDATE_STRUCT_WITH_CONTROL_AND_COMMON_PARAMS
42 boost::sml::back::process<PivotKickFSM::Update> processEvent);
51 boost::sml::back::process<DribbleFSM::Update> processEvent);
66 using namespace boost::sml;
70 DEFINE_SML_EVENT(Update)
76 return make_transition_table(
78 *DribbleFSM_S + Update_E[shouldKick_G] / pivotKick_A = PivotKickFSM_S,
79 DribbleFSM_S + Update_E[!shouldKick_G] / keepAway_A,
80 PivotKickFSM_S + Update_E / pivotKick_A, PivotKickFSM_S = X,
81 X + Update_E / SET_STOP_PRIMITIVE_ACTION = X);
86 TbotsProto::AiConfig ai_config;
DEFINE_TACTIC_UPDATE_STRUCT_WITH_CONTROL_AND_COMMON_PARAMS void pivotKick(const Update &event, boost::sml::back::process< PivotKickFSM::Update > processEvent)
Definition attacker_fsm.cpp:3