51 lines
1.5 KiB
Text
51 lines
1.5 KiB
Text
-- Forge (FORGE.md), genre two of the first slice: the QTE description, played over the disc.
|
|
--
|
|
-- Scene 52 plays the platformer. This one shares no vocabulary with it beyond the three nouns --
|
|
-- no physics, no character, no gravity, and every rule is about disc frames -- which is what makes
|
|
-- the pair a test of the core rather than of either genre.
|
|
dofile("Forge/AuthorCompile.singe")
|
|
|
|
local font = fontLoad("Singe/FreeSansBold.ttf", 18)
|
|
|
|
fontSelect(font)
|
|
fontQuality(FONT_QUALITY_BLENDED)
|
|
|
|
dofile(authorBuild("testScripts/author/qte.game", singeGetDataPath() .. "qte.singe"))
|
|
|
|
local gameUpdate = onOverlayUpdate
|
|
local frames = 0
|
|
local answered = false
|
|
local shots = 0
|
|
|
|
|
|
function onOverlayUpdate()
|
|
local disc = discGetFrame()
|
|
|
|
frames = frames + 1
|
|
|
|
-- Answer inside the window, the way a player would: hold the button for a few frames.
|
|
if (disc >= 215) and (disc < 225) and not answered then
|
|
authorSwitchDown(SWITCH_BUTTON1)
|
|
answered = true
|
|
end
|
|
if answered and (disc >= 230) then
|
|
authorSwitchUp(SWITCH_BUTTON1)
|
|
end
|
|
|
|
local r = gameUpdate()
|
|
|
|
colorForeground(255, 255, 255, 255)
|
|
fontPrint(12, 450, "authored QTE, disc frame " .. disc)
|
|
|
|
-- On the disc's clock, not the frame count: the window is what is being shown.
|
|
if (shots == 0 and disc >= 205) or (shots == 1 and disc >= 230) or (shots == 2 and disc >= 280) then
|
|
shots = shots + 1
|
|
singeScreenshot()
|
|
end
|
|
if disc >= 310 or frames > 1200 then
|
|
debugPrint("AUTHOR QTE RESULT score=" .. AUTHOR_VARS.score .. " hit=" .. tostring(AUTHOR_VARS.hit))
|
|
singeQuit()
|
|
end
|
|
|
|
return r
|
|
end
|