318 lines
8.7 KiB
Lua
318 lines
8.7 KiB
Lua
title = "Art lost in time"
|
|
|
|
cont=verb{
|
|
n="click to continue",
|
|
act = function()
|
|
walk(here().cont)
|
|
end
|
|
}
|
|
|
|
intro = room{
|
|
d = [[
|
|
ART LOST IN TIME
|
|
|
|
a short game about challenges of digital art preservation
|
|
|
|
Written and drawn over weekend by Severák for Paint Jam 2021.
|
|
|
|
I used my own game engine (from other project) and actual digital art from Andy Warhol.
|
|
]],
|
|
cont = 'intro2'
|
|
}
|
|
|
|
intro2 = room{
|
|
d = [[
|
|
In 1985 Andy Warhol created a portrait of singer Debbie Harry using brand new Amiga 1000 computer. This was just a publicity stunt organized by people from Commodore.
|
|
|
|
But Warhol kept the computer he was given by Commodore and actually used it to make some art.
|
|
|
|
Now after 30 years is up to you to use all your retrocomputing skills to retrieve ART LOST IN TIME.
|
|
|
|
But be aware - these old disks are fragile!
|
|
]],
|
|
img = "painting.png",
|
|
cont = 'museum'
|
|
}
|
|
|
|
museum = room{
|
|
n = 'in Andy Warhol Museum',
|
|
d = [[
|
|
You brough all your retrocomputing stuff to the museum to hack into these ages old disks.
|
|
]],
|
|
img = "museum.png"
|
|
}
|
|
|
|
examine = verb{
|
|
n = "examine",
|
|
params = {"desc"},
|
|
act = function(what)
|
|
local description = game[what].desc
|
|
p("You look closely at " .. game[what].n .. ":")
|
|
if type(description)=='string' then
|
|
p(description)
|
|
elseif type(description)=='function' then
|
|
description()
|
|
end
|
|
end
|
|
}
|
|
|
|
put = verb{
|
|
n = "put",
|
|
params = {"floppylike", "_into", "computerlike"},
|
|
act = function(what, _into, where)
|
|
if where == 'amiga' and amiga.dead then
|
|
p "I will not put floppy into Amiga as it seems to be dead."
|
|
return
|
|
end
|
|
|
|
if where == 'amiga' and (floppy_workbench.w == 'amiga' or floppy_graphics.w == 'amiga') then
|
|
p "(You first ejected floppy which was in Amiga's drive.)"
|
|
if floppy_graphics.w=='amiga' then move("floppy_graphics", "museum") end
|
|
if floppy_workbench.w=='amiga' then move("floppy_workbench", "museum") end
|
|
end
|
|
|
|
if what == 'floppy_workbench' and where == 'notebook' then
|
|
p "You don't need this. As an Amiga enthusiast you have already installed official WORKBENCH copy on your computer."
|
|
elseif what == 'floppy_workbench' and where == 'amiga' then
|
|
p "You put WORKBENCH floppy into Amiga."
|
|
move("floppy_workbench", "amiga")
|
|
elseif what == 'floppy_graphics' and where == 'amiga' then
|
|
p "You put GRAPHICSART floppy into Amiga."
|
|
move("floppy_graphics", "amiga")
|
|
elseif what == 'floppy_graphics' and where == 'notebook' then
|
|
p "You put GRAPHICSART floppy into your computer and created bit copy of it."
|
|
notebook.bitcopy = true
|
|
end
|
|
end
|
|
}
|
|
|
|
use = verb{
|
|
n = "use",
|
|
params = {"use"},
|
|
act = function(what)
|
|
local fun = game[what].use
|
|
if type(fun)=='string' then
|
|
p(fun)
|
|
elseif type(fun)=='function' then
|
|
fun()
|
|
end
|
|
end
|
|
}
|
|
|
|
into = item{
|
|
n = "into",
|
|
_into = true,
|
|
w = "museum"
|
|
}
|
|
|
|
amiga = item{
|
|
n = "Warhol's Amiga",
|
|
d = 'There is original Amiga 1000 which was used by Andy Warhol himself.',
|
|
w = 'museum',
|
|
desc = [[Amiga 1000 - the first multimedia computer ever. It has stunning 256KB of RAM, CPU clocked at 7.09MHz. Such a great machine!
|
|
Also this one was used by Andy Warhol.]],
|
|
computerlike = true,
|
|
use = function()
|
|
if amiga.dead then
|
|
p "You pressed the power button hard but Amiga seems to be dead forever."
|
|
p "Good job - you bricked museum piece!"
|
|
return
|
|
end
|
|
|
|
if floppy_workbench.w == 'amiga' then
|
|
p "You tried to power up Warhol's Amiga."
|
|
p "It actually started and Workbench interface appeared on the screen."
|
|
p "But when you clicked on PROGRAMS icons whole thing freezed and screen went black."
|
|
p "You should better try other floppies in more recent machine."
|
|
p "(also you smell some smoke)"
|
|
img "museum-smoke.png"
|
|
amiga.dead = true
|
|
elseif floppy_graphics.w == 'amiga' then
|
|
p "You tried to power up Warhol's Amiga."
|
|
p "It actually started and but then it made horrible floppy noise."
|
|
p "(Image Floppotron going really wild.)"
|
|
p "Ouch! It sounds like it eaten the floppy."
|
|
p "Which means you are unable to found Andy's art. GAME OVER!"
|
|
p "(also you smell some smoke)"
|
|
img "museum-smoke.png"
|
|
amiga.dead = true
|
|
else
|
|
p "It will not start without floppy in it."
|
|
end
|
|
end
|
|
}
|
|
|
|
floppies = item{
|
|
n = "floppies",
|
|
d = "There is a stack of floppies in front of you.",
|
|
w = "museum",
|
|
desc = function()
|
|
img "floppies.png"
|
|
if floppies.searched == 0 then
|
|
p "You found floppy labeled WORKBENCH."
|
|
p "(WORKBENCH was operating system for Amiga.)"
|
|
move('floppy_workbench', 'museum')
|
|
elseif floppies.searched == 1 then
|
|
p "You found floppy labeled WORMS."
|
|
p "Wow! I did not expect to find out that Andy Warhol played Worms."
|
|
elseif floppies.searched == 2 then
|
|
p "You found floppy labeled DELUXE PAINT."
|
|
elseif floppies.searched == 3 then
|
|
p 'You found yellow floppy with label "GRAPHICSART".'
|
|
move("floppy_graphics", "museum")
|
|
elseif floppies.searched == 4 then
|
|
p 'You found floppy labeled "tax reports".'
|
|
p "Nothing interesting here."
|
|
-- elseif floppies.searched == 4 then
|
|
-- p 'You found floppy labeled "PORN".'
|
|
-- p "Seriously?"
|
|
else
|
|
p "There is nothing interesting anymore."
|
|
p "It's just a stack of floppies."
|
|
end
|
|
floppies.searched = floppies.searched + 1
|
|
end,
|
|
searched = 0
|
|
}
|
|
|
|
notebook = item{
|
|
n = "your notebook",
|
|
d = "You have your own notebook.",
|
|
desc = "Your trusty Toshiba notebook running modern Windows XP. It's equipped with external floppy drive.",
|
|
w = "museum",
|
|
computerlike = true,
|
|
use = function()
|
|
if not notebook.bitcopy then
|
|
p "I have no idea what to do with my computer now."
|
|
return
|
|
end
|
|
|
|
walk "hackerman"
|
|
end
|
|
}
|
|
|
|
floppy_workbench = item{
|
|
n = 'WORKBENCH floppy',
|
|
desc = "There is a printed label: Amiga Workbench 1.3",
|
|
floppylike = true
|
|
}
|
|
|
|
floppy_graphics = item{
|
|
n = 'floppy "GRAPHICSART"',
|
|
desc = "It's yellow floppy with handwritten letters GRAPHICSART. I wonder what's on it.",
|
|
floppylike = true
|
|
}
|
|
|
|
hackerman = room{
|
|
n = "Full hacker mode activated...",
|
|
d = [[
|
|
You started your notebook.
|
|
|
|
It's time to do some serious digital preservation work. Let's show others who is real HACKERMAN!
|
|
]],
|
|
cont = "windows",
|
|
img = "hackerman.png"
|
|
}
|
|
|
|
windows = room{
|
|
n = "in Windows XP desktop",
|
|
d = [[
|
|
A view familiar to many of us - an Windows XP desktop with it's iconic default background.
|
|
]],
|
|
img = "winxp.png"
|
|
}
|
|
|
|
start = verb{
|
|
n = "Start",
|
|
params = {"program"},
|
|
act = function(name)
|
|
game[name].program()
|
|
end
|
|
}
|
|
|
|
ie = item{
|
|
n = "Internet Exploder",
|
|
program = function()
|
|
p "It's not time to browse web."
|
|
end,
|
|
w = "windows"
|
|
}
|
|
|
|
diskextractor = item{
|
|
n = "DiskExtractor",
|
|
program = function()
|
|
p "DiskExtractor found that (expect from binary GRAPHICSART) these files are in an unknown format."
|
|
winuae.willuse = true
|
|
end,
|
|
w = "windows"
|
|
}
|
|
|
|
winuae = item{
|
|
n = "WinUAE",
|
|
program = function()
|
|
if not winuae.willuse then
|
|
p "There is no need to run Amiga emulator."
|
|
p "I should first find out in which format files were."
|
|
return
|
|
end
|
|
|
|
walk "graphicsart"
|
|
end,
|
|
willuse = false,
|
|
w = "windows"
|
|
}
|
|
|
|
shutdown = item{
|
|
n = "Shut down",
|
|
program = function()
|
|
walk "museum"
|
|
end,
|
|
w = "windows"
|
|
}
|
|
|
|
graphicsart = room{
|
|
n = "GRAPHICSART",
|
|
d = [[
|
|
Now I understand - it seems that GRAPHICSART was one of those early graphics programs. That's why files seemed to be in unknown format.
|
|
|
|
As Amiga 1000 had only one drive it looks like the actual art was saved to the same floppy as program itself.
|
|
]],
|
|
img = "graphicsart.png",
|
|
new_file = true,
|
|
save_as = true,
|
|
back = true
|
|
}
|
|
|
|
new_file = verb{
|
|
n = "New file...",
|
|
act = function()
|
|
p "TADA"
|
|
end,
|
|
used = false
|
|
}
|
|
|
|
open_file = verb{
|
|
n = "Open file...",
|
|
params = {"file"},
|
|
act = function()
|
|
p "TADA"
|
|
end
|
|
}
|
|
|
|
save_as = verb{
|
|
n = "Save as...",
|
|
act = function()
|
|
|
|
end
|
|
}
|
|
|
|
back = verb{
|
|
n = "(back to Windows desktop)",
|
|
act = function()
|
|
walk "windows"
|
|
end
|
|
}
|
|
|
|
|
|
|