-- ----------------------------------------------------------------- -- Init -- ----------------------------------------------------------------- local function prog_init() initModels() sound_playMusic("music/rybky06.ogg") local pokus = getRestartCount() -- ------------------------------------------------------------- local function prog_init_room() local pom1, pom2, pomb1, pomb2 = 0, 0, false, false room.odjel = 0 room.qopatrne = 0 room.hulakat = random(30) + 10 * pokus room.oci = 0 room.reklopatrne = 0 return function() if small:isTalking() or big:isTalking() then room.hulakat = -1 end if room.odjel == 0 and big:isOut() and isReady(small) then room.odjel = 1 switch(random(3)){ [0] = function() addm(10, "zr-m-takfajn") end, [1] = function() addm(10, "zr-m-tojeon") end, [2] = function() addm(10, "zr-m-pockej") end, } elseif room.qopatrne < 2 and room.reklopatrne == 1 and not small:isAlive() and small.X == 8 and isReady(big) then addv(3, "zr-v-vzdyt") room.qopatrne = 2 end if room.qopatrne < 2 then if isReady(small) and small.X == 9 and isReady(big) and lahev.X == 8 and small:isLeft() and room.qopatrne == 0 then if no_dialog() then addv(1, "zr-v-opatrne") room.reklopatrne = 1 else room.reklopatrne = 0 end room.qopatrne = 1 end end if room.qopatrne == 1 and not small:isLeft() then room.qopatrne = 0 end if isReady(small) and isReady(big) and no_dialog() then if room.hulakat > 0 then room.hulakat = room.hulakat - 1 elseif room.hulakat == 0 then room.hulakat = -1 switch(random(3)){ [0] = function() addv(3, "zr-v-hej") end, [1] = function() addv(3, "zr-v-halo") end, [2] = function() addv(3, "zr-v-jetunekdo") end, } switch(random(3)){ [0] = function() addm(9, "zr-m-nervi") end, [1] = function() addm(9, "zr-m-nepovykuj") end, [2] = function() addm(9, "zr-m-tadyjsem") end, } end if no_dialog() and small.trpelivost == 0 then switch(random(2)){ [0] = function() addm(0, "zr-m-obliceje") end, [1] = function() addm(0, "zr-m-prestan") end, } small.trpelivost = random(600) + 100 end if no_dialog() and peri.cinnost == 7 and room.oci == 0 and random(100) < 50 then addm(5, "zr-m-komu") addv(10, "zr-v-nevim") room.oci = 1 end end end end -- ------------------------------------------------------------- local function prog_init_peri() local pom1, pom2, pomb1, pomb2 = 0, 0, false, false peri.cinnost = 0 return function() local anim_table = { [0] = function() peri.delay = random(100) + 50 peri.cinnost = 1 peri.afaze = 0 end, [1] = function() if peri.delay == 0 then peri.cinnost = peri.cinnost + 1 else peri.delay = peri.delay - 1 end end, [2] = function() peri.afaze = peri.cinnost - 1 peri.cinnost = peri.cinnost + 1 end, [8] = function() peri.delay = random(30) + 15 peri.cinnost = peri.cinnost + 1 end, [9] = function() if math.mod(game_getCycles(), 3) == 0 then peri.afaze = 6 + random(2) end if peri.delay == 0 then peri.cinnost = peri.cinnost + 1 else peri.delay = peri.delay - 1 end end, [10] = function() if random(100) < 30 then peri.cinnost = 20 else peri.cinnost = peri.cinnost + 1 end end, [11] = function() peri.delay = random(5) + 2 peri.cinnost = peri.cinnost + 1 end, [12] = function() if random(100) < 20 then peri.cinnost = peri.cinnost + 1 end end, [13] = function() peri.afaze = 18 - peri.cinnost peri.cinnost = peri.cinnost + 1 end, [16] = function() peri.afaze = peri.cinnost - 12 peri.cinnost = peri.cinnost + 1 end, [19] = function() if peri.delay == 0 then peri.cinnost = 8 else peri.delay = peri.delay - 1 peri.cinnost = 12 end end, [20] = function() peri.afaze = 25 - peri.cinnost peri.cinnost = peri.cinnost + 1 end, [26] = function() peri.cinnost = 0 end, } anim_table[3] = anim_table[2] anim_table[4] = anim_table[2] anim_table[5] = anim_table[2] anim_table[6] = anim_table[2] anim_table[7] = anim_table[2] anim_table[14] = anim_table[13] anim_table[15] = anim_table[13] anim_table[17] = anim_table[16] anim_table[18] = anim_table[16] anim_table[21] = anim_table[20] anim_table[22] = anim_table[20] anim_table[23] = anim_table[20] anim_table[24] = anim_table[20] anim_table[25] = anim_table[20] switch(peri.cinnost)(anim_table) peri:updateAnim() end end -- ------------------------------------------------------------- local function prog_init_zrcadlo() local pom1, pom2, pomb1, pomb2 = 0, 0, false, false zrcadlo:setEffect("mirror") end -- ------------------------------------------------------------- local function prog_init_naboj() local pom1, pom2, pomb1, pomb2 = 0, 0, false, false naboj.nabita = 0 return function() if naboj.nabita == 0 and naboj.X == 12 and naboj.Y == 8 then naboj.nabita = 1 room:talk("zr-x-nabito") end end end -- ------------------------------------------------------------- local function prog_init_small() local pom1, pom2, pomb1, pomb2 = 0, 0, false, false local xicht = 0 small.trpelivost = random(50) + 30 return function() if not small:isLeft() and (xdist(small, zrcadlo) == -1 or xdist(small, zrcadlo) == -2) and ydist(small, zrcadlo) == 0 then if random(100) < 30 then xicht = random(9) end else xicht = 0 end if xicht ~= 0 then small:useSpecialAnim("head_all", xicht) end end end -- ------------------------------------------------------------- local function prog_init_big() local xicht = 0 return function() if not big:isLeft() and (xdist(big, zrcadlo) == -1 or xdist(big, zrcadlo) == -2) and (zrcadlo.Y == big.Y or zrcadlo.Y == big.Y - 1) then if random(100) < 30 then xicht = random(8) end if small.trpelivost > 0 then small.trpelivost = small.trpelivost - 1 end else xicht = 0 end if xicht ~= 0 then big:useSpecialAnim("head_all", xicht) end end end -- -------------------- local update_table = {} local subinit subinit = prog_init_room() if subinit then table.insert(update_table, subinit) end subinit = prog_init_peri() if subinit then table.insert(update_table, subinit) end subinit = prog_init_zrcadlo() if subinit then table.insert(update_table, subinit) end subinit = prog_init_naboj() if subinit then table.insert(update_table, subinit) end subinit = prog_init_small() if subinit then table.insert(update_table, subinit) end subinit = prog_init_big() if subinit then table.insert(update_table, subinit) end return update_table end local update_table = prog_init() -- ----------------------------------------------------------------- -- Update -- ----------------------------------------------------------------- function prog_update() for key, subupdate in pairs(update_table) do subupdate() end end