diff --git a/backend/src/controllers/gamification/service.js b/backend/src/controllers/gamification/service.js index 0c222f8..2d06b6a 100644 --- a/backend/src/controllers/gamification/service.js +++ b/backend/src/controllers/gamification/service.js @@ -542,6 +542,7 @@ function onClassJoined(userId) { } function onLabExperiment(userId, reactionsDiscovered) { + if (!isGamificationEnabled()) return; // master kill-switch stmts.incrLabExp.run(userId); if (reactionsDiscovered > 0) stmts.incrLabReact.run(reactionsDiscovered, userId); awardXP(userId, 15, 'lab_experiment'); @@ -650,6 +651,7 @@ function ensureChallenges(userId) { } function updateChallenges(userId, score, total, subjectSlug, topicId) { + if (!isGamificationEnabled()) return; // master kill-switch const week = _currentWeek(); const pct = total > 0 ? Math.round(score / total * 100) : 0; const challenges = stmts.getOpenChallenges.all(userId, week); diff --git a/frontend/css/ls.css b/frontend/css/ls.css index 337a090..187ae9c 100644 --- a/frontend/css/ls.css +++ b/frontend/css/ls.css @@ -1064,6 +1064,17 @@ body.no-gamification .xp-card, body.no-gamification .xp-bar, body.no-gamification .xp-pill, body.no-gamification .xp-badge, +/* challenges / еженедельные испытания (dashboard) */ +body.no-gamification .ch-widget, +body.no-gamification #ch-section, +/* серия/стрик: календарь, стат-кольцо, чипы на карточке питомца */ +body.no-gamification .streak-cal, +body.no-gamification #sr-streak, +body.no-gamification .hc-pet .chip-streak, +body.no-gamification .hc-pet .chip-goal, +/* монеты (профиль) и xp-прогресс */ +body.no-gamification #p-coins-row, +body.no-gamification .gam-progress, body.no-gamification [data-gamified] { display: none !important; } /* ══════════════════════════════════════════