battles/shop.php

219 lines
6.5 KiB
PHP
Raw Normal View History

2018-01-28 16:40:49 +00:00
<?php
use Battles\Bank;
use Battles\Database\DBPDO;
use Battles\Item;
use Battles\ShopItem;
use Battles\Template;
2021-08-26 16:15:47 +00:00
use Battles\User;
require_once 'functions.php';
$saleItems = false;
$shopCategoryType = $_POST['sale'] ?? '';
$shopCategoryTypeNumber = $_GET['otdel'] ?? 0;
$status = null;
if (!empty($_POST['sellshop'])) {
2021-08-26 16:15:47 +00:00
$status = ShopItem::sellItem($_POST['itemId'], User::$current, 1);
}
if (!empty($_POST['buyshop'])) {
2021-08-26 16:15:47 +00:00
$status = ShopItem::buyItem($_POST['itemId'], User::$current);
}
2021-08-26 16:15:47 +00:00
$bank = new Bank(User::$current->getId());
2019-01-14 20:37:35 +00:00
switch ($shopCategoryTypeNumber) {
default:
$shopCategoryType = "Все товары";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_HELMET:
$shopCategoryType = "Шлемы";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_ARMOR:
$shopCategoryType = "Броня";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_LEGS:
$shopCategoryType = "Поножи";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_BOOTS:
2019-01-14 20:37:35 +00:00
$shopCategoryType = "Сапоги";
break;
case Item::ITEM_TYPE_GLOVES:
2019-01-14 20:37:35 +00:00
$shopCategoryType = "Перчатки";
break;
case Item::ITEM_TYPE_WEAPON:
$shopCategoryType = "Оружие";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_SHIELD:
2019-01-14 20:37:35 +00:00
$shopCategoryType = "Щиты";
break;
case Item::ITEM_TYPE_BELT:
$shopCategoryType = "Пояса";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_RING:
2019-01-14 20:37:35 +00:00
$shopCategoryType = "Кольца";
break;
case Item::ITEM_TYPE_AMULET:
$shopCategoryType = "Амулеты";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_CONSUMABLE:
$shopCategoryType = "Расходники";
2019-01-14 20:37:35 +00:00
break;
case Item::ITEM_TYPE_OTHER:
$shopCategoryType = "Разное";
break;
case 'sale':
$shopCategoryType = "Предметы в инвентаре";
$saleItems = true;
2019-01-14 20:37:35 +00:00
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');
2018-01-28 16:40:49 +00:00
}
2019-01-14 20:28:47 +00:00
} 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');
2018-01-28 16:40:49 +00:00
}
}
Template::header('Магазин');
2018-01-28 16:40:49 +00:00
?>
<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;
}
2021-08-22 18:58:28 +00:00
a.sell {
background-color: #cdc;
}
2021-08-22 18:58:28 +00:00
a.alltypes {
background-color: #ccd;
}
2021-08-22 18:58:28 +00:00
.status {
2021-08-22 18:58:28 +00:00
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;
}
2021-08-22 18:58:28 +00:00
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>
2018-06-22 23:00:48 +00:00
<h1>Государственный магазин</h1>
2019-01-15 19:34:35 +00:00
<a href=# onclick=hrefToFrame('city.php?cp')> ← выйти на Центральную площадь</a>
<div class="status"><?= $status ?></div>
2021-08-22 18:58:28 +00:00
<table class="shop">
<tr>
2021-08-22 18:58:28 +00:00
<td>
<h3><?= $shopCategoryType ?></h3>
<?php if ($saleItems): ?>
2021-08-22 18:58:28 +00:00
<div>Вы можете продать ваши предметы за сущие копейки.</div>
<?php endif; ?>
2018-06-22 23:00:48 +00:00
<!--Магазин-->
2021-08-22 18:58:28 +00:00
<table>
<?php
foreach ($iteminfo as $ii) {
if ($ii->getItemType() != $shopCategoryTypeNumber && $shopCategoryTypeNumber != 'sale') {
continue;
}
2021-08-22 18:58:28 +00:00
echo "<tr><td>";
$ii->printImage();
$ii->printControls();
2021-08-22 18:58:28 +00:00
echo "<td>";
$ii->printInfo();
}
?>
</table>
2021-08-22 18:58:28 +00:00
<td>
<strong>
Масса всех вещей: <?= getItemsMassaInfo() ?> <br>
Деньги: <?= $user->getMoney() ?> [Б:<?= $bank->getMoney() ?>].
</strong>
2018-06-22 23:00:48 +00:00
<hr>
2021-08-22 18:58:28 +00:00
<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>
2018-06-22 23:00:48 +00:00
<div id="hint3" class="ahint"></div>
</table>