battles/shop.php
Igor Barkov (iwork) 9c7fcda600 code clean
2021-08-26 19:15:47 +03:00

219 lines
6.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use Battles\Bank;
use Battles\Database\DBPDO;
use Battles\Item;
use Battles\ShopItem;
use Battles\Template;
use Battles\User;
require_once 'functions.php';
$saleItems = false;
$shopCategoryType = $_POST['sale'] ?? '';
$shopCategoryTypeNumber = $_GET['otdel'] ?? 0;
$status = null;
if (!empty($_POST['sellshop'])) {
$status = ShopItem::sellItem($_POST['itemId'], User::$current, 1);
}
if (!empty($_POST['buyshop'])) {
$status = ShopItem::buyItem($_POST['itemId'], User::$current);
}
$bank = new Bank(User::$current->getId());
switch ($shopCategoryTypeNumber) {
default:
$shopCategoryType = "Все товары";
break;
case Item::ITEM_TYPE_HELMET:
$shopCategoryType = "Шлемы";
break;
case Item::ITEM_TYPE_ARMOR:
$shopCategoryType = "Броня";
break;
case Item::ITEM_TYPE_LEGS:
$shopCategoryType = "Поножи";
break;
case Item::ITEM_TYPE_BOOTS:
$shopCategoryType = "Сапоги";
break;
case Item::ITEM_TYPE_GLOVES:
$shopCategoryType = "Перчатки";
break;
case Item::ITEM_TYPE_WEAPON:
$shopCategoryType = "Оружие";
break;
case Item::ITEM_TYPE_SHIELD:
$shopCategoryType = "Щиты";
break;
case Item::ITEM_TYPE_BELT:
$shopCategoryType = "Пояса";
break;
case Item::ITEM_TYPE_RING:
$shopCategoryType = "Кольца";
break;
case Item::ITEM_TYPE_AMULET:
$shopCategoryType = "Амулеты";
break;
case Item::ITEM_TYPE_CONSUMABLE:
$shopCategoryType = "Расходники";
break;
case Item::ITEM_TYPE_OTHER:
$shopCategoryType = "Разное";
break;
case 'sale':
$shopCategoryType = "Предметы в инвентаре";
$saleItems = true;
break;
}
// MUST BE ARRAY!
$iteminfo = [];
if (!$saleItems) {
$shopItems = DBPDO::$db->ofetchAll("select * from items inner join trade_offers on id = shop_item_id where shop_id = 1 and shop_item_quantity !=0");
foreach ($shopItems as $shopItemObject) {
$iteminfo[] = new ShopItem($shopItemObject, 'buyshop');
}
} else {
$inventoryItems = DBPDO::$db->ofetchall("select * from inventory where on_sale = 0 and dressed_slot = 0 and durability > 0 and owner_id = ?", $user->getId());
foreach ($inventoryItems as $inventoryItemObject) {
$iteminfo[] = new ShopItem($inventoryItemObject, 'sellshop');
}
}
Template::header('Магазин');
?>
<script src="js/main.js"></script>
<style>
a.waretype {
margin: 2px 16px;
padding: 6px;
border: 1px silver solid;
border-radius: 4px;
background-color: #ccc;
display: block;
}
a.sell {
background-color: #cdc;
}
a.alltypes {
background-color: #ccd;
}
.status {
color: darkgreen;
background: #afa;
}
table.shop {
width: 100%;
border-collapse: collapse;
border-spacing: 0;
padding: 4px;
}
table.shop > tbody > tr > td {
vertical-align: top;
}
table.shop > tbody > tr > td:nth-child(1) {
text-align: left;
}
table.shop > tbody > tr > td:nth-child(2) {
width: 280px;
}
table.shop table {
width: 100%;
border-collapse: separate;
border-spacing: 1px;
padding: 2px;
}
table.shop table tr {
background-color: #C7C7C7;
}
table.shop table td {
padding: 5px;
}
table.shop table tr:nth-child(even) {
background-color: #D5D5D5;
}
table.shop table td:nth-child(1) {
width: 150px;
text-align: center;
}
table.shop table td:nth-child(2) {
vertical-align: top;
}
h3 + div {
text-align: center;
}
table.shop strong span:last-child {
color: darkgreen;
}
hr + div {
text-align: center;
font-weight: bold;
}
</style>
<h1>Государственный магазин</h1>
<a href=# onclick=hrefToFrame('city.php?cp')> ← выйти на Центральную площадь</a>
<div class="status"><?= $status ?></div>
<table class="shop">
<tr>
<td>
<h3><?= $shopCategoryType ?></h3>
<?php if ($saleItems): ?>
<div>Вы можете продать ваши предметы за сущие копейки.</div>
<?php endif; ?>
<!--Магазин-->
<table>
<?php
foreach ($iteminfo as $ii) {
if ($ii->getItemType() != $shopCategoryTypeNumber && $shopCategoryTypeNumber != 'sale') {
continue;
}
echo "<tr><td>";
$ii->printImage();
$ii->printControls();
echo "<td>";
$ii->printInfo();
}
?>
</table>
<td>
<strong>
Масса всех вещей: <?= getItemsMassaInfo() ?> <br>
Деньги: <?= $user->getMoney() ?> [Б:<?= $bank->getMoney() ?>].
</strong>
<hr>
<div>Отделы магазина</div>
<a class="waretype" href="?otdel=6&rnd=<?= mt_rand() ?>">Оружие</a>
<a class="waretype" href="?otdel=1&rnd=<?= mt_rand() ?>">Шлемы</a>
<a class="waretype" href="?otdel=2&rnd=<?= mt_rand() ?>">Броня</a>
<a class="waretype" href="?otdel=3&rnd=<?= mt_rand() ?>">Поножи</a>
<a class="waretype" href="?otdel=4&rnd=<?= mt_rand() ?>">Сапоги</a>
<a class="waretype" href="?otdel=5&rnd=<?= mt_rand() ?>">Перчатки</a>
<a class="waretype" href="?otdel=7&rnd=<?= mt_rand() ?>">Щиты</a>
<a class="waretype" href="?otdel=8&rnd=<?= mt_rand() ?>">Пояса</a>
<a class="waretype" href="?otdel=9&rnd=<?= mt_rand() ?>">Кольца</a>
<a class="waretype" href="?otdel=10&rnd=<?= mt_rand() ?>">Амулеты</a>
<a class="waretype" href="?otdel=20&rnd=<?= mt_rand() ?>">Расходники</a>
<a class="waretype" href="?otdel=50&rnd=<?= mt_rand() ?>">Разное</a>
<a class="waretype alltypes" href="?rnd=<?= mt_rand() ?>">Все товары</a>
<a class="waretype sell" href="?otdel=sale&rnd=<?= mt_rand() ?>">Продать вещи</a>
<div id="hint3" class="ahint"></div>
</table>