Thunderbots Project
Loading...
Searching...
No Matches
crease_defense_play_fsm.h
1#pragma once
2
3#include "proto/parameters.pb.h"
4#include "shared/constants.h"
5#include "software/ai/hl/stp/play/play_fsm.h"
6#include "software/ai/hl/stp/tactic/crease_defender/crease_defender_tactic.h"
7#include "software/logger/logger.h"
8
10{
11 class DefenseState;
12
14 {
15 // The origin point of the enemy threat
16 Point enemy_threat_origin;
17 // The maximum allowed speed mode
18 TbotsProto::MaxAllowedSpeedMode max_allowed_speed_mode;
19 };
20
21 DEFINE_PLAY_UPDATE_STRUCT_WITH_CONTROL_AND_COMMON_PARAMS
22
28 explicit CreaseDefensePlayFSM(TbotsProto::AiConfig ai_config);
29
35 void defendDefenseArea(const Update& event);
36
42 void setUpDefenders(unsigned int num_defenders);
43
44 auto operator()()
45 {
46 using namespace boost::sml;
47
48 DEFINE_SML_STATE(DefenseState)
49
50 DEFINE_SML_EVENT(Update)
51
52 DEFINE_SML_ACTION(defendDefenseArea)
53
54 return make_transition_table(
55 // src_state + event [guard] / action = dest_state
56 *DefenseState_S + Update_E / defendDefenseArea_A = DefenseState_S,
57 X + Update_E = X);
58 }
59
60 private:
61 TbotsProto::AiConfig ai_config;
62 std::vector<std::shared_ptr<CreaseDefenderTactic>> crease_defenders;
63};
Definition point.h:14
Definition crease_defense_play_fsm.h:14
Definition crease_defense_play_fsm.h:10
void setUpDefenders(unsigned int num_defenders)
Definition crease_defense_play_fsm.cpp:38
void defendDefenseArea(const Update &event)
Definition crease_defense_play_fsm.cpp:8