284 lines
6.0 KiB
Lua
284 lines
6.0 KiB
Lua
-- Syrečky pro Hagen engine
|
|
-- (c) Severák 2015 - 2019
|
|
|
|
-- / port z ALAN verze
|
|
|
|
title = "Syrečky 2019"
|
|
|
|
-- utils
|
|
|
|
local function randomp(texty)
|
|
return function()
|
|
p(texty[math.random(1, #texty)])
|
|
end
|
|
end
|
|
|
|
-- slovesa
|
|
|
|
cont=verb{
|
|
n="pokračovat",
|
|
act = function()
|
|
walk(here().cont)
|
|
end
|
|
}
|
|
|
|
sever = verb{
|
|
n = "sever",
|
|
act = function()
|
|
walk(here().sever)
|
|
end
|
|
}
|
|
|
|
jih = verb{
|
|
n = "jih",
|
|
act = function()
|
|
walk(here().jih)
|
|
end
|
|
}
|
|
|
|
desc = verb{
|
|
n ="prozkoumej",
|
|
params = {"desc"},
|
|
act = function(what)
|
|
p("Zkoumáš " .. game[what].n .. ":")
|
|
local description = game[what].desc
|
|
if type(description)=='string' then
|
|
p(description)
|
|
elseif type(description)=='function' then
|
|
description()
|
|
end
|
|
end
|
|
}
|
|
|
|
open = verb{
|
|
n ="otevři",
|
|
params = {"open"},
|
|
act = function(what)
|
|
local description = game[what].open
|
|
if type(description)=='string' then
|
|
p(description)
|
|
elseif type(description)=='function' then
|
|
description()
|
|
end
|
|
end
|
|
}
|
|
|
|
give = verb{
|
|
n = "dej",
|
|
params = {"darovatelne", "komu"},
|
|
act = function(co, komu)
|
|
-- tohle je trošku hack
|
|
if komu=="naokno" then
|
|
p "Na okno raději nic dávat nebudu. Mohli by to unést holubi."
|
|
return
|
|
end
|
|
|
|
if co=="syrecky" then
|
|
p "Dáváš otci syrečky."
|
|
p "Otec: dík, synku."
|
|
p "Dokázal jsi to! Dal jsi otci syrečky."
|
|
p "Game over!"
|
|
move("syrecky", "otec")
|
|
else
|
|
p("Dáváš otci " .. game[co].n .. ".")
|
|
p "Otec: No co já s tím? Tohle nechci."
|
|
end
|
|
end
|
|
}
|
|
|
|
eat = verb{
|
|
n = "sněz",
|
|
params = {"jedle"},
|
|
act = function(co)
|
|
if co=="bageta" then
|
|
p "OK. Dám si bagetu."
|
|
p "* žvejk, žvejk, žvejk, žvejk"
|
|
p "Jo... Byla docela dobrá."
|
|
move("bageta", "void")
|
|
elseif co=="syrecky" then
|
|
p "Syrečky nesním:"
|
|
p "a) neuvěřitelně páchnou"
|
|
p "b) s plynovou maskou se dost blbě jí"
|
|
p "c) kdybych je snědl, nešlo by tuhle hru vyhrát"
|
|
end
|
|
end
|
|
}
|
|
|
|
|
|
|
|
-- předměty a lokace
|
|
|
|
-- OBÝVÁK
|
|
|
|
obyvak = room{
|
|
n="Obývák",
|
|
d="Normalní panelakový obývak. Na sever od něj je kuchyně.",
|
|
sever="kuchyn"
|
|
}
|
|
|
|
maska = item{
|
|
n="plynovou masku",
|
|
d="Plynova maska z dob ruske okupace.",
|
|
desc="Stará protiplynová maska, patrně ruské výroby. Nechápu co dělala v pohovce.",
|
|
w="pohovka",
|
|
darovatelne = true
|
|
}
|
|
|
|
pohovka = item{
|
|
n="pohovku",
|
|
d="Stará prašivá pohovka sotva drží. Pamatuje snad i druhou světovou.",
|
|
desc = function()
|
|
if maska.w=='pohovka' then
|
|
p "Z pohovky čouhá něco divného, zkusím to vytáhnout."
|
|
p "Wow! Je to plynová maska!"
|
|
move("maska", "me")
|
|
else
|
|
p "V pohovce je už jenom prach."
|
|
end
|
|
end,
|
|
w="obyvak"
|
|
}
|
|
|
|
otec = item{
|
|
n="otce",
|
|
d="Na pohovce se valí otec a kouka se na telku.",
|
|
desc="Tvůj fotr. Fešák.",
|
|
w="obyvak"
|
|
}
|
|
|
|
-- tohle je trošku hack - neumíme moc dobře skloňovat, tak máme pro otce speciální objekt na obdarovávání
|
|
otci = item{
|
|
n = "otci",
|
|
komu = true,
|
|
w = "obyvak"
|
|
}
|
|
|
|
televize = item{
|
|
n = "televizi",
|
|
desc = randomp{
|
|
"V telce běží zápas pražských S.",
|
|
"Fanoušci v televizi hážou dělobuchy.",
|
|
"Právě běží reklama.",
|
|
"V televizi je Horst Fuchs: A pokud zavoláte do deseti minut, dostanete ke každému noži koťátko zdarma."
|
|
},
|
|
w = "obyvak"
|
|
}
|
|
|
|
|
|
-- KUCHYNĚ
|
|
|
|
kuchyn = room{
|
|
n="Kuchyň",
|
|
d="Umakartová kuchyň z doby vrcholného komunismu. Na jih od ní je obyvák.",
|
|
jih="obyvak"
|
|
}
|
|
|
|
syrecky = item{
|
|
n = "syrečky",
|
|
desc = "Strašně smradlavé syrečky. Smrdí tak mocně, že je to cítit i přes igelit.",
|
|
w = "lednice",
|
|
darovatelne = true,
|
|
jedle = true
|
|
}
|
|
|
|
bageta = item{
|
|
n = "bagetu",
|
|
d = "Na kuchyňské lince leží bageta.",
|
|
desc = function()
|
|
p "Typická bageta z benzínky. Kupodivu ani není prošlá."
|
|
if game.bageta.w~="me" then
|
|
p "Beru ji sebou."
|
|
move("bageta", "me")
|
|
end
|
|
end,
|
|
darovatelne = true,
|
|
jedle = true,
|
|
w = "kuchyn"
|
|
}
|
|
|
|
|
|
|
|
lednice = item{
|
|
n="lednici",
|
|
d="Spořádaně tu vrní obstarožní lednice",
|
|
desc = "Obstarožní lednička značky CALEX. Hotová hrozba pro životní prostředí.",
|
|
open = function()
|
|
p "Otevíráš ledničku. Dveře vržou."
|
|
if syrecky.w=="lednice" then
|
|
if maska.w=="me" then
|
|
p "Syrečky strašne smrdí, bereš si na pomoc plynovou masku."
|
|
move("syrecky", "me")
|
|
p "Vypadáš přitom jak stalker ze stejnojmené počitačové hry, ale podařilo se ti vzít syrečky."
|
|
else
|
|
p "Strašlivý smrad syrečků tě donutil ledničku zase zavřít!"
|
|
end
|
|
else
|
|
p "V lednici však už je jen \"Příšera, která žila v lednici vedle majonézy a za zelným salátem\". A ta tě nezajímá."
|
|
end
|
|
end,
|
|
w="kuchyn"
|
|
}
|
|
|
|
vyhled = item{
|
|
n = "výhled",
|
|
d = "A je tu krásný výhled na Jihozápadní město",
|
|
w="kuchyn",
|
|
desc = randomp{
|
|
"Paneláky dnes vypadají patřičně depresivně.",
|
|
"Před barákem zrovna někomu kradou auto.",
|
|
"Před barákem zrovna policajti rozdávají pokuty.",
|
|
"Děti si hrajou na hřišti.",
|
|
"Důchodkyně pomlouvají tu dnešní mládež.",
|
|
"Vietnamc si šel zakouřit před večerku.",
|
|
"Gopnici ve vchodu tančí na hardbass.",
|
|
"Nikde nikdo s rouškou - není to tím, že je rok 1995?"
|
|
},
|
|
open="Okno raději otvírat nebudu, mohl by se sem dostat smog."
|
|
}
|
|
|
|
naokno = item{
|
|
n = "na okno",
|
|
komu = true,
|
|
w = "kuchyn"
|
|
}
|
|
|
|
-- META
|
|
|
|
local sledovani = randomp{
|
|
"Otec se napil piva.",
|
|
"GOOOOOOOOOOOOOOOL!!!!\nSparťani v televizi právě skórovali. Řve celé sídliště.",
|
|
"Otec se raduje, Sparta vede 1:0 .",
|
|
"Otec začína být nervózní.\nOtec: Tak kde jsou sakra ty syrečky?!"
|
|
}
|
|
|
|
local zrani = randomp{
|
|
"Otec spokojeně mlaská při žraní syrečků.",
|
|
"Otec: To je dobrota, to je dobrota.",
|
|
"Otec: Mňam, mňam...",
|
|
"Otec slastně mlaská při žraní syrečků.",
|
|
"Otec se olizuje až za ušima."
|
|
}
|
|
|
|
function round()
|
|
if here().ref=="obyvak" then
|
|
if syrecky.w=="otec" then
|
|
zrani()
|
|
else
|
|
sledovani()
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
intro = room{
|
|
d=[[SYREČKY 2019 - technologické demo
|
|
|
|
(verze z 17.8.2019)
|
|
(technicky aktualizováno v lednu 2021)
|
|
|
|
Tvým cílem je donést otci syrečky z kuchyně.
|
|
|
|
Hru navrhnul Petr Kain v roce 2010, potom sloužila jako česká obdoba Cloak of Darkness.]],
|
|
cont="obyvak",
|
|
auto_command = "pokračovat"
|
|
} |