(string)$monsters["cost"],"monsters"=>array()); //TODO: again, cost is a string? foreach($monsters as $f){ $floor = (string)$f["name"]; $dungeon["monsters"][$floor] = array(); foreach($f as $monster){ $dungeon["monsters"][$floor][] = new Monster((string)$monster->name, intval($monster->level), intval($monster->hp), intval($monster->xp), intval($monster->power), (string)$monster->icon); } } return $dungeon; } /** * Marks the dungeon as accessible in the session. * * @return void */ function initDungeon() { $_SESSION["dungeon"]["access"] = true; // TODO: is the $_SESSION["dungeon"] array useful (and created beforehand)? } /** * Returns the dungeon array if it was created. * * @return array dungeon array as created by generateMonster */ function sendDungeon() { if(!empty($_SESSION["dungeon"])) return $_SESSION["dungeon"]; else return false; } /** * Allows acces to the dungeon in the session and sends it to the client. * Debits the dungeon's ticket cost from the player's gold. * * @return void */ function buildDungeon() { $dungeon=generateMonster(); if(!empty($_SESSION["dungeon"])) { sendError("dungeon_already_available"); } elseif(debitAccount($dungeon["cost"])) { initDungeon(); $_SESSION["mine"]["gold"] -= $dungeon["cost"]; // TODO: Account was already debited echo json_encode($dungeon); } } /** * Sends monsters for a specific floor as specified by the floor POST parameter to the client. * * @return void */ function launchDungeon(){ $f= $_POST["floor"]; $dungeon=generateMonster(); $opponent = $dungeon["monsters"]["floor".$f]; echo json_encode($opponent); } /** * Updates floor and monster number from the POST parameters in the session. * * @return void */ function sendDungeonProgress(){ $f= $_POST["floor"]; $nb=$_POST["mob"]; $_SESSION["dungeon"]["flat"] = $f; $_SESSION["dungeon"]["mob"] = $nb; reusable(); } /** * Marks the dungeon as not accessible in the session. * * @return void */ function exitDungeon(){ $_SESSION["dungeon"] = false; } ?>