Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eviltester/d2742f4ccddb2ece0e6ad232fe6f4489 to your computer and use it in GitHub Desktop.
Save eviltester/d2742f4ccddb2ece0e6ad232fe6f4489 to your computer and use it in GitHub Desktop.
xtype bot and supporting functions
ig.game.crosshair.update = function(){
    this.currentAnim.angle -= 3 * ig.system.tick;
}
function hackMoveCrossHairToBaddy(){
    var num_baddies = ig.game.entities.length;
    for(var x=0;x<num_baddies;x++){
        var baddy = ig.game.entities[x];
        if(baddy["image"]!==undefined){
            if(baddy["image"].path.endsWith("heart.png")){
                // move cross hair here
                ig.game.crosshair.pos.x=baddy.pos.x+30;
                ig.game.crosshair.pos.y=baddy.pos.y+30;
                //shoot
                //ig.game.player.shoot();
                var event = document.createEvent("MouseEvents");
                event.initEvent("mousedown", true, true);
                //event.synthetic = true;
                document.getElementById("canvas").dispatchEvent(event, true);
                break;
            }
        }
    }
}
var aimingBot = setInterval(hackMoveCrossHairToBaddy,100);
    function closecall(thing, other, buffer) {
        if(other["pos"]===undefined){
            return false;
        }
            return !(
thing.pos.x >= other.pos.x + other.size.x + buffer ||
thing.pos.x + thing.size.x + buffer <= other.pos.x ||
thing.pos.y >= other.pos.y + other.size.y + buffer ||
thing.pos.y + thing.size.y + buffer<= other.pos.y);
        };
// preference is to be about 250, 500
var evadecount=0;
var homeposx = 250;
var homeposy = 500;
function chooseANewHome(){
    console.log("Choose a new home");
    homeposx = getRandomInt(150, 450);
    homeposy = getRandomInt(500, 650);
}
var homeChooserBot = setInterval(chooseANewHome,5000);
function getBackToCenter(){
    //var homeposx = 250;
    //var homeposy = 500;
    //var homeposx = getRandomInt(150, 300);
    //var homeposy = getRandomInt(500, 650);
    if(evadecount>0){
        evadecount--;
        return;
    }
    // creep back to center since things are a little stable
    console.log("Back to home");
    var playerpos = ig.game.player.pos;
    if(playerpos.x<homeposx){
        playerpos.x+=3;
    }
    if(playerpos.x>homeposx){
        playerpos.x-=3;
    }
    if(playerpos.y>homeposy){
        playerpos.y-=3;
    }
    if(playerpos.y<homeposy){
        playerpos.y+=3;
    }
}
var entropyBot = setInterval(getBackToCenter,50);
function moveplayer(){
    var evadespace = 15; //10
    var movespaces = 5;
    var num_baddies = ig.game.entities.length;
    for(var x=0;x<num_baddies;x++){
        var baddy = ig.game.entities[x];
        var player = ig.game.player;
        if(baddy["image"]!==undefined){
            if(baddy["image"].path.endsWith("bullet.png") ||
               baddy["image"].path.endsWith("exp-blue.png") ){
                    var movedx = 0;
                    if(closecall(player, baddy, evadespace)){
                        // need to evade
                        console.log("CLOSE");
                        if( player.pos.x <= baddy.pos.x + baddy.size.x + evadespace &&
player.pos.x + player.size.x - evadespace >= baddy.pos.x){
                        // evade x
                            console.log("CLOSE X");
                            if(player.pos.x<=baddy.pos.x){
                                // move left
                                console.log("MOVE LEFT");
                                player.pos.x=player.pos.x-movespaces;
                                evadecount++;
                                movedx=-movespaces;
                            }else{
                                console.log("MOVE RIGHT");
                                player.pos.x=player.pos.x+movespaces;
                                movedx=+movespaces;
                                evadecount++;
                            }
                        }
                        if( player.pos.y <= baddy.pos.y + baddy.size.y + evadespace &&
player.pos.y + player.size.y - evadespace >= baddy.pos.y){
                        // evade y
                            console.log("CLOSE Y");
                            if(player.pos.y<=baddy.pos.y){
                                // move up
                                console.log("MOVE UP");
                                player.pos.y=player.pos.y-movespaces;
                                evadecount++;    
                            }else{
                                console.log("MOVE DOWN");
                                player.pos.y=player.pos.y+movespaces;
                                evadecount++;
                                // hack to avoid constant move down
                                if(movedx==0){
                                    // randomly add an x
                                    movedx = getRandomInt(movespaces-3,movespaces);
                                    if(baddy.vel.x<0){                                            
                                    }else{
                                        movedx = movedx*-1;    
                                    }
                                    console.log("RANDOM X");
                                }
                                player.pos.x=player.pos.x+movedx;
                            }
                        }
                    }
               }
        }
    }
}
function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
var moveBot = setInterval(moveplayer,20);
// function showpos(){
// console.log("x = " + ig.game.player.pos.x + " , y = " + ig.game.player.pos.y)
// }
// var posBot = setInterval(showpos,100);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment