update
This commit is contained in:
parent
734e28de2e
commit
7aae302911
334
config/levels.js
334
config/levels.js
@ -528,15 +528,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -687,25 +687,25 @@ const LEVELS_CONFIG = {
|
||||
name: 'Prvé L-čka',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['lano', 'lopta', 'list', 'les'], // 4 slová pre začiatok
|
||||
words: ['lano', 'lopta', 'list', 'les'],
|
||||
gameConfig: {
|
||||
diamonds: 1, // málo diamantov pre začiatok
|
||||
golds: 2, // trochu viac goldov
|
||||
crystals: 1, // jeden kryštál
|
||||
diamonds: 1,
|
||||
golds: 2,
|
||||
crystals: 1,
|
||||
speechExercises: 1,
|
||||
listeningExercises: 1,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 8, y: 5 } // diamant v strede mapy
|
||||
{ x: 8, y: 5 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 3, y: 2 }, // gold vľavo hore
|
||||
{ x: 13, y: 8 } // gold vpravo dole
|
||||
{ x: 3, y: 2 },
|
||||
{ x: 13, y: 8 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 10, y: 4 } // kryštál vpravo
|
||||
{ x: 10, y: 4 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
},
|
||||
@ -721,7 +721,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Ľahké L-čka',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['lano', 'lopta', 'list', 'les', 'líška', 'lyžica'], // 6 slov
|
||||
words: ['lano', 'lopta', 'list', 'les', 'líška', 'lyžica'],
|
||||
gameConfig: {
|
||||
diamonds: 2,
|
||||
golds: 3,
|
||||
@ -758,7 +758,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Lavička a lúka',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['lopta', 'list', 'líška', 'lyžica', 'lavička', 'lúka', 'ľalia'], // 7 slov
|
||||
words: ['lopta', 'list', 'líška', 'lyžica', 'lavička', 'lúka', 'ľalia'],
|
||||
gameConfig: {
|
||||
diamonds: 3,
|
||||
golds: 3,
|
||||
@ -797,7 +797,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Lampa a lekár',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['lopta', 'lúka', 'lavička', 'lyžica', 'ľalia', 'lampa', 'lekár'], // 8 slov
|
||||
words: ['lopta', 'lúka', 'lavička', 'lyžica', 'ľalia', 'lampa', 'lekár'],
|
||||
gameConfig: {
|
||||
diamonds: 3,
|
||||
golds: 4,
|
||||
@ -834,10 +834,10 @@ const LEVELS_CONFIG = {
|
||||
id: 'l_005',
|
||||
worldId: 'world_l',
|
||||
levelNumber: 5,
|
||||
name: 'Prvé opakovanie', // opakovací level
|
||||
name: 'Prvé opakovanie',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['lano', 'lopta', 'list', 'les', 'líška', 'lyžica', 'lavička', 'lúka', 'ľalia', 'lampa', 'lekár'], // 12 slov - opakovanie
|
||||
words: ['lano', 'lopta', 'list', 'les', 'líška', 'lyžica', 'lavička', 'lúka', 'ľalia', 'lampa', 'lekár'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 5,
|
||||
@ -879,7 +879,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Lavína a lietadlo',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['lopta', 'lúka', 'lampa', 'lekár', 'líška', 'lavína', 'lietadlo', 'list', 'lev', 'lavička'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'lampa', 'lekár', 'líška', 'lavína', 'lietadlo', 'list', 'lev', 'lavička'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 4,
|
||||
@ -921,7 +921,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Leňochod a lízatko',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['lopta', 'lúka', 'lavína', 'lietadlo', 'lev', 'lavička', 'leňochod', 'lupa', 'lúč', 'lízatko'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'lavína', 'lietadlo', 'lev', 'lavička', 'leňochod', 'lupa', 'lúč', 'lízatko'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 5,
|
||||
@ -963,7 +963,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Lyže a letisko',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['lopta', 'lietadlo', 'lupa', 'lúč', 'lízatko', 'lavína', 'lyže', 'pílka', 'letisko', 'pílka'], // 10 slov
|
||||
words: ['lopta', 'lietadlo', 'lupa', 'lúč', 'lízatko', 'lavína', 'lyže', 'pílka', 'letisko', 'pílka'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 4,
|
||||
@ -1006,7 +1006,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Levanduľa a ľudina',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['lopta', 'lúka', 'lietadlo', 'pílka', 'levanduľa', 'list', 'lavína', 'lízatko'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'lietadlo', 'pílka', 'levanduľa', 'list', 'lavína', 'lízatko'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 5,
|
||||
@ -1046,12 +1046,12 @@ const LEVELS_CONFIG = {
|
||||
id: 'l_010',
|
||||
worldId: 'world_l',
|
||||
levelNumber: 10,
|
||||
name: 'Veľké opakovanie', // opakovací level - všetky slová z 1-9
|
||||
name: 'Veľké opakovanie',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['lano', 'lopta', 'list', 'les', 'líška', 'lyžica', 'lavička', 'lúka', 'ľalia', 'lampa',
|
||||
'lúč', 'lekár', 'lavína', 'lietadlo', 'lev', 'leňochod', 'lupa', 'lízatko', 'lyže',
|
||||
'letisko', 'pílka', 'levanduľa'], // 24 slov
|
||||
'letisko', 'pílka', 'levanduľa'],
|
||||
gameConfig: {
|
||||
diamonds: 6,
|
||||
golds: 6,
|
||||
@ -1097,7 +1097,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Lyžiar a lektvar',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['lopta', 'lúka', 'lietadlo', 'lavička', 'lupa', 'pílka', 'levanduľa', 'lyžiar', 'lektvar'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'lietadlo', 'lavička', 'lupa', 'pílka', 'levanduľa', 'lyžiar', 'lektvar'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 5,
|
||||
@ -1141,7 +1141,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Laboratórium',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['lopta', 'lúka', 'levanduľa', 'lektvar', 'lyžiar', 'laboratórium', 'lektor', 'lavína', 'lúčny', 'líška'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'levanduľa', 'lektvar', 'lyžiar', 'laboratórium', 'lektor', 'lavína', 'lúčny', 'líška'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 6,
|
||||
@ -1185,7 +1185,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Leporelo a lodička',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['lopta', 'lúka', 'lektor', 'laboratórium', 'lúčny', 'levanduľa', 'leporelo', 'lodička', 'lízatko', 'lekáreň'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'lektor', 'laboratórium', 'lúčny', 'levanduľa', 'leporelo', 'lodička', 'lízatko', 'lekáreň'],
|
||||
gameConfig: {
|
||||
diamonds: 6,
|
||||
golds: 5,
|
||||
@ -1230,7 +1230,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Laborant a linkový',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['lopta', 'lúka', 'leporelo', 'lodička', 'lekáreň', 'lavína', 'lektor', 'laborant', 'listnatý'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'leporelo', 'lodička', 'lekáreň', 'lavína', 'lektor', 'laborant', 'listnatý'],
|
||||
gameConfig: {
|
||||
diamonds: 6,
|
||||
golds: 6,
|
||||
@ -1272,13 +1272,13 @@ const LEVELS_CONFIG = {
|
||||
id: 'l_015',
|
||||
worldId: 'world_l',
|
||||
levelNumber: 15,
|
||||
name: 'Tretie opakovanie', // opakovací level - všetky slová z 1-14
|
||||
name: 'Tretie opakovanie',
|
||||
gameType: 'banik',
|
||||
difficulty: 4,
|
||||
words: ['lano', 'lopta', 'list', 'les', 'líška', 'lyžica', 'lavička', 'lúka', 'ľalia', 'lampa',
|
||||
'lúč', 'lekár', 'lavína', 'lietadlo', 'lev', 'leňochod', 'lupa', 'lízatko', 'lyže', 'leopard',
|
||||
'letisko', 'pílka', 'levanduľa', 'lyžiar', 'lektvar', 'laboratórium', 'lektor', 'lúčny',
|
||||
'leporelo', 'lodička', 'lekáreň', 'laborant', 'listnatý'], // 35 slov
|
||||
'leporelo', 'lodička', 'lekáreň', 'laborant', 'listnatý'],
|
||||
gameConfig: {
|
||||
diamonds: 7,
|
||||
golds: 7,
|
||||
@ -1327,7 +1327,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Liter a lievik',
|
||||
gameType: 'banik',
|
||||
difficulty: 4,
|
||||
words: ['lopta', 'lúka', 'laborant', 'listnatý', 'levanduľa', 'liter', 'lievik', 'lampa', 'lopúch'], // 10 slov
|
||||
words: ['lopta', 'lúka', 'laborant', 'listnatý', 'levanduľa', 'liter', 'lievik', 'lampa', 'lopúch'],
|
||||
gameConfig: {
|
||||
diamonds: 6,
|
||||
golds: 6,
|
||||
@ -1576,9 +1576,9 @@ const LEVELS_CONFIG = {
|
||||
name: 'Prvé S-čka',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['slnko', 'sova', 'seno', 'soľ'], // 4 slová pre začiatok
|
||||
words: ['slnko', 'sova', 'seno', 'soľ'], // 4 slová
|
||||
gameConfig: {
|
||||
diamonds: 1, // málo diamantov pre začiatok
|
||||
diamonds: 1, // málo diamantov
|
||||
golds: 2, // trochu viac goldov
|
||||
crystals: 1, // jeden kryštál
|
||||
speechExercises: 1, // 1 slovo na vyslovenie
|
||||
@ -1610,12 +1610,12 @@ const LEVELS_CONFIG = {
|
||||
name: 'Suka a srdce',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['slnko', 'sova', 'seno', 'soľ', 'silák', 'srdce'], // 6 slov
|
||||
words: ['slnko', 'sova', 'seno', 'soľ', 'silák', 'srdce'],
|
||||
gameConfig: {
|
||||
diamonds: 2,
|
||||
golds: 3,
|
||||
crystals: 1,
|
||||
speechExercises: 1, // stále 1 slovo
|
||||
speechExercises: 1,
|
||||
listeningExercises: 1,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -1649,12 +1649,12 @@ const LEVELS_CONFIG = {
|
||||
name: 'Stôl a silák',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['slnko', 'sova', 'seno', 'srdce', 'soľ', 'stôl', 'silák'], // 7 slov
|
||||
words: ['slnko', 'sova', 'seno', 'srdce', 'soľ', 'stôl', 'silák'],
|
||||
gameConfig: {
|
||||
diamonds: 2,
|
||||
golds: 3,
|
||||
crystals: 2,
|
||||
speechExercises: 2, // zvyšujeme na 2 slová
|
||||
speechExercises: 2,
|
||||
listeningExercises: 1,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -1689,13 +1689,13 @@ const LEVELS_CONFIG = {
|
||||
name: 'Sitko a sviečka',
|
||||
gameType: 'banik',
|
||||
difficulty: 1,
|
||||
words: ['slnko', 'stôl', 'silák', 'sova', 'seno', 'srdce', 'sitko', 'sviečka'], // 8 slov
|
||||
words: ['slnko', 'stôl', 'silák', 'sova', 'seno', 'srdce', 'sitko', 'sviečka'],
|
||||
gameConfig: {
|
||||
diamonds: 3,
|
||||
golds: 3,
|
||||
crystals: 2,
|
||||
speechExercises: 2, // 2 slová
|
||||
listeningExercises: 2, // zvyšujeme aj posluch
|
||||
speechExercises: 2,
|
||||
listeningExercises: 2,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -1727,15 +1727,15 @@ const LEVELS_CONFIG = {
|
||||
id: 's_005',
|
||||
worldId: 'world_s',
|
||||
levelNumber: 5,
|
||||
name: 'Prvé opakovanie', // opakovací level
|
||||
name: 'Prvé opakovanie',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['slnko', 'sova', 'seno', 'soľ', 'srdce', 'stôl', 'silák', 'sitko', 'sviečka'], // 10 slov
|
||||
words: ['slnko', 'sova', 'seno', 'soľ', 'srdce', 'stôl', 'silák', 'sitko', 'sviečka'],
|
||||
gameConfig: {
|
||||
diamonds: 3,
|
||||
golds: 4,
|
||||
crystals: 2,
|
||||
speechExercises: 3, // zvyšujeme na 3 slová
|
||||
speechExercises: 3,
|
||||
listeningExercises: 2,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -1772,12 +1772,12 @@ const LEVELS_CONFIG = {
|
||||
name: 'Skala a smiech',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['slnko', 'stôl', 'sitko', 'srdce', 'sviečka', 'skala', 'smiech', 'sneh', 'sliepka', 'slama'], // 10 slov
|
||||
words: ['slnko', 'stôl', 'sitko', 'srdce', 'sviečka', 'skala', 'smiech', 'sneh', 'sliepka', 'slama'],
|
||||
gameConfig: {
|
||||
diamonds: 3,
|
||||
golds: 4,
|
||||
crystals: 3,
|
||||
speechExercises: 3, // 3 slová
|
||||
speechExercises: 3,
|
||||
listeningExercises: 2,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -1815,13 +1815,13 @@ const LEVELS_CONFIG = {
|
||||
name: 'Sestra a sídlo',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['slnko', 'sneh', 'smiech', 'skala', 'sliepka', 'slama', 'sestra', 'sídlo', 'sklo', 'sladkosť'], // 10 slov
|
||||
words: ['slnko', 'sneh', 'smiech', 'skala', 'sliepka', 'slama', 'sestra', 'sídlo', 'sklo', 'sladkosť'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 4,
|
||||
crystals: 2,
|
||||
speechExercises: 3,
|
||||
listeningExercises: 3, // zvyšujeme posluch
|
||||
listeningExercises: 3,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -1858,12 +1858,12 @@ const LEVELS_CONFIG = {
|
||||
name: 'Sklo a stavba',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['slnko', 'sklo', 'sestra', 'sladkosť', 'sídlo', 'smiech', 'srdce', 'sliepka', 'skala', 'stavba'], // 10 slov
|
||||
words: ['slnko', 'sklo', 'sestra', 'sladkosť', 'sídlo', 'smiech', 'srdce', 'sliepka', 'skala', 'stavba'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 5,
|
||||
crystals: 3,
|
||||
speechExercises: 4, // zvyšujeme na 4
|
||||
speechExercises: 4,
|
||||
listeningExercises: 3,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -1903,7 +1903,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Strom a stolička',
|
||||
gameType: 'banik',
|
||||
difficulty: 2,
|
||||
words: ['slnko', 'sklo', 'sladkosť', 'stavba', 'srdce', 'sneh', 'strom', 'sitko', 'stolička', 'sused'], // 10 slov
|
||||
words: ['slnko', 'sklo', 'sladkosť', 'stavba', 'srdce', 'sneh', 'strom', 'sitko', 'stolička', 'sused'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 5,
|
||||
@ -1944,18 +1944,18 @@ const LEVELS_CONFIG = {
|
||||
id: 's_010',
|
||||
worldId: 'world_s',
|
||||
levelNumber: 10,
|
||||
name: 'Druhé opakovanie', // veľké opakovanie
|
||||
name: 'Druhé opakovanie',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['slnko', 'sova', 'seno', 'soľ', 'srdce', 'stôl', 'silák', 'sitko', 'sviečka',
|
||||
'skala', 'smiech', 'sneh', 'sliepka', 'slama', 'sestra', 'sídlo', 'sklo', 'sladkosť', 'stavba',
|
||||
'strom', 'stolička', 'sused'], // 23 slov
|
||||
'strom', 'stolička', 'sused'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 6,
|
||||
crystals: 3,
|
||||
speechExercises: 5, // 5 slov na vyslovenie
|
||||
listeningExercises: 4, // 4 slová na počúvanie
|
||||
speechExercises: 5,
|
||||
listeningExercises: 4,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -1996,12 +1996,12 @@ const LEVELS_CONFIG = {
|
||||
name: 'Sila a súťaž',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['slnko', 'sneh', 'strom', 'sladkosť', 'sestra', 'stavba', 'sused', 'smiech', 'sila', 'súťaž'], // 10 slov
|
||||
words: ['slnko', 'sneh', 'strom', 'sladkosť', 'sestra', 'stavba', 'sused', 'smiech', 'sila', 'súťaž'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 5,
|
||||
crystals: 3,
|
||||
speechExercises: 5, // viac rečových cvičení
|
||||
speechExercises: 5,
|
||||
listeningExercises: 4,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -2041,7 +2041,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Skriňa a siréna',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['slnko', 'súťaž', 'sila', 'smiech', 'sestra', 'skriňa', 'stolička', 'sliepka', 'sviečka', 'siréna'], // 10 slov
|
||||
words: ['slnko', 'súťaž', 'sila', 'smiech', 'sestra', 'skriňa', 'stolička', 'sliepka', 'sviečka', 'siréna'],
|
||||
gameConfig: {
|
||||
diamonds: 4,
|
||||
golds: 6,
|
||||
@ -2086,12 +2086,12 @@ const LEVELS_CONFIG = {
|
||||
name: 'Socha a sen',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['slnko', 'súťaž', 'siréna', 'stolička', 'skriňa', 'sladkosť', 'socha', 'sen', 'srdce', 'skokan'], // 10 slov
|
||||
words: ['slnko', 'súťaž', 'siréna', 'stolička', 'skriňa', 'sladkosť', 'socha', 'sen', 'srdce', 'skokan'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 5,
|
||||
crystals: 3,
|
||||
speechExercises: 6, // zvyšujeme na 6
|
||||
speechExercises: 6,
|
||||
listeningExercises: 5,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -2132,7 +2132,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Skokan a svetlo',
|
||||
gameType: 'banik',
|
||||
difficulty: 3,
|
||||
words: ['slnko', 'sen', 'skriňa', 'skokan', 'siréna', 'súťaž', 'srdce', 'socha', 'stavba', 'svetlo'], // 10 slov
|
||||
words: ['slnko', 'sen', 'skriňa', 'skokan', 'siréna', 'súťaž', 'srdce', 'socha', 'stavba', 'svetlo'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 6,
|
||||
@ -2175,19 +2175,19 @@ const LEVELS_CONFIG = {
|
||||
id: 's_015',
|
||||
worldId: 'world_s',
|
||||
levelNumber: 15,
|
||||
name: 'Tretie opakovanie', // opakovací level
|
||||
name: 'Tretie opakovanie',
|
||||
gameType: 'banik',
|
||||
difficulty: 4,
|
||||
words: ['slnko', 'sova', 'seno', 'soľ', 'srdce', 'stôl', 'silák', 'sitko', 'sviečka',
|
||||
'skala', 'smiech', 'sneh', 'sliepka', 'slama', 'sestra', 'sídlo', 'sklo', 'sladkosť', 'stavba',
|
||||
'strom', 'stolička', 'sused', 'sila', 'súťaž', 'skriňa', 'siréna', 'socha', 'sen', 'skokan',
|
||||
'svetlo'], // 31 slov
|
||||
'svetlo'],
|
||||
gameConfig: {
|
||||
diamonds: 6,
|
||||
golds: 7,
|
||||
crystals: 4,
|
||||
speechExercises: 7, // 7 slov
|
||||
listeningExercises: 6, // 6 slov
|
||||
speechExercises: 7,
|
||||
listeningExercises: 6,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -2231,7 +2231,7 @@ const LEVELS_CONFIG = {
|
||||
name: 'Slanina a sladký',
|
||||
gameType: 'banik',
|
||||
difficulty: 4,
|
||||
words: ['slnko', 'svetlo', 'súťaž', 'sen', 'siréna', 'sneh', 'sliepka', 'smiech', 'slanina', 'sladký'], // 10 slov
|
||||
words: ['slnko', 'svetlo', 'súťaž', 'sen', 'siréna', 'sneh', 'sliepka', 'smiech', 'slanina', 'sladký'],
|
||||
gameConfig: {
|
||||
diamonds: 5,
|
||||
golds: 6,
|
||||
@ -2291,18 +2291,18 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 3, y: 8 }, // diamant na pozícii 3,8
|
||||
{ x: 12, y: 7 } // diamant na pozícii 12,7
|
||||
{ x: 3, y: 8 },
|
||||
{ x: 12, y: 7 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 2, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 8 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 6 }, // gold na pozícii 14,6
|
||||
{ x: 2, y: 9 },
|
||||
{ x: 7, y: 8 },
|
||||
{ x: 14, y: 6 },
|
||||
{ x: 9, y: 8 },
|
||||
{ x: 10, y: 13 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 9, y: 12 }, // kryštál na pozícii 9,7
|
||||
{ x: 9, y: 12 },
|
||||
{ x: 3, y: 12 },
|
||||
{ x: 11, y: 9 }
|
||||
],
|
||||
@ -2331,17 +2331,17 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 3, y: 8 }, // diamant na pozícii 3,8
|
||||
{ x: 12, y: 7 }, // diamant na pozícii 12,7
|
||||
{ x: 3, y: 8 },
|
||||
{ x: 12, y: 7 },
|
||||
{ x: 7, y: 13 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 2, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 8 }, // gold na pozícii 7,8
|
||||
{ x: 2, y: 9 },
|
||||
{ x: 7, y: 8 },
|
||||
{ x: 10, y: 8 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 9, y: 7 }, // kryštál na pozícii 9,7
|
||||
{ x: 9, y: 7 },
|
||||
{ x: 10, y: 12 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
@ -2372,19 +2372,19 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 3, y: 8 }, // diamant na pozícii 3,8
|
||||
{ x: 12, y: 7 }, // diamant na pozícii 12,7
|
||||
{ x: 3, y: 8 },
|
||||
{ x: 12, y: 7 },
|
||||
{ x: 10, y: 12 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 2, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 8 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 6 }, // gold na pozícii 14,6
|
||||
{ x: 2, y: 9 },
|
||||
{ x: 7, y: 8 },
|
||||
{ x: 14, y: 6 },
|
||||
{ x: 9, y: 8 },
|
||||
{ x: 10, y: 8 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 9, y: 7 } // kryštál na pozícii 9,7
|
||||
{ x: 9, y: 7 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
},
|
||||
@ -2414,18 +2414,18 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 8 }, // diamant na pozícii 3,8
|
||||
{ x: 10, y: 7 }, // diamant na pozícii 12,7
|
||||
{ x: 4, y: 8 },
|
||||
{ x: 10, y: 7 },
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 14 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 3, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 8 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 6 } // gold na pozícii 14,6
|
||||
{ x: 3, y: 9 },
|
||||
{ x: 7, y: 8 },
|
||||
{ x: 14, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 7, y: 11 } // kryštál na pozícii 9,7
|
||||
{ x: 7, y: 11 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
},
|
||||
@ -2455,17 +2455,17 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 6, y: 4 }, // diamant na pozícii 3,8
|
||||
{ x: 9, y: 7 }, // diamant na pozícii 12,7
|
||||
{ x: 6, y: 4 },
|
||||
{ x: 9, y: 7 },
|
||||
{ x: 2, y: 10 },
|
||||
{ x: 1, y: 14 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 3, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 8 } // gold na pozícii 7,8
|
||||
{ x: 3, y: 9 },
|
||||
{ x: 7, y: 8 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 7, y: 11 }, // kryštál na pozícii 9,7
|
||||
{ x: 7, y: 11 },
|
||||
{ x: 3, y: 6 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
@ -2496,17 +2496,17 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 1, y: 5 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 7 }, // diamant na pozícii 12,7
|
||||
{ x: 1, y: 5 },
|
||||
{ x: 4, y: 7 },
|
||||
{ x: 6, y: 10 },
|
||||
{ x: 2, y: 14 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 10, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 12 } // gold na pozícii 7,8
|
||||
{ x: 10, y: 9 },
|
||||
{ x: 7, y: 12 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 7, y: 11 }, // kryštál na pozícii 9,7
|
||||
{ x: 7, y: 11 },
|
||||
{ x: 10, y: 6 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
@ -2537,17 +2537,17 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 1, y: 5 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 7 }, // diamant na pozícii 12,7
|
||||
{ x: 1, y: 5 },
|
||||
{ x: 4, y: 7 },
|
||||
{ x: 6, y: 10 },
|
||||
{ x: 2, y: 14 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 3, y: 8 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 12 } // gold na pozícii 7,8
|
||||
{ x: 3, y: 8 },
|
||||
{ x: 7, y: 12 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 7, y: 11 }, // kryštál na pozícii 9,7
|
||||
{ x: 7, y: 11 },
|
||||
{ x: 10, y: 9 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
@ -2578,17 +2578,17 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 1, y: 6 }, // diamant na pozícii 3,8
|
||||
{ x: 1, y: 6 },
|
||||
{ x: 6, y: 14 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 10, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 11 }, // gold na pozícii 7,8
|
||||
{ x: 10, y: 9 },
|
||||
{ x: 7, y: 11 },
|
||||
{ x: 8, y: 12 },
|
||||
{ x: 1, y: 5 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 9, y: 11 }, // kryštál na pozícii 9,7
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 14, y: 8 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
@ -2655,8 +2655,8 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 5,
|
||||
golds: 6,
|
||||
crystals: 3,
|
||||
speechExercises: 5, // 5 slov na vyslovenie
|
||||
listeningExercises: 4, // 4 slová na počúvanie
|
||||
speechExercises: 5,
|
||||
listeningExercises: 4,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -2794,15 +2794,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -2962,23 +2962,23 @@ const LEVELS_CONFIG = {
|
||||
difficulty: 1,
|
||||
words: ['zima', 'zub', 'zajac'],
|
||||
gameConfig: {
|
||||
diamonds: 1, // málo diamantov pre začiatok
|
||||
golds: 2, // trochu viac goldov
|
||||
crystals: 1, // jeden kryštál
|
||||
speechExercises: 1, // 1 slovo na vyslovenie
|
||||
listeningExercises: 1, // 1 slovo na počúvanie
|
||||
diamonds: 1,
|
||||
golds: 2,
|
||||
crystals: 1,
|
||||
speechExercises: 1,
|
||||
listeningExercises: 1,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 7, y: 4 } // diamant v strede mapy
|
||||
{ x: 7, y: 4 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 4, y: 3 }, // gold vľavo
|
||||
{ x: 12, y: 7 } // gold vpravo
|
||||
{ x: 4, y: 3 },
|
||||
{ x: 12, y: 7 }
|
||||
],
|
||||
crystals: [
|
||||
{ x: 9, y: 6 } // kryštál vpravo
|
||||
{ x: 9, y: 6 }
|
||||
],
|
||||
player: { x: 1, y: 1 }
|
||||
},
|
||||
@ -2999,7 +2999,7 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 2,
|
||||
golds: 3,
|
||||
crystals: 1,
|
||||
speechExercises: 1, // stále 1 slovo
|
||||
speechExercises: 1,
|
||||
listeningExercises: 1,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -3038,7 +3038,7 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 2,
|
||||
golds: 3,
|
||||
crystals: 2,
|
||||
speechExercises: 2, // zvyšujeme na 2 slová
|
||||
speechExercises: 2,
|
||||
listeningExercises: 1,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -3078,8 +3078,8 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 3,
|
||||
golds: 3,
|
||||
crystals: 2,
|
||||
speechExercises: 2, // 2 slová
|
||||
listeningExercises: 2, // zvyšujeme aj posluch
|
||||
speechExercises: 2,
|
||||
listeningExercises: 2,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -3119,7 +3119,7 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 3,
|
||||
golds: 4,
|
||||
crystals: 2,
|
||||
speechExercises: 3, // zvyšujeme na 3 slová
|
||||
speechExercises: 3,
|
||||
listeningExercises: 2,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -3161,7 +3161,7 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 3,
|
||||
golds: 4,
|
||||
crystals: 3,
|
||||
speechExercises: 3, // 3 slová
|
||||
speechExercises: 3,
|
||||
listeningExercises: 2,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -3205,7 +3205,7 @@ const LEVELS_CONFIG = {
|
||||
golds: 4,
|
||||
crystals: 2,
|
||||
speechExercises: 3,
|
||||
listeningExercises: 3, // zvyšujeme posluch
|
||||
listeningExercises: 3,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -3247,7 +3247,7 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 4,
|
||||
golds: 5,
|
||||
crystals: 3,
|
||||
speechExercises: 4, // zvyšujeme na 4
|
||||
speechExercises: 4,
|
||||
listeningExercises: 3,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
@ -3292,8 +3292,8 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 5,
|
||||
golds: 6,
|
||||
crystals: 3,
|
||||
speechExercises: 5, // 5 slov na vyslovenie
|
||||
listeningExercises: 4, // 4 slová na počúvanie
|
||||
speechExercises: 5,
|
||||
listeningExercises: 4,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -3338,8 +3338,8 @@ const LEVELS_CONFIG = {
|
||||
diamonds: 5,
|
||||
golds: 6,
|
||||
crystals: 3,
|
||||
speechExercises: 5, // 5 slov na vyslovenie
|
||||
listeningExercises: 4, // 4 slová na počúvanie
|
||||
speechExercises: 5,
|
||||
listeningExercises: 4,
|
||||
mapSize: { width: 16, height: 10 }
|
||||
},
|
||||
positions: {
|
||||
@ -3476,15 +3476,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -4137,15 +4137,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -4795,15 +4795,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -5453,15 +5453,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -6118,15 +6118,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -6788,15 +6788,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -7460,15 +7460,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -8135,15 +8135,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -8813,15 +8813,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -9490,15 +9490,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -10183,15 +10183,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
@ -10872,15 +10872,15 @@ const LEVELS_CONFIG = {
|
||||
},
|
||||
positions: {
|
||||
diamonds: [
|
||||
{ x: 4, y: 12 }, // diamant na pozícii 3,8
|
||||
{ x: 4, y: 12 },
|
||||
{ x: 9, y: 11 },
|
||||
{ x: 10, y: 14 },
|
||||
{ x: 5, y: 9 },
|
||||
{ x: 0, y: 10 }
|
||||
],
|
||||
golds: [
|
||||
{ x: 14, y: 9 }, // gold na pozícii 2,9
|
||||
{ x: 7, y: 10 }, // gold na pozícii 7,8
|
||||
{ x: 14, y: 9 },
|
||||
{ x: 7, y: 10 },
|
||||
{ x: 2, y: 6 }
|
||||
],
|
||||
crystals: [
|
||||
|
||||
@ -198,7 +198,7 @@ const WORLDS_CONFIG = [
|
||||
name: 'Ď',
|
||||
title: 'Svet písmena Ď',
|
||||
description: 'Ďabaj s mäkkým písmenom Ď',
|
||||
color: '#FD79A8', // tmavoružová
|
||||
color: '#FD79A8',
|
||||
icon: 'images/worlds/world_dh.png',
|
||||
difficulty: 3,
|
||||
unlockRequirement: null,
|
||||
@ -211,7 +211,7 @@ const WORLDS_CONFIG = [
|
||||
name: 'Ť',
|
||||
title: 'Svet písmena Ť',
|
||||
description: 'Ťukaj s mäkkým písmenom Ť',
|
||||
color: '#FDCB6E', // oranžová
|
||||
color: '#FDCB6E',
|
||||
icon: 'images/worlds/world_th.png',
|
||||
difficulty: 3,
|
||||
unlockRequirement: null,
|
||||
|
||||
126
css/pexeso.css
126
css/pexeso.css
@ -753,9 +753,6 @@ body {
|
||||
}
|
||||
|
||||
/* Hlavný herný canvas */
|
||||
/* Hlavný herný canvas */
|
||||
/* Zmena z flexbox na CSS Grid - karty sa budú rozmiestňovať cez
|
||||
grid-template-columns definovaný v pravidlách .cards-N nižšie. */
|
||||
#gameCanvas {
|
||||
background-image: url("../images/pozadie.jpg");
|
||||
min-width: 800px; /* Desktopová veľkosť */
|
||||
@ -767,13 +764,13 @@ body {
|
||||
flex-shrink: 0;
|
||||
|
||||
/* === GRID NASTAVENIE === */
|
||||
display: grid; /* Mriežkový layout pre karty */
|
||||
gap: 1.5%; /* Medzera medzi kartami (% zo šírky canvasu) */
|
||||
padding: 2%; /* Vnútorný odstup od okrajov canvasu */
|
||||
align-content: center; /* Vertikálne vycentrovanie gridu ak je menší */
|
||||
justify-content: center; /* Horizontálne vycentrovanie */
|
||||
align-items: stretch; /* Karty vyplnia výšku bunky */
|
||||
justify-items: stretch; /* Karty vyplnia šírku bunky */
|
||||
display: grid;
|
||||
gap: 1.5%;
|
||||
padding: 2%;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
align-items: stretch;
|
||||
justify-items: stretch;
|
||||
|
||||
/* === VZHĽAD === */
|
||||
overflow: hidden;
|
||||
@ -786,7 +783,6 @@ body {
|
||||
filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
|
||||
|
||||
/* === BOX-SIZING === */
|
||||
/* Padding sa počíta dovnútra - canvas zostane presne 800x800 */
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@ -794,40 +790,29 @@ body {
|
||||
/* ZÁKLADNÉ NASTAVENIE KARTY */
|
||||
/* Toto je predvolené nastavenie pre karty */
|
||||
/* =========================================== */
|
||||
/* =========================================== */
|
||||
/* ZÁKLADNÉ NASTAVENIE KARTY */
|
||||
/* Karta vyplní bunku gridu cez 100% šírky. */
|
||||
/* Aspect-ratio 1/1 zabezpečí štvorec. */
|
||||
/* container-type umožňuje používať cqw units */
|
||||
/* (napr. font-size: 20cqw = 20% šírky karty) */
|
||||
/* =========================================== */
|
||||
.card-container {
|
||||
display: flex; /* Flexbox pre centrovanie obsahu vnútri */
|
||||
width: 100%; /* Vyplní celú šírku gridovej bunky */
|
||||
height: auto; /* Výška sa dopočíta z aspect-ratio */
|
||||
aspect-ratio: 1 / 1; /* Karta je vždy štvorec */
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
aspect-ratio: 1 / 1;
|
||||
|
||||
/* Container Queries - umožňuje cqw units pre obsah karty */
|
||||
container-type: inline-size; /* 1cqw = 1% šírky karty */
|
||||
|
||||
container-type: inline-size;
|
||||
|
||||
background-image: url('../images/pozadie_button_mobile_2.png');
|
||||
border: 2px solid #ECCF17 !important;
|
||||
border-radius: 10px;
|
||||
|
||||
/* Centrované vnútro */
|
||||
flex-direction: column; /* Obrázok nad textom */
|
||||
align-items: center; /* Horizontálne vycentrovanie */
|
||||
justify-content: center; /* Vertikálne vycentrovanie */
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
/* Animácie */
|
||||
transition: all 0.5s ease;
|
||||
|
||||
/* 3D efekt pre flip */
|
||||
perspective: 1000px;
|
||||
transform-style: preserve-3d;
|
||||
position: relative;
|
||||
|
||||
/* Box-sizing zabezpečí že border je započítaný v rozmere */
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@ -880,42 +865,33 @@ body {
|
||||
animation: correctMatch 0.6s ease;
|
||||
}
|
||||
|
||||
/* =========================================== */
|
||||
/* OBRÁZKY A TEXT V KARTÁCH */
|
||||
/* Všetko v relatívnych jednotkách: */
|
||||
/* - obrázok: 55% rozmerov karty */
|
||||
/* - text: cqw = % šírky karty */
|
||||
/* Takto sa automaticky škáluje s veľkosťou */
|
||||
/* karty bez potreby rôznych pravidiel. */
|
||||
/* =========================================== */
|
||||
|
||||
|
||||
.card-container img {
|
||||
width: 55%; /* 55% šírky karty */
|
||||
height: 55%; /* 55% výšky karty */
|
||||
object-fit: contain; /* Zachová pomer strán obrázku */
|
||||
width: 55%;
|
||||
height: 55%;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
/* Text na rubovej strane karty (PEXESO) - väčší */
|
||||
.card-container span {
|
||||
font-size: 20cqw; /* 20% šírky karty (napr. 160px karta = 32px font) */
|
||||
font-size: 20cqw;
|
||||
|
||||
/* Farebný gradient (nezmenené) */
|
||||
background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
-webkit-text-stroke: unset;
|
||||
|
||||
/* Text nesmie pretekať kartu */
|
||||
max-width: 90%; /* Max 90% šírky karty */
|
||||
overflow: hidden; /* Skryje pretekajúci text */
|
||||
text-overflow: ellipsis; /* "..." ak je text príliš dlhý */
|
||||
white-space: nowrap; /* Neláme text */
|
||||
padding: 0 5%; /* Malý odstup od okrajov */
|
||||
max-width: 90%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
padding: 0 5%;
|
||||
}
|
||||
|
||||
/* Text po otočení karty (konkrétne slovo) - menší aby sa zmestil */
|
||||
.card-container.flipped span {
|
||||
font-size: 11cqw; /* 11% šírky karty (pre dlhšie slová) */
|
||||
font-size: 11cqw;
|
||||
}
|
||||
|
||||
/* =========================================== */
|
||||
@ -962,9 +938,8 @@ body {
|
||||
/* ===== PAUSE MENU ===== */
|
||||
/* =========================================== */
|
||||
|
||||
/* Hlavný container pause menu */
|
||||
.pause-modal {
|
||||
display: none; /* Skrytý na začiatku */
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@ -993,28 +968,17 @@ body {
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
z-index: 2;
|
||||
|
||||
/* Rovnaké rozmery ako execise-window */
|
||||
width: 70%;
|
||||
max-width: 450px;
|
||||
min-width: 400px;
|
||||
|
||||
/* DÔLEŽITÉ: Používame ROVNAKÉ pozadie ako ostatné modaly */
|
||||
background: url('../images/pozadie_button_mobile_2.png') lightgray 50% / cover no-repeat;
|
||||
|
||||
/* Rovnaký border ako ostatné modaly */
|
||||
border: 4px solid #ECCF17;
|
||||
border-radius: 30px;
|
||||
|
||||
/* Padding */
|
||||
padding: 2rem 3rem;
|
||||
box-sizing: border-box;
|
||||
|
||||
/* Animácie */
|
||||
transition: all 0.4s ease;
|
||||
}
|
||||
|
||||
/* Header pause menu */
|
||||
.pause-modal-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
@ -1024,7 +988,6 @@ body {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Nadpis "PAUZA" */
|
||||
.pause-modal-header h2 {
|
||||
font-family: 'Luckiest Guy', sans-serif;
|
||||
font-size: 64px;
|
||||
@ -1034,19 +997,14 @@ body {
|
||||
text-transform: uppercase;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
/* Gradient text ako ostatné texty */
|
||||
background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
|
||||
background-clip: text;
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
|
||||
/* Text stroke */
|
||||
-webkit-text-stroke-width: 1px;
|
||||
-webkit-text-stroke-color: #000;
|
||||
}
|
||||
|
||||
/* Close button (X) - ROVNAKÝ ako v pôvodnom .close */
|
||||
.pause-close-btn {
|
||||
position: absolute;
|
||||
top: -20px;
|
||||
@ -1055,8 +1013,6 @@ body {
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
/* Text štýl */
|
||||
color: #FFF;
|
||||
text-align: center;
|
||||
font-family: "Luckiest Guy", sans-serif;
|
||||
@ -1064,11 +1020,7 @@ body {
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
line-height: normal;
|
||||
|
||||
/* Cursor */
|
||||
cursor: url('../images/active_cursor4.png') 5 5, pointer;
|
||||
|
||||
/* Animácie */
|
||||
transition: transform 0.4s ease;
|
||||
z-index: 1001;
|
||||
}
|
||||
@ -1077,12 +1029,12 @@ body {
|
||||
transform: rotate(15deg) scale(1.05);
|
||||
}
|
||||
|
||||
/* Body pause menu */
|
||||
|
||||
.pause-modal-body {
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
/* Menu navigácia */
|
||||
|
||||
.pause-menu {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@ -1108,25 +1060,15 @@ body {
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
|
||||
/* Rozmery tlačidla */
|
||||
width: 100%;
|
||||
min-width: 250px;
|
||||
height: 64px;
|
||||
flex-shrink: 0;
|
||||
border-radius: 30px;
|
||||
|
||||
/* Tieň */
|
||||
filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
|
||||
|
||||
/* Border a pozadie - ROVNAKÉ ako ostatné tlačidlá */
|
||||
border: 4px solid #AC3F0B;
|
||||
background: url('../images/pozadie_button.png') lightgray 50% / cover no-repeat;
|
||||
|
||||
/* Prechod pre animácie */
|
||||
transition: all 0.3s ease;
|
||||
|
||||
/* Text štýlovanie - ROVNAKÉ ako menu-button */
|
||||
font-family: "Luckiest Guy", sans-serif;
|
||||
font-size: 32px;
|
||||
font-style: normal;
|
||||
@ -1134,15 +1076,9 @@ body {
|
||||
line-height: 20px;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
|
||||
/* Text stroke */
|
||||
-webkit-text-stroke-width: 1px;
|
||||
-webkit-text-stroke-color: #000;
|
||||
|
||||
/* Farba textu - BIELA ako v originálnych tlačidlách */
|
||||
color: #FFF;
|
||||
|
||||
/* Cursor */
|
||||
cursor: url('../images/active_cursor4.png') 5 5, pointer;
|
||||
z-index: 10000;
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@
|
||||
<ul>
|
||||
<li><a href="game.html" alt="Reštart" class="menu-button">Reštart</a></li>
|
||||
<li><a href="worldsmenu.html" alt="Koniec" class="menu-button">Koniec</a></li>
|
||||
<li><a href="menu.html" alt="Menu" class="menu-button">Menu</a></li>
|
||||
<li><a href="menu.html" alt="Menu" class="menu-button">Úvodná obrazovka</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
78
index.html
78
index.html
@ -53,7 +53,7 @@
|
||||
<li><a href="#projekt" alt="O projekte" class="menu-button show-about">O PROJEKTE</a></li>
|
||||
<!--<li><a href="game.html" alt="Banik" class="menu-button"><span>TEST Bana</span></a></li>-->
|
||||
<!--<li><a href="pexeso.html" alt="Jozino" class="menu-button"><span>Test PEXESO</span></a></li>-->
|
||||
<li><a href="superjozino.html" alt="Jozino" class="menu-button"><span>TEST JOZINO</span></a></li>
|
||||
<!--<li><a href="superjozino.html" alt="Jozino" class="menu-button"><span>TEST JOZINO</span></a></li>-->
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
@ -82,34 +82,39 @@
|
||||
<div class="modal-arrow-up"></div>
|
||||
<div class="modal-text-content">
|
||||
<p>
|
||||
Vitaj v hre Baník Jožino! Tvojou úlohou je preberať rolu odvážneho baníka a
|
||||
hľadať vzácne poklady ukryté v hlbokách podzemnej jaskyne.
|
||||
Vitaj v platforme <strong>Baník Jožino</strong>! Ide o logopedickú hru,
|
||||
v ktorej si hravou formou precvičíš slovenské hlásky a slová.
|
||||
<br><br>
|
||||
<span>Ovládanie postavy:</span><br>
|
||||
Použi šípky na klávesnici alebo klávesy WASD na pohyb postavy po svete.
|
||||
Na vykopanie pokladu stlač medzerník.
|
||||
<span>Svety a levely:</span><br>
|
||||
Platforma obsahuje 16 tematických svetov, každý zameraný na inú
|
||||
slovenskú hlásku (R, L, S, Z, C, Š, Ž, Č, D, T, N, Ď, Ť, Ň, K, G).
|
||||
V každom svete ťa čaká 16 levelov s postupne rastúcou náročnosťou.
|
||||
Za každý level môžeš získať 1 až 3 hviezdy podľa tvojho výkonu.
|
||||
<br><br>
|
||||
<span>Drahokamy:</span><br>
|
||||
V hre sa vyskytujú 3 druhy drahokamov: Zlato, Diamant a Fialový Kryštál.
|
||||
Na vykopanie diamantu musíš splniť rečové cvičenie. Na vykopanie kryštálu
|
||||
zase posluchové cvičenie.
|
||||
<span>Mini hra Baník:</span><br>
|
||||
Si odvážny baník a hľadáš poklady v podzemí. Pohybuješ sa pomocou
|
||||
šípok alebo klávesov WASD a kopeš medzerníkom. V hre nájdeš tri druhy
|
||||
pokladov: <strong>zlato</strong> (jednoduché nazbieranie),
|
||||
<strong>diamant</strong> (spustí rečové cvičenie) a
|
||||
<strong>fialový kryštál</strong> (spustí posluchové cvičenie).
|
||||
<br><br>
|
||||
<span>Ciele hry:</span><br>
|
||||
Pokús sa nazbierať čo najviac pokladov v stanovenom čase. Každý typ
|
||||
drahokamu ti prinesie iný počet bodov. Buď opatrný a užívaj si dobrodružstvo!
|
||||
<span>Mini hra Pexeso:</span><br>
|
||||
Klasické pexeso, ale s obrázkami slov. Otáčaj karty a hľadaj
|
||||
rovnaké dvojice. Keď nájdeš pár, musíš správne vysloviť slovo na
|
||||
karte, aby ti bol bod uznaný.
|
||||
<br><br>
|
||||
<span>Ovládanie postavy:</span><br>
|
||||
Použi šípky na klávesnici alebo klávesy WASD na pohyb postavy po svete.
|
||||
Na vykopanie pokladu stlač medzerník.
|
||||
<span>Rečové cvičenie:</span><br>
|
||||
Objaví sa slovo s obrázkom a ty ho musíš nahlas vysloviť. Klikni
|
||||
na tlačidlo mikrofónu a povedz slovo. Ak ho vyslovíš správne,
|
||||
dostaneš zelenú fajku. Máš na to tri pokusy.
|
||||
<br><br>
|
||||
<span>Drahokamy:</span><br>
|
||||
V hre sa vyskytujú 3 druhy drahokamov: Zlato, Diamant a Fialový Kryštál.
|
||||
Na vykopanie diamantu musíš splniť rečové cvičenie. Na vykopanie kryštálu
|
||||
zase posluchové cvičenie.
|
||||
<span>Posluchové cvičenie:</span><br>
|
||||
Vypočuj si dva zvuky a rozhodni, či sú rovnaké alebo rôzne.
|
||||
Klikni na správne tlačidlo.
|
||||
<br><br>
|
||||
<span>Ciele hry:</span><br>
|
||||
Pokús sa nazbierať čo najviac pokladov v stanovenom čase. Každý typ
|
||||
drahokamu ti prinesie iný počet bodov. Buď opatrný a užívaj si dobrodružstvo!
|
||||
<span>Cieľ hry:</span><br>
|
||||
Prejsť všetky levely, získať čo najviac hviezd a pritom sa
|
||||
zabaviť a zdokonaliť svoju výslovnosť. Veľa šťastia!
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-arrow-down"></div>
|
||||
@ -124,21 +129,36 @@
|
||||
<div class="modal-arrow-up"></div>
|
||||
<div class="modal-text-content">
|
||||
<p>
|
||||
Baník Jožino je interaktívna logopedická hra vytvorená v rámci diplomovej práce.
|
||||
<strong>Baník Jožino</strong> je interaktívna logopedická platforma
|
||||
vytvorená v rámci diplomovej práce. Je určená deťom s poruchami
|
||||
výslovnosti, najmä vo veku do 8 rokov.
|
||||
<br><br>
|
||||
<span>Cieľ:</span><br>
|
||||
Pomôcť deťom s rozvojom správnej výslovnosti a artikulácie pomocou hravých cvičení.
|
||||
<span>Cieľ projektu:</span><br>
|
||||
Pomôcť deťom s rozvojom správnej výslovnosti hravou a motivujúcou
|
||||
formou. Platforma je bezplatná a slúži ako doplnok k odbornej logopedickej
|
||||
terapii, nie ako jej náhrada.
|
||||
<br><br>
|
||||
<span>Obsah platformy:</span><br>
|
||||
16 tematických svetov podľa jednotlivých problémových hlások a
|
||||
viac než 256 levelov naprieč dvoma rôznymi mini hrami:
|
||||
Baník a Pexeso.
|
||||
<br><br>
|
||||
<span>Technológie:</span><br>
|
||||
HTML5, CSS, JavaScript
|
||||
HTML5, CSS3, JavaScript, Web Speech API (rozpoznávanie reči),
|
||||
Howler.js (zvuk), Canvas API (grafika)
|
||||
<br><br>
|
||||
<span>Autor:</span><br>
|
||||
Adam Reňak<br>
|
||||
Bc. Adam Reňak
|
||||
<br><br>
|
||||
<span>Vedúci práce:</span><br>
|
||||
Ing. Renát Haluška, PhD.
|
||||
<br><br>
|
||||
<span>Univerzita:</span><br>
|
||||
Technická univerzita v Košiciach<br>
|
||||
Fakulta elektrotechniky a informatiky
|
||||
<br><br>
|
||||
<span>Rok:</span><br>
|
||||
2025
|
||||
2026
|
||||
</p>
|
||||
</div>
|
||||
<div class="modal-arrow-down"></div>
|
||||
|
||||
@ -93,7 +93,7 @@ function openModal(modal) {
|
||||
modal.style.opacity = '0';
|
||||
setTimeout(() => {
|
||||
modal.style.opacity = '1';
|
||||
setupModalScrolling(); // Inicializuj scrollovanie
|
||||
setupModalScrolling(modal);
|
||||
}, 10);
|
||||
}
|
||||
|
||||
@ -113,13 +113,20 @@ function closeModal(modal) {
|
||||
/**
|
||||
* Nastavenie scroll funkcionalite pre modal obsah
|
||||
*/
|
||||
function setupModalScrolling() {
|
||||
const modalContent = document.querySelector('.modal-text-content');
|
||||
const arrowUp = document.querySelector('.modal-arrow-up');
|
||||
const arrowDown = document.querySelector('.modal-arrow-down');
|
||||
function setupModalScrolling(modal) {
|
||||
// Ak nie je modal zadaný, fallback na celý dokument (pre spätnú kompatibilitu)
|
||||
const scope = modal || document;
|
||||
|
||||
// Hľadáme elementy LEN v rámci daného modalu (nie na celej stránke)
|
||||
const modalContent = scope.querySelector('.modal-text-content');
|
||||
const arrowUp = scope.querySelector('.modal-arrow-up');
|
||||
const arrowDown = scope.querySelector('.modal-arrow-down');
|
||||
|
||||
// Ak niektorý element chýba, nie je čo nastavovať
|
||||
if (!modalContent || !arrowUp || !arrowDown) return;
|
||||
|
||||
// Funkcia na aktualizáciu vizuálneho stavu šípok
|
||||
// Ak sme na vrchu, šípka hore je stlmená, ak na spodku, šípka dole je stlmená
|
||||
function updateArrows() {
|
||||
const isAtTop = modalContent.scrollTop <= 5;
|
||||
const isAtBottom = modalContent.scrollTop + modalContent.clientHeight >= modalContent.scrollHeight - 5;
|
||||
@ -128,17 +135,28 @@ function setupModalScrolling() {
|
||||
arrowDown.style.opacity = isAtBottom ? '0.3' : '1';
|
||||
}
|
||||
|
||||
// Scroll hore
|
||||
arrowUp.addEventListener('click', function() {
|
||||
modalContent.scrollBy({ top: -100, behavior: 'smooth' });
|
||||
});
|
||||
// DÔLEŽITÉ: Listenery pridávame len raz - pri prvom otvorení tohto modalu
|
||||
// Bez tejto kontroly by sa pri každom ďalšom otvorení modalu pridal ďalší listener,
|
||||
// čo by spôsobilo viacnásobný scroll pri každom kliknutí na šípku
|
||||
if (!modalContent.dataset.scrollInitialized) {
|
||||
// Kliknutie na šípku hore - scrolluj obsah smerom nahor
|
||||
arrowUp.addEventListener('click', function() {
|
||||
modalContent.scrollBy({ top: -100, behavior: 'smooth' });
|
||||
});
|
||||
|
||||
// Scroll dole
|
||||
arrowDown.addEventListener('click', function() {
|
||||
modalContent.scrollBy({ top: 100, behavior: 'smooth' });
|
||||
});
|
||||
// Kliknutie na šípku dole - scrolluj obsah smerom nadol
|
||||
arrowDown.addEventListener('click', function() {
|
||||
modalContent.scrollBy({ top: 100, behavior: 'smooth' });
|
||||
});
|
||||
|
||||
modalContent.addEventListener('scroll', updateArrows);
|
||||
// Pri scrollovaní obsahu aktualizuj vizuálny stav šípok
|
||||
modalContent.addEventListener('scroll', updateArrows);
|
||||
|
||||
// Označ tento modal ako inicializovaný aby sa listenery nepridali znova
|
||||
modalContent.dataset.scrollInitialized = 'true';
|
||||
}
|
||||
|
||||
// Pri každom otvorení modalu aktualizuj stav šípok (nech sú vizuálne správne)
|
||||
updateArrows();
|
||||
}
|
||||
|
||||
|
||||
69
js/game.js
69
js/game.js
@ -3436,42 +3436,59 @@ function restartCurrentLevel() {
|
||||
function goToNextLevel() {
|
||||
console.log('Pokúsim sa prejsť na ďalší level...');
|
||||
|
||||
// Získaj aktuálny worldId a levelId z URL parametrov
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const worldId = urlParams.get('worldId') || urlParams.get('world');
|
||||
const levelId = urlParams.get('levelId') || urlParams.get('level');
|
||||
|
||||
// Ak v URL chýbajú parametre, nemôžeme zistiť ďalší level - späť do menu
|
||||
if (!worldId || !levelId) {
|
||||
console.log('Nie sú dostupné URL parametre, vraciam sa do menu');
|
||||
console.log('Chýbajú URL parametre (worldId/levelId), vraciam sa do menu');
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Použij gameRouter ak je dostupný
|
||||
if (window.gameRouter && typeof window.gameRouter.continueToNextLevel === 'function') {
|
||||
closeAllDialogs();
|
||||
window.gameRouter.continueToNextLevel(worldId, levelId);
|
||||
} else {
|
||||
// Fallback - manuálne hľadanie ďalšieho levelu
|
||||
console.log('GameRouter nie je dostupný, používam fallback');
|
||||
if (typeof getLevelConfig === 'function') {
|
||||
const currentLevel = getLevelConfig(levelId);
|
||||
if (currentLevel) {
|
||||
const nextLevelNumber = currentLevel.levelNumber + 1;
|
||||
const nextLevelId = `${worldId}_${nextLevelNumber}`;
|
||||
const nextLevel = getLevelConfig(nextLevelId);
|
||||
|
||||
if (nextLevel) {
|
||||
closeAllDialogs();
|
||||
window.location.href = `game.html?worldId=${worldId}&levelId=${nextLevelId}`;
|
||||
} else {
|
||||
console.log('Ďalší level neexistuje, vraciam sa do menu');
|
||||
returnToMenu();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
returnToMenu();
|
||||
}
|
||||
// Skontroluj, či je funkcia getNextLevel vôbec dostupná (z config/levels.js)
|
||||
if (typeof getNextLevel !== 'function') {
|
||||
console.error('Funkcia getNextLevel nie je dostupná - config/levels.js pravdepodobne nie je načítaný');
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Získaj konfiguráciu ďalšieho levelu cez oficiálnu funkciu z levels.js
|
||||
const nextLevel = getNextLevel(levelId);
|
||||
|
||||
// Ak ďalší level neexistuje (sme na poslednom leveli sveta), vráť sa do menu
|
||||
if (!nextLevel) {
|
||||
console.log(`Ďalší level po ${levelId} neexistuje - koniec sveta, vraciam sa do menu`);
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Zisti, aký typ hry má ďalší level a zostav správnu URL
|
||||
// gameType môže byť 'banik', 'pexeso' alebo 'mario'
|
||||
const gameUrls = {
|
||||
'banik': 'game.html',
|
||||
'pexeso': 'pexeso.html',
|
||||
'mario': 'superjozino.html'
|
||||
};
|
||||
|
||||
const targetUrl = gameUrls[nextLevel.gameType];
|
||||
|
||||
// Ak typ hry nepoznáme, logni chybu a vráť sa do menu
|
||||
if (!targetUrl) {
|
||||
console.error(`Neznámy typ hry: ${nextLevel.gameType}`);
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Zatvor všetky otvorené dialógy pred presmerovaním
|
||||
closeAllDialogs();
|
||||
|
||||
// Presmeruj na ďalší level so správnymi URL parametrami
|
||||
const nextUrl = `${targetUrl}?worldId=${nextLevel.worldId}&levelId=${nextLevel.id}`;
|
||||
console.log(`Presmerovávam na ďalší level: ${nextUrl}`);
|
||||
window.location.href = nextUrl;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
@ -2051,24 +2051,57 @@ function restartCurrentLevel() {
|
||||
function goToNextLevel() {
|
||||
console.log('➡️ Prechod na ďalší level...');
|
||||
|
||||
// Pre custom hry alebo demo - reštart
|
||||
if (currentLevel.id === 'custom' || currentLevel.id === 'demo') {
|
||||
// Pre custom hry alebo demo nie je ďalší level - len reštartuj aktuálny
|
||||
if (currentLevel && (currentLevel.id === 'custom' || currentLevel.id === 'demo')) {
|
||||
restartCurrentLevel();
|
||||
return;
|
||||
}
|
||||
|
||||
// Hľadanie ďalšieho levelu
|
||||
if (typeof getNextLevel === 'function') {
|
||||
const nextLevel = getNextLevel(currentLevel.id);
|
||||
if (nextLevel) {
|
||||
window.location.href = `pexeso.html?worldId=${nextLevel.worldId}&levelId=${nextLevel.id}`;
|
||||
} else {
|
||||
// Žiadny ďalší level - návrat do menu
|
||||
returnToMenu();
|
||||
}
|
||||
} else {
|
||||
// Skontroluj, či je funkcia getNextLevel dostupná (z config/levels.js)
|
||||
if (typeof getNextLevel !== 'function') {
|
||||
console.error('❌ Funkcia getNextLevel nie je dostupná - config/levels.js pravdepodobne nie je načítaný');
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Skontroluj, že poznáme aktuálny level
|
||||
if (!currentLevel || !currentLevel.id) {
|
||||
console.error('❌ Neznámy aktuálny level, vraciam sa do menu');
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Získaj konfiguráciu ďalšieho levelu
|
||||
const nextLevel = getNextLevel(currentLevel.id);
|
||||
|
||||
// Ak ďalší level neexistuje (posledný level sveta), vráť sa do menu
|
||||
if (!nextLevel) {
|
||||
console.log(`Ďalší level po ${currentLevel.id} neexistuje - koniec sveta`);
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Mapovanie typu hry na správny HTML súbor
|
||||
// Ďalší level nemusí byť pexeso - môže to byť baník alebo mario
|
||||
const gameUrls = {
|
||||
'banik': 'game.html',
|
||||
'pexeso': 'pexeso.html',
|
||||
'mario': 'superjozino.html'
|
||||
};
|
||||
|
||||
const targetUrl = gameUrls[nextLevel.gameType];
|
||||
|
||||
// Ak typ hry nepoznáme, logni chybu a vráť sa do menu
|
||||
if (!targetUrl) {
|
||||
console.error(`❌ Neznámy typ hry: ${nextLevel.gameType}`);
|
||||
returnToMenu();
|
||||
return;
|
||||
}
|
||||
|
||||
// Presmeruj na ďalší level so správnymi URL parametrami
|
||||
const nextUrl = `${targetUrl}?worldId=${nextLevel.worldId}&levelId=${nextLevel.id}`;
|
||||
console.log(`✅ Presmerovávam na ďalší level: ${nextUrl}`);
|
||||
window.location.href = nextUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2079,7 +2112,7 @@ function returnToMenu() {
|
||||
|
||||
if (currentLevel.id === 'custom') {
|
||||
// Pre custom hry návrat na index
|
||||
window.location.href = 'index.html';
|
||||
window.location.href = 'worldsmenu.html';
|
||||
} else {
|
||||
// Pre level hry návrat na worlds menu
|
||||
window.location.href = 'worldsmenu.html';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user