feat(polish & stats): add wallnut degradation states, hit flash, decapitation particle, frost crystals, dave dialogues and lifetime player stats

This commit is contained in:
Antigravity committed 2026-09-17 13:28:33 +00:00
1 parent 23918dab1f
commit 643b0287c1
10 files changed
+1260 -65

No files matched your search

+40
View File
@@ -8,6 +8,34 @@ window.CampaignSystem = (function() {
{ id: 5, name: 'Крыша Дома', icon: '🏠', biome: 'roof', range: '5-1 .. 5-5' }
];
const DAVE_DIALOGUES = {
'2-1': {
title: '🌙 Безумный Дэйв предупреждает:',
text: 'Эй, сосед! Ночью солнце с неба не падает! Обязательно возьми Солнцегриб!',
btnText: 'ДАЛЕЕ / В БОЙ ⚔️'
},
'3-1': {
title: '🏊 Безумный Дэйв спешит на помощь:',
text: 'Там бассейн! На воде растения тонут — сначала сажай Кувшинки (Lily Pad)!',
btnText: 'ДАЛЕЕ / В БОЙ ⚔️'
},
'4-1': {
title: '🌫️ Безумный Дэйв щурится во мгле:',
text: 'Ого, какой густой туман! Зомби крадутся в темноте, используй Плантерн и Вздуватель!',
btnText: 'ДАЛЕЕ / В БОЙ ⚔️'
},
'5-1': {
title: '🏠 Безумный Дэйв лезет на скат:',
text: 'Мы на крыше! Скаты мешают прямой стрельбе — используй Горшки и Катапульты!',
btnText: 'ДАЛЕЕ / В БОЙ ⚔️'
},
'5-5': {
title: '🤖 БЕЗУМИЕ ПОЛНОГО МАСШТАБА!',
text: 'БЕЗУМИЕ! Доктор Зомбосс выкатил своего гигантского робота! Держи оборону!',
btnText: 'ДАЛЕЕ / В БОЙ ⚔️'
}
};
const LEVELS = [
// World 1: Day (1-1 .. 1-5)
{ level: 1, world: 1, stage: 1, code: '1-1', title: 'Первые шаги', desc: 'Знакомство с садом и простыми зомби', waves: 3, biome: 'day', reward: 100 },
@@ -48,6 +76,18 @@ window.CampaignSystem = (function() {
return {
WORLDS,
LEVELS,
DAVE_DIALOGUES,
getDaveDialogue(levelNum, mode = 'adventure') {
if (mode === 'boss' || mode === 'bossrush') {
return DAVE_DIALOGUES['5-5'];
}
const num = parseInt(levelNum, 10) || 1;
const levelObj = LEVELS.find(l => l.level === num);
if (levelObj && DAVE_DIALOGUES[levelObj.code]) {
return DAVE_DIALOGUES[levelObj.code];
}
return null;
},
getLevel(levelNum) {
const num = parseInt(levelNum, 10) || 1;
return LEVELS.find(l => l.level === num) || LEVELS[0];