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(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 if btnp(5) then animate(letters_move_out(-10, 8, -10-80, 8+8)) change_screen(screen_workbench) 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({{phoebe_portrait, [[oh jeez my pile of letters!]]}}, function() screen_letters = {draw=letters_draw, update=letters_update} change_screen(screen_letters) end, screen_letters)