Skip to content

Instantly share code, notes, and snippets.

@mynthon
Created December 7, 2012 12:34
Show Gist options
  • Save mynthon/4232998 to your computer and use it in GitHub Desktop.
Save mynthon/4232998 to your computer and use it in GitHub Desktop.
Mynthobot
//FightCode can only understand your robot
//if its class is called Robot
var Robot = function(robot) {
this.reset()
this.retreat_time = 0;
this.track_time = 0;
this.enemy_x = 0;
this.enemy_y = 0;;
};
Robot.prototype.reset = function(){
this.cannonRotationSpeed = 5;
this.tankRotationSpeed = 55
this.tankSpeed = 10
};
Robot.prototype.retreat = function(robot){
if (this.retreat_time > 0 ){
this.retreat_time -= 1;
robot.turn(10)
robot.back(20)
robot.ahead(200);
robot.turn(40)
robot.ahead(50);
}
}
Robot.prototype.defMove = function(robot){
if(this.retreat_time <= 0){
robot.ahead(this.tankSpeed);
if(this.track_time <= 0){
robot.rotateCannon(this.cannonRotationSpeed)
}
}
}
Robot.prototype.track = function(robot){
if (this.track_time > 0){
this.track_time -= 1;
robot.ahead(10);
dx = this.enemy_x - robot.position.x
dy = this.enemy_y - robot.position.y
var a = Math.atan2(dx, dy) * 180/Math.PI
var b = (((a-270) * -1)%360)
var c = robot.cannonAbsoluteAngle
robot.rotateCannon(b-c)
}
}
Robot.prototype.onIdle = function(ev) {
var robot = ev.robot;
//this.scanned(robot);
this.defMove(robot);
this.track(robot);
};
Robot.prototype.onScannedRobot = function(ev) {
var robot = ev.robot;
robot.fire();
this.enemy_x = ev.scannedRobot.position.x;
this.enemy_y = ev.scannedRobot.position.y;
this.track_time = 10;
};
Robot.prototype.onWallCollision = function(ev){
var robot = ev.robot;
robot.turn(this.tankRotationSpeed);
robot.rotateCannon(-1*this.tankRotationSpeed);
};
Robot.prototype.onHitByBullet = function(ev){
var robot = ev.robot
this.retreat_time = 50;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment