1 2-- ----------------------------------------------------------------- 3-- Init 4-- ----------------------------------------------------------------- 5local function prog_init() 6 initModels() 7 sound_playMusic("music/rybky01.ogg") 8 local pokus = getRestartCount() 9 10 11 -- ------------------------------------------------------------- 12 local function prog_init_room() 13 local pom1, pom2, pomb1, pomb2 = 0, 0, false, false 14 15 room.uvod = 0 16 room.zatrpocitadlo = 1000 + random(4000) 17 room.zavazi = 0 18 room.klauspocitadlo = 500 + random(1500) 19 room.stolecky = 0 20 room.prycpocitadlo = 500 + random(1500) 21 room.hrncisko = 0 22 room.kresilko = 0 23 room.ss = 0 24 room.osam = 0 25 local roompole = createArray(4) 26 if roompole[3] == 2 then 27 roompole[3] = 1 28 end 29 room.stoji = 0 30 room.uprava = 0 31 32 return function() 33 if no_dialog() and isReady(small) and isReady(big) then 34 if room.zatrpocitadlo > 0 then 35 room.zatrpocitadlo = room.zatrpocitadlo - 1 36 end 37 if room.klauspocitadlo > 0 then 38 room.klauspocitadlo = room.klauspocitadlo - 1 39 end 40 if room.prycpocitadlo > 0 then 41 room.prycpocitadlo = room.prycpocitadlo - 1 42 end 43 if room.uvod == 0 then 44 room.uvod = 1 45 pom1 = random(20) 46 if pokus == 1 then 47 pom1 = 3 48 end 49 if 0 <= pom1 and pom1 <= 5 then 50 addm(9 + random(35), "kuch-m-objev0") 51 elseif 6 <= pom1 and pom1 <= 9 then 52 addm(9 + random(35), "kuch-m-objev1") 53 elseif 10 <= pom1 and pom1 <= 17 then 54 addm(9 + random(42), "kuch-m-objev3") 55 if random(100) > pokus * 8 or random(100) < 30 then 56 addv(12, "kuch-v-varil") 57 addv(7, "kuch-v-problem") 58 addm(14, "kuch-m-noproblem") 59 addv(5, "kuch-v-podivej") 60 end 61 elseif pom1 == 18 then 62 addm(9 + random(35), "kuch-m-objev2") 63 room.zatrpocitadlo = -1 64 end 65 elseif room.uvod == 1 and room.stolecky == 0 and big.pryc == 0 and random(70) == 1 then 66 room.stolecky = 1 67 if random(40 * pokus) < 50 then 68 addv(9 + random(100), "kuch-v-stolky0") 69 end 70 elseif room.zatrpocitadlo == 0 then 71 room.zatrpocitadlo = -1 72 addm(9, "kuch-m-objev2") 73 elseif room.zavazi == 0 and zavazedlo2.X == 39 and zavazedlo2.Y == 9 and random(10 * pokus) == 1 then 74 room.zavazi = 1 75 if pokus < 5 or random(100) < 40 then 76 addv(9, "kuch-v-stolky1") 77 if random(100) < 40 and room.zatrpocitadlo > -1 then 78 room.zatrpocitadlo = -1 79 addm(9, "kuch-m-objev2") 80 end 81 end 82 elseif room.klauspocitadlo == 0 and big.pryc == 0 then 83 room.klauspocitadlo = 2000 + random(10000) 84 if pokus < 6 or random(100) < 50 then 85 addv(9, "kuch-v-stolky2") 86 end 87 elseif room.prycpocitadlo == 0 and big.pryc == 0 then 88 room.prycpocitadlo = -1 89 if pokus < 10 or random(100) < 50 then 90 if random(100) < 70 then 91 addv(9, "kuch-v-odsud0") 92 if random(100) < 30 then 93 addv(9, "kuch-v-odsud1") 94 end 95 if random(100) < 25 then 96 addm(9, "kuch-m-premyslim0") 97 end 98 else 99 addv(9, "kuch-v-odsud1") 100 end 101 if random(100) < 90 or pokus == 1 then 102 if small.dir ~= dir_no and random(100) < 50 then 103 addm(6, "kuch-m-premyslim2") 104 elseif random(100) < 45 then 105 addm(9, "kuch-m-premyslim0") 106 else 107 addm(16, "kuch-m-premyslim1") 108 end 109 end 110 end 111 elseif room.hrncisko == 0 and dist(spindira, small) < 2 and random(100) < 10 then 112 room.hrncisko = 1 113 if pokus < 6 or random(100) < 50 then 114 switch(random(3)){ 115 [0] = function() 116 addm(9, "kuch-m-hrnec0") 117 if random(100) < 35 then 118 addm(9, "kuch-m-hrnec2") 119 end 120 end, 121 [1] = function() 122 addm(9, "kuch-m-hrnec1") 123 end, 124 [2] = function() 125 addm(9, "kuch-m-hrnec2") 126 end, 127 } 128 end 129 elseif room.kresilko == 0 and dist(kreslak, big) < 4 and (random(100) < 50 or roompole[1] == 0) then 130 room.kresilko = 1 131 addv(9, "kuch-v-kreslo0") 132 if random(100) < 70 then 133 addv(16, "kuch-v-ja") 134 end 135 if roompole[1] == 0 or random(100) < 70 then 136 if random(100) < 50 then 137 addm(9, "kuch-m-kreslo0") 138 else 139 addv(9, "kuch-v-kreslo1") 140 if random(100) < 65 then 141 addm(7, "kuch-m-kreslo2") 142 end 143 end 144 end 145 roompole[1] = 1 146 elseif room.ss == 0 and dist(small, stolek) < 2 and random(100) == 1 then 147 addm(4, "kuch-m-stolky") 148 addv(8, "kuch-v-serie") 149 addm(8, "kuch-m-pekne") 150 room.ss = 1 151 elseif room.osam == 0 and big.dole ~= 0 and random(100) == 1 then 152 room.osam = 1 153 addv(5, "kuch-v-obavam") 154 elseif roompole[3] < 2 and dist(big, mecik) < 3 and random(50) == 1 then 155 if roompole[3] == 0 or random(2) == 1 then 156 roompole[3] = 2 157 addv(5, "kuch-v-mec") 158 addm(8, "kuch-m-porcovani") 159 addv(7, "kuch-v-nedela") 160 end 161 elseif room.uprava == 0 and papir.dir ~= dir_no and random(14) == 1 then 162 room.uprava = 1 163 addv(7, "kuch-v-svitek"..random(2)) 164 if random(2) == 1 then 165 addm(8, "kuch-m-recept") 166 else 167 addm(8, "kuch-m-kuchari") 168 end 169 elseif room.stoji > 1000 + 2000 * roompole[2] and big.pryc == 1 then 170 room.stoji = 0 171 addm(16, "kuch-m-zapeklite") 172 roompole[2] = roompole[2] + 1 173 end 174 end 175 room.stoji = room.stoji + 1 176 end 177 end 178 179 -- ------------------------------------------------------------- 180 local function prog_init_big() 181 local pom1, pom2, pomb1, pomb2 = 0, 0, false, false 182 183 big.pryc = 0 184 big.dole = 0 185 186 return function() 187 if big.X < 32 or big.Y > 13 then 188 big.pryc = 1 189 room.zavazi = 1 190 end 191 if big.X > 15 and big.Y > 20 then 192 big.dole = 1 193 else 194 big.dole = 0 195 end 196 if big.dir ~= dir_no then 197 room.stoji = 0 198 end 199 end 200 end 201 202 -- ------------------------------------------------------------- 203 local function prog_init_small() 204 return function() 205 if small.dir ~= dir_no then 206 room.stoji = 0 207 end 208 end 209 end 210 211 -- -------------------- 212 local update_table = {} 213 local subinit 214 subinit = prog_init_room() 215 if subinit then 216 table.insert(update_table, subinit) 217 end 218 subinit = prog_init_big() 219 if subinit then 220 table.insert(update_table, subinit) 221 end 222 subinit = prog_init_small() 223 if subinit then 224 table.insert(update_table, subinit) 225 end 226 return update_table 227end 228local update_table = prog_init() 229 230 231-- ----------------------------------------------------------------- 232-- Update 233-- ----------------------------------------------------------------- 234function prog_update() 235 for key, subupdate in pairs(update_table) do 236 subupdate() 237 end 238end 239 240