/*
* This section holds snippetbot's events - onScannedRobot and onRobotDeath
* onRobotDeath makes snippetBot select a new target if the target is our enemy
* onScannedRobot updates all the information held on our current target
*/
public void onScannedRobot(ScannedRobotEvent e) {
//if we have found a closer robot than our current target or we have another scan on our current target...
if ((e.getDistance() < target.distance)||(target.name == e.getName())) {
//the next line gets the absolute bearing to the point where the bot is
double absbearing_rad = (getHeadingRadians()+e.getBearingRadians())%(2*PI);
//this section sets all the information about our target
target.name = e.getName();
target.x = getX()+Math.sin(absbearing_rad)*e.getDistance(); //works out the x coordinate of where the target is
target.y = getY()+Math.cos(absbearing_rad)*e.getDistance(); //works out the y coordinate of where the target is
target.bearing = e.getBearingRadians();
target.head = e.getHeadingRadians();
target.ctime = getTime(); //game time at which this scan was produced
target.speed = e.getVelocity();
target.distance = e.getDistance();
}
}
public void onRobotDeath(RobotDeathEvent e) {
if (e.getName() == target.name)
target.distance = 10000; //this will effectively make it search for a new target
}