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 += "
";
tmphtml += "";
tmphtml += "";
tmphtml += "
";
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 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 = "