diff --git a/xtrn/dicewarz2/ai.js b/xtrn/dicewarz2/ai.js index f9a2a8893f704890c84ae058f354d9a5368170a7..d79939b13462fb60bc52e3229e4c0e5c4090a0a9 100644 --- a/xtrn/dicewarz2/ai.js +++ b/xtrn/dicewarz2/ai.js @@ -366,6 +366,11 @@ function attack(computer) { var attacker=game.players[attacking.owner]; var defender=game.players[defending.owner]; + if(attacking.owner == defending.owner) { + log(LOG_ERROR,"invalid attack attempted: " + attacking.id + "->" + defending.id); + continue; + } + var a=new Roll(attacking.owner); for(var r=0;r<attacking.dice;r++) { var roll=random(6)+1; diff --git a/xtrn/dicewarz2/dicefunc.js b/xtrn/dicewarz2/dicefunc.js index b0151dc40358a8d4ce5246ed4cba6be913b7d057..436e7cf93e15725bfb7feca871a6f73af02360bb 100644 --- a/xtrn/dicewarz2/dicefunc.js +++ b/xtrn/dicewarz2/dicefunc.js @@ -104,8 +104,10 @@ function canAttack(map,base) { var neighbors=getNeighboringTiles(base,map); for(var n=0;n<neighbors.length;n++) { var tile=neighbors[n]; - if(tile.owner!=base.owner) + if(tile.owner !== base.owner) { + log(LOG_DEBUG,"Adding attack option: " + base.id + "(" + base.owner + ")->" + tile.id + "(" + tile.owner + ")"); valid_targets.push(tile); + } } } return valid_targets; diff --git a/xtrn/dicewarz2/game.js b/xtrn/dicewarz2/game.js index 9ab1589e3a00c64a4dbffd00deb10bf28d512280..d2b416d301218f244ea78a7bd342eac3879012f4 100644 --- a/xtrn/dicewarz2/game.js +++ b/xtrn/dicewarz2/game.js @@ -356,16 +356,7 @@ function lobby() { } function processUpdate(update) { if(update.oper == "WRITE") { - var p = update.location.split("."); - var obj=data; - - while(p.length > 1) { - var child=p.shift(); - obj = obj[child]; - } - - var child = p.shift(); - obj[child] = update.data; + /* todo: make this smarter */ gameList(); } } @@ -423,8 +414,8 @@ function lobby() { } function gameList() { listFrame.clear(); - var games = client.read(game_id,"games",1); - var sorted = sortGameData(games); + data.games = client.read(game_id,"games",1); + var sorted = sortGameData(data.games); wrap(listFrame,"\1gGames in progress ",sorted.started); wrap(listFrame,"\1gGames needing more players ",sorted.waiting); wrap(listFrame,"\1gYou are involved in games ",sorted.yourgames); @@ -743,6 +734,7 @@ function playGame(gameNumber) { if(tnum) { map.tiles[tnum] = update.data; drawTile(map,map.tiles[tnum]); + listPlayers(); } if(pnum) {