var timeout; function buildDungeon(){ sendRequest("craftmine.php", "op=buildDungeon", function(ret) { displayDungeon(0,1,true);//mob 0 in the floor 1 and I access the dungeon for the first time debitAccount(ret.cost); showInfo("You can acces the dungeon now. Good Luck."); }); } function displayDungeon(nb,f,firstTime){ var tmphtml = "
"; tmphtml += ""; document.getElementById("tab4").innerHTML = tmphtml; } function launchDungeon(nb,f,firstTime){ sendRequest("craftmine.php", "op=launchDungeon&floor="+f, function(ret) { if(nb==0 && firstTime){ document.getElementById("launch").style.display = "none"; } displayBattle(ret,nb,f); }); } function displayBattle(ret,nb,f){ var tmphtml = "
"; tmphtml += "

Battle floor "+ f +"

"; tmphtml += ""; tmphtml += "
"; document.getElementById("tab4").innerHTML = tmphtml; displayExit(); battle(ret,nb,f); } function battle(ret,nb,f){ timeout=window.setTimeout(strike, 1000, ret, nb, f); } function strike(ret,nb, f){ var powerDiff = (data.power+data.bonusPower)-parseInt(ret[nb].power); var hitRate = Math.floor((Math.random() * 100) + 1); var mobLife = document.getElementById("lifeMob").innerHTML; var persoLife = document.getElementById("lifePerso").innerHTML; if(mobLife == 0){ data.hp = persoLife; data.bonusPower = 0; //à revoir car l'épée doit continuer à apporter un bonus endBattle("perso",nb,f,ret); return; } else if(persoLife == 0){ data.hp = 1; data.bonusPower = 0;//when you die you lose your sword and all your power bonus endBattle("mob",nb,f,ret); return; } if(hitRate<50+10*powerDiff){ mobLife--; document.getElementById("lifeMob").innerHTML = parseInt(mobLife); } else{ persoLife--; document.getElementById("lifePerso").innerHTML = parseInt(persoLife); } data.hp=persoLife; sendRequest("craftmine.php", "op=updatePerso&hp="+data.hp+"&maxHP="+data.maxHP+"&xp="+data.xp+"&lv="+data.level+"&power="+data.power +"&bonusPower="+data.bonusPower, function(){ displayPerso(data.hp,data.maxHP,data.xp,data.level,data.power,data.bonusPower); }); battle(ret,nb,f); } function endBattle(v,nb, f, ret){ window.clearTimeout(timeout); if(v=="mob")exitDungeon(false);//if you die in the dungeon, you are immediately sent out of the dungeon //To level up you have to obtain 2 xp to go to lv 3, 3 to go to lv 4, etc //A mob level 2 , if defeated gives you 2 xp, ...etc else{ levelUp(ret[nb].xp); nb++;//go to the next mob in the same floor if(nb>=3){//floor changing nb=0;//reset the number of the mob f++;//increment the number of the floor if(f>=4){ exitDungeon(true);//true means that you have completed the dungeon and not just die or exit by yourself return; } } var w = "player"; if(v == "mob") w = "monster"; var tmphtml = "

The " + w + " won.

" // var tmphtml = "Le " + v + " a gagné."; tmphtml += "" document.getElementById("tab4").innerHTML = tmphtml; displayExit(); sendRequest("craftmine.php", "op=sendDungeonProgress&floor="+f+"&mob="+nb); } sendRequest("craftmine.php", "op=updatePerso&hp="+data.hp+"&maxHP="+data.maxHP+"&xp="+data.xp+"&lv="+data.level+"&power="+data.power +"&bonusPower="+data.bonusPower, function(){ displayPerso(data.hp,data.maxHP,data.xp,data.level,data.power,data.bonusPower); }); } function displayExit(){ var tmphtml = "

"; tmphtml += ""; document.getElementById("tab4").innerHTML += tmphtml; } function exitDungeon(boss){ sendRequest("craftmine.php", "op=exitDungeon", function() { window.clearTimeout(timeout); if(boss){//if the boss is beaten levelUp(20);//you earn 20 xp creditAccount(1000);//you earn 1000 gold coins var tmphtml = "

You have completed the dungeon! CONGRATULATIONS!

"; tmphtml += ""; document.getElementById("tab4").innerHTML = tmphtml; } else document.getElementById("tab4").innerHTML = "

Not available, you have to buy a ticket in the build section.

"; showInfo("You have left the dungeon"); }); }