## Play: Loose Defense ### Description: This is the default starting play of the system. It is run any time the ball is not in our possession and not far back on our side of the field. The main differences between loose defense and tight defense is that the defender and the blocker work in tandem to cut down the angle on a shot on goal, while the special op defender simultaneously runs pass-block and shot block on two opposing robots. ### Illustration: ### Positions Present: Blocker Defender Special Op Defender Aggressor Creator ### Position Strategies:
## Blocker + Defender Blocker and Defender will be engaged in a strategy called Team Defense. This will also be utilized in offensive plays as the ball moves upfield. Since the goal is so wide, the defender and the blocker will work in tandem to cut down all angles while staying out of each others way, and being fully independent. First, the blocker prefers to be on the same side of the field as the ball. This gives him a more optimal position if the ball suddenly moves toward our goal. The blocker will thus work on defending the chunk of goal on the same side of the field as the ball, while the defender picks up the remainder. The algorithm works as follows: Split the goal in half (or in some other non 50:50 cut as defined in a parameter file if so desired) and consider the chunk of goal on the same side (widthwise) of the field as the ball. Determine the most optimal position to place a robot in the middle sector, death zone (see square blocker is in in figure) such that a robot placed here will cut down as best as possible this section of goal. If unable to block entire section of goal, split open space 50:50 to decrease allowed error in shots allowed to score. Consider this point to be the blocker point.(Note: this is not necessarily where the blocker will be!) The defender will calculate this artificial point and assume the blocker is really there. The defender will then consider the larger portion of uncovered goal and will attempt to cover it, running the cut down skill and limited himself to be in the defense zone. Next, the blocker will look at the portion of the goal the defender is CURRENTLY (based on vision data) covering. The blocker will in turn run cut-down defense on the remaining portion, and limit himself to be in the death zone. As the defender moves into position, the blocker will need to cover less and less goal, and the two will converge into a sharing position. Notes: If the defender does not exist or is not found, it is assumed he is covering none of the goal. If the blocker does not exist or is not found, the defender will run cut-down defense on the entire goal mouth, limiting himself again to be in the defense zone. Blocker: TandemBlockerSkill Defender: TandemDefenderSkill
## Special Op Defender: The special op will try to cover 1-2 opponents, but not the opponent who actually has the ball. First, construct an array of opponent locations. Then remove any opponent who has possession of the ball, who's x-coordinate is greater than the balls x-coordinate plus a grace distance, or is on the opposite half of the field than the ball (widthwise). Order the opponents based on increasing x-coordinate, such that the first opponent is closest to our our goal line (small x-coordinate). Mark this first opponent as Op1. Of the remaining opponents, pick the one closest to the ball and mark him as Op2. See figure for an example. Draw a vector through the center of Op1 and the ball. Consider the area on the goal that Op2 has a good open shot on if he had the ball suddenly, and draw a vector through the midpoint of this open area and Op2. See figure for these vectors. Send the special op defender to the intersection of these vectors. The special op. defender will effectively be playing pass-block on op1, while playing shot-block on op2. Set his angle to look directly at the ball in case the ball does actually come to him. If Op1 exists but no Op2 exists, screen Op1 as close as possible to him, while looking at the ball. This both acts as a pass-block, but also removed Op1 from the play since he will be cut off. If neither Op1 nor Op2 exist, go to a default position on the opposite side of the field (widthwise) than the ball. Go in the middle of the sweet sector, defense zone. Split angle between there and the ball and there and the center of the opponent goal. This keeps the special op defender out the way, while allowing him to quickly move forward and assist the aggressor once we obtain possession of the ball, and makes it impossible for the opponents to score off the special op with a bounce shot into our goal. If Op2 does not have an open shot, assume Op2 does not exist. If Op1 and Op2 exist, but Op1 is closer to the ball than Op2 (purely the difference of the y-coordinates), then just do shot-block on Op1. If op1 does not have a lane between him and the ball, no need to do pass block on him, so just do shot-block on Op2. Special Op Defender: LooseDSpecialOpSkill
## Aggressor: Ball Free->approach ball Opponent has ball -> strip ball to outer side (closest sideline) Once we have the ball play will transfer to single assist offense. Aggressor: AcquirePosessionSkill
## Creator: Get open for a forward pass. Creator: CreatorLookForwardPassSkill
### Transitions:
Single Assist Offense | We have possession of the ball.

Upfield Defense | Ball is above the half line.

Tight Defense | Ball is in the defense or death zones and outside of the middle sector.

Cage Defense | Ball is in the middle sector, death zone.

### Position Switching:

Aggressor, Defender, SpecialOpDefender | If special op closer to defender's destination than the defender is, switch. If special op closer than aggressor to ball, switch.