# Wyverns D likes to pass to the goalie. Yuck.

(define (definerule NoGoaliePass direc ((true) (dont our {0} (pass {1})))))

(rule (on NoGoaliePass))

# Wyverns D keeps passing in front of our own goal
(define (definer "UpperDefArea" (rec (pt -53 0) (pt -33 -32))))
(define (definer "LowerDefArea" (rec (pt -53 0) (pt -33 32))))

(define (definerule NoDefCrossPass1 direc ((bpos "UpperDefArea") (dont our {0} (pass "LowerDefArea")))))
(define (definerule NoDefCrossPass2 direc ((bpos "LowerDefArea") (dont our {0} (pass "UpperDefArea")))))

(rule (on (NoDefCrossPass1 NoDefCrossPass2)))

# Make sure that we are marking when they are in the corners near our goal

(define (definer "RegDefCorners" (reg (rec (pt -53 -20) (pt -36 -32)) (rec (pt -53 20) (pt -36 32)))))
(define (definer "OurPen" (rec (pt -53 20) (pt -36 -20))))

(define (definerule MarkWhenDangerous direc ((bpos "RegDefCorners") (do our {2 4 6 8 10} (markl "OurPen")))))

(rule (on MarkWhenDangerous))


# Tell the UTA players not to pass back too far
(define (definer "RegLittleBehindBall" (rec (pt -53 32) ((pt ball) * (pt 1 0) + (pt -5 -32)))))
(define (definer "RegWayBehindBall" (rec (pt -53 32) ((pt ball) * (pt 1 0) + (pt -10 -32)))))
(define (definer "RegWayWayBehindBall" (rec (pt -53 32) ((pt ball) * (pt 1 0) + (pt -22 -32)))))
(define (definer "RegOffMid" (rec (pt 10 -32) (pt 36 32))))
(define (definer "RegWayOff" (rec (pt 36 -32) (pt 53 32))))
(define (definer "RegInverseWayOff" (rec (pt -53 32) (pt 36 -32))))

(define (definerule NoBackPassInOffMid direc ((bpos "RegOffMid") (dont our {3 5 7 9 11} (pass "RegWayBehindBall")))))
(define (definerule NoBackPassInWayOff direc ((bpos "RegWayOff") (dont our {3 5 7 9 11} (pass "RegWayWayBehindBall")))))
(define (definerule NoBackPass direc ((bpos "RegInverseWayOff") (dont our {3 5 7 9 11} (pass "RegLittleBehindBall")))))

(rule (on NoBackPassInOffMid) (on NoBackPassInWayOff))



# SMURF: TEMP HACK
(define (definer "RegAroundBall" (arc (pt ball) 0 10 0 360) ))
(define (definerule AlwaysClear direc ((playm play_on) (do our {0} (clear "RegAroundBall")))))

(rule (on AlwaysClear))