Обновить investor.html

This commit is contained in:
2026-06-16 15:37:27 +03:00
parent 7ad228c670
commit c261e1fddf
+81 -54
View File
@@ -300,64 +300,91 @@
// ВЗАИМОДЕЙСТВИЕ С КЛИКЕРОМ // ВЗАИМОДЕЙСТВИЕ С КЛИКЕРОМ
// ═══════════════════════════════════════════════════════════ // ═══════════════════════════════════════════════════════════
async function refreshClicker() { async function refreshClicker() {
if (!api) { if (!api) {
log('API недоступен', 'error'); log('API недоступен', 'error');
return; return;
} }
try { try {
// Читаем save кликера (потребуется разрешение на select в main_save) // Указываем targetGame: 'clicker' — читаем из save кликера
const result = await api.selectData(CLICKER_TABLE, { key: 'game_state' }, CLICKER_SAVE); const result = await api.selectData(
if (result.data && result.data.length > 0) { CLICKER_TABLE,
const state = JSON.parse(result.data[0].value); { key: 'game_state' },
clickerScore = state.score || 0; CLICKER_SAVE,
log(`Счёт кликера: ${clickerScore}`, 'success'); {},
} else { 'clicker' // ← Целевая игра!
clickerScore = 0; );
log('Кликер ещё не сохранял данные', 'info'); if (result.data && result.data.length > 0) {
} const state = JSON.parse(result.data[0].value);
updateUI(); clickerScore = state.score || 0;
} catch (e) { log(`Счёт кликера: ${clickerScore}`, 'success');
log('Ошибка чтения кликера: ' + e.message, 'error'); } else {
} clickerScore = 0;
log('Кликер ещё не сохранял данные (таблица пустая)', 'info');
} }
updateUI();
} catch (e) {
log('Ошибка чтения кликера: ' + e.message, 'error');
}
}
async function boostClicker() { async function boostClicker() {
if (!api) { if (!api) {
log('API недоступен', 'error'); log('API недоступен', 'error');
return; return;
} }
if (myState.capital < 500) { if (myState.capital < 500) {
log('Недостаточно капитала (нужно 500)', 'error'); log('Недостаточно капитала (нужно 500)', 'error');
return; return;
} }
try { try {
// 1. Читаем текущее состояние кликера // 1. Читаем состояние кликера
const result = await api.selectData(CLICKER_TABLE, { key: 'game_state' }, CLICKER_SAVE); const result = await api.selectData(
if (!result.data || result.data.length === 0) { CLICKER_TABLE,
log('Кликер не найден — сначала запустите его', 'error'); { key: 'game_state' },
return; CLICKER_SAVE,
} {},
const state = JSON.parse(result.data[0].value); 'clicker' // ← Целевая игра!
const oldScore = state.score || 0; );
state.score = oldScore + 1000;
if (!result.data || result.data.length === 0) {
// 2. Обновляем в save кликера (потребуется разрешение на insert в main_save) log('Кликер не найден — сначала запустите его и дождитесь сохранения', 'error');
await api.deleteData(CLICKER_TABLE, { key: 'game_state' }, CLICKER_SAVE); return;
await api.insertData(CLICKER_TABLE, {
key: 'game_state',
value: JSON.stringify(state),
updated_at: new Date().toISOString()
}, CLICKER_SAVE);
// 3. Списываем капитал
myState.capital -= 500;
await addHistory('Бонус кликеру (+1000)', -500);
log(`✅ Кликеру добавлено +1000 (было ${oldScore}, стало ${state.score})`, 'success');
updateUI();
} catch (e) {
log('Ошибка: ' + e.message, 'error');
}
} }
const state = JSON.parse(result.data[0].value);
const oldScore = state.score || 0;
state.score = oldScore + 1000;
// 2. Удаляем старую запись
await api.deleteData(
CLICKER_TABLE,
{ key: 'game_state' },
CLICKER_SAVE,
false,
'clicker' // ← Целевая игра!
);
// 3. Вставляем обновлённую
await api.insertData(
CLICKER_TABLE,
{
key: 'game_state',
value: JSON.stringify(state),
updated_at: new Date().toISOString()
},
CLICKER_SAVE,
'clicker' // ← Целевая игра!
);
// 4. Списываем капитал
myState.capital -= 500;
await addHistory('Бонус кликеру (+1000)', -500);
log(`✅ Кликеру добавлено +1000 (было ${oldScore}, стало ${state.score})`, 'success');
updateUI();
} catch (e) {
log('Ошибка: ' + e.message, 'error');
}
}
// ══════════════════════════════════════════════════════════ // ══════════════════════════════════════════════════════════
// ИНВЕСТИЦИИ // ИНВЕСТИЦИИ