feat(polish & stats): add wallnut degradation states, hit flash, decapitation particle, frost crystals, dave dialogues and lifetime player stats
This commit is contained in:
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user