20 class AttemptShotState;
28 DEFINE_PLAY_UPDATE_STRUCT_WITH_CONTROL_AND_COMMON_PARAMS
50 const WorldPtr world,
unsigned int num_tactics,
51 const std::vector<Point>& existing_receiver_positions = {},
52 const std::optional<Point>& pass_origin_override = std::nullopt);
113 using namespace boost::sml;
115 DEFINE_SML_STATE(AttemptShotState)
116 DEFINE_SML_STATE(TakePassState)
117 DEFINE_SML_STATE(StartState)
118 DEFINE_SML_EVENT(Update)
129 return make_transition_table(
131 *StartState_S + Update_E / startLookingForPass_A = AttemptShotState_S,
132 AttemptShotState_S + Update_E[passFound_G] / takePass_A = TakePassState_S,
133 AttemptShotState_S + Update_E[tookShot_G] = X,
134 AttemptShotState_S + Update_E[!passFound_G] / lookForPass_A =
136 TakePassState_S + Update_E[shouldAbortPass_G] / startLookingForPass_A =
138 TakePassState_S + Update_E[!passCompleted_G] / takePass_A = TakePassState_S,
139 TakePassState_S + Update_E[passCompleted_G] / takePass_A = X,
140 X + Update_E / startLookingForPass_A = AttemptShotState_S);
144 TbotsProto::AiConfig ai_config;
145 std::shared_ptr<AttackerTactic> attacker_tactic;
146 std::shared_ptr<ReceiverTactic> receiver_tactic;
147 std::vector<std::shared_ptr<MoveTactic>> offensive_positioning_tactics;
152 Duration time_since_commit_stage_start;
153 double min_pass_score_threshold;
void updateOffensivePositioningTactics(const WorldPtr world, unsigned int num_tactics, const std::vector< Point > &existing_receiver_positions={}, const std::optional< Point > &pass_origin_override=std::nullopt)
Definition shoot_or_pass_play_fsm.cpp:25