WIP
This commit is contained in:
parent
278b48b68d
commit
0b828d8a46
|
@ -1,3 +1,7 @@
|
||||||
# art-lost-in-time
|
# Art lost in time
|
||||||
|
|
||||||
a short game about challenges of digital art preservation
|
a short game about challenges of digital art preservation
|
||||||
|
|
||||||
|
> I like to hear the people joke about that all we do all day is moving bits around our harddisks...
|
||||||
|
>
|
||||||
|
> Michael Dille (who helped to retrieve lost Warhol's digital art)
|
||||||
|
|
|
@ -0,0 +1,193 @@
|
||||||
|
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
|
||||||
|
]],
|
||||||
|
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 (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 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 "(also you smell some smoke)"
|
||||||
|
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)"
|
||||||
|
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
|
||||||
|
|
||||||
|
p "I started my computer and loaded bitcopy of GRAPHICSART floppy into WinUAE emulator."
|
||||||
|
-- TODO - zde bude samotná hra
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
floppy_graphics = item{
|
||||||
|
n = 'floppy "GRAPHICSART"',
|
||||||
|
desc = "It's yellow floppy with handwritten letters GRAPHICSART. I wonder what's on it.",
|
||||||
|
floppylike = true
|
||||||
|
}
|
||||||
|
|
||||||
|
floppy_workbench = item{
|
||||||
|
n = 'WORKBENCH floppy',
|
||||||
|
desc = "There is a printed label: Amiga Workbench 1.3",
|
||||||
|
floppylike = true
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 9.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
27
index.html
27
index.html
|
@ -2,7 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
<title>Vlak ve 4:20</title>
|
<title>Art lost in time</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<style>
|
<style>
|
||||||
* {
|
* {
|
||||||
|
@ -20,13 +20,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#all {
|
#all {
|
||||||
width: 642px;
|
width: 1282px;
|
||||||
height: 480px;
|
height: 480px;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border: 1px solid #000;
|
border: 1px solid #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#img {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
#all:after {
|
#all:after {
|
||||||
content: "";
|
content: "";
|
||||||
display: table;
|
display: table;
|
||||||
|
@ -63,9 +67,10 @@
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<div id="all">
|
<div id="all">
|
||||||
|
<img src="art/titulka.png" id="img">
|
||||||
<div id="texty">
|
<div id="texty">
|
||||||
<p>Demo hry vlak ve 4:20</p>
|
<p>Art lost in time</p>
|
||||||
<p>Pokud se hra nespustí, dejte vědět Severákovi a napište mu, jaký prohlížeč používáte.</p>
|
<p>If the game does not start, please report it back to Severák. Please include info which browser (and version) did you used.</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="menu">
|
<div id="menu">
|
||||||
</div>
|
</div>
|
||||||
|
@ -107,13 +112,18 @@ function ui_errormsg(txt)
|
||||||
el_texty.scrollTop = el_texty.scrollHeight;
|
el_texty.scrollTop = el_texty.scrollHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ui_img(src)
|
||||||
|
{
|
||||||
|
document.getElementById('img').src = 'art/' + src;
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script type="application/lua">
|
<script type="application/lua">
|
||||||
local js = require "js"
|
local js = require "js"
|
||||||
local window = js.global
|
local window = js.global
|
||||||
|
|
||||||
gamefile = "syrecky.lua"
|
gamefile = "art.lua"
|
||||||
|
|
||||||
-- Hagen game engine
|
-- Hagen game engine
|
||||||
-- (c) Severák 2019-2021
|
-- (c) Severák 2019-2021
|
||||||
|
@ -164,6 +174,10 @@ function cls()
|
||||||
window:ui_cls()
|
window:ui_cls()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function img(src)
|
||||||
|
window:ui_img(src)
|
||||||
|
end
|
||||||
|
|
||||||
local function split_lines(str)
|
local function split_lines(str)
|
||||||
local result = {}
|
local result = {}
|
||||||
for line in str:gmatch '[^\n]+' do
|
for line in str:gmatch '[^\n]+' do
|
||||||
|
@ -189,6 +203,9 @@ end
|
||||||
|
|
||||||
function walk(where, nocls)
|
function walk(where, nocls)
|
||||||
assert(game[where], "room " .. where .. " does not exist")
|
assert(game[where], "room " .. where .. " does not exist")
|
||||||
|
if game[where].img then
|
||||||
|
img(game[where].img)
|
||||||
|
end
|
||||||
move("me", where)
|
move("me", where)
|
||||||
if not nocls then
|
if not nocls then
|
||||||
cls()
|
cls()
|
||||||
|
|
Loading…
Reference in New Issue