Thunderbots Project
Loading...
Searching...
No Matches
enemy_free_kick_play_fsm.h
1#pragma once
2
3#include "proto/parameters.pb.h"
4#include "software/ai/hl/stp/play/defense/defense_play_base.h"
5#include "software/ai/hl/stp/play/play.h"
6#include "software/ai/hl/stp/tactic/pass_defender/pass_defender_tactic.h"
7
12{
13 class BlockEnemyKickerState;
14
15 static constexpr double TOO_CLOSE_THRESHOLD_METERS = 0.1;
16
22 explicit EnemyFreeKickPlayFSM(TbotsProto::AiConfig ai_config);
23
29 void blockEnemyKicker(const Update &event);
30
38 void setTactics(const Update &event, unsigned int num_tactics);
39
40 auto operator()()
41 {
42 using namespace boost::sml;
43
44 DEFINE_SML_STATE(BlockEnemyKickerState)
45
46 DEFINE_SML_EVENT(Update)
47
48 DEFINE_SML_ACTION(blockEnemyKicker)
49
50 return make_transition_table(
51 // src_state + event [guard] / action = dest_state
52 *BlockEnemyKickerState_S + Update_E / blockEnemyKicker_A =
53 BlockEnemyKickerState_S,
54 X + Update_E = X);
55 }
56};
Definition defense_play_base.h:15
Definition enemy_free_kick_play_fsm.h:12
void setTactics(const Update &event, unsigned int num_tactics)
Definition enemy_free_kick_play_fsm.cpp:23
void blockEnemyKicker(const Update &event)
Definition enemy_free_kick_play_fsm.cpp:18