Blue Team - WatchDog
var me = 38403;
var currentOwner = parseInt(getMsg(me));
var deltas = {1:{x:0,y:1},2:{x:0,y:-1},3:{x:1,y:-1},4:{x:-1,y:-1},5:{x:-1,y:1},6:{x:1,y:1}};
var check_danger = function(ennemi){
for(var i in deltas){
if(Math.abs(ennemi.x-x-deltas[i].x)<3 && Math.abs(ennemi.y-y-deltas[i].y)<2){
delete deltas[i];
}
}
}
if(eNear.length > 0){
for(var i in eNear){
check_danger(eNear[i]);
}
}
for(var i in deltas){
if(x+deltas[i].x>126 || x+deltas[i].x<1 || y+deltas[i].y>126 || y+deltas[i].y<1)
delete deltas[i];
}
if(!isNaN(currentOwner) && getMsg(currentOwner)!='X'){
var Owner;
if(tNear.length > 0){
for(var i in tNear){
if(tNear[i].id == currentOwner)
Owner=tNear[i];
}
}
if(Owner){
var min=32;
var choosen;
var keys = Object.keys(deltas);
if(keys.length>0){
for(var i in deltas){
var value = Math.abs(Owner.x-x-deltas[i].x)+Math.abs(Owner.y-y-deltas[i].y);
if(value<min){
min=value;
choosen=i;
}
}
if(min>0)
return parseInt(choosen);
}
}
}
if(tNear.length > 0){
setMsg(""+tNear[0].id);
}
var keys = Object.keys(deltas);
if(keys.length>0){
if(eNear.length>0){
var max=0;
var choosen;
for(var i in deltas){
var value = Math.abs(eNear[0].x-x-deltas[i].x)+Math.abs(eNear[0].y-y-deltas[i].y);
if(value>max){
max=value;
choosen=i;
}
}
if(max>5)
return parseInt(choosen);
}
}
var deltas = {1:{x:0,y:1},2:{x:0,y:-1},3:{x:1,y:-1},4:{x:-1,y:-1},5:{x:-1,y:1},6:{x:1,y:1}};
if(eNear.length>0){
var min=32;
var choosen;
for(var i in deltas){
var value = Math.abs(eNear[0].x-x-deltas[i].x)+Math.abs(eNear[0].y-y-deltas[i].y);
if(value<min){
min=value;
choosen=i;
}
}
if(min==0)
return parseInt(choosen);
}
return parseInt(keys[Math.floor(keys.length*Math.random())]);
It move randomly until it grabs an ally, if so it follows him. It tries to avoid to be killed, and kill if he can.