HAWK-ONE / formations.py
ageraustine's picture
init
ab93d31 verified
Raw History Blame Contribute Delete
2.4 kB
"""Starter formation presets. Coordinates are in yards, offense moving left -> right.
ox : yards from the ball along the field (negative = offensive side)
oy : lateral. anchor "B": from the ball (negative = offense's left = top of screen)
anchor "T"/"U": distance from the top / bottom sideline (wide receivers & corners
stay put relative to the sideline when the hash width changes - the ball moves, they don't).
"""
def P(pid, pos, num, ox, oy, anchor="B"):
return dict(id=pid, pos=pos, num=num, ox=ox, oy=oy, anchor=anchor)
_OL = [P("LT", "LT", 72, -1.0, -4), P("LG", "LG", 66, -1.0, -2), P("C", "C", 55, -1.0, 0),
P("RG", "RG", 64, -1.0, 2), P("RT", "RT", 77, -1.0, 4)]
OFFENSE = {
"I-Form (21p)": _OL + [
P("QB", "QB", 12, -3.0, 0), P("FB", "FB", 44, -5.5, 0), P("RB", "RB", 28, -8.0, 0),
P("TE", "TE", 87, -1.0, 6), P("X", "WR", 11, -1.0, 5, "T"), P("Z", "WR", 81, -2.2, 5, "U")],
"Shotgun Trips (10p)": _OL + [
P("QB", "QB", 12, -5.0, 0), P("RB", "RB", 28, -5.0, 3),
P("X", "WR", 11, -1.0, 5, "T"), P("Z", "WR", 81, -1.0, 4.5, "U"),
P("SL", "WR", 17, -2.2, 13.5), P("H", "WR", 84, -2.2, 8.5)],
"Shotgun 11p (2x1 + TE)": _OL + [
P("QB", "QB", 12, -5.0, 0), P("RB", "RB", 28, -5.0, -3),
P("TE", "TE", 87, -1.0, 6), P("X", "WR", 11, -1.0, 5, "T"),
P("SL", "WR", 17, -2.2, -12.5), P("Z", "WR", 81, -1.0, 5, "U")],
}
_DL4 = [P("DE1", "DE", 91, 1.0, -5.8), P("DT1", "DT", 98, 1.0, -1.8),
P("DT2", "DT", 93, 1.0, 1.8), P("DE2", "DE", 94, 1.0, 5.8)]
_CB = [P("CB1", "CB", 24, 1.5, 6.5, "T"), P("CB2", "CB", 21, 1.5, 6.0, "U")]
DEFENSE = {
"4-3 Over": _DL4 + [P("SAM", "OLB", 54, 4.2, 7.5), P("MIKE", "MLB", 52, 4.5, 0),
P("WILL", "OLB", 56, 4.2, -6.5)] + _CB + [
P("FS", "FS", 29, 12.5, -4), P("SS", "SS", 31, 10.0, 6)],
"Nickel 4-2-5": _DL4 + [P("MIKE", "MLB", 52, 4.5, -2.5), P("WILL", "OLB", 56, 4.5, 3)] + _CB + [
P("NB", "NB", 27, 3.5, 12.5), P("FS", "FS", 29, 12.5, -4), P("SS", "SS", 31, 10.0, 7)],
"3-4": [P("NT", "NT", 99, 1.0, 0), P("DE1", "DE", 91, 1.0, -4), P("DE2", "DE", 94, 1.0, 4),
P("OLB1", "OLB", 54, 1.8, -8.5), P("OLB2", "OLB", 56, 1.8, 8.5),
P("ILB1", "ILB", 52, 4.5, -2.5), P("ILB2", "ILB", 50, 4.5, 2.5)] + _CB + [
P("FS", "FS", 29, 12.5, -4), P("SS", "SS", 31, 10.0, 6)],
}