In Tennis, the server alternates serving on the left side or the right side of the court every point, starting on the right. It is possible to figure out which side to serve on for that point just based on the score; if there have been an even number of points you serve on the right, and after an odd number of points, on the left. Scoring in tennis works as follows:
Points | Corresponding Call | 0 | Love 1 | 15 2 | 30 3 | 40
Once a player scores 4 points, they win the game. If the score is tied at 40-40, the call is "Deuce" rather than "40-40" or "40 all". At Deuce, the subsequent point is called as "Advantage [x]" or "Ad [x]" where x is the player who scored. If the opposite player scores next, the score returns to Deuce, but if the same player scores again, they win.
Your task is to write a function that takes the score and returns a truthy or falsey value. The input may be a string containing the call or a list containing the scores. Love, Deuce, and Ad must be strings but the rest of calls may be any numerical type as well. Deuce may be represented by singleton list containing "Deuce" or a list with "Deuce" and another value of your choice. You may choose which side corresponds to truthy and falsey, but you must specify which corresponds to which side in your answer. The scores will be separated by a hyphen, except in the case of Deuce wherein it will be simply "Deuce". For advantage, the score will be "Ad-40" or "40-Ad".
This is code golf, so the score is the number of bytes in your function and the answer with the lowest score wins. Standard loopholes are forbidden.
Love-Love | True Love-15 | False Love-30 | True Love-40 | False 15-Love | False 15-15 | True 15-30 | False 15-40 | True 30-Love | True 30-15 | False 30-30 | True 30-40 | False 40-Love | False 40-15 | True 40-30 | False Deuce | True Ad-40 | False 40-Ad | False
These test cases are exhaustive, i.e. that list represents every possible input and its corresponding output. I used True for right and False for left.