415 lines
11 KiB
Lua
415 lines
11 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."
|
|
img "museum-smoke.png"
|
|
if notebook.bitcopy then
|
|
p "Luckily you have created bitcopy of this floppy in your notebook. Maybe you should try find something in that copy."
|
|
else
|
|
p "Which means you are now unable to found Andy's art."
|
|
walk("game_over", true)
|
|
end
|
|
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()
|
|
local pix = {"cat", "globe", "meme", "ship", "train"}
|
|
local rnd = math.random(1, #pix)
|
|
img(pix[rnd]..'.png')
|
|
p("You draw a " .. pix[rnd] .. ".")
|
|
new_file.used = true
|
|
new_file.drawn = pix[rnd]
|
|
end,
|
|
used = false,
|
|
drawn = false,
|
|
}
|
|
|
|
open_file = verb{
|
|
n = "Open file...",
|
|
params = {"file"},
|
|
act = function(what)
|
|
img(game[what].file)
|
|
p(game[what].comment)
|
|
new_file.draw = false
|
|
game[what].seen = true
|
|
if andy1.seen and banana.seen and campbells.seen and marylin.seen and venus.seen then
|
|
p "You have seen all digital artwork by Andy Warhol hidden in this game."
|
|
p "YOU WON!"
|
|
walk("game_over", true)
|
|
end
|
|
|
|
end
|
|
}
|
|
|
|
save_as = verb{
|
|
n = "Save as...",
|
|
act = function()
|
|
if new_file.used then
|
|
p "Maybe I can falsify lost art of Andy Warhol?"
|
|
p "Hm?"
|
|
if new_file.drawn == 'meme' then
|
|
walk("false_art1", true)
|
|
else
|
|
p "No. I will not do this. I am honest computer enthusiast not an art forger."
|
|
end
|
|
else
|
|
p "You need to draw something first."
|
|
end
|
|
end
|
|
}
|
|
|
|
back = verb{
|
|
n = "(back to Windows desktop)",
|
|
act = function()
|
|
walk "windows"
|
|
end
|
|
}
|
|
|
|
andy1 = item{
|
|
n = "andy1.pic",
|
|
file = "andy1.png",
|
|
comment = "WOW! Andy Warhol himself.",
|
|
w = "graphicsart",
|
|
seen = false
|
|
}
|
|
|
|
banana = item{
|
|
n = "banana.pic",
|
|
file = "banana.png",
|
|
comment = "Nice! Famous banana picture from Velvet Underground album.",
|
|
w = "graphicsart",
|
|
seen = false
|
|
}
|
|
|
|
campbells = item{
|
|
n = "campbells.pic",
|
|
file = "campbells.png",
|
|
comment = "Everybody loves nice can of Campbell's Soup.",
|
|
w = "graphicsart",
|
|
seen = false
|
|
}
|
|
|
|
marylin = item{
|
|
n = "marylin.pic",
|
|
file = "marylin.png",
|
|
comment = "Sweet Marylin. She is so cute.",
|
|
w = "graphicsart",
|
|
seen = false
|
|
}
|
|
|
|
venus = item{
|
|
n = "venus.pic",
|
|
file = "venus.png",
|
|
comment = "I know this! This is just clipart from Deluxe Paint, but Warhol copied third eye to her. LOL.",
|
|
w = "graphicsart",
|
|
seen = false
|
|
}
|
|
|
|
false_art1 = room{
|
|
n = "I can definitely do that!",
|
|
desc = [[So I took all of my skills to make false Warhol's art...]],
|
|
cont = "false_art2"
|
|
}
|
|
|
|
false_art2 = room{
|
|
n = "New Warhol discovered!",
|
|
d = [[
|
|
It seems that famous artist was ahead of his time and invented internet memes before they took of...
|
|
says Phil Computerphile - a man who discovered a new painting of Andy Warhol in computer used by famous artist....
|
|
]],
|
|
img = "false_art.png",
|
|
cont = "false_art3"
|
|
}
|
|
|
|
false_art3 = room{
|
|
n = "New Warhol discovered!",
|
|
d = [[
|
|
However my plan was busted by some art historians and I was put in the jail for fraud.
|
|
|
|
GAME OVER!
|
|
]],
|
|
img = "false_art.png"
|
|
}
|
|
|
|
game_over = room{
|
|
n = "GAME OVER!"
|
|
}
|
|
|
|
|