import math

def load(list):
    print "Loading AI bindings"

    # binding format:
    # ( 'name of robot from .bot file', 'name of AI from script class',
    #       {'optional constructor parameter':value, 'another':value} )

    # constructor parameters:
    # nose - "front" of bot in radians (default 0)
    # invertible - can function upside-down (default False)
    # topspeed - speed in meters/second AI will attempt not to exceed (default 4.0)
    # throttle - maximum analog value AI will attempt not to exceed (default 100)
    # turnspeed - turning in radians/second AI will attempt not to exceed (default 2.5)
    # turn - maximum analog value AI will attempt not to exceed (default 60)
    # radius - bot radius to use for checking for hazards and walls (default 1.0)
    
    list.append( ("Aftershock", "Pusher", { 'turnspeed' : 1.0, 'invertible': True }) )
    list.append( ("Atomic Wedgie", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'invertible' : True }) )
    list.append( ("Backlash", "DirectionalSpinner", { 'nose' : math.pi, 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'turnspeed' : 1, }) )
    list.append( ("Center Punch", "Rammer", { 'invertible': True, 'turnspeed' : .7, 'nose' : math.pi }) )
    list.append( ("CODE: BLACK", "DirectionalSpinner", { 'invertible': True, 'nose': math.pi, 'trigger' : 'twirl', 'topspeed': 12.0, 'turnspeed': 2.0, 'throttle': 110, 'weapons': (4,), 'range' : 1000000 }) )
    list.append( ("Death By Monkeys", "Rammer", { 'turnspeed' : 1.0, 'invertible': True }) )
    list.append( ("Deathstar", "Spinner", { 'topspeed' : 10.0, 'throttle' : 110.0, 'weapons': (10, 13, 15, 17), 'range' : 1000000 }) )
    list.append( ("Diesector", "Chopper", { 'radius': 1.3, 'topspeed' : 12 , 'throttle' : 110 , 'turnspeed' : 1.25, 'weapons': (14, 15, 16, 17), 'trigger' : 'Fire' }) )
    list.append( ("Double Agent", "Rammer", { 'invertible': True, 'turnspeed' : .7 }) )
    list.append(("Dreadnought","Omni",{'invertible':True,'nose':math.pi,'range':99,'radius':0.1,'topspeed':100,'throttle':80,'turn':25,'turnspeed':1.5,'weapons':(20,)}))
    list.append( ("Dr Inferno Jr", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : math.pi }) )
    list.append( ("Final Destiny", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000 }) )
    list.append( ("Frostbite", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 50.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : math.pi, 'turnspeed' : 1, 'invertible': True }) )
    list.append( ("Garm", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : math.pi / 2, 'invertible' : True }) )
    list.append( ("GoldDigger", "Whipper", {  'invertible': True, 'whip': "around", 'zone': "weapon", 'turnspeed': 3, 'turn': 40, 'topspeed': 20.0, 'throttle': 400, 'weapons': (8,) }) )
    list.append( ("Hazard", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : math.pi }) )
    list.append(("Heavy Metal Noise","DirectionalSpinner",{'invertible':True,'nose':math.pi*2,'range':99,'radius':0.4,'topspeed':100,'throttle':130,'turn':30,'turnspeed':2,'weapons':(16,17,18,19)}))
    list.append( ("HerrGepounden", "Whipper", { 'invertible': True, 'whip': "around", 'zone': "swing", 'turnspeed': 3, 'turn': 40, 'topspeed': 20.0, 'throttle': 400, 'weapons': (8,), 'nose' : math.pi }) )
    list.append( ("Hexy Jr", "Flipper", { 'topspeed' : 12.0, 'throttle' : 200, 'turnspeed': 2.0, 'weapons': (6,) }) )
    list.append( ("IceBerg", "Flipper", { 'topspeed' : 12.0, 'throttle' : 200, 'turnspeed': 2.0, 'weapons': (6,), 'invertible' : True, 'nose' : math.pi }) )
    list.append( ("Junkyard Dog v2.0", "DirectionalSpinner", { 'invertible': True, 'nose': math.pi, 'trigger' : 'twirl', 'topspeed': 12.0, 'turnspeed': 2.0, 'throttle': 110, 'weapons': (21, 22), 'range' : 1000000 }) )
    list.append( ("Killerhurtz", "Chopper", {  'radius': 1.3, 'topspeed' : 12 , 'throttle' : 110 , 'turnspeed' : 1.25, 'weapons': (14, 15), 'trigger' : 'Fire' }) )
    list.append( ("Knee Breaker", "DirectionalSpinner", { 'invertible' : True, 'turnspeed' : 1, 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000 }) )
    list.append( ("Little Drummer Boy", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'invertible' : True }) )
    list.append( ("Mad Cows Revenge", "DirectionalSpinner", { 'invertible': True, 'trigger' : 'twirl', 'topspeed': 12.0, 'turnspeed': 2.0, 'throttle': 110, 'weapons': (8, 9), 'range' : 1000000 }) )
    list.append( ("Mauler 5150", "Spinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : math.pi / 2 }) )
    list.append(("Mechavore","Omni",{'nose':math.pi,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(20,)}))
    list.append( ("Minion", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'turnspeed' : 1, 'invertible': True }) )
    list.append(("M.O.E.","DirectionalSpinner",{'invertible':True,'nose':math.pi,'range':99,'radius':.5,'turn':30,'turnspeed':2.5,'weapons':(12,13,25,26,27,28,29,30)}))
    list.append( ("Moebius", "Spinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (10, 13, 15, 17), 'range' : 1000000 }) )
    list.append( ("Nightmare", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : - math.pi / 2 }) )
    list.append( ("Phrizbee Ultimate", "Spinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (10, 13, 15, 17), 'range' : 1000000 }) )
    list.append( ("Phrizbee", "Spinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (10, 13, 15, 17), 'range' : 1000000 }) )
    list.append( ("Shaft", "Pusher", { 'turnspeed' : 1.0, 'invertible': True, 'throttle' : 300 }) )
    list.append( ("Slam Job", "Chopper", {  'nose' : math.pi ,'radius': 1.3, 'topspeed' : 12 , 'throttle' : 110 , 'turnspeed' : 1.25, 'weapons': (14, 15), 'trigger' : 'Fire' }) )
    list.append( ("SO What", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (17,), 'radius' : 2, 'trigger' : 'Spin', 'range' : 1000000 }) )
    list.append( ("Son of Whyachi", "Spinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 3, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : math.pi }) )
    list.append( ("SnowFlake", "Rammer", {  'invertible': True, 'topspeed' : 1.0, 'throttle' : 1, 'turnspeed': 2.0, 'nose' : -math.pi / 2 }) )
    list.append( ("Surgeon General", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (17,), 'radius' : 2, 'trigger' : 'Spin', 'invertible': True, 'range' : 1000000 }) )    
    list.append(("Techno Destructo","Omni",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(13,)}))
    list.append(("The Judge","Omni",{'nose':math.pi*2,'radius':0.1,'reload':16,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(53,)}))
    list.append( ("The Matador", "Flipper", { 'topspeed' : 12.0, 'throttle' : 200, 'turnspeed': 2.0, 'trigger' : 'Flip', 'weapons' : (4,) }) )
    list.append( ("T-Minus", "Flipper", { 'topspeed' : 12.0, 'throttle' : 200, 'turnspeed': 2.0, 'trigger' : 'Flip', 'nose' : math.pi, 'weapons' : (4,) }) )
    list.append( ("TORO", "Flipper", { 'topspeed' : 12.0, 'throttle' : 200, 'turnspeed': 2.0, 'weapons': (6,) }) )
    list.append( ("Turtle Road Kill", "Pusher", { 'turnspeed' : 1.0, 'invertible': False, 'throttle' : 300, 'nose' : math.pi, }) )
    list.append( ("T-Wrex", "Whipper", {  'invertible': True, 'whip': "around", 'zone': "spin", 'turnspeed': 3, 'turn': 40, 'topspeed': 20.0, 'throttle': 400, 'weapons': (8,), 'nose' : math.pi }) )
    list.append( ("Village Idiot", "DirectionalSpinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3, 17), 'radius' : 3, 'trigger' : 'Spin', 'range' : 1000000, 'nose' : math.pi / 2 }) )
    list.append( ("Vladiator", "Flipper", { 'invertible': True, 'topspeed' : 12.0, 'throttle' : 110.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Flip' }) )
    list.append( ("Voltronic", "Flipper", { 'invertible': True, 'topspeed' : 12.0, 'throttle' : 90.0, 'weapons': (1, 2, 3), 'radius' : 2, 'trigger' : 'Flip', 'nose' : math.pi }) )
    list.append(("Warhead","Omni",{'invertible':False,'radius':1.3,'topspeed': 12,'throttle':110,'turnspeed':1.25,'range':99,'weapons': (14,15),'nose':math.pi}) )
    list.append( ("Wedge Of Doom", "Flipper", { 'topspeed' : 12.0, 'throttle' : 200, 'turnspeed': 2.0, 'trigger' : 'Flip', 'nose' : math.pi, 'weapons' : (4,) }) )
    list.append( ("Ziggo", "Spinner", { 'topspeed' : 12.0, 'throttle' : 110.0, 'nose' : math.pi, 'range' : 10000000000000000000000000, 'weapons' : (10, 11) }) )    
    list.append(("T-Minus","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(25,)}))
    list.append(("Biohazard","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(4,)}))
    list.append(("Robot X","Rammer",{'invertible':True,'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5}))
    list.append(("Matilda","DirectionalSpinner",{'nose':-math.pi/2,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(24,25,26)}))
    list.append(("Behemoth","Omni",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(6,23)}))
    list.append(("Billy-Bot","Omni",{'invertible':True,'nose':math.pi,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(17,)}))
    list.append(("Wheely Big Cheese","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(6,)}))
    list.append(("Thermidor II","SwitchWep",{'nose':math.pi*2,'radius':1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(11,),'sweapons':(28,29,)}))
    list.append(("Bob","DirectionalSpinner",{'radius':0.3,'range':2.5,'topspeed':100,'throttle':130,'turn':60,'turnspeed':3,'weapons':(25,)}))
    list.append(("FireStorm","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(19,)}))
    list.append(("Ronin","Omni",{'invertible':True,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(55,)}))
    list.append(("Cleprechaun","Omni",{'nose':math.pi,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':25,'turnspeed':3,'weapons':(7,)}))
    list.append(("Shrederator","Omni",{'invertible':False,'nose':math.pi,'radius':0.1,'range':99,'topspeed':6,'throttle':60,'turn':60,'turnspeed':2.5,'weapons':(15,)}))
    list.append(("El Diablo","Omni",{'invertible':True,'nose':math.pi,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':30,'turnspeed':3,'weapons':(25,29)}))
    list.append(("Potters Wheel","Omni",{'nose':math.pi,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':30,'turnspeed':2.5,'weapons':(21,)}))
    list.append(("Overkill","Frenzy",{'invertible':True,'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(15,)}))
    list.append(("SlapHappy","Whipper",{'invertible':True,'nose':math.pi,'whip':"around",'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(9,10)}))
    list.append(("Hypno-Disc","Omni",{'nose':math.pi,'radius':.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(28,29)}))
    list.append(("Panic Attack","Omni",{'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(24,)}))
    list.append(("S3","Omni",{'invertible':True,'nose':math.pi,'range':99,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(13,)}))
    list.append(("Vladiator Poker","Rammer",{'invertible':True,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(19,)}))
    list.append(("Beta","Frenzy",{'nose':math.pi*2,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(39,)}))
    list.append(("Lightning","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(10,11)}))
    list.append(("Storm II","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(33,)}))
    list.append(("Sir Killalot","Omni",{'invertible':True,'nose':math.pi,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(25,29)}))
    list.append(("Pussycat","Omni",{'invertible':True,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(21,)}))
    list.append(("Complete Control","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(2,13)}))
    list.append(("Tazbot","Omni",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(11,)}))
    list.append(("Razer","Omni",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':100,'turnspeed':4,'weapons':(7,)}))
    list.append(("Growler","Poker",{'nose':math.pi,'radius':1,'topspeed':12,'throttle':100,'turn':30,'turnspeed':2.5,'weapons':(14,16)}))
    list.append(("Bulldog Breed","Flipper",{'nose':math.pi*2,'radius':0.1,'topspeed':100,'throttle':130,'turn':30,'turnspeed':2.5,'weapons':(1,)}))
    list.append(("Killdozer","Rammer",{'invertible':True,'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(10,)}))
    list.append(("Whack!","Omni",{'nose':math.pi*2,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(11,)}))
    list.append(("frenZy","Frenzy",{'nose':math.pi/2,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(26,)}))
    list.append(("Chaos2","Poker",{'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(14,)}))
    list.append(("WhirlWep","Omni",{'invertible':True,'nose':-math.pi/2,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(19,)}))
    list.append(("Supernova","DirectionalSpinner",{'invertible':True,'nose':math.pi,'range':99,'radius':0.1,'range':99,'topspeed':90,'throttle':100,'turn':60,'turnspeed':2.5,'weapons':(10,)}))
    list.append(("Typhoon","Spinner",{'nose':math.pi/2,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(22,23,24,25)}))
    list.append(("259","Omni",{'nose':math.pi,'radius':0.1,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(4,)}))
    list.append(("Tornado","Omni",{'invertible':True,'nose':math.pi,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':30,'turnspeed':2.5,'weapons':(21,)}))
    list.append(("That Darn Dustpan!","LittleMetalFriend",{'nose':math.pi*2,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(25,)}))
    list.append(("Vladiator","Poker",{'invertible':True,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(16,)}))
    list.append(("Dominator 2","Omni",{'nose':math.pi*2,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':3.5,'weapons':(14,15,25)}))
    list.append(("YU812","Spinner",{'radius':0.1,'range':99,'topspeed':6,'throttle':50,'turn':60,'turnspeed':2.5,'weapons':(19,20,21)}))
    list.append(("Tornado Mer","Spinner",{'nose':math.pi/2.5,'range':99,'radius':0.3,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(10,11,12)}))
    list.append(("Hworf","Spinner",{'invertible':True,'nose':math.pi*2,'range':99,'radius':0.1,'topspeed':100,'throttle':130,'turn':30,'turnspeed':2.5,'weapons':(5,7)}))
    list.append(("Apollyon","Pusher",{'nose':math.pi*2,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5}))
    list.append(("Ruiner","DirectionalSpinner",{'nose':math.pi,'radius':0.5,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(7,8,9)}))
    list.append(("Buster Blade","DirectionalSpinner",{'nose':math.pi*2,'radius':0.2,'range':50,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(16,17)}))
    list.append(("Vertigo","DirectionalSpinner",{'nose':math.pi*2,'radius':0.2,'range':99,'topspeed':100,'throttle':130,'turn':60,'turnspeed':3,'weapons':(20,21)}))
    list.append(("Tornado Wedge","Rammer",{'invertible':True,'nose':math.pi,'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(10,)}))
    list.append(("Vlad the Impaler","Omni",{'radius':0.1,'topspeed':100,'throttle':130,'turn':60,'turnspeed':2.5,'weapons':(8,)}))