// A bot which responds to `jarvis` with a box const Space = require('../space'); const Socket = require('../socket'); const getdims = require('../utils/getdims'); const tilekeys = require('../utils/tilekeys'); const Search = require('./search'); var main = new Socket(); function equals(arg1,arg2){ // Just takes the specific case argument of each being an int pair return arg1[0] == arg2[0] && arg1[1] == arg2[1] } main.on('open', ()=>{ // Tries to identify itself with a cursor movement let coords = [Math.floor(Math.random()*100000+16),Math.floor(Math.random()*100000+16)]; main.cursor(coords); main.on('cursor',detect); function detect(pos, send){ if (equals(pos[0],coords)){ main.off('cursor', detect); this.emit('identity', send); } } }) main.on('identity', (sender) => { // Does this need to be an event (or would a callback like identity(sender) work just as well?) console.log('identity activated'); var search = new Space(); search.adhoc('jarvis'); // The search space is the word jarvis, so whenever that's caught, a relevant function can be called. var read = new Search(); var expire = {}; main.on('tileUpdate', (send, source, tiles) => { if (send == sender) return; let locs = tilekeys(tiles); for (let i=0; i{read.del(loc)}, 30000); } }); }); function respond(coord){ console.log('called at', coord); }