composeMessage('list_item', $lang, $item); // print_r($item); // echo "$story
\n"; } return $story; } function startBattle($guid, $opponent) { global $userManager, $messageManager, $battleManager, $itemManager, $lang; $results = array(); $lock = $userManager->battleLock($guid, $opponent); if ($lock > 0) { $attackItems = $userManager->best_offense($guid); $defenseItems = $userManager->best_defense($opponent); $results['attack'] = $attackItems; $results['defense'] = $defenseItems; $at = ''; if (isset ($attackItems[0])) $at .= listItems($attackItems[0]); if (($at != '') && (count($attackItems[1]) > 0)) $at .= ', '; if (isset ($attackItems[1])) $at .= listItems($attackItems[1]); if (($at != '') && (count($attackItems[2]) > 0)) $at .= ', '; if (isset ($attackItems[2])) $at .= listItems($attackItems[2]); if ($at == '') $at = 'bare fists'; $story['attack'] = $at; $def = ''; if (isset ($defenseItems[0])) $def .= listItems($defenseItems[0]); if (($def != '') && (count($defenseItems[1]) > 0)) $def .= ', '; if (isset ($defenseItems[1])) $def .= listItems($defenseItems[1]); if (($def != '') && (count($defenseItems[2]) > 0)) $def .= ', '; if (isset ($defenseItems[2])) $def .= listItems($defenseItems[2]); if ($def == '') $def = 'ducking and weaving'; $story['defense'] = $def; $sequence = $battleManager->battleSequence($results['attack']['totals']['attack'], $results['defense']['totals']['defense'], $attack, $defense, $attackItems['life'], $defenseItems['life'], $attackItems, $defenseItems); // get data for display $leftDisp = array(); $leftDisp['name'] = $userManager->name($guid); $leftDisp['attackVal'] = $attackItems['totals']['attack']; $leftDisp['teamSize'] = $attackItems['team_size']; $leftDisp['max_life'] = $attackItems['life']; $leftDisp['level'] = $attackItems['level']; $lPow = ''; if (isset ($attackItems['0'])) { $item = $itemManager->getItem($attackItems['0'][0]['id']); //print_r($attackItems[0][0]); // echo $attackItems[0][0]['power']."'
\n"; // $lPow = $attackItems[0][0]['power']; $leftDisp['item1'] = $item['photo']; } else $leftDisp['item1'] = ''; if (isset ($attackItems['1'])) { $item = $itemManager->getItem($attackItems['1'][0]['id']); // echo $attackItems[1][0]['power']."'
\n"; // if ($lPow == '') $lPow = $attackItems[1][0]['power']; $leftDisp['item2'] = $item['photo']; } else $leftDisp['item2'] = ''; if (isset ($attackItems['2'])) { $item = $itemManager->getItem($attackItems['2'][0]['id']); // echo "'".$attackItems[2][0]['power']."'
\n"; // if ($lPow == '') $lPow = $attackItems[2][0]['power']; $leftDisp['item3'] = $item['photo']; } else $leftDisp['item3'] = ''; // echo "'$lPow'
\n"; // $leftDisp['power'] = $lPow; $rightDisp = array(); $rightDisp['name'] = $userManager->name($opponent); $rightDisp['attackVal'] = $defenseItems['totals']['defense']; $rightDisp['teamSize'] = $defenseItems['team_size']; $rightDisp['max_life'] = $defenseItems['life']; $rightDisp['level'] = $defenseItems['level']; // $rPow = ''; if (isset ($defenseItems['1'])) { $item = $itemManager->getItem($defenseItems['1'][0]['id']); // $rPow = $defenseItems['1'][0]['power']; $rightDisp['item2'] = $item['photo']; } else $rightDisp['item2'] = ''; if (isset ($defenseItems['0'])) { $item = $itemManager->getItem($defenseItems['0'][0]['id']); // if ($rPow == '') $rPow = $defenseItems['0'][0]['power']; $rightDisp['item1'] = $item['photo']; } else $rightDisp['item1'] = ''; if (isset ($defenseItems['2'])) { $item = $itemManager->getItem($defenseItems['2'][0]['id']); // if ($rPow == '') $rPow = $defenseItems['2'][0]['power']; $rightDisp['item3'] = $item['photo']; } else $rightDisp['item3'] = ''; // $rightDisp['power'] = $rPow; $seq = array(); foreach ($sequence as $round) { $seq[] = implode (',', $round); } $seq[] = $leftDisp; $seq[] = $rightDisp; $results['rounds'] = json_encode($seq); //implode (':', $seq); $results['attackDamage'] = $attack; $results['defenseDamage'] = $defense; $stat = $battleManager->newBattle($guid, $opponent, $attack, $defense, $results['rounds']); $stat['actor'] = $leftDisp['name']; $stat['target'] = $rightDisp['name']; $story['actor'] = $leftDisp['name']; $story['target'] = $rightDisp['name']; $results['fbml_stats'] = $messageManager->composeMessage('battle_stats', $lang, $story); // compose story listing of the battle if ($attack > $defense) { $results['fbml_text'] = $messageManager->composeMessage('attack_success', $lang, $stat); } else { $results['fbml_text'] = $messageManager->composeMessage('attack_failure', $lang, $stat); } //print_r($stat); // deducting life no longer used. //$userManager->update_dynamic ($guid, LIFE, -$defense); //$userManager->update_dynamic ($opponent, LIFE, -$attack); $userManager->battleUnlock($guid, $opponent); } $results['battle'] = $lock; if ($lock == 0) $results['fbml_stats'] = $messageManager->composeMessage('battle_unable', $lang, array()); return $results; } function finishBattle($guid, $opponent, $attack, $defense) { global $battleManager, $userManager; /* $battlestats['attacker'] = $user_game_id; $battlestats['defender'] = $defender; if ($attack > $defense) { while (!$debit) { $loss = round($moneyManager->balance($guid)/3); $debit = $moneyManager->debit($guid, $loss, 0, 1); } $moneyManager->credit($guid, $loss); $battlestats['value_money'] = $loss; $newsManager->addNewsRecord($defender, 'defense_failure', $battlestats); } else { $newsManager->addNewsRecord($defender, 'defense_success', $battlestats); } */ return $stat; } if ($buy) { $success = $userManager->buy($guid, $buy, $count); $results['buy'] = $success; } if ($sell) { $success = $userManager->sell($guid, $buy, $count); $results['sell'] = $success; } if ($listStore) { $results = $itemManager->get($level, $type, 0); } if ($startBattle) { //echo 'starting battle '; $results = startBattle($guid, $startBattle); if ($results['battle']) { //echo 'running battle '; flush(); ob_flush(); // $results['p1'] = $userManager->user_game_status($guid); //print_r($results['p1']); flush(); ob_flush(); // $results['p2'] = $userManager->user_game_status($startBattle); //print_r($results['p2']); flush(); ob_flush(); //print_r($results['p2']); flush(); ob_flush(); //echo "finishing battle
\n"; flush(); ob_flush(); // finishBattle($guid, $startBattle, $attack, $defense); $userManager->battleUnlock($guid, $startBattle); //echo 'finished'; flush(); ob_flush(); //print_r($results); //exit; } //echo 'done with battle '; } if ($finishBattle) { //$results = finishBattle($guid, $finishBattle, $attack, $defense); $results = $userManager->battleUnlock($guid, $finishBattle); $results['unlock'] = 1; // print_r($results); // exit; } if ($makeBounty) { if ($moneyManager->debit($guid, $cash)) { $success = $bountyManager->newBounty($makeBounty, $guid, $cash); $results['bounty'] = $success; } else { $results['bounty'] = 'money'; } } if ($takeBounty) { $success = $bountyManager->claimBounty($guid, $takeBounty); $results = $success; if ($success['success']) { $results = startBattle($guid, $success['wanted']['user_game_id']); if ($results['battle']) { //$results['battle'] = $battle; if ($results['attackDamage'] > $results['defenseDamage']) { $bountyManager->finishBounty($guid, $finishBounty); } else { $bountyManager->releaseBounty($finishBounty); } } else { $bountyManager->releaseBounty($takeBounty); $results['success'] = 0; $results['fbml_stat'] = $messgeManager->composeMessage('battle_occupied', $lang, array()); } } } if ($finishBounty) { } if ($listBounty) { $results = $bountyManager->get($guid, $level); } if ($startJob) { $results = $jobManager->claimJob($guid, $startJob); if (!isset($results['fail'])) { if ($results['user_game_id']) { // echo "opponent ".$results['user_game_id']."
\n"; // print_r($results); // echo "
\n"; $battle = startBattle($guid, $results['user_game_id']); $results['battle'] = $battle; } $resultFinish = $jobManager->finishJob($guid, $startJob); foreach ($resultFinish as $rfk=>$rf) { $results[$rfk] = $rf; } $results['fbml_job'] = $messageManager->composeMessage('finish_job', $lang, $results); if (isset($results['drop_item'])) $results['fbml_job'] .= "
\n".$messageManager->composeMessage('drop_item', $lang, $results['drop_item']); if (isset($results['random_drop_item'])) $results['fbml_job'] .= "
\n".$messageManager->composeMessage('drop_item', $lang, $results['random_drop_item']); } else $results['fbml_job'] = $messageManager->composeMessage('fail_'.$results['fail'], $lang, $results); } if ($finishJob) { //echo "language $lang
\n"; } if ($listJobs) { $results = $jobManager->get($level, $city, $guid); } if ($specialJobs) { $res = $jobManager->getSpecial($level, $city, $guid); $results['flash'] = json_encode($res); } if ($postMessage) { $results = $teamManager->newComment($postMessage, $message); } if ($readMessages) { $results = $teamManager->comments($readMessages); } if ($news) { $stories = $newsManager->get($news); $results = array(); foreach ($stories as $article) { $results[] = $messageManager->composeMessage($article['message_bundle_key'], $lang, $article); } } if ($clearnews) { $newsManager->clear($clearnews); } if ($userStatus) { $res = $userManager->user_game_status($userStatus); $results['flash'] = json_encode($res); } if ($handleMessage) { $results = $userManager->getRealTimeStatus($handleMessage); // $levelup = $userManager->levelUp($handleMessage); // // $awards = ''; // check awards, 1.1; // $battles = $battleManager->recentBattles($handleMessage); // list battles since last report // $results = $userManager->user_game_status($handleMessage); // $results['levelup'] = $levelup; // $results['fbml_levelup'] = $messageManager->composeMessage('levelup', $lang, $levelup); // // $results['awards'] = $awards; // $results['battles'] = $battles; } echo json_encode($results); ?>