Exemplo n.º 1
0
 public static function renderPage($address)
 {
     global $MAIN_DIR;
     $item = tools::getPage($address);
     $template = file_get_contents('templates/athlas.htm');
     //        Если это не неведомое, не песочница и не меморизы - обрезаем сцену под коэффициент
     if (!tools::startswith($address, 'unknown') && !tools::startswith($address, 'common/memories') && $_SESSION['doctor_skills']['text_size']) {
         $item['scen'] = tools::splice_text($item['scen'], $_SESSION['doctor_skills']['text_size']);
     }
     if (!$_SESSION['labels']['memories_passed']) {
         $_SESSION['labels']['memories_passed'] = array();
     }
     //        Если это меморизы, и на этой странице уже были - разрешаем второй раз не читать
     if (strpos($_SESSION['current_page'], 'memories') && in_array($_SESSION['current_page'], $_SESSION['labels']['memories_passed'])) {
         $arr = tools::split_text($item['scen']);
         //            print_r($arr);
         if (count($arr) > 9) {
             $item['scen'] = join('', array_slice($arr, 0, 5)) . "{3mm}...{3mm}" . join("", array_slice($arr, -4));
         }
     }
     $out = $template;
     if (!$item['image']) {
         $item['image'] = $item['page'] . '.jpg';
     }
     $item['athlas_page'] = '';
     $sack = new cStoneSet($_SESSION['sack']);
     $item['sack_stones'] = $sack->getStonesText();
     $heap = new cStoneSet($_SESSION['heap']);
     $item['heap_stones'] = $heap->getStonesText();
     $patient = $_SESSION['patient'];
     if ($item['todos']) {
         $item['todos'] = "<img src='../images/question.png' class=img_question>" . $item['todos'];
     }
     foreach ($item as $key => $value) {
         $out = str_replace("{" . $key . "}", $value, $out);
     }
     $out = tools::replace_hiddens($out);
     $out = tools::replace_template_conditions($out);
     $out = tools::replace_page_fog($out);
     $out = tools::replace_template_conditions($out);
     // Заменяем hypno_next
     if (count($_SESSION['labels']['hypno_page_sequence'])) {
         $out = str_replace('{hypno_next}', 'Иди {page:' . $_SESSION['labels']['hypno_page_sequence'][0] . '}', $out);
     } else {
         $out = str_replace('{hypno_next}', '{hypno_end}', $out);
     }
     $out = preg_replace('~\\{awake:(.*?)\\}~', 'Перейди {page:unknown/sandbox/random_\\1}', $out);
     $out = preg_replace('~\\{page:(.*?)\\}~', '<div class=button><a onclick="transfer(\'\\1\');">НА СЛЕДУЮЩУЮ СТРАНИЦУ</a></div>', $out);
     $repl = file_get_contents($MAIN_DIR . "replacements.py");
     $repl = substr($repl, strpos($repl, '{'));
     $repl = json_decode($repl, 1);
     foreach ($repl as $key => $value) {
         $out = str_replace("{" . $key . "}", $value, $out);
     }
     //        die("<pre>".$out."</pre>");
     return $out;
 }
Exemplo n.º 2
0
     $_SESSION['start_sack'] = $sack;
     if ($_SESSION['current_page'] == 'hypnomap') {
         die('{success:true,hypnomap:true}');
     } else {
         die('{success: true}');
     }
     break;
 case 'extra_awake':
     tools::log(" -> extra_awake");
     $_SESSION['labels']['extra_awake'] = 1;
     header('Location: awake.php');
     break;
 case 'athlas':
     //        Вытаскиваем мешок и кучу из сессии
     $sack = new cStoneSet($_SESSION['sack']);
     $heap = new cStoneSet($_SESSION['heap']);
     $patient = $_SESSION['patient'];
     $doctor_skills = $_SESSION['doctor_skills'];
     $requested_page = $_REQUEST['page'];
     if ($requested_page == 'next' && strpos($_SESSION['current_page'], 'experiment') > 0) {
         $requested_page = $_SESSION['exp']['scenes'][0];
     }
     //        Отрезаем от адреса страницы номер
     $data = explode('#', $requested_page);
     $page = tools::getPage($_SESSION['current_page']);
     //        Берем страницу, с которой мы уходим, и смотрим, есть ли на ней коды для перехода
     if ($page['transfer_codes'] && $_REQUEST['page']) {
         if (substr(trim($page['transfer_codes']), -1, 1) != '~') {
             $page['transfer_codes'] .= '~';
         }
         preg_match('!' . $_REQUEST['page'] . '\\s*~\\s*(.*?)\\s*~!', $page['transfer_codes'], $m);
Exemplo n.º 3
0
 public function pass(&$where, $line = '', $forbidden_rand = 'K')
 {
     if ($line == '') {
         $line = $this->_stones;
     }
     $taken = $this->take($line, $forbidden_rand);
     if (!$where) {
         $where = new cStoneSet($taken);
     } else {
         $where->add($taken->getStones());
     }
     return $this;
 }
Exemplo n.º 4
0
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel=stylesheet href='styles/main.css'>
    <link rel=stylesheet href='styles/login.css'>
</head>
<h2>Результаты сеанса:</h2>
<? if(strpos($_SESSION['current_page'], 'experiment/')===FALSE) { ?>

<div id="hypno_results" class='roundrect'>
    <div class=block_caption style='width:200px'>РЕСУРСЫ ПСИХИКИ</div>
    <div class=comment>БЫЛО</div>
<?

$sack = new cStoneSet($_SESSION['sack']);
$start_sack = new cStoneSet($_SESSION['start_sack']);
$diff = $sack->diff($_SESSION['start_sack'], true);
foreach (tools::$COLORS as $letter => $col)
    echo "<div class=stone_result>
        <img src=images/gem_{$col}_2.png><br>".$start_sack->getCount($letter)."
</div>\n";
?>
<div class=clear></div><hr>
    <div class=comment>СТАЛО</div>
<?
    foreach (tools::$COLORS as $letter => $col) {
        $was = $start_sack->getCount($letter);
        $now = $sack->getCount($letter);
        echo "<div class=stone_result>
        <img src=images/gem_{$col}_2.png><br>";
        if ($now == $was)