Рефакторинг, очистка, работа над ошибками, связанными с базой, отказ от глобальной переменной $user во многих файлах.

Singleton в некоторых местах вместо решения #42.
Новые шаги для решения #16 и #52.
Closes #42.
Closes #32.
Closes #31.
This commit is contained in:
Igor Barkov (iwork)
2022-01-27 01:15:33 +02:00
parent b1ba212c8c
commit 3502904656
82 changed files with 1575 additions and 2015 deletions
+57 -56
View File
@@ -3,193 +3,194 @@
* Центральная площадь
*/
use Battles\Database\DBPDO;
use Battles\Database\Db;
use Battles\Template;
use Battles\User;
require_once "functions.php";
if ($user->getZayavka()) {
if (User::getInstance()->getZayavka()) {
exit;
}
$online = DBPDO::$db->fetchColumn('select count(*) from online where real_time >= ?', time()-60);
$online = Db::getInstance()->fetchColumn('select count(*) from online where real_time >= ?', time()-60);
$location = explode('/', filter_input(INPUT_SERVER, 'QUERY_STRING'));
switch ($location[0]) {
default:
break;
case 'cp':
Battles\Travel::toRoom(20,$user->getRoom());
Battles\Travel::toRoom(20,User::getInstance()->getRoom());
break;
case 'strah':
Battles\Travel::toRoom(21,$user->getRoom());
Battles\Travel::toRoom(21,User::getInstance()->getRoom());
break;
case 'bps':
Battles\Travel::toRoom(26,$user->getRoom());
Battles\Travel::toRoom(26,User::getInstance()->getRoom());
break;
case 'ps':
Battles\Travel::toRoom(51,$user->getRoom());
Battles\Travel::toRoom(51,User::getInstance()->getRoom());
break;
case 'zaliv':
Battles\Travel::toRoom(2111,$user->getRoom());
Battles\Travel::toRoom(2111,User::getInstance()->getRoom());
break;
case 'zamk':
Battles\Travel::toRoom(2601,$user->getRoom());
Battles\Travel::toRoom(2601,User::getInstance()->getRoom());
break;
case 'abog':
Battles\Travel::toRoom(2655,$user->getRoom());
Battles\Travel::toRoom(2655,User::getInstance()->getRoom());
break;
case 'torg':
Battles\Travel::toRoom(2702,$user->getRoom());
Battles\Travel::toRoom(2702,User::getInstance()->getRoom());
break;
case 'got':
if ($user->getRoom() == 20) {
if (User::getInstance()->getRoom() == 20) {
switch ($location[1]) {
default:
break;
case 'level1':
Battles\Travel::toRoom(1,$user->getRoom());
Battles\Travel::toRoom(1,User::getInstance()->getRoom());
break;
case 'level7':
Battles\Travel::toRoom(21,$user->getRoom());
Battles\Travel::toRoom(21,User::getInstance()->getRoom());
break;
case 'level8':
Battles\Travel::toRoom(26,$user->getRoom());
Battles\Travel::toRoom(26,User::getInstance()->getRoom());
break;
case 'level13':
header('location: quest_room.php');
break;
case 'level222':
Battles\Travel::toRoom(2702,$user->getRoom());
Battles\Travel::toRoom(2702,User::getInstance()->getRoom());
break;
case 'level17':
Battles\Travel::toRoom(50,$user->getRoom());
Battles\Travel::toRoom(50,User::getInstance()->getRoom());
break;
case 'level2':
Battles\Travel::toRoom(22,$user->getRoom());
Battles\Travel::toRoom(22,User::getInstance()->getRoom());
break;
case 'level4':
Battles\Travel::toRoom(23,$user->getRoom());
Battles\Travel::toRoom(23,User::getInstance()->getRoom());
break;
case 'level6':
Battles\Travel::toRoom(27,$user->getRoom());
Battles\Travel::toRoom(27,User::getInstance()->getRoom());
break;
}
} elseif ($user->getRoom() == 21) {
} elseif (User::getInstance()->getRoom() == 21) {
switch ($location[1]) {
default:
break;
case 'level4':
Battles\Travel::toRoom(20,$user->getRoom());
Battles\Travel::toRoom(20,User::getInstance()->getRoom());
break;
case 'level3':
Battles\Travel::toRoom(2111,$user->getRoom());
Battles\Travel::toRoom(2111,User::getInstance()->getRoom());
break;
case 'level13':
Battles\Travel::toRoom(34,$user->getRoom());
Battles\Travel::toRoom(34,User::getInstance()->getRoom());
break;
case 'level5':
Battles\Travel::toRoom(29,$user->getRoom());
Battles\Travel::toRoom(29,User::getInstance()->getRoom());
break;
case 'level16':
Battles\Travel::toRoom(31,$user->getRoom());
Battles\Travel::toRoom(31,User::getInstance()->getRoom());
break;
case 'level14':
Battles\Travel::toRoom(30,$user->getRoom());
Battles\Travel::toRoom(30,User::getInstance()->getRoom());
break;
case 'level650':
Battles\Travel::toRoom(650,$user->getRoom());
Battles\Travel::toRoom(650,User::getInstance()->getRoom());
break;
}
} elseif ($user->getRoom() == 2111) {
} elseif (User::getInstance()->getRoom() == 2111) {
switch ($location[1]) {
default:
break;
case 'level1':
Battles\Travel::toRoom(21,$user->getRoom());
Battles\Travel::toRoom(21,User::getInstance()->getRoom());
break;
case 'level203':
Battles\Travel::toRoom(1055,$user->getRoom());
Battles\Travel::toRoom(1055,User::getInstance()->getRoom());
break;
case 'level1000':
Battles\Travel::toRoom(620,$user->getRoom());
Battles\Travel::toRoom(620,User::getInstance()->getRoom());
break;
case 'room666':
//Нет на карте
//Battles\Travel::toRoom(666,$user->getRoom());
//Battles\Travel::toRoom(666,User::getInstance()->getRoom());
break;
}
} elseif ($user->getRoom() == 2601) {
} elseif (User::getInstance()->getRoom() == 2601) {
switch ($location[1]) {
default:
break;
case 'level4':
Battles\Travel::toRoom(26,$user->getRoom());
Battles\Travel::toRoom(26,User::getInstance()->getRoom());
break;
case 'level55':
Battles\Travel::toRoom(2655,$user->getRoom());
Battles\Travel::toRoom(2655,User::getInstance()->getRoom());
break;
case 'level1':
Battles\Travel::toRoom(37,$user->getRoom());
Battles\Travel::toRoom(37,User::getInstance()->getRoom());
break;
case 'level1051':
Battles\Travel::toRoom(1051,$user->getRoom());
Battles\Travel::toRoom(1051,User::getInstance()->getRoom());
break;
case 'level5':
Battles\Travel::toRoom(404,$user->getRoom());
Battles\Travel::toRoom(404,User::getInstance()->getRoom());
break;
}
} elseif ($user->getRoom() == 2701) {
} elseif (User::getInstance()->getRoom() == 2701) {
switch ($location[1]) {
default:
break;
case 'level1':
Battles\Travel::toRoom(2111,$user->getRoom());
Battles\Travel::toRoom(2111,User::getInstance()->getRoom());
break;
case 'level2':
Battles\Travel::toRoom(402,$user->getRoom());
Battles\Travel::toRoom(402,User::getInstance()->getRoom());
break;
}
} elseif ($user->getRoom() == 2702) {
} elseif (User::getInstance()->getRoom() == 2702) {
switch ($location[1]) {
default:
break;
case 'level10':
Battles\Travel::toRoom(20,$user->getRoom());
Battles\Travel::toRoom(20,User::getInstance()->getRoom());
break;
case 'level6':
Battles\Travel::toRoom(61,$user->getRoom());
Battles\Travel::toRoom(61,User::getInstance()->getRoom());
break;
}
} elseif ($user->getRoom() == 2655) {
} elseif (User::getInstance()->getRoom() == 2655) {
switch ($location[1]) {
default:
break;
case 'level10':
Battles\Travel::toRoom(2601,$user->getRoom());
Battles\Travel::toRoom(2601,User::getInstance()->getRoom());
break;
case 'level2055':
Battles\Travel::toRoom(603,$user->getRoom());
Battles\Travel::toRoom(603,User::getInstance()->getRoom());
break;
}
} elseif ($user->getRoom() == 26) {
} elseif (User::getInstance()->getRoom() == 26) {
switch ($location[1]) {
default:
break;
case 'level4':
Battles\Travel::toRoom(20,$user->getRoom());
Battles\Travel::toRoom(20,User::getInstance()->getRoom());
break;
case 'level3':
Battles\Travel::toRoom(2601,$user->getRoom());
Battles\Travel::toRoom(2601,User::getInstance()->getRoom());
break;
case 'level660':
Battles\Travel::toRoom(660,$user->getRoom());
Battles\Travel::toRoom(660,User::getInstance()->getRoom());
break;
case 'level7':
Battles\Travel::toRoom(777,$user->getRoom());
Battles\Travel::toRoom(777,User::getInstance()->getRoom());
break;
case 'level56':
Battles\Travel::toRoom(401,$user->getRoom());
Battles\Travel::toRoom(401,User::getInstance()->getRoom());
break;
}
}
@@ -197,7 +198,7 @@ switch ($location[0]) {
Template::header('city');
echo sprintf('<div style="text-align: right;">Сейчас в игре: %s игроков.></div>', $online);
if (in_array($user->getRoom(), [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) {
if (in_array(User::getInstance()->getRoom(), [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) {
/* Улицы:
* 20 Центральная
* 21 Страшилкина
@@ -208,5 +209,5 @@ if (in_array($user->getRoom(), [20, 21, 26, 2601, 2655, 2111, 2701, 2702])) {
* 2701 С ещё одним ристалищем?
* 2702 Торговая
*/
Battles\City::showStreet($user->getRoom());
Battles\City::showStreet(User::getInstance()->getRoom());
}