What it does: if the bot is within a certain range (default 5 meters) of the opponent and is moving slower than a certain threshold speed (default 3), the AI attempts to drive away for another ram. If the bot is facing the opponent, it backs up; if it is facing away from the opponent, it drives forward; and if the opponent is on its flank, it turns to face the opponent and then backs up. If it can't get away (there is an obstacle in its path) it will face the opponent and push back. While the AI is driving away, it is constantly checking for clear paths in front of and behind it. It will continue to drive away from the opponent until it either detects an obstacle in its path or it is a certain distance away from the opponent. At that point it will charge the opponent again.How it's different from the previous rammer AI:-Better hazard avoidance. The obstacle c all but ensure the AI won't run into walls or hazards while backing up.-The AI will usually run away first and then turn to face the opponent for a ram. The only case in which it tries to turn first is if the enemy is exactly to the side.-The point at which the AI will stop backing up and charge the opponent is based on distance/presence of obstacles rather than a timer. The result is usually greater distances over which a ram is performed. Most bots will back up the length of the Combat Arena, stop just before hitting the wall, and then do a boxlong charge.
list.append(("Generic Rammer","Rammer",{'nose':math.pi,'invertible':True,'radius':1,'topspeed':100,'throttle':100,'turn':60,'turnspeed':1,'SightRange':4,'ThresholdSpeed':2,'BackUpTime':5}))