2017-02-20 11:18:44 +02:00
--$Author:Alexander Yakolev, 2017
--$Version:1.0
require " format "
2017-02-23 14:13:54 +02:00
require " dbg "
2017-02-26 13:24:21 +02:00
require " dbg-ru "
declare " isdebug " ( true )
2017-02-26 11:45:05 +02:00
require ' ui '
2017-02-20 18:40:12 +02:00
require ' tools '
2017-02-21 16:16:48 +02:00
declare " char " ( { } )
2017-02-20 11:18:44 +02:00
format.dash = true
format.quotes = true
format.para = true
-- https://www.google.ru/maps/place/%D0%9C%D0%B5%D0%BA%D1%81%D0%B8%D0%BA%D0%B0/@22.8355052,-105.0808555,16z/data=!4m5!3m4!1s0x84043a3b88685353:0xed64b4be6b099811!8m2!3d23.634501!4d-102.552784
2017-02-23 14:13:54 +02:00
-- Необходимые правки стиля перед релизом:
-- 1. Убрать курсив от ответов на диалоги, чтобы они просто слились с основным текстом
-- 2. Убрать вывод текста ответов на первый из диалогов (выбор обращения)
-- 3. Сделать ссылки в инвентаре не по двойному, а по одинарному щелчку
-- 4. Отключить автосписок инвентаря в области, собственно, инвентаря
2017-02-23 14:25:27 +02:00
-- 5. вернуть txtem() и вообще функции форматирования
2017-02-23 14:13:54 +02:00
2017-02-20 11:18:44 +02:00
dlg {
nam = ' main ' ,
dsc = [ [
О т а в т о б у с н о й о с т а н о в к и д о д о м а Ч о б ы л о п о л т о р а к и л о м е т р а .
П о п у т и в ы о с м а т р и в а л и о к р е с т н о с т и : в ы с о к а я г о р а , б е с к о н е ч н ы е п а ш н и
и м а л е н ь к о е с е л о в о к р у г е д и н с т в е н н о й к о л о н к и с в о д о й . ^^
С е м ь я Ч о о т г о р о д и л а с ь о т с е л а ш и р о к о й п о л о с о й д е р е в ь е в .
И х п а ш н я н е о т л и ч а л а с ь о т о с т а л ь н ы х : т а к о е ж е ч ё р н о е п о л е с р я д а м и
р о б о т о в , к о т о р ы е м о л ч а к о п а л и с ь в з е м л е . П е р е д п о л е м с т о я л
н е в ы с о к и й к р а с н о в а т о - ч ё р н ы й д о м с д в у м я о к н а м и . ^^
Н а с т у к в д в е р ь о т к р ы л а н и з е н ь к а я ч е р н о в о л о с а я д е в у ш к а . ^^
-- А , так вы тот инженер из города? Проходите, мы сейчас всё покажем.
Я ж е п р а в и л ь н о г о в о р ю , в ы ж е и н ж е н е р ?
] ] ,
obj = {
{
2017-02-21 16:06:05 +02:00
{
' Инженер (она) ' ,
function ( )
2017-02-21 16:16:48 +02:00
char.gender = " she " ;
char.plural = false ;
2017-02-21 16:06:05 +02:00
walk ( ' start2 ' ) ;
return true ;
end
} ,
{
' Инженер (он) ' ,
function ( )
2017-02-21 16:16:48 +02:00
char.gender = " he " ;
char.plural = false ;
2017-02-21 16:06:05 +02:00
walk ( ' start2 ' ) ;
return true ;
end
} ,
{
' Инженер (оно) ' ,
function ( )
2017-02-21 16:16:48 +02:00
char.gender = " it " ;
char.plural = false ;
2017-02-21 16:06:05 +02:00
walk ( ' start2 ' ) ;
return true ;
end
} ,
{
' Инженер (они) ' ,
function ( )
2017-02-21 16:16:48 +02:00
char.gender = " they " ;
char.plural = false ;
2017-02-21 16:06:05 +02:00
walk ( ' start2 ' ) ;
return true ;
end
} ,
{
' Инженеры (они) ' ,
function ( )
2017-02-21 16:16:48 +02:00
char.gender = " they " ;
char.plural = true ;
2017-02-21 16:06:05 +02:00
walk ( ' start2 ' ) ;
return true ;
end
2017-02-26 13:24:21 +02:00
} ,
{
cond = function ( )
return isdebug
end ,
' Пропустить интро ' ,
function ( )
char.gender = rndstr ( { " they " , " it " , " he " , " she " } )
char.plural = rndalt ( true , false )
char.war = rndstr ( { " earth " , " moon " } )
walk ( ' chos ' ) ;
return true ;
end
2017-02-21 16:06:05 +02:00
}
2017-02-20 11:18:44 +02:00
}
}
}
dlg {
nam = ' start2 ' ,
2017-02-20 18:40:12 +02:00
dsc = function ( )
2017-02-20 11:18:44 +02:00
return [ [
2017-02-20 18:40:12 +02:00
-- А , это хорошо что ]]..engineer()..[[.
2017-02-20 11:18:44 +02:00
М ы у ж е д у м а л и , ч т о н а ш а г а р а н т и я в с ё .
Э т о ж е т а к и е с т а р ы е р о б о т ы , в с ё в р е м я в п о л е . ^^
О н а в ы ш л а и з д о м а и п р и г л а с и л а в а с з а с о б о й .
2017-02-23 14:13:54 +02:00
В ы ш л и в д о л ь п о л я ; м е т а л л и ч е с к и е р а б о ч и е н е о б р а щ а л и н а в а с в н и м а н и я . ^^
2017-02-20 11:18:44 +02:00
-- Вы знаете, у нас же нет других машин.
К о г д а - т о х о т е л и к у п и т ь ч т о - н и б у д ь д л я д о м а , н о т у т э т а в о й н а с Л у н о й …
В ы б ы л и н а в о й н е ?
] ]
end ,
obj = {
{
2017-02-20 18:40:12 +02:00
{
function ( )
2017-02-26 13:24:21 +02:00
return [[Цех РБ-65, с первого до последнего дня. Чинил]] .. endings ( ) .. [[ ремонтных ботов.]]
2017-02-20 18:40:12 +02:00
end ,
function ( )
2017-02-26 13:24:21 +02:00
char.war = " earth " ;
2017-02-23 14:13:54 +02:00
p ' -- Доблесть рабочих, конечно. ' ;
2017-02-23 14:25:27 +02:00
walk ( ' start3 ' ) ;
return true ;
2017-02-20 18:40:12 +02:00
end
} , -- + к симпатизирующим Земле
2017-02-23 14:13:54 +02:00
{
' Да, но Луна проиграла. ' ,
function ( )
2017-02-26 13:24:21 +02:00
char.war = " moon " ;
2017-02-23 14:13:54 +02:00
p " -- Ой, вы из этих… Извините. "
2017-02-23 14:25:27 +02:00
walk ( ' start3 ' ) ;
return true ;
2017-02-23 14:13:54 +02:00
end
} ,
2017-02-20 11:18:44 +02:00
-- + к симпатизирующим Луне
} ,
2017-02-20 18:40:12 +02:00
} ,
2017-02-20 11:18:44 +02:00
}
2017-02-23 06:53:25 +02:00
dlg {
2017-02-20 11:18:44 +02:00
nam = ' start3 ' ,
2017-02-23 06:53:25 +02:00
dsc = [ [
( к у р с и в о м ) С ю д а , п о ж а л у й с т а . ^^
О н а п р о в е л а в а с в б о л ь ш о й с а р а й , г д е п ы л и л с я в ы с о к и й а в т о м а т и ч е с к и й с е л ь х о з к о м б а й н .
2017-02-20 18:40:12 +02:00
2017-02-23 06:53:25 +02:00
-- Вот и наш больной. Мы прогрели е г о весной, а он и не едет.
В ы ж е ] ] .. engineer ( ) .. [ [ , в ы с м о ж е т е е г о п о ч и н и т ь ?
А т о м ы п о т е р я е м у р о ж а й .
2017-02-20 18:40:12 +02:00
] ] ,
2017-02-23 06:53:25 +02:00
decor = [ [
С т а р у ш к а Ч о в н и м а т е л ь н о с м о т р и т н а в а с .
В е ё г л а з а х в ы ч и т а е т е , ч т о о т п о ч и н к и э т о г о к о м б а й н а з а в и с и т н е с к о л ь к о ж и з н е й .
2017-02-23 14:13:54 +02:00
] ] ,
2017-02-23 14:29:14 +02:00
obj = { {
onempty = function ( )
walk ( ' start4 ' )
end ,
2017-02-23 06:53:25 +02:00
{
' Зачем вы заводили комбайн весной? ' ,
' -- Он замёрз! После зимы у мужа обычная машина не заводится, не то что роботы. '
} ,
{
' У вас же столько роботов. Неужели вы не справитесь без комбайна?' ,
2017-02-23 14:29:14 +02:00
[ [ -- В с е г о семеро, и они обычно упаковывают и складывают.
2017-02-23 06:53:25 +02:00
Е с л и о н и б у д у т е щ ё и к о с и т ь , м ы н е у п р а в и м с я д о о с е н и .
У р о ж а й с г н и ё т п о д д о ж д я м и . ] ]
} ,
{
' Да, ' .. pronoun_1 ( ) .. ' -- ' .. engineer ( ) .. [ [ .
Н о я м о г у т о л ь к о о п р е д е л и т ь п р о б л е м у , у в а с ж е н е т м а с т е р с к о й и л и и н с т р у м е н т о в . ] ] ,
' -- Вы знаете, я могу попросить соседей. У Павла в подвале во время войны была мастерская. '
} ,
{
' Давно он у вас? ' ,
2017-02-23 14:29:14 +02:00
[ [ -- Н у , лет двадцать уже, наверное.
2017-02-23 06:53:25 +02:00
Т о е с т ь , я х о т е л а с к а з а т ь , д е в я т н а д ц а т ь .
Г а р а н т и я ж е е щ ё д е й с т в у е т , п р а в д а ? ] ]
2017-02-20 18:40:12 +02:00
}
2017-02-23 14:29:14 +02:00
} }
2017-02-20 11:18:44 +02:00
}
2017-02-23 06:53:25 +02:00
dlg {
nam = ' start4 ' ,
2017-02-23 14:13:54 +02:00
dsc = function ( )
return [ [
2017-02-26 11:45:05 +02:00
К о м б а й н о к а з а л с я е щ ё д о в о е н н ы м .
2017-02-23 06:53:25 +02:00
В ы к о п а л и с ь н е м е н ь ш е ч а с а , п о к а н е н а ш л и и з н о с и в ш и й с я п р о г р а м м а т о р н ы й б л о к . ^^
-- Н у что же, надо чинить. Случай гарантийный, всё за счёт фирмы. Н о придётся забрать в город, в мастерскую.^^
-- А нельзя прямо здесь? У нас же урожай скоро!^^
-- Нет, это…^^
-- Послушайте. У меня сестра работает в Берёзовке, я знаю что нужно.
В а с у с т р о и т … д е с я т ь т ы с я ч ? ^^
-- В смысле?^^
-- Подождите, не отказывайтесь. Десять новых кусков. Золотом. И вы почините это здесь.^^
В ы з а д у м а л и с ь . Н а д е с я т ь к у с к о в м о ж н о б ы л о б ы к у п и т ь н о в ы й к о м б а й н - к о н е ч н о , н е т а к о й м о щ н ы й , н о е с л и п р о д а т ь з о л о т о н а Л у н у … Б ы л о д и н х и т р ы й в ы х о д . ^^
-- Давайте так: ]]..pronoun_1()..[[ здесь на три дня. Если за эти три дня что-то получится… Н о после урожая -- сразу в мастерскую, нужен основательный ремонт. У кого, вы говорили, здесь мастерская?^^
-- Спасибо! -- она улыбнулась. -- Я скажу внучке, чтобы вас проводила. Сейчас.^^
В ы в е р н у л и с ь к д о м у . С т а р у ш к а и с ч е з л а з а д в е р ь ю , а з а т е м б ы с т р о в е р н у л а с ь с ч у м а з о й д е в у ш к о й л е т с е м н а д ц а т и .
-- Это Катя, она вас проводит. Катя, до Павла и обратно, хорошо?^^
Д е в у ш к а х о т е л а ч т о - т о в о з р а з и т ь , н о п е р е д у м а л а , о п у с т и л а г о л о в у и т и х о о т в е т и л а : ^^
-- Хорошо, бабушка.
] ]
end ,
decor = [ [
2017-02-23 14:13:54 +02:00
В ы с т о я л и и с м о т р е л и н а К а т ю . А К а т я с м о т р е л а н а в а с . ^^
М е ж д у в а м и - т и ш и н а .
] ] ,
2017-02-23 14:29:14 +02:00
obj = { {
onempty = function ( )
char.act = 1
2017-02-26 11:45:05 +02:00
p " Она отворачивается. Видимо, разговор закончен. "
2017-02-23 14:29:14 +02:00
walk ( ' chos ' )
end ,
{ ' Привет. ' , ' Привет. ' }
} }
2017-02-23 06:53:25 +02:00
}
2017-02-20 11:18:44 +02:00
room {
nam = ' exit_west ' ,
2017-02-23 14:29:14 +02:00
disp = ' Дорога на запад ' ,
2017-02-23 14:13:54 +02:00
way = { ' intersection ' , ' pavels ' , ' abandoned ' } ,
decor = [ [
2017-02-20 11:18:44 +02:00
В ы с т о и т е н а о к р а и н е Ж е с т и а н ы .
П р я м а я а в т о д о р о г а и д ё т н а з а п а д , г д е н а ч и н а е т с я л е с .
2017-02-23 14:13:54 +02:00
В л е с у о н а т у т ж е д е л а е т к р у т о й п о в о р о т . ^^
О т с ю д а в и д н ы д в а з д а н и я в с т о р о н е .
] ]
}
room {
nam = ' abandoned ' ,
2017-02-26 13:24:21 +02:00
disp = ' Одноэтажный дом ' , -- занят роботами
way = { ' exit_north ' } ,
2017-02-23 14:13:54 +02:00
decor = [ [
] ]
}
room {
nam = ' pavels ' ,
disp = ' Павлов дом ' ,
decor = [ [
2017-02-26 13:24:21 +02:00
В ы с т о и т е п е р е д т и п о в ы м н а п е ч а т а н н ы м о д н о э т а ж н ы м д о м о м .
С о д н о й с т о р о н ы к с т е н е п р и с л о н и л а с ь м а л е н ь к а я п р и с т р о й к а д л я д р о в .
С д р у г о й с т о р о н ы — { suit | б о е в о й м е х а н и з и р о в а н н ы й к о с т ю м . }
] ] ,
obj = {
obj {
nam = ' suit ' ,
act = function ( )
out = [ [
Б о е в о й м е х а н и з и р о в а н н ы й к о с т ю м в ы с о т о й 2 , 7 м е т р о в , м а р к а Р Г - 22.
Р а с с ч и т а н н а о д н о г о п и л о т а .
В о о р у ж ё н а в т о м а т и ч е с к о й п у ш к о й к а л и б р а 5 м м и о г н е м ё т о м . ^^ ] ]
if char.war == " earth " then
out = out .. [ [
В ы ч и н и л и э т и д в у н о г и е т а н к и д е н ь и н о ч ь .
Л у н н ы е м и н ы с т а н о в и л и с ь в с ё и з о щ р ё н н е е , и
п р и х о д и л о с ь с р о ч н о о т л а ж и в а т ь п р о г р а м м ы п о ч и н к и , а и н о г д а и л е з т ь в р у ч н у ю .
Б о т ы н и к о г д а н е з а б о т и л и с ь о т о м , ч т о б ы в ы ч и с т и т ь о с т а т к и п и л о т а и з к а б и н ы . ^^
] ]
end
if char.war == " moon " then
out = out .. [ [
Г д е б ы в ы н и с р а ж а л и с ь , э т и д в у н о г и е т в а р и ш л и н а в а с т ы с я ч а м и .
В а м п р и х о д и л о с ь е ж е н е д е л ь н о и з о б р е т а т ь н о в ы е м и н ы , ч т о б ы п о л у ч и т ь х о т ь к а к о й - т о
ш а н с о т б и т ь с я .
С о р о к в о с е м ь с м е р т е л ь н ы х ч е р т е ж е й п р о т и в г л а в н о й у я з в и м о с т и э т о й м о д е л и —
ч е л о в е к а в к а б и н е . ^^
] ]
end
out = out .. [ [ Т а к и е ш т а м п о в а л и с ь н а З е м л е с о т н я м и т ы с я ч , н о п о с л е в о й н ы о к а з а л о с ь , ч т о б о л ь ш а я ч а с т ь п о т е р я н а н а п о л е б о я .
К о н е ч н о , п о о ф и ц и а л ь н о й в е р с и и .
] ]
end
}
}
2017-02-20 11:18:44 +02:00
}
room {
nam = ' exit_north ' ,
2017-02-23 14:29:14 +02:00
disp = ' Дорога на север ' ,
2017-02-26 13:24:21 +02:00
way = { ' town ' , ' abandoned ' } ,
2017-02-23 14:13:54 +02:00
decor = [ [
2017-02-20 11:18:44 +02:00
В ы с т о и т е н а о к р а и н е Ж е с т и а н ы .
П р я м а я а в т о д о р о г а и д ё т н а с е в е р .
З д е с ь о т н е ё о т х о д и т н е б о л ь ш о й з а е з д н а з а п а д .
] ]
}
room {
nam = ' chos ' ,
disp = ' Дом Чо ' ,
way = { ' town ' , ' intersection ' } ,
dsc = [ [
2017-02-26 11:45:05 +02:00
В ы с т о и т е п е р е д н е б о л ь ш и м д о м о м .
О т с ю д а в и д н а б е с к о н е ч н а я п а ш н я , п о к о т о р о й х о д я т ф е р м е р с к и е р о б о т ы .
2017-02-20 11:18:44 +02:00
] ]
}
room {
nam = ' intersection ' ,
disp = ' Перекрёсток ' ,
decor = [[]] ,
2017-02-23 14:13:54 +02:00
way = { ' exit_west ' , ' chos ' , ' town ' } ,
exit = function ( )
end
2017-02-20 11:18:44 +02:00
}
room {
nam = ' town ' ,
2017-02-23 14:29:14 +02:00
disp = ' Жестиана ' ,
2017-02-20 11:18:44 +02:00
way = { ' exit_north ' , ' chos ' , ' intersection ' , ' factory ' } ,
decor = [[]]
}
room {
nam = ' factory ' ,
disp = [[Здание на г о р е ]] ,
way = { ' town ' } ,
dsc = [ [
В ы з а б и р а е т е с ь н а с к л о н г о р ы . З д е с ь с т о и т
О т с ю д а х о р о ш о в и д н а в с я Ж е с т и а н а .
] ]
}