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);
?>