Заявки на поединки. Начало.

This commit is contained in:
lopar 2022-02-13 01:46:59 +02:00
parent 1bf7a40fe9
commit fdaadf69e6
4 changed files with 47 additions and 19 deletions

View File

@ -6,7 +6,46 @@
use Battles\Arena; use Battles\Arena;
use Battles\Template; use Battles\Template;
if (isset($_POST['startTime']) && isset($_POST['teamMembersQuantity'])) {
Arena::fight()->addNew((int)$_POST['teamMembersQuantity'], 2, (int)$_POST['startTime']);
}
if (isset($_POST['fight_id']) && isset($_POST['team_id'])) {
Arena::fight()->join((int)$_POST['fight_id'], (int)$_POST['team_id']);
}
Template::header('Арена'); Template::header('Арена');
?>
$dbname = new SQLite3('name.db'); <?php if(Arena::fight()->hasNoPendingFights()): ?>
Arena::$current = new Arena($dbname); <form method='post' id='newbattle'></form>
<H3>Подать заявку на поединок</H3>
<label for='startTime'>Начало боя</label>
<select name='startTime' id='startTime' form='newbattle'>
<option value=1 selected>через 1 минуту</option>
<option value=3>через 3 минуты</option>
<option value=5>через 5 минут</option>
<option value=10>через 10 минут</option>
</select>
<br><br>
<label>Размер команды (1-20)
<input type='number' min='1' max='20' name='teamMembersQuantity' form='newbattle' value='5'>
</label>
<br><br>
<input type='submit' value='Подать заявку' form='newbattle'>
<?php endif; ?>
<?= Arena::fight()->getPendingList() ?>
<?php foreach (Arena::fight()->getPendingList() as $row): ?>
<!-- !!PLACEHOLDER!! -->
<div>
User1, User2, User3
<form method='post' style='display:inline'>
<input type='hidden' name='teamId' value='1'>
<input type='submit' value='Я за этих'>
</form>
<em>против</em>
User4, User5, User6
<form method='post' style='display:inline'>
<input type='hidden' name='teamId' value='2'>
<input type='submit' value='Я за этих'>
</form>
<? endforeach; ?>
</div>

View File

@ -74,7 +74,7 @@ class Db
// Allows the user to retrieve results using a // Allows the user to retrieve results using a
// column from the results as a key for the array // column from the results as a key for the array
if (!is_null($key) && $results[0][$key]) { if (!is_null($key) && $results[0][$key]) {
$keyed_results = array(); $keyed_results = [];
foreach ($results as $result) { foreach ($results as $result) {
$keyed_results[$result[$key]] = $result; $keyed_results[$result[$key]] = $result;
} }
@ -94,7 +94,7 @@ class Db
return $stmt->fetch(PDO::FETCH_OBJ); return $stmt->fetch(PDO::FETCH_OBJ);
} }
public function ofetchAll($query, $values = null, $key = null): object public function ofetchAll($query, $values = null)
{ {
if (is_null($values)) { if (is_null($values)) {
$values = []; $values = [];
@ -102,18 +102,7 @@ class Db
$values = [$values]; $values = [$values];
} }
$stmt = $this->execute($query, $values); $stmt = $this->execute($query, $values);
$results = $stmt->fetchAll(PDO::FETCH_OBJ); return $stmt->fetchAll(PDO::FETCH_OBJ);
// Allows the user to retrieve results using a
// column from the results as a key for the array
if (!is_null($key) && $results[0][$key]) {
$keyed_results = (object)[];
foreach ($results as $result) {
$keyed_results->$result[$key] = $result;
}
$results = $keyed_results;
}
return $results;
} }
public function lastInsertId() public function lastInsertId()

View File

@ -28,7 +28,6 @@ class User
// Пока несуществующие, для совместимости. // Пока несуществующие, для совместимости.
protected int $experience = 0; protected int $experience = 0;
protected int $battle = 0;
protected int $in_tower = 0; // Скорее башню похороним чем запустим... protected int $in_tower = 0; // Скорее башню похороним чем запустим...
protected int $zayavka = 0; protected int $zayavka = 0;
@ -77,6 +76,7 @@ class User
{ {
if (Db::getInstance()->fetchColumn('SELECT 1 FROM users_effects WHERE owner_id = ? AND type = ?', [$userId, $type])) { if (Db::getInstance()->fetchColumn('SELECT 1 FROM users_effects WHERE owner_id = ? AND type = ?', [$userId, $type])) {
Db::getInstance()->execute('DELETE FROM users_effects WHERE owner_id = ? AND type = ?', [$userId, $type]); Db::getInstance()->execute('DELETE FROM users_effects WHERE owner_id = ? AND type = ?', [$userId, $type]);
return true;
} }
return false; return false;
} }
@ -218,7 +218,7 @@ class User
public function getBattle(): int public function getBattle(): int
{ {
return $this->battle; return Arena::fight()->hasNoActiveFights();
} }
public function getInTower(): int public function getInTower(): int

View File

@ -24,7 +24,7 @@ if (User::getInstance()->getBlock()) {
} }
//Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам. //Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам.
Travel::roomRedirects(User::$current->getRoom(), User::$current->getBattle(), User::$current->getInTower()); Travel::roomRedirects(User::getInstance()->getRoom(), User::getInstance()->getBattle(), User::getInstance()->getInTower());
///* ///*
// * Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам. // * Проверки на соответствие скрипта и комнаты, которые были натыканы по всем файлам.