Skip to content

Instantly share code, notes, and snippets.

@HugoLnx
Created December 3, 2012 00:16
Show Gist options
  • Save HugoLnx/4191713 to your computer and use it in GitHub Desktop.
Save HugoLnx/4191713 to your computer and use it in GitHub Desktop.
[CAELUM TEAM] CrazyGiroscope
var CrazyGiroscope = function() {
var becameDistant = true;
var Robot = function(robot) {
robot.rotateCannon(-20);
};
Robot.prototype.onIdle = function(ev) {
var robot = ev.robot;
robot.clone();
if(robot.position.y > 40) {
if(robot.parentId) {
robot.turn(90-robot.angle);
robot.ahead(300);
becameDistant = false;
}
robot.turn(-robot.angle);
robot.ahead(robot.position.y-40);
robot.turn(90);
} else {
if(robot.position.x < 40) {
robot.ahead(50);
}
if(robot.position.x > (robot.arenaWidth-40)) {
robot.back(50);
}
}
robot.rotateCannon(110);
robot.ahead(50);
robot.rotateCannon(110);
robot.ahead(50);
robot.rotateCannon(-110);
robot.ahead(50);
robot.rotateCannon(-110);
robot.ahead(50);
robot.back(200);
//robot.ahead(100);
//robot.rotateCannon(360);
//robot.back(100);
//robot.rotateCannon(360);
};
Robot.prototype.onScannedRobot = function(ev) {
var robot = ev.robot;
var scanned = ev.scannedRobot;
if(scanned.id !== robot.parentId && scanned.parentId !== robot.id) {
robot.fire();
var scannedCannonAAngle = scanned.angle + scanned.cannonAngle;
var precision = scannedCannonAAngle - robot.cannonAbsoluteAngle;
precision = Math.abs(precision);
if (precision <= 20) {
var angle = (robot.cannonAbsoluteAngle) - (scannedCannonAAngle-45);
robot.turn(angle);
robot.ahead(100);
robot.rotateCannon(-angle);
} else {
robot.rotateCannon(-30);
robot.rotateCannon(30);
}
}
};
Robot.prototype.onHitByBullet = function(ev) {
var robot = ev.robot;
robot.turn(Math.abs(ev.bearing) - 45);
robot.ahead(100);
};
return Robot;
};
var Robot = CrazyGiroscope();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment