661 lines
21 KiB
Lua
661 lines
21 KiB
Lua
|
require "sprites"
|
|||
|
require "timer"
|
|||
|
require "xact"
|
|||
|
require "lib"
|
|||
|
|
|||
|
function cleanlines()
|
|||
|
if game.cachefontbox == nil then
|
|||
|
game.cachefontbox = sprite.box(465, 260, "black");
|
|||
|
end
|
|||
|
sprite.copy(game.cachefontbox, sprite.screen(), 45, 300);
|
|||
|
end
|
|||
|
|
|||
|
function drawline(txt,y)
|
|||
|
if game.cachefont == nil then
|
|||
|
game.cachefont = sprite.font("theme/pf7.ttf", 22);
|
|||
|
end
|
|||
|
local w, h = sprite.text_size(game.cachefont, txt);
|
|||
|
local tz = sprite.text(game.cachefont, txt, "gray");
|
|||
|
sprite.draw(tz, sprite.screen(), (465-w)/2+30, y);
|
|||
|
sprite.free(tz);
|
|||
|
sprite.free(bx);
|
|||
|
end
|
|||
|
|
|||
|
function titleroom(r)
|
|||
|
local timer = r.timer;
|
|||
|
r.timer = function(s)
|
|||
|
if game.codec == nil then
|
|||
|
game.codec = 0;
|
|||
|
end
|
|||
|
local spr = loadsprite("code");
|
|||
|
sprite.copy(spr, 0, game.codec, 180, 483, sprite.screen(), 578, 35);
|
|||
|
game.codec = game.codec + 2;
|
|||
|
if timer ~= nil then
|
|||
|
return timer(s);
|
|||
|
end
|
|||
|
end
|
|||
|
return room(r);
|
|||
|
end
|
|||
|
|
|||
|
function drawbg(s)
|
|||
|
if not main.bgdrawn then
|
|||
|
local px = sprite.load("theme/back.png");
|
|||
|
sprite.copy(px, sprite.screen(), 0, 0);
|
|||
|
sprite.free(px);
|
|||
|
main.bgdrawn = true;
|
|||
|
end
|
|||
|
if not s.bgdrawn then
|
|||
|
local px = sprite.box(500, 200, "black");
|
|||
|
sprite.copy(px, sprite.screen(), 30, 30);
|
|||
|
sprite.free(px);
|
|||
|
cleanlines();
|
|||
|
s.bgdrawn = true;
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
main = room {
|
|||
|
nam = ""
|
|||
|
,enter = function(s)
|
|||
|
mute_(0,0)();
|
|||
|
music_("datagroove")();
|
|||
|
timer:set(600);
|
|||
|
end
|
|||
|
,timer = function(s)
|
|||
|
timer:stop();
|
|||
|
walk(title1);
|
|||
|
end
|
|||
|
}
|
|||
|
|
|||
|
title1 = titleroom {
|
|||
|
nam = ""
|
|||
|
,enter = function(s)
|
|||
|
timer:set(200);
|
|||
|
end
|
|||
|
,prepare = function(s)
|
|||
|
drawbg(s);
|
|||
|
if not s.directdrawn then
|
|||
|
local tab = sprite.load("gfx/table5.png");
|
|||
|
sprite.copy(tab, sprite.screen(), 130, 110);
|
|||
|
sprite.free(tab);
|
|||
|
local door = sprite.load("gfx/door4.png");
|
|||
|
sprite.copy(door, 0, 0, 70, 140, sprite.screen(), 460, 90);
|
|||
|
sprite.free(door);
|
|||
|
s.directdrawn = true;
|
|||
|
end
|
|||
|
end
|
|||
|
,timer = function(s)
|
|||
|
s:prepare();
|
|||
|
if s._frame == nil then
|
|||
|
s._frame = 0;
|
|||
|
end
|
|||
|
local spr1 = loadsprite("ratsmall");
|
|||
|
local spr2 = loadsprite("rat");
|
|||
|
if s._frame == 1 then
|
|||
|
play_sound("cork");
|
|||
|
sprite.copy(spr1, sprite.screen(), 40, 195);
|
|||
|
elseif s._frame == 2 then
|
|||
|
sprite.copy(spr2, sprite.screen(), 40, 165);
|
|||
|
elseif s._frame == 4 then
|
|||
|
play_sound("cork");
|
|||
|
sprite.copy(spr1, sprite.screen(), 120, 135);
|
|||
|
elseif s._frame == 5 then
|
|||
|
sprite.copy(spr2, sprite.screen(), 120, 105);
|
|||
|
elseif s._frame == 7 then
|
|||
|
play_sound("cork");
|
|||
|
sprite.copy(spr1, sprite.screen(), 270, 135);
|
|||
|
elseif s._frame == 8 then
|
|||
|
sprite.copy(spr2, sprite.screen(), 270, 105);
|
|||
|
elseif s._frame == 10 then
|
|||
|
play_sound("cork");
|
|||
|
sprite.copy(spr1, sprite.screen(), 340, 195);
|
|||
|
elseif s._frame == 11 then
|
|||
|
sprite.copy(spr2, sprite.screen(), 340, 165);
|
|||
|
elseif s._frame == 13 then
|
|||
|
play_sound("cork");
|
|||
|
sprite.copy(spr1, sprite.screen(), 405, 195);
|
|||
|
elseif s._frame == 14 then
|
|||
|
sprite.copy(spr2, sprite.screen(), 405, 165);
|
|||
|
elseif s._frame == 16 then
|
|||
|
drawline("платформа instead", 400);
|
|||
|
drawline("ПЁТР КОСЫХ", 430);
|
|||
|
elseif s._frame == 26 then
|
|||
|
cleanlines();
|
|||
|
drawline("составление сборника", 400);
|
|||
|
drawline("ВАСИЛИЙ ВОРОНКОВ", 430);
|
|||
|
elseif s._frame == 36 then
|
|||
|
cleanlines();
|
|||
|
drawline("графика и оформление", 400);
|
|||
|
drawline("ВАСИЛИЙ ВОРОНКОВ", 430);
|
|||
|
elseif s._frame == 46 then
|
|||
|
return walk(title2);
|
|||
|
end
|
|||
|
s._frame = s._frame + 1;
|
|||
|
end
|
|||
|
,exit = function(s)
|
|||
|
timer:stop();
|
|||
|
s._frame = nil;
|
|||
|
end
|
|||
|
}
|
|||
|
|
|||
|
title2 = titleroom {
|
|||
|
nam = ""
|
|||
|
,enter = function(s)
|
|||
|
timer:set(200);
|
|||
|
end
|
|||
|
,prepare = function(s)
|
|||
|
drawbg(s);
|
|||
|
end
|
|||
|
,timer = function(s)
|
|||
|
s:prepare();
|
|||
|
if s._frame == nil then
|
|||
|
s._frame = 0;
|
|||
|
end
|
|||
|
if s.bx == nil then
|
|||
|
s.bx = sprite.box(300, 172, "black");
|
|||
|
end
|
|||
|
local spr4 = loadsprite("crio_blood");
|
|||
|
|
|||
|
local spr1 = loadsprite("mutant2");
|
|||
|
local spr2 = loadsprite("mutant3");
|
|||
|
local spr3 = loadsprite("mutant4");
|
|||
|
|
|||
|
if s._frame == 1 then
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr3, sprite.screen(), 150, 58);
|
|||
|
elseif s._frame == 2 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr2, sprite.screen(), 155, 58);
|
|||
|
elseif s._frame == 3 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr1, sprite.screen(), 160, 58);
|
|||
|
elseif s._frame == 4 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr2, sprite.screen(), 155, 58);
|
|||
|
elseif s._frame == 5 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr3, sprite.screen(), 150, 58);
|
|||
|
|
|||
|
|
|||
|
elseif s._frame == 6 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr2, sprite.screen(), 155, 58);
|
|||
|
elseif s._frame == 7 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr1, sprite.screen(), 160, 58);
|
|||
|
elseif s._frame == 8 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr2, sprite.screen(), 155, 58);
|
|||
|
elseif s._frame == 9 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr3, sprite.screen(), 150, 58);
|
|||
|
|
|||
|
|
|||
|
elseif s._frame == 10 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr2, sprite.screen(), 155, 58);
|
|||
|
elseif s._frame == 11 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr1, sprite.screen(), 160, 58);
|
|||
|
elseif s._frame == 12 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr2, sprite.screen(), 155, 58);
|
|||
|
elseif s._frame == 13 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 58);
|
|||
|
sprite.copy(spr4, sprite.screen(), 230, 75);
|
|||
|
sprite.draw(spr3, sprite.screen(), 150, 58);
|
|||
|
|
|||
|
elseif s._frame == 15 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("АНДРЕЙ ЛОБАНОВ", 430);
|
|||
|
elseif s._frame == 25 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("АНТОН И ОЛЬГА КОЛОСОВЫ", 430);
|
|||
|
elseif s._frame == 35 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("ВАСИЛИЙ ВОРОНКОВ", 430);
|
|||
|
elseif s._frame == 45 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("ДМИТРИЙ ДУДАРЬ", 430);
|
|||
|
elseif s._frame == 55 then
|
|||
|
return walk(title3);
|
|||
|
end
|
|||
|
|
|||
|
s._frame = s._frame + 1;
|
|||
|
end
|
|||
|
,exit = function(s)
|
|||
|
timer:stop();
|
|||
|
s._frame = nil;
|
|||
|
if s.bx ~= nil then
|
|||
|
sprite.free(s.bx);
|
|||
|
s.bx = nil;
|
|||
|
end
|
|||
|
end
|
|||
|
}
|
|||
|
|
|||
|
title3 = titleroom {
|
|||
|
nam = ""
|
|||
|
,enter = function(s)
|
|||
|
timer:set(200);
|
|||
|
end
|
|||
|
,prepare = function(s)
|
|||
|
drawbg(s);
|
|||
|
end
|
|||
|
,timer = function(s)
|
|||
|
s:prepare();
|
|||
|
if s._frame == nil then
|
|||
|
s._frame = 0;
|
|||
|
end
|
|||
|
if s.bx == nil then
|
|||
|
s.bx = sprite.box(60, 65, "black");
|
|||
|
end
|
|||
|
if s.bx2 == nil then
|
|||
|
s.bx2 = sprite.box(40, 45, "black");
|
|||
|
end
|
|||
|
local spr1 = loadsprite("rat");
|
|||
|
local spr2 = loadsprite("rat_dead");
|
|||
|
if s._frame == 1 then
|
|||
|
sprite.copy(spr1, sprite.screen(), 400, 165);
|
|||
|
elseif s._frame == 2 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 400, 165);
|
|||
|
sprite.copy(spr1, sprite.screen(), 390, 160);
|
|||
|
elseif s._frame == 3 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 390, 160);
|
|||
|
sprite.copy(spr1, sprite.screen(), 380, 155);
|
|||
|
elseif s._frame == 4 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 380, 155);
|
|||
|
sprite.copy(spr1, sprite.screen(), 370, 150);
|
|||
|
elseif s._frame == 5 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 370, 150);
|
|||
|
sprite.copy(spr1, sprite.screen(), 360, 155);
|
|||
|
elseif s._frame == 6 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 360, 155);
|
|||
|
sprite.copy(spr1, sprite.screen(), 350, 160);
|
|||
|
elseif s._frame == 7 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 350, 160);
|
|||
|
sprite.copy(spr1, sprite.screen(), 340, 165);
|
|||
|
|
|||
|
elseif s._frame == 8 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 340, 165);
|
|||
|
sprite.copy(spr1, sprite.screen(), 330, 160);
|
|||
|
elseif s._frame == 9 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 330, 160);
|
|||
|
sprite.copy(spr1, sprite.screen(), 320, 155);
|
|||
|
elseif s._frame == 10 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 320, 155);
|
|||
|
sprite.copy(spr1, sprite.screen(), 310, 150);
|
|||
|
elseif s._frame == 11 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 310, 150);
|
|||
|
sprite.copy(spr1, sprite.screen(), 300, 155);
|
|||
|
elseif s._frame == 12 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 300, 155);
|
|||
|
sprite.copy(spr1, sprite.screen(), 290, 160);
|
|||
|
elseif s._frame == 13 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 290, 160);
|
|||
|
sprite.copy(spr1, sprite.screen(), 280, 165);
|
|||
|
|
|||
|
elseif s._frame == 14 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 280, 165);
|
|||
|
sprite.copy(spr1, sprite.screen(), 270, 160);
|
|||
|
elseif s._frame == 15 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 270, 160);
|
|||
|
sprite.copy(spr1, sprite.screen(), 260, 155);
|
|||
|
elseif s._frame == 16 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 260, 155);
|
|||
|
sprite.copy(spr1, sprite.screen(), 250, 150);
|
|||
|
elseif s._frame == 17 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 250, 150);
|
|||
|
sprite.copy(spr1, sprite.screen(), 240, 155);
|
|||
|
elseif s._frame == 18 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 240, 155);
|
|||
|
sprite.copy(spr1, sprite.screen(), 230, 160);
|
|||
|
elseif s._frame == 19 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 230, 160);
|
|||
|
sprite.copy(spr1, sprite.screen(), 220, 165);
|
|||
|
|
|||
|
elseif s._frame == 20 then
|
|||
|
sprite.draw(loadsprite("shoot"), sprite.screen(), 30, 180);
|
|||
|
elseif s._frame == 21 then
|
|||
|
sprite.copy(s.bx2, sprite.screen(), 30, 180);
|
|||
|
sprite.draw(loadsprite("shoot"), sprite.screen(), 70, 180);
|
|||
|
elseif s._frame == 22 then
|
|||
|
sprite.copy(s.bx2, sprite.screen(), 70, 180);
|
|||
|
sprite.draw(loadsprite("shoot"), sprite.screen(), 110, 180);
|
|||
|
elseif s._frame == 23 then
|
|||
|
sprite.copy(s.bx2, sprite.screen(), 110, 180);
|
|||
|
sprite.draw(loadsprite("shoot"), sprite.screen(), 150, 180);
|
|||
|
elseif s._frame == 24 then
|
|||
|
sprite.copy(s.bx2, sprite.screen(), 150, 180);
|
|||
|
sprite.draw(loadsprite("shoot"), sprite.screen(), 190, 180);
|
|||
|
elseif s._frame == 25 then
|
|||
|
sprite.copy(s.bx2, sprite.screen(), 190, 180);
|
|||
|
sprite.copy(spr2, sprite.screen(), 220, 130);
|
|||
|
|
|||
|
|
|||
|
elseif s._frame == 27 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("ДМИТРИЙ КОЛЕСНИКОВ", 430);
|
|||
|
elseif s._frame == 37 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("ЕГОР ХАРВАТ", 430);
|
|||
|
elseif s._frame == 47 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("МАКСИМ КЛИШ", 430);
|
|||
|
elseif s._frame == 57 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("МАКСИМ J-MAKS", 430);
|
|||
|
elseif s._frame == 67 then
|
|||
|
return walk(title4);
|
|||
|
end
|
|||
|
s._frame = s._frame + 1;
|
|||
|
end
|
|||
|
,exit = function(s)
|
|||
|
timer:stop();
|
|||
|
s._frame = nil;
|
|||
|
if s.bx ~= nil then
|
|||
|
sprite.free(s.bx);
|
|||
|
s.bx =nil;
|
|||
|
end
|
|||
|
if s.bx2 ~= nil then
|
|||
|
sprite.free(s.bx2);
|
|||
|
s.bx2=nil;
|
|||
|
end
|
|||
|
end
|
|||
|
}
|
|||
|
|
|||
|
title4 = titleroom {
|
|||
|
nam = ""
|
|||
|
,enter = function(s)
|
|||
|
timer:set(200);
|
|||
|
end
|
|||
|
,prepare = function(s)
|
|||
|
drawbg(s);
|
|||
|
end
|
|||
|
,timer = function(s)
|
|||
|
s:prepare();
|
|||
|
if s._frame == nil then
|
|||
|
s._frame = 0;
|
|||
|
end
|
|||
|
if s.bx == nil then
|
|||
|
s.bx = sprite.box(200, 125, "black");
|
|||
|
end
|
|||
|
local spr1 = loadsprite("robodance1");
|
|||
|
local spr2 = loadsprite("robodance2");
|
|||
|
local spr3 = loadsprite("robodance3");
|
|||
|
local spr4 = loadsprite("robodance4");
|
|||
|
local spr5 = loadsprite("robodance5");
|
|||
|
local spr6 = loadsprite("robodance6");
|
|||
|
|
|||
|
if s._frame == 1 then
|
|||
|
sprite.copy(spr2, sprite.screen(), 180, 105);
|
|||
|
elseif s._frame == 2 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 180, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 170, 105);
|
|||
|
elseif s._frame == 3 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 170, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 160, 105);
|
|||
|
elseif s._frame == 4 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 160, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 150, 105);
|
|||
|
elseif s._frame == 5 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 150, 105);
|
|||
|
sprite.copy(spr3, sprite.screen(), 160, 105);
|
|||
|
elseif s._frame == 6 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 160, 105);
|
|||
|
sprite.copy(spr3, sprite.screen(), 170, 105);
|
|||
|
elseif s._frame == 7 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 170, 105);
|
|||
|
sprite.copy(spr3, sprite.screen(), 180, 105);
|
|||
|
elseif s._frame == 8 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 180, 105);
|
|||
|
sprite.copy(spr3, sprite.screen(), 190, 105);
|
|||
|
elseif s._frame == 9 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 190, 105);
|
|||
|
sprite.copy(spr3, sprite.screen(), 200, 105);
|
|||
|
elseif s._frame == 10 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 200, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 190, 105);
|
|||
|
elseif s._frame == 11 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 190, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 180, 105);
|
|||
|
elseif s._frame == 11 then
|
|||
|
sprite.copy(spr4, sprite.screen(), 180, 105);
|
|||
|
elseif s._frame == 12 then
|
|||
|
sprite.copy(spr5, sprite.screen(), 180, 105);
|
|||
|
elseif s._frame == 13 then
|
|||
|
sprite.copy(spr6, sprite.screen(), 180, 105);
|
|||
|
|
|||
|
elseif s._frame == 15 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("ПЁТР КОСЫХ", 430);
|
|||
|
elseif s._frame == 25 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("РОМАН IRREMAN", 430);
|
|||
|
elseif s._frame == 35 then
|
|||
|
cleanlines();
|
|||
|
drawline("авторы игр", 400);
|
|||
|
drawline("ZERG.PRO", 430);
|
|||
|
elseif s._frame == 45 then
|
|||
|
return walk(title5);
|
|||
|
end
|
|||
|
|
|||
|
s._frame = s._frame + 1;
|
|||
|
end
|
|||
|
,exit = function(s)
|
|||
|
timer:stop();
|
|||
|
s._frame = nil;
|
|||
|
if s.bx ~= nil then
|
|||
|
sprite.free(s.bx);
|
|||
|
s.bx = nil;
|
|||
|
end
|
|||
|
end
|
|||
|
}
|
|||
|
|
|||
|
title5 = titleroom {
|
|||
|
nam = ""
|
|||
|
,enter = function(s)
|
|||
|
timer:set(200);
|
|||
|
end
|
|||
|
,prepare = function(s)
|
|||
|
drawbg(s);
|
|||
|
if not s.directdrawn then
|
|||
|
local spr = loadsprite("hatch2");
|
|||
|
sprite.copy(spr, sprite.screen(), 330, 30);
|
|||
|
s.directdrawn = true;
|
|||
|
end
|
|||
|
end
|
|||
|
,timer = function(s)
|
|||
|
s:prepare();
|
|||
|
if s._frame == nil then
|
|||
|
s._frame = 0;
|
|||
|
end
|
|||
|
if s.bx == nil then
|
|||
|
s.bx = sprite.box(55, 124, "black");
|
|||
|
end
|
|||
|
if s.bx2 == nil then
|
|||
|
s.bx2 = sprite.box(240, 80, "black");
|
|||
|
end
|
|||
|
local spr1 = loadsprite("zombi");
|
|||
|
local spr2 = loadsprite("zombi_short");
|
|||
|
if s._frame == 1 then
|
|||
|
sprite.copy(spr1, sprite.screen(), 400, 105);
|
|||
|
elseif s._frame == 2 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 400, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 395, 105);
|
|||
|
elseif s._frame == 3 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 395, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 390, 105);
|
|||
|
elseif s._frame == 4 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 390, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 385, 105);
|
|||
|
elseif s._frame == 5 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 385, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 380, 105);
|
|||
|
elseif s._frame == 6 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 380, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 375, 105);
|
|||
|
elseif s._frame == 7 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 375, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 370, 105);
|
|||
|
|
|||
|
elseif s._frame == 8 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 370, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 365, 105);
|
|||
|
elseif s._frame == 9 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 365, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 360, 105);
|
|||
|
elseif s._frame == 10 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 360, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 355, 105);
|
|||
|
elseif s._frame == 11 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 355, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 350, 105);
|
|||
|
elseif s._frame == 12 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 350, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 345, 105);
|
|||
|
elseif s._frame == 13 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 345, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 340, 105);
|
|||
|
|
|||
|
elseif s._frame == 14 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 340, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 335, 105);
|
|||
|
elseif s._frame == 15 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 335, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 330, 105);
|
|||
|
elseif s._frame == 16 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 330, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 325, 105);
|
|||
|
elseif s._frame == 17 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 325, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 320, 105);
|
|||
|
elseif s._frame == 18 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 320, 105);
|
|||
|
sprite.copy(spr2, sprite.screen(), 315, 105);
|
|||
|
elseif s._frame == 19 then
|
|||
|
sprite.copy(s.bx, sprite.screen(), 315, 105);
|
|||
|
sprite.copy(spr1, sprite.screen(), 310, 105);
|
|||
|
elseif s._frame == 20 then
|
|||
|
sprite.copy(loadsprite("doorclose"), sprite.screen(), 40, 120);
|
|||
|
elseif s._frame == 23 then
|
|||
|
sprite.copy(s.bx2, sprite.screen(), 40, 120);
|
|||
|
sprite.copy(s.bx, sprite.screen(), 310, 105);
|
|||
|
sprite.draw(loadsprite("zombi_dead"), sprite.screen(), 260, 175);
|
|||
|
sprite.copy(loadsprite("hatch"), sprite.screen(), 330, 30);
|
|||
|
|
|||
|
|
|||
|
elseif s._frame == 25 then
|
|||
|
cleanlines();
|
|||
|
drawline("музыка", 400);
|
|||
|
drawline("8BIT BETTY", 430);
|
|||
|
elseif s._frame == 35 then
|
|||
|
cleanlines();
|
|||
|
drawline("музыка", 400);
|
|||
|
drawline("J. ARTHUR KEENES", 430);
|
|||
|
elseif s._frame == 45 then
|
|||
|
cleanlines();
|
|||
|
drawline("музыка", 400);
|
|||
|
drawline("ROLEMUSIC", 430);
|
|||
|
elseif s._frame == 55 then
|
|||
|
cleanlines();
|
|||
|
drawline("музыка", 400);
|
|||
|
drawline("GOTO80", 430);
|
|||
|
elseif s._frame == 65 then
|
|||
|
cleanlines();
|
|||
|
drawline("музыка", 400);
|
|||
|
drawline("EDWARD SHALLOW", 430);
|
|||
|
elseif s._frame == 75 then
|
|||
|
mute_()();
|
|||
|
theme.gfx.reset();
|
|||
|
main.bgdrawn = nil;
|
|||
|
title1.directdrawn=nil;
|
|||
|
title2.directdrawn=nil;
|
|||
|
title3.directdrawn=nil;
|
|||
|
title4.directdrawn=nil;
|
|||
|
title5.directdrawn=nil;
|
|||
|
title1.bgdrawn=nil;
|
|||
|
title2.bgdrawn=nil;
|
|||
|
title3.bgdrawn=nil;
|
|||
|
title4.bgdrawn=nil;
|
|||
|
title5.bgdrawn=nil;
|
|||
|
game.codec=nil;
|
|||
|
if game.cachefont ~= nil then
|
|||
|
sprite.free_font(cachefont);
|
|||
|
game.cachefont = nil;
|
|||
|
end
|
|||
|
if game.cachefontbox ~= nil then
|
|||
|
sprite.free(game.cachefontbox);
|
|||
|
game.cachefontbox = nil;
|
|||
|
end
|
|||
|
return walk(hend1);
|
|||
|
end
|
|||
|
|
|||
|
s._frame = s._frame + 1;
|
|||
|
end
|
|||
|
,exit = function(s)
|
|||
|
timer:stop();
|
|||
|
s._frame = nil;
|
|||
|
if s.bx ~= nil then
|
|||
|
sprite.free(s.bx);
|
|||
|
s.bx = nil;
|
|||
|
end
|
|||
|
if s.bx2 ~= nil then
|
|||
|
sprite.free(s.bx2);
|
|||
|
s.bx2 = nil;
|
|||
|
end
|
|||
|
end
|
|||
|
}
|
|||
|
|
|||
|
hend1 = room {
|
|||
|
nam = "Конец"
|
|||
|
,pxa = {
|
|||
|
{ "planet", 172, 22 }
|
|||
|
}
|
|||
|
,dsc = "{xwalk(hend2)|-- Адмирал, есть ещё кое-что...}"
|
|||
|
}
|
|||
|
|
|||
|
hend2 = room {
|
|||
|
nam = 'Конец';
|
|||
|
enter = music_("poppies",0);
|
|||
|
pxa = {
|
|||
|
{ "planet", 172, 22 }
|
|||
|
};
|
|||
|
act = function()
|
|||
|
complete_("insteadose")();
|
|||
|
gamefile_("main.lua")();
|
|||
|
end;
|
|||
|
dsc = [[
|
|||
|
-- Я думаю вы должны знать.^
|
|||
|
-- Да?^
|
|||
|
-- Мы выяснили, куда делись жители планеты...^
|
|||
|
-- И?^
|
|||
|
-- Похоже, они отправились к Земле...
|
|||
|
]];
|
|||
|
obj = { vobj("next", txtc("{КОНЕЦ}")) }
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|