home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky05.ogg")
- local pokus = getRestartCount()
- local roompole = createArray(3)
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.rozh = random(50) + 10
- --NOTE: turn off standard black jokes
- stdBlackJoke = function() end
-
- return function()
- if game_getCycles() == room.rozh then
- room.rozh = room.rozh + 500 + random(1000)
- if no_dialog() then
- if random(5) == 1 then
- addm(2, "tr-m-ztuhl")
- else
- addm(3, "tr-m-chlad"..(random(2) + 1))
- if game_getCycles() < 2000 or random(3) == 1 then
- addv(5, "tr-v-jid"..(random(2) + 1))
- end
- end
- end
- end
- if isReady(small) and not isReady(big) and not big:isOut() then
- if snehulak.Y <= 5 then
- if roompole[1] == 0 or pokus - roompole[1] > random(20) then
- roompole[1] = pokus
- addm(11, "tr-m-cvicit")
- end
- end
- end
- if isReady(big) and not small:isAlive() then
- if snehulak.Y >= 5 then
- if roompole[2] == 0 or pokus - roompole[2] > random(20) then
- roompole[2] = pokus
- addv(14, "tr-v-prezil")
- end
- end
- end
- if snehulak.uder > 4 and no_dialog() and isReady(big) and isReady(small) then
- if odd(pokus) then
- addv(4, "tr-v-agres")
- snehulak.uder = -10
- end
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_snehulak()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- snehulak.prastil = 0
- snehulak.uder = 0
-
- return function()
- if snehulak.dir == dir_down and ocel.dir ~= dir_down then
- snehulak.afaze = 2
- else
- if snehulak.afaze == 2 then
- snehulak.afaze = 1
- end
- pom1 = snehulak.afaze
- pomb1 = isReady(small) and small.X + 2 == snehulak.X and small.Y - 2 == snehulak.Y and not small:isLeft()
- if not pomb1 then
- snehulak.afaze = 0
- snehulak.prastil = 0
- elseif snehulak.dir == dir_right then
- if odd(game_getCycles()) then
- snehulak.afaze = 1 - snehulak.afaze
- end
- else
- if snehulak.prastil == 0 then
- snehulak.prastil = -3
- snehulak.afaze = 1
- else
- if snehulak.prastil < -1 then
- snehulak.prastil = snehulak.prastil + 1
- end
- if snehulak.prastil == -1 then
- snehulak.afaze = 0
- end
- end
- end
- if pom1 == 0 and snehulak.afaze == 1 then
- snehulak:talk("tr-x-koste", VOLUME_FULL)
- if no_dialog() then
- addm(2, "tr-m-au"..(random(2) + 1))
- end
- snehulak.uder = snehulak.uder + 1
- end
- end
- snehulak:updateAnim()
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_snehulak()
- 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
-
-