You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.2 KiB
141 lines
3.2 KiB
letters = {
|
|
{[[
|
|
phoebe,
|
|
|
|
i know you looked
|
|
forward to the
|
|
fireworks festival
|
|
every year but our
|
|
travels are going
|
|
to keep us away again
|
|
this year. i'm so
|
|
sorry.
|
|
|
|
mom & dad]]},
|
|
{[[
|
|
phoebe,
|
|
|
|
i need purified water.
|
|
bring it to the hospital.
|
|
i'll give you reagent
|
|
in return.
|
|
|
|
-- lenore
|
|
]],}
|
|
}
|
|
letter_idx = 2
|
|
letters_offset_x = -10-80
|
|
letters_offset_y = 8+8
|
|
|
|
function letters_move_to(x1, y1, x2, y2)
|
|
return {
|
|
timer = 0,
|
|
active=true,
|
|
|
|
before=function(s)
|
|
letters_offset_x = x1
|
|
letters_offset_y = y1
|
|
sfx(2)
|
|
end,
|
|
|
|
update=function(s)
|
|
letters_offset_x = x1 + (s.timer/0.2)*(x2-x1)
|
|
letters_offset_y = y1 + (s.timer/0.2)*(y2-y1)
|
|
if s.timer > 0.2 then
|
|
letters_offset_x = x2
|
|
letters_offset_y = y2
|
|
s.active=false
|
|
end
|
|
end,
|
|
|
|
draw=function(s) end,
|
|
}
|
|
end
|
|
|
|
function letters_move_out(x1, y1, x2, y2)
|
|
new = letters_move_to(x1, y1, x2, y2)
|
|
--[[new.draw = function(s)
|
|
draw_paper(letters_offset_x, letters_offset_y, 128, 128)
|
|
draw_letter_on_paper(letters[letter_idx], letters_offset_x+14, letters_offset_y+4)
|
|
end]]
|
|
return new
|
|
end
|
|
|
|
function flip_away_letter(page)
|
|
return {
|
|
prev_page_idx = page,
|
|
|
|
timer = 0,
|
|
t2 = 0,
|
|
active=true,
|
|
|
|
before=function(s)
|
|
sfx(2)
|
|
end,
|
|
|
|
update=function(s)
|
|
if s.timer > 0.2 then s.active=false end
|
|
s.t2 = s.timer
|
|
end,
|
|
|
|
draw=function(s)
|
|
local page_flip = 600*s.t2
|
|
local x = letters_offset_x + page_flip
|
|
local y = letters_offset_y + 0.1*page_flip
|
|
draw_paper(x, y, 128, 128)
|
|
draw_letter_on_paper(letters[s.prev_page_idx], x+14, y+4)
|
|
end,
|
|
}
|
|
end
|
|
|
|
function flip_in_letter(page, new_page)
|
|
o = flip_away_letter(new_page)
|
|
f = o.draw
|
|
o.other_page_idx = page
|
|
o.draw = function(s)
|
|
s.t2 = 0.2-s.timer
|
|
draw_paper(letters_offset_x, letters_offset_y, 128, 128)
|
|
draw_letter_on_paper(letters[s.other_page_idx], letters_offset_x+14, letters_offset_y+4)
|
|
f(s)
|
|
end
|
|
return o
|
|
end
|
|
|
|
function letters_update()
|
|
if (btnp(1) and letter_idx == #letters) or btnp(5) then
|
|
animate(letters_move_out(-10, 8, -10-80, 8+8))
|
|
change_screen(screen_workbench)
|
|
end
|
|
|
|
if btnp(0) and letter_idx > 1 then
|
|
animate(flip_away_letter(letter_idx))
|
|
letter_idx -= 1
|
|
end
|
|
|
|
if btnp(1) and letter_idx < #letters then
|
|
animate(flip_in_letter(letter_idx, letter_idx+1))
|
|
letter_idx = letter_idx + 1
|
|
end
|
|
end
|
|
|
|
|
|
function letters_draw()
|
|
cls()
|
|
|
|
draw_background()
|
|
draw_paper(letters_offset_x, letters_offset_y, 128, 128)
|
|
draw_letter_on_paper(letters[letter_idx], letters_offset_x+14, letters_offset_y+4)
|
|
end
|
|
|
|
function draw_letter_on_paper(letter, x, y)
|
|
color(base_text_color)
|
|
print(letter[1], x, y)
|
|
end
|
|
|
|
screen_letters = {draw=letters_draw, update=letters_update}
|
|
screen_letters = screen_conversation({{ph_p, "ah. pile of letters i should be reading."}},
|
|
function()
|
|
screen_letters = {draw=letters_draw, update=letters_update}
|
|
change_screen(screen_letters)
|
|
end,
|
|
screen_letters) |