389 lines
19 KiB
Plaintext
389 lines
19 KiB
Plaintext
<!DOCTYPE html>
|
||
<html lang='ru'>
|
||
|
||
<head>
|
||
<meta charset='utf-8'>
|
||
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
||
<link rel='stylesheet' href='style.css'>
|
||
<title>Настройки Фишки</title>
|
||
</head>
|
||
|
||
<body>
|
||
<h1>Настройки фишки</h1>
|
||
|
||
<!--Баланс-->
|
||
<details class="block">
|
||
<summary class="block-title">Баланс и выручка</summary>
|
||
<div class='panel'>
|
||
|
||
<div class='form-group counter'>
|
||
<label>Текущий баланс</label>
|
||
<div class='status' data-counter-key="Balance">650</div>
|
||
</div>
|
||
|
||
<div class='coins-row'>
|
||
<input id='coinsAmount' type='number' value='10' min='1' step='1' class='coins-input' />
|
||
<button id='addCoinsBtn' type='button' class='coins-btn'>Добавить монеты</button>
|
||
</div>
|
||
|
||
<button type='button' class='action-btn' data-action-name='Сбросить баланс'>Сбросить баланс</button>
|
||
|
||
<div class='form-group counter'>
|
||
<label>Выручка</label>
|
||
<div class='status' data-counter-key="RevenueTotal">650</div>
|
||
</div>
|
||
|
||
<div class='form-group counter'>
|
||
<label>Выручка (обнуляемый)</label>
|
||
<div class='status' data-counter-key="RevenueReset">650</div>
|
||
</div>
|
||
|
||
<button type='button' class='action-btn' data-action-name='Cбросить счетчик выручки'>Cбросить счетчик
|
||
выручки</button>
|
||
</div>
|
||
</details>
|
||
|
||
<!--Цены-->
|
||
<details class="block">
|
||
<summary class="block-title">Цены</summary>
|
||
<div class='panel'>
|
||
<div class="form-group price-card" data-price-action="Цена игры с ботом">
|
||
<label>Цена игры с ботом</label>
|
||
<div class="coins-row price-row">
|
||
<input type="number" class="coins-input price-input" value="34" min="0" step="1">
|
||
<button type="button" class="coins-btn price-btn action-btn"
|
||
data-action-name="Цена игры с ботом">Сохранить</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="form-group price-card" data-price-action="Цена игры на двоих">
|
||
<label>Цена игры на двоих</label>
|
||
<div class="coins-row price-row">
|
||
<input type="number" class="coins-input price-input" value="10" min="0" step="1">
|
||
<button type="button" class="coins-btn price-btn action-btn"
|
||
data-action-name="Цена игры на двоих">Сохранить</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="form-group price-card" data-price-action="Цена реванша">
|
||
<label>Цена реванша</label>
|
||
<div class="coins-row price-row">
|
||
<input type="number" class="coins-input price-input" value="10" min="0" step="1">
|
||
<button type="button" class="coins-btn price-btn action-btn"
|
||
data-action-name="Цена реванша">Сохранить</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='FreeplayID'>Бесплатная игра</label>
|
||
<input type='checkbox' id='FreeplayID' data-setting-id='Freeplay'>
|
||
</div>
|
||
</div>
|
||
</details>
|
||
|
||
<!--Валюты-->
|
||
<details class="block">
|
||
<summary class="block-title">Валюты</summary>
|
||
<div class='panel'>
|
||
|
||
<div class="form-group currency-card" data-currency-action="Название валюты">
|
||
<label>Название валюты</label>
|
||
<div class="coins-row currency-row">
|
||
<input type="text" class="coins-input currency-input" value="руб." maxlength="12">
|
||
<button type="button" class="coins-btn currency-btn action-btn"
|
||
data-action-name="Название валюты">Сохранить</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="form-group currency-card" data-currency-action="Валюта за импульс">
|
||
<label>Валюта за импульс</label>
|
||
<div class="coins-row currency-row">
|
||
<input type="number" class="coins-input currency-input" value="10" min="0" step="1">
|
||
<button type="button" class="coins-btn currency-btn action-btn"
|
||
data-action-name="Валюта за импульс">Сохранить</button>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</details>
|
||
|
||
<!--Звук-->
|
||
<details class="block">
|
||
<summary class="block-title">Звук</summary>
|
||
<div class='panel'>
|
||
|
||
<div class='form-group'>
|
||
<label for='MusicVolumeID'>Громкость музыки: <span id='MusicVolumeID_VAL'>0.44</span></label>
|
||
<input id='MusicVolumeID' type='range' min='0' max='1' value='0.44' step='0.01'
|
||
data-setting-id='MusicVolume' data-value-span='MusicVolumeID_VAL'>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='SoundsVolumeID'>Громкость эффектов и голоса: <span
|
||
id='SoundsVolumeID_VAL'>0.8699996</span></label>
|
||
<input id='SoundsVolumeID' type='range' min='0' max='1' value='0.8699996' step='0.01'
|
||
data-setting-id='SoundsVolume' data-value-span='SoundsVolumeID_VAL'>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='PromoVolumeID'>Громкость проморолика(нереализовано): <span
|
||
id='PromoVolumeID_VAL'>0.8699996</span></label>
|
||
<input id='SoundsVolumePromoID' type='range' min='0' max='1' value='0.8699996' step='0.01'
|
||
data-setting-id='PromoVolume' data-value-span='PromoVolumeID_VAL'>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='EnableVoicesID'>Голосовые реплики</label>
|
||
<input type='checkbox' id='EnableVoicesID' data-setting-id='EnableVoices'>
|
||
</div>
|
||
|
||
<div class='actions-grid'>
|
||
<button type='button' class='action-btn' data-action-name='Тест звука'>Тест звука</button>
|
||
</div>
|
||
|
||
</div>
|
||
</details>
|
||
|
||
<!--Призы-->
|
||
<details class="block">
|
||
<summary class="block-title">Призы и выдача</summary>
|
||
<div class='panel'>
|
||
|
||
<div class='actions-grid'>
|
||
<!-- Суперприз: как валюта (инпут + отправить) -->
|
||
<div class="form-group currency-card" data-currency-action="Суперприз">
|
||
<label>Суперприз</label>
|
||
<div class="coins-row currency-row">
|
||
<input type="text" class="coins-input currency-input" value="5000р" maxlength="24">
|
||
<button type="button" class="coins-btn currency-btn action-btn"
|
||
data-action-name="Суперприз">Сохранить</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Остаток призов: как цены (число + отправить) -->
|
||
<div class="form-group price-card" data-price-action="Внести остаток призов">
|
||
<label>Остаток призов</label>
|
||
<div class="coins-row price-row">
|
||
<input type="number" class="coins-input price-input" value="0" min="0" step="1">
|
||
<button type="button" class="coins-btn price-btn action-btn"
|
||
data-action-name="Внести остаток призов">Сохранить</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Сброс ошибки: оставить как есть -->
|
||
<button type='button' class='action-btn' data-action-name='Сбросить ошибку выдачи'>Сбросить ошибку
|
||
выдачи</button>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='PrizingID'>Выдача призов при игре с ботом</label>
|
||
<input type='checkbox' id='PrizingID' data-setting-id='Prizing' checked>
|
||
</div>
|
||
|
||
<button type='button' class='action-btn' data-action-name='Тест хоппера'>Тест хоппера</button>
|
||
<button type='button' class='action-btn' data-action-name='Тест QR кодов'>Тест QR кодов(призовых)</button>
|
||
|
||
<div class='form-group'>
|
||
<label for='DisplayNoPrizesID'>Выводить призы закончились</label>
|
||
<input type='checkbox' id='DisplayNoPrizesID' data-setting-id='DisplayNoPrizes'>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='DisplayPrizingErrorID'>Вывод ошибки выдачи в меню</label>
|
||
<input type='checkbox' id='DisplayPrizingErrorID' data-setting-id='DisplayPrizingError' checked>
|
||
</div>
|
||
|
||
<!-- Счетчики (ключи для WS) -->
|
||
<div class='form-group counter'><label>Марблс</label>
|
||
<div class='status' data-counter-key="Prizes.Marbles.Total">0</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Марблс (обнуляемый)</label>
|
||
<div class='status' data-counter-key="Prizes.Marbles.Reset">0</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Остаток призов</label>
|
||
<div class='status' data-counter-key="Prizes.Remaining">0</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Суперприз</label>
|
||
<div class='status' data-counter-key="Prizes.Superprize.Value">5000р</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Суперприз (обнуляемый)</label>
|
||
<div class='status' data-counter-key="Prizes.Superprize.Reset">0</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Тикетник</label>
|
||
<div class='status' data-counter-key="Prizes.Ticket.Total">0</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Тикетник (обнуляемый)</label>
|
||
<div class='status' data-counter-key="Prizes.Ticket.Reset">0</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Хоппер</label>
|
||
<div class='status' data-counter-key="Prizes.Hopper.Total">0</div>
|
||
</div>
|
||
<div class='form-group counter'><label>Хоппер (обнуляемый)</label>
|
||
<div class='status' data-counter-key="Prizes.Hopper.Reset">0</div>
|
||
</div>
|
||
|
||
<button type='button' class='action-btn' data-action-name='Сбросить выданные призы'>Сбросить выданные
|
||
призы</button>
|
||
|
||
<div class='form-group'>
|
||
<label for='PrizingWhenErrorID'>Выдавать приз при ошибке</label>
|
||
<input type='checkbox' id='PrizingWhenErrorID' data-setting-id='PrizingWhenError' checked>
|
||
</div>
|
||
|
||
<button type='button' class='action-btn' data-action-name='Настроить призы персонажей'>Настроить призы
|
||
персонажей</button>
|
||
|
||
<!-- сюда скрипт будет подставлять строки -->
|
||
<div id="characterPrizes" class="status" aria-live="polite" data-dynamic="characterPrizes">
|
||
<div class="status">Загрузка…</div>
|
||
</div>
|
||
|
||
<!-- fallback на случай, если данных нет -->
|
||
<div id="characterPrizesEmpty" class="status" style="display:none;">
|
||
Нет данных
|
||
</div>
|
||
</div>
|
||
</details>
|
||
|
||
<!--Сервис-->
|
||
<details class="block">
|
||
<summary class="block-title">Сервис</summary>
|
||
<div class='panel'>
|
||
<button type='button' class='action-btn' data-action-name='Тест кнопок'>Тест кнопок</button>
|
||
<button type='button' class='action-btn' data-action-name='Тест экрана'>Тест экрана</button>
|
||
|
||
<!-- Пароль настроек: статус + действия -->
|
||
<div class="form-group">
|
||
<label>Пароль настроек</label>
|
||
|
||
<!-- статус (сервер/скрипт будет подставлять текст) -->
|
||
<div id="settingsPasswordStatus" class="status" aria-live="polite" data-status-key="SettingsPassword">
|
||
Статус: неизвестно
|
||
</div>
|
||
|
||
<div class="actions-grid" style="margin-top:12px;">
|
||
<button type="button" class="action-btn" data-action-name="Установить пароль настроек">
|
||
Установить пароль настроек
|
||
</button>
|
||
<button type="button" class="action-btn" data-action-name="Сбросить пароль настроек">
|
||
Сбросить пароль настроек
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</details>
|
||
|
||
<!--Номер-->
|
||
<details class="block">
|
||
<summary class="block-title">Номер</summary>
|
||
<div class='panel'>
|
||
<!-- Номер телефона: как "Суперприз" (инпут + отправить) -->
|
||
<div class="form-group currency-card" data-currency-action="Номер техподдержки">
|
||
<label>Номер телефона</label>
|
||
<div class="coins-row currency-row">
|
||
<input type="tel" class="coins-input currency-input" value="70000000000" maxlength="18">
|
||
<button type="button" class="coins-btn currency-btn action-btn"
|
||
data-action-name="Номер техподдержки">Отправить</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='ShowNumberID'>Показывать контакты администрации</label>
|
||
<input type='checkbox' id='ShowNumberID' data-setting-id='ShowNumber' checked>
|
||
</div>
|
||
</div>
|
||
</details>
|
||
|
||
<!--Сложность-->
|
||
<details class="block">
|
||
<summary class="block-title">Сложность</summary>
|
||
<div class='panel'>
|
||
|
||
<div class='form-group'>
|
||
<p>Сложность ботов</p>
|
||
<div class='radio-row'>
|
||
<label for='DifficultyID0'>Легкая</label>
|
||
<input type='radio' id='DifficultyID0' name='Difficulty' value='Легкая'
|
||
data-setting-id='Difficulty'>
|
||
</div>
|
||
<div class='radio-row'>
|
||
<label for='DifficultyID1'>Средняя</label>
|
||
<input type='radio' id='DifficultyID1' name='Difficulty' value='Средняя' checked
|
||
data-setting-id='Difficulty'>
|
||
</div>
|
||
<div class='radio-row'>
|
||
<label for='DifficultyID2'>Сложная</label>
|
||
<input type='radio' id='DifficultyID2' name='Difficulty' value='Сложная'
|
||
data-setting-id='Difficulty'>
|
||
</div>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<p>Текущая сложность аппарата</p>
|
||
<div class='radio-row'>
|
||
<label for='BaseBotDifficultyID0'>Обычная</label>
|
||
<input type='radio' id='BaseBotDifficultyID0' name='BaseBotDifficulty' value='Обычная'
|
||
data-setting-id='BaseBotDifficulty'>
|
||
</div>
|
||
<div class='radio-row'>
|
||
<label for='BaseBotDifficultyID1'>Повышенная</label>
|
||
<input type='radio' id='BaseBotDifficultyID1' name='BaseBotDifficulty' value='Повышенная'
|
||
data-setting-id='BaseBotDifficulty'>
|
||
</div>
|
||
<div class='radio-row'>
|
||
<label for='BaseBotDifficultyID2'>Фиксированная</label>
|
||
<input type='radio' id='BaseBotDifficultyID2' name='BaseBotDifficulty' value='Фиксированная' checked
|
||
data-setting-id='BaseBotDifficulty'>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Ввод "Импульсов до сброса сложности": как цены (число + отправить) -->
|
||
<div class="form-group price-card" data-price-action="Импульсов до сброса сложности">
|
||
<label>Импульсов до сброса сложности</label>
|
||
<div class="coins-row price-row">
|
||
<input id="impulsesResetValue" type="number" class="coins-input price-input" value="0" min="0"
|
||
step="1">
|
||
<button type="button" class="coins-btn price-btn action-btn"
|
||
data-action-name="Импульсов до сброса сложности">
|
||
Отправить
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Счетчик текущих импульсов до сброса -->
|
||
<div class="form-group counter">
|
||
<label>Текущих импульсов до сброса</label>
|
||
<div id="impulsesResetCurrent" class="status" data-counter-key="Difficulty.ImpulsesToReset">—</div>
|
||
</div>
|
||
|
||
<!-- Заготовка пояснения, подтягивается с сервера -->
|
||
<div class="form-group">
|
||
<label>Пояснение</label>
|
||
<div id="impulsesResetHint" class="status" aria-live="polite" data-status-key="DifficultyHint">Загрузка…
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</details>
|
||
|
||
<!--Быстрые проверки-->
|
||
<details class="block">
|
||
<summary class="block-title">Быстрые проверки</summary>
|
||
<div class='panel'>
|
||
<div class='form-group'>
|
||
<label for='FastCheckID'>Быстрая проверка счетчиков</label>
|
||
<input type='checkbox' id='FastCheckID' data-setting-id='FastCheck' checked>
|
||
</div>
|
||
|
||
<div class='form-group'>
|
||
<label for='FastCheckPrizesID'>Быстрая проверка призов</label>
|
||
<input type='checkbox' id='FastCheckPrizesID' data-setting-id='FastCheckPrizes' checked>
|
||
</div>
|
||
</div>
|
||
</details>
|
||
|
||
<script src="script.js"></script>
|
||
<div id='globalStatus' class='status'></div>
|
||
</body>
|
||
|
||
</html> |