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)

    # 0 - Monsters of The Deep 
    list.append(("FisH 2","Omni",{'invertible':True,'range':99,'topspeed':99,'throttle':130,'range':99,'weapons':(0,)}))
    list.append(("ayy shit","Omni",{'invertible':True,'range':99,'topspeed':99,'throttle':130,'range':99,'weapons':(0,)}))
    list.append(("giv war a chanse","Omni",{'invertible':True,'range':99,'topspeed':99,'throttle':130,'range':99,'weapons':(0,)}))
    list.append(("Algae2","FBSInvertDir",{'spinspeed':18,'invertible':True,'direction':1,'nose':0,'radius':0.1,'topspeed':1000,'throttle':1000,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("Oct/-\ pus }{","FBSInvertDir",{'spinspeed':14,'direction':-1,'invertible':True,'nose':0,'radius':0.1,'topspeed':1000,'throttle':1000,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("Squ}{D","FBSInvertDir",{'spinspeed':14,'direction':-1,'invertible':True,'nose':0,'radius':0.1,'topspeed':1000,'throttle':1000,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("AW- Tenticle*","FBSInvertDir",{'spinspeed':20,'direction':1,'invertible':True,'nose':0,'radius':0.1,'topspeed':1000,'throttle':1000,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("Tide","Popup",{'NoChassisTime':5,'nose':0,'topspeed':150,'throttle':150,'turnspeed':2.75,'turn':50,'radius':1,'range':100,'weapons':(0,)}))

    # 1 - Impending Disaster
    list.append(("Mono","Omni",{'invertible':True,'topspeed':100,'throttle':130,'turnspeed':4,'turn':60,'radius':0.3,'range':99,'weapons':(0,)}))
    list.append(("Duo II","Omni",{'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':45,'radius':3,'range':100,'weapons':(0,)}))
    list.append(("Trio","FBSPlus",{'spinspeed':15,'invertible':True,'direction':1,'nose':0,'radius':1.0,'topspeed':100,'throttle':100,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("Quad","Omni",{'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':45,'radius':3,'range':100,'weapons':(0,)}))
    list.append(("Penta*","Rammer",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':40,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("Hex 2","Omni",{'nose':0,'radius':2,'range':50,'topspeed':100,'throttle':100,'turn':50,'turnspeed':2.5,'weapons':(0,)}))

    # 2 - Digging Moles
    list.append(("Mini Mole 2","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':3,'turn':45,'radius':0.3,'range':100,'weapons':(0,)}))
    list.append(("Macro Mole","Omni",{'nose':math.pi,'invertible':True,'topspeed':100,'throttle':100,'turnspeed':3,'turn':45,'radius':0.3,'range':100,'weapons':(0,)}))
    list.append(("Mega Mole","Omni",{'invertible':True,'nose':0,'topspeed':150,'throttle':150,'turnspeed':3,'turn':45,'radius':0.3,'range':100,'weapons':(0,)}))
    list.append(("BW- Micro Mole 2","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':3,'turn':45,'radius':0.3,'range':100,'weapons':(0,)}))
    list.append(("Abn IV","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':130,'range':30,'weapons':(0,)}))
    list.append(("Unholy Mole","FBSInvertDir",{'spinspeed':21,'invertible':True,'direction':-1,'nose':math.pi*0.5,'radius':1.0,'topspeed':100,'throttle':100,'turn':190,'turnspeed':30,'weapons':(0,)}))

    # 3 - Bullet-time
    list.append(("Breakneck 2","Omni",{'invertible':True,'nose':math.pi,'topspeed':100,'throttle':80,'range':100,'turnspeed':1.8,'turn':45,'radius':2.5,'weapons':(0,)}))
    list.append(("Full Throttle }|{","Popup",{'NoChassisTime':5,'nose':0,'topspeed':80,'throttle':100,'turnspeed':2,'turn':25,'radius':1,'range':100,'weapons':(0,)}))
    list.append(("Rocket 2","Popup",{'NoChassisTime':5,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2,'turn':25,'radius':1,'range':100,'weapons':(0,)}))
    list.append(("AW- Anty C","Rammer",{'invertible':True,'nose':0,'topspeed':1000,'throttle':1000,'turnspeed':2.5,'turn':60,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("BW- INTRUDER","Popup",{'NoChassisTime':5,'nose':0,'topspeed':80,'throttle':100,'turnspeed':2.5,'turn':25,'radius':1,'range':100,'weapons':(0,)}))
    list.append(("2Fast2Furious*","Popup",{'invertible':True,'NoChassisTime':2,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2,'turn':25,'radius':1,'range':100,'weapons':(0,)}))

    # 4 - Graduality
    list.append(("Form II","OmniRam",{'invertible':True,'nose':0,'radius':3,'topspeed':100,'throttle':100,}))
    list.append(("Geopolymer","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2,'turn':50,'radius':1,'range':100,'weapons':(0,)}))
    list.append(("Solar","Popup",{'nose':0,'radius':2,'topspeed':80,'throttle':70,'turn':50,'turnspeed':2,'weapons':(0,)}))
    list.append(("AW- HarvesT II","FBSInvertDir",{'spinspeed':10,'invertible':True,'direction':-1,'nose':0,'radius':1.0,'topspeed':1000,'throttle':1000,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("Styx 2","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2,'turn':25,'radius':1,'range':100,'weapons':(0,)}))
    #list.append(("Styx 2","Popup",{'invertible':True,'NoChassisTime':2,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2,'turn':25,'radius':1,'range':100,'weapons':(0,)}))
    list.append(("Crawler","Pillar",{'invertible':True,'nose':0,'topspeed':99,'throttle':130,'turnspeed':2.5,'turn':60,'radius':0.3,'range':45,'weapons':(0,)}))

    # 5 - Throwback
    list.append(("GREEN","OmniTrueRam",{'invertible':True,'nose':0,'topspeed':1000,'throttle':80,'range':100,'turnspeed':3,'turn':60,'radius':0.3,'weapons':(0,)}))
    list.append(("Speedy X","Rammer",{'invertible':True,'radius':2,'topspeed':150,'throttle':100,'turn':40,'turnspeed':2}))
    list.append(("Speedy DX III","Rammer",{'invertible':True,'radius':2,'topspeed':150,'throttle':150,'turn':45,'turnspeed':2.5}))
    list.append(("Blood Cravings","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("Vroom","FBSInvertDir",{'spinspeed':16,'invertible':True,'direction':-1,'nose':math.pi*0.5,'radius':0,'topspeed':1000,'throttle':1000,'turn':60,'turnspeed':2,'weapons':(0,)}))
    list.append(("Search and Destroy X2","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2.5,'weapons':(0,)}))

    # 6 - Corrupted Science
    list.append(("Slasher","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.25,'turn':50,'radius':1,'range':100,'weapons':(0,)}))
    list.append(("Re\/olution","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2,'turn':25,'radius':1,'range':100,'weapons':(0,)}))
    list.append(("Crime Against Humanity 2","FBSInvertDir",{'spinspeed':99,'invertible':True,'direction':-1,'nose':0,'radius':1.0,'topspeed':1000,'throttle':1000,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("AW- Oddity","FBSInvertDir",{'nose':0,'spinspeed':15,'invertible':True,'range':99,'radius':1,'topspeed':99,'throttle':130,'turn':100,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("Flapjax","OmniTrueRam",{'nose':0,'range':5,'radius':2,'topspeed':150,'throttle':150,'turn':50,'turnspeed':2,'weapons':(0,)}))
    list.append(("FuZioN","OmniRam_EnergyMiser",{'nose':0,'range':5,'radius':2,'topspeed':150,'throttle':150,'turn':60,'turnspeed':2.5,'weapons':(0,)}))

    # 7 - Forest
    list.append(("Cazket","Rammer",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':1.6,'turn':40,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("Dolsa III","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("Maple","OmniRam",{'invertible':True,'radius':2,'topspeed':100,'throttle':130,'turnspeed':2,'turn':60,'range':100,'weapons':(0,)}))
    list.append(("Silver Splinter","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':1000,'turn':60,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("Woden II","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("Oak","Omni",{'invertible':True,'radius':2,'topspeed':100,'throttle':130,'turnspeed':2,'turn':60,'range':100,'weapons':(0,)}))

    # 8 - untitled3 
    list.append(("PurpleSands III","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':80,'range':100,'turnspeed':1.8,'turn':45,'radius':2.5,'weapons':(0,)}))
    list.append(("Dune","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'range':100,'turnspeed':3,'turn':60,'radius':0.3,'weapons':(0,)}))
    list.append(("The Sandman","FBSInvertDir",{'spinspeed':20,'invertible':True,'direction':1,'nose':0,'radius':0,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2,'weapons':(0,)}))
    list.append(("BW- Pollutor","Popup",{'NoChassisTime':-1,'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':45,'turnspeed':2,'weapons':(0,)}))
    list.append(("BW - MolteN 2","FBSInvertDir",{'spinspeed':20,'invertible':True,'nose':math.pi,'radius':1.0,'topspeed':100,'throttle':100,'turn':190,'turnspeed':30,'weapons':(0,)}))
    list.append(("Coastal","Omni",{'nose':0,'radius':0.1,'topspeed':150,'throttle':150,'turnspeed':3.5,'turn':90,'range':50,'weapons':(0,)}))

    # 9 - FORCE
    list.append(("Fragment Reborn","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':45,'turnspeed':2,'weapons':(0,)}))
    list.append(("Total Recall","Omni",{'radius':2,'topspeed':100,'throttle':130,'turnspeed':3,'range':100,'weapons':(0,)}))
    list.append(("Crusade 2","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("Hot Rod II","BountyHunter",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':45,'turnspeed':2,'weapons':(0,)}))
    list.append(("Pursuit 2","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':45,'turnspeed':2,'weapons':(0,)}))
    list.append(("Zero Hour","Omni",{'radius':2,'topspeed':100,'throttle':130,'turnspeed':3,'range':100,'weapons':(0,)}))

    # 10 - IceD IN 
    list.append(("Flake V","Omni",{'range':50,'invertible':True,'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':30,'turnspeed':2,'weapons':(0,)}))
    list.append(("BliZZarD","Omni",{'invertible':True,'nose':0,'topspeed':150,'throttle':150,'range':50,'weapons':(0,)}))
    list.append(("SnowStorm","TempusFugit",{'nose':0,'topspeed':100,'throttle':130,'range':100,'weapons':(0,),'sweapons':(20,23)}))
    list.append(("AW - Pierce","Rammer",{'invertible':True,'nose':0,'topspeed':130,'throttle':130,'turnspeed':2.5,'turn':60,'radius':3,'weapons':(0,)}))
    list.append(("Deep Freeze","Bee",{'invertible':True,'whip':"around",'range':500,'radius':0.1,'topspeed':99,'throttle':130,'turn':50,'turnspeed':2,'weapons':(0,)}))
    list.append(("Chills 2","Omni",{'range':50,'invertible':True,'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':30,'turnspeed':1.85,'weapons':(0,)}))

    # 11 - Poisonous 
    list.append(("Dosage","Omni",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':50,'turnspeed':3.5,'weapons':(0,)}))
    list.append(("Myst*","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':50,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("DeOxidE 2","Omni",{'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':45,'radius':3,'range':100,'weapons':(0,)}))
    list.append(("Crossed Bones","Omni",{'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':45,'radius':3,'range':100,'weapons':(0,)}))
    list.append(("Vapor 3","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':150,'turn':60,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("InfeXXioN","Omni",{'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':45,'radius':3,'range':100,'weapons':(0,)}))

    # 12 - Voids
    list.append(("Cosmos 2","FBSInvertDir",{'spinspeed':20,'invertible':True,'direction':1,'nose':0,'radius':0,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2,'weapons':(0,)}))
    list.append(("Black Hole","Omni",{'range':50,'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':50,'turnspeed':3,'weapons':(0,)}))
    list.append(("Orbital_Oscillator_3","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':50,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("BW- Astroid","Rammer",{'invertible':True,'nose':0,'topspeed':130,'throttle':130,'turnspeed':2.5,'turn':60,'radius':3,'weapons':(0,)}))
    list.append(("Orbit 2*","Omni",{'invertible':True,'range':50,'nose':0,'radius':2,'topspeed':75,'throttle':100,'turn':50,'turnspeed':3,'weapons':(0,)}))
    list.append(("Meteor Shower","Popup",{'nose':0,'radius':2,'topspeed':80,'throttle':100,'turn':50,'turnspeed':2.5,'weapons':(0,)}))

    # 13 - Dystopia
    list.append(("Minor Dystroyer","Omni",{'invertible':True,'nose':0,'radius':2,'topspeed':150,'throttle':150,'turn':60,'turnspeed':2.5,'range':100,'weapons':(0,)}))
    list.append(("Dysfunction","Omni",{'invertible':True,'nose':0,'radius':2,'topspeed':150,'throttle':150,'turn':40,'turnspeed':2,'range':100,'weapons':(0,)}))
    list.append(("Dysaster","Omni",{'nose':0,'radius':2,'topspeed':150,'throttle':150,'turn':60,'turnspeed':2.5,'range':100,'weapons':(0,)}))
    list.append(("Dynasty III","Omni",{'invertible':True,'nose':0,'radius':2,'topspeed':150,'throttle':150,'turn':40,'turnspeed':2,'range':100,'weapons':(0,)}))
    list.append(("Dysentery 3","Omni",{'invertible':True,'nose':0,'radius':2,'topspeed':150,'throttle':150,'turn':40,'turnspeed':2,'range':100,'weapons':(0,)}))
    list.append(("Dystruction","Omni",{'invertible':True,'nose':0,'radius':2,'topspeed':150,'throttle':150,'turn':60,'turnspeed':3,'range':100,'weapons':(0,)}))

    # 14 - The Notorious Six
    list.append(("HiV3","Omni",{'invertible':True,'nose':0,'radius':2,'topspeed':150,'throttle':150,'turn':60,'turnspeed':2.5,'range':100,'weapons':(0,)}))
    list.append(("Ra II","Rammer",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':60,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("Bloody Murder Forever","Popup",{'nose':0,'radius':2,'topspeed':80,'throttle':70,'turn':50,'turnspeed':2,'weapons':(0,)}))
    list.append(("STAB Redux","Omni",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':45,'turnspeed':2,'weapons':(0,)}))
    list.append(("Enter Bot Name","Popup",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2.5,'weapons':(0,)}))
    list.append(("Cyclone 3","Omni",{'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':50,'turnspeed':2,'weapons':(0,)}))

    # 15 - Minis 
    list.append(("Mini - Speedy","Rammer",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':60,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("Mini - Dolsa II","Rammer",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':60,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("Mini - Mega Mole","Omni",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':60,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("Mini - Cyclone 3","Omni",{'invertible':True,'nose':0,'radius':0.1,'topspeed':99,'throttle':130,'turnspeed':3.5,'range':99,'weapons':(0,)}))
    list.append(("Mini - Orbital_Oscillator_3","OmniRam",{'invertible':True,'nose':0,'topspeed':100,'throttle':100,'turnspeed':2.5,'turn':60,'radius':3,'range':50,'weapons':(0,)}))
    list.append(("Mini - Algae3","FBSInvertDir",{'spinspeed':16,'direction':1,'invertible':True,'range':25,'weapons':(0,)}))

    # 16 - ATW 
    list.append(("Micro","OmniRam",{'invertible':True,'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2.75,'weapons':(0,)}))
    list.append(("Fate","Omni",{'invertible':True,'nose':math.pi,'radius':2,'topspeed':100,'throttle':100,'turn':60,'turnspeed':2,'range':100,'weapons':(0,)}))
    list.append(("Astraphobia 2","FBSPlus",{'invertible':True,'direction':1,'radius':2,'spinspeed':11,'topspeed':100,'range':100,'throttle':130,'turn':30,'turnspeed':1.5,'weapons':(0,)}))
    list.append(("Jolt","Popup",{'nose':math.pi*2,'invertible':False,'radius':1,'topspeed':100,'throttle':100,'turn':100,'turnspeed':2.5,'NoChassisTime':2,'RunUpsideDown':0,'weapons':(0,)}))
    list.append(("Pushover","OmniRam",{'nose':math.pi,'radius':2,'topspeed':100,'throttle':100,'turn':40,'turnspeed':2,'weapons':(0,)}))
    list.append(("LW-a watermelon ripened mad","Omni",{'invertible':True,'range':99,'radius':1,'topspeed':99,'throttle':130,'turn':80,'turnspeed':3,'weapons':(0,)}))

    # 17 - ATW
    list.append(("Dart V","Rammer",{'invertible':True,'nose':0,'radius':2,'topspeed':100,'throttle':100,'turn':20,'turnspeed':2,'weapons':(0,)}))
    list.append( ("Razor Hug", "OmniTrueRam", {'nose' : math.pi, 'invertible' : True, 'turnspeed' : 3.0, 'topspeed' : 30.0, 'throttle' : 120, 'weapons' : (1, 2, 3, 4,)}) )
    list.append(("SpinForwardLeftRight 2","Omni",{'invertible':True,'nose':math.pi,'topspeed':99,'throttle':130,'turnspeed':4,'turn':60,'radius':0.3,'range':99,'weapons':(1,2,3,4,5,6,7,8,9,10)}))
    list.append(("Nightmare Generator","Omni",{'invertible':True,'nose':math.pi,'radius':0.1,'topspeed':99,'throttle':130,'turnspeed':3.5,'range':99,'weapons':(0,)}))
    list.append(("BioEnergetic","Omni",{'invertible':True,'nose':0,'radius':0.1,'topspeed':99,'throttle':130,'turnspeed':3.5,'range':99,'weapons':(0,)}))
    list.append(("Flip Test Dummy","Rammer",{'invertible':True,'radius':2,'topspeed':100,'throttle':120,'turn':60,'turnspeed':4}))