feat(studio): кит «Таблица лидеров» в Toolbox → Готовые механики
Новый кит (категория ui): определяет лидерборд (Очки primary + Время),
время идёт само, очки растут от broadcast('score'|'coins'). Сохраняется в БД.
Работает вместе со счётчиком монет/очков. Всего 47 китов.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1c976ee870
commit
ba90bf5c7d
@ -552,6 +552,22 @@ let score = 0;
|
||||
function show(){ game.ui.set('score', '⭐ ' + score, { x:8, y:6, anchor:'top', color:'#ffd23a', size:22 }); }
|
||||
show();
|
||||
game.onMessage('score', (m) => { score += (m && m.add) ? m.add : 1; show(); });` }],
|
||||
},
|
||||
{
|
||||
id: 'leaderboard',
|
||||
name: 'Таблица лидеров',
|
||||
desc: 'Лидерборд справа-сверху (Очки/Время). Растёт от монет и очков других механик. Сохраняется в БД между сессиями. (Задача 20)',
|
||||
icon: 'trophy', category: 'ui',
|
||||
scripts: [{ attachTo: 'global', code:
|
||||
`// Таблица лидеров: столбцы «Очки» (primary) и «Время».
|
||||
game.leaderstats.define('Очки', { initial: 0, format: 'number', icon: '⭐', color: '#ffd23a', primary: true });
|
||||
game.leaderstats.define('Время', { initial: 0, format: 'time', icon: '⏱', color: '#7fd0ff' });
|
||||
// Время идёт само.
|
||||
game.every(1, () => game.leaderstats.me.add('Время', 1));
|
||||
// Любая механика, шлющая broadcast('score',{add}) или ('coins',{add}),
|
||||
// автоматически добавляет очки в таблицу.
|
||||
game.onMessage('score', (m) => game.leaderstats.me.add('Очки', (m && m.add) ? m.add : 1));
|
||||
game.onMessage('coins', (m) => game.leaderstats.me.add('Очки', (m && m.add) ? m.add : 1));` }],
|
||||
},
|
||||
{
|
||||
id: 'hp-bar',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user