<?php
/**
 * Центральная площадь
 */
session_start();
require_once "functions.php";
$user = $user ?? new \Battles\User($_SESSION['uid']);

if ($user->getZayavka()) {
    exit;
}

$online = db::c()->query('SELECT 1 FROM `online` WHERE `real_time` >= ?i', (time() - 60));
$location = explode('/', filter_input(INPUT_SERVER, 'QUERY_STRING'));

switch ($location[0]) {
    default:
        break;
    case 'cp':
        Battles\Travel::toRoom(20,$user->getRoom());
        break;
    case 'strah':
        Battles\Travel::toRoom(21,$user->getRoom());
        break;
    case 'bps':
        Battles\Travel::toRoom(26,$user->getRoom());
        break;
    case 'ps':
        Battles\Travel::toRoom(51,$user->getRoom());
        break;
    case 'zaliv':
        Battles\Travel::toRoom(2111,$user->getRoom());
        break;
    case 'zamk':
        Battles\Travel::toRoom(2601,$user->getRoom());
        break;
    case 'abog':
        Battles\Travel::toRoom(2655,$user->getRoom());
        break;
    case 'torg':
        Battles\Travel::toRoom(2702,$user->getRoom());
        break;
    case 'got':
        if ($user->getRoom() == 20) {
            switch ($location[1]) {
                default:
                    break;
                case 'level1':
                    Battles\Travel::toRoom(1,$user->getRoom());
                    break;
                case 'level7':
                    Battles\Travel::toRoom(21,$user->getRoom());
                    break;
                case 'level8':
                    Battles\Travel::toRoom(26,$user->getRoom());
                    break;
                case 'level13':
                    header('location: quest_room.php');
                    break;
                case 'level222':
                    Battles\Travel::toRoom(2702,$user->getRoom());
                    break;
                case 'level17':
                    Battles\Travel::toRoom(50,$user->getRoom());
                    break;
                case 'level2':
                    Battles\Travel::toRoom(22,$user->getRoom());
                    break;
                case 'level4':
                    Battles\Travel::toRoom(23,$user->getRoom());
                    break;
                case 'level6':
                    Battles\Travel::toRoom(27,$user->getRoom());
                    break;
                case 'level3':
                    Battles\Travel::toRoom(25,$user->getRoom());
                    break;
            }
        } elseif ($user->getRoom() == 21) {
            switch ($location[1]) {
                default:
                    break;
                case 'level4':
                    Battles\Travel::toRoom(20,$user->getRoom());
                    break;
                case 'level3':
                    Battles\Travel::toRoom(2111,$user->getRoom());
                    break;
                case 'level13':
                    Battles\Travel::toRoom(34,$user->getRoom());
                    break;
                case 'level5':
                    Battles\Travel::toRoom(29,$user->getRoom());
                    break;
                case 'level16':
                    Battles\Travel::toRoom(31,$user->getRoom());
                    break;
                case 'level14':
                    Battles\Travel::toRoom(30,$user->getRoom());
                    break;
                case 'level650':
                    Battles\Travel::toRoom(650,$user->getRoom());
                    break;
            }
        } elseif ($user->getRoom() == 2111) {
            switch ($location[1]) {
                default:
                    break;
                case 'level1':
                    Battles\Travel::toRoom(21,$user->getRoom());
                    break;
                case 'level203':
                    Battles\Travel::toRoom(1055,$user->getRoom());
                    break;
                case 'level1000':
                    Battles\Travel::toRoom(620,$user->getRoom());
                    break;
                case 'room666':
                    //Нет на карте
                    //Battles\Travel::toRoom(666,$user->getRoom());
                    break;
            }
        } elseif ($user->getRoom() == 2601) {
            switch ($location[1]) {
                default:
                    break;
                case 'level4':
                    Battles\Travel::toRoom(26,$user->getRoom());
                    break;
                case 'level55':
                    Battles\Travel::toRoom(2655,$user->getRoom());
                    break;
                case 'level1':
                    Battles\Travel::toRoom(37,$user->getRoom());
                    break;
                case 'level1051':
                    Battles\Travel::toRoom(1051,$user->getRoom());
                    break;
                case 'level5':
                    Battles\Travel::toRoom(404,$user->getRoom());
                    break;
            }
        } elseif ($user->getRoom() == 2701) {
            switch ($location[1]) {
                default:
                    break;
                case 'level1':
                    Battles\Travel::toRoom(2111,$user->getRoom());
                    break;
                case 'level2':
                    Battles\Travel::toRoom(402,$user->getRoom());
                    break;
            }
        } elseif ($user->getRoom() == 2702) {
            switch ($location[1]) {
                default:
                    break;
                case 'level10':
                    Battles\Travel::toRoom(20,$user->getRoom());
                    break;
                case 'level6':
                    Battles\Travel::toRoom(61,$user->getRoom());
                    break;
            }
        } elseif ($user->getRoom() == 2655) {
            switch ($location[1]) {
                default:
                    break;
                case 'level10':
                    Battles\Travel::toRoom(2601,$user->getRoom());
                    break;
                case 'level2055':
                    Battles\Travel::toRoom(603,$user->getRoom());
                    break;
            }
        } elseif ($user->getRoom() == 26) {
            switch ($location[1]) {
                default:
                    break;
                case 'level4':
                    Battles\Travel::toRoom(20,$user->getRoom());
                    break;
                case 'level3':
                    Battles\Travel::toRoom(2601,$user->getRoom());
                    break;
                case 'level660':
                    Battles\Travel::toRoom(660,$user->getRoom());
                    break;
                case 'level7':
                    Battles\Travel::toRoom(777,$user->getRoom());
                    break;
                case 'level56':
                    Battles\Travel::toRoom(401,$user->getRoom());
                    break;
            }
        }
}

\Battles\Template::header('city');
echo sprintf('<div style="text-align: right;">Сейчас в игре: %s игроков.></div>', $online->getNumRows());
if (in_array($user->getRoom(), [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) {
    /* Улицы:
     * 20 Центральная
     * 21 Страшилкина
     * 26 Парковая
     * 2601 Замковая
     * 2655 С ареной
     * 2111 С ристалищем
     * 2701 С ещё одним ристалищем?
     * 2702 Торговая
     */
    Battles\City::showStreet($user->getRoom());
}