]> rtime.felk.cvut.cz Git - eurobot/public.git/blobdiff - src/robofsm/competition.cc
robofsm: go to deposit if short time to end
[eurobot/public.git] / src / robofsm / competition.cc
index 6cec5fa2c55822b1b27c6ad4bdbdf3521cc45280..198d3476af3930b07eec48be6c1b8560a665c925 100644 (file)
@@ -389,6 +389,8 @@ FSM_STATE(decide_what_next)
                case EV_LASER_POWER:
                case EV_GOAL_NOT_REACHABLE:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                case EV_STACK_FULL:
                case EV_ACTION_ERROR:
                case EV_PUCK_REACHABLE:
@@ -446,6 +448,8 @@ FSM_STATE(deposit_at_acropolis)
                case EV_LASER_POWER:
                case EV_GOAL_NOT_REACHABLE:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                case EV_STACK_FULL:
                case EV_ACTION_ERROR:
                case EV_PUCK_REACHABLE:
@@ -487,6 +491,8 @@ FSM_STATE(collect_free_pucks)
                case EV_LASER_POWER:
                case EV_GOAL_NOT_REACHABLE:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                case EV_STACK_FULL:
                case EV_ACTION_ERROR:
                case EV_START:
@@ -518,6 +524,8 @@ FSM_STATE(approach_acropolis)
                case EV_TIMER:
                case EV_LASER_POWER:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                case EV_STACK_FULL:
                case EV_ACTION_ERROR:
                case EV_PUCK_REACHABLE:
@@ -546,6 +554,8 @@ FSM_STATE(simple_construction_zone_approach)
                case EV_LASER_POWER:
                case EV_GOAL_NOT_REACHABLE:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                case EV_STACK_FULL:
                case EV_ACTION_ERROR:
                case EV_PUCK_REACHABLE:
@@ -584,6 +594,8 @@ FSM_STATE(approach_our_static_dispenser)
                case EV_LASER_POWER:
                case EV_GOAL_NOT_REACHABLE:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                //case EV_PUCK_REACHABLE: // FIXME: handle this
                case EV_STACK_FULL:
                case EV_ACTION_ERROR:
@@ -623,6 +635,8 @@ FSM_STATE(approach_opponents_static_dispenser)
                case EV_LASER_POWER:
                case EV_GOAL_NOT_REACHABLE:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                //case EV_PUCK_REACHABLE: // FIXME: handle this
                case EV_STACK_FULL:
                case EV_ACTION_ERROR:
@@ -669,6 +683,8 @@ FSM_STATE(load_the_puck)
                case EV_LASER_POWER:
                case EV_GOAL_NOT_REACHABLE:
                case EV_SHORT_TIME_TO_END:
+                       FSM_TRANSITION(deposit_at_acropolis);
+                       break;
                case EV_STACK_FULL:
                case EV_PUCK_REACHABLE:
                case EV_START: