mirror of
https://gitlab.com/Oreolek/duel.git
synced 2024-05-04 01:59:44 +03:00
Фикс домофона и дуэльных условий
This commit is contained in:
parent
91cda2e8c9
commit
c5aff74d7b
|
@ -21,12 +21,10 @@ room {
|
||||||
return 'первый робот'
|
return 'первый робот'
|
||||||
end,
|
end,
|
||||||
act = function(s)
|
act = function(s)
|
||||||
if not isduel then
|
return [[
|
||||||
return [[Низкий хромированный фермер, древняя четырёхногая модель.
|
Низкий хромированный фермер, древняя четырёхногая модель.
|
||||||
Он медленно неуклюже передвигал передние ноги, когда переходил к следующей грядке.]]
|
Он медленно неуклюже передвигал передние ноги, когда переходил к следующей грядке.
|
||||||
else
|
]]
|
||||||
return s.talk()
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
talk = function()
|
talk = function()
|
||||||
walk('robofarmer-dlg')
|
walk('robofarmer-dlg')
|
||||||
|
@ -42,15 +40,11 @@ room {
|
||||||
return 'второй робот'
|
return 'второй робот'
|
||||||
end,
|
end,
|
||||||
act = function(s)
|
act = function(s)
|
||||||
if not isduel then
|
return [[
|
||||||
return [[
|
Он был похож по строению на робота-дворецкого, но у него не хватало верхней части лица,
|
||||||
Он был похож по строению на робота-дворецкого, но у него не хватало верхней части лица,
|
а вместо левой ноги стоял импровизированный протез из строительного нанопластика.
|
||||||
а вместо левой ноги стоял импровизированный протез из строительного нанопластика.
|
Его глаза были очень маленькими для широкого лица; скорее всего, их вставили из какой-нибудь детской куклы.
|
||||||
Его глаза были очень маленькими для широкого лица; скорее всего, их вставили из какой-нибудь детской куклы.
|
]]
|
||||||
]]
|
|
||||||
else
|
|
||||||
return s.talk()
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
talk = function()
|
talk = function()
|
||||||
walk('robobutler-dlg')
|
walk('robobutler-dlg')
|
||||||
|
@ -203,7 +197,7 @@ dlg {
|
||||||
function()
|
function()
|
||||||
return "У "..plural('меня', 'нас')..' есть механизм для него.'
|
return "У "..plural('меня', 'нас')..' есть механизм для него.'
|
||||||
end,
|
end,
|
||||||
function()
|
function()
|
||||||
return [[-- У ]]..plural('меня', 'нас')..[[ есть механизм для него.^
|
return [[-- У ]]..plural('меня', 'нас')..[[ есть механизм для него.^
|
||||||
-- Предъявите механизм для того, чтобы я произвёл оценку полезности.
|
-- Предъявите механизм для того, чтобы я произвёл оценку полезности.
|
||||||
]]
|
]]
|
||||||
|
|
|
@ -35,11 +35,7 @@ room {
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
act = function(s)
|
act = function(s)
|
||||||
if not isduel then
|
return 'Старушка мирно посапывала, раскачиваясь в гамаке.'
|
||||||
return 'Старушка мирно посапывала, раскачиваясь в гамаке.'
|
|
||||||
else
|
|
||||||
return s.talk()
|
|
||||||
end
|
|
||||||
end,
|
end,
|
||||||
talk = function() return walk('cho_dlg'); end,
|
talk = function() return walk('cho_dlg'); end,
|
||||||
}
|
}
|
||||||
|
@ -189,7 +185,7 @@ dlg {
|
||||||
-- Ну, ремонт идёт за счёт пожизненной гарантии. Но есть одна просьба… хотя нет, забудьте.^^
|
-- Ну, ремонт идёт за счёт пожизненной гарантии. Но есть одна просьба… хотя нет, забудьте.^^
|
||||||
|
|
||||||
Она пожала плечами:^^
|
Она пожала плечами:^^
|
||||||
|
|
||||||
-- Как скажете.
|
-- Как скажете.
|
||||||
]],
|
]],
|
||||||
next = '#разговор'
|
next = '#разговор'
|
||||||
|
@ -432,7 +428,7 @@ dlg {
|
||||||
И тут начались выстрелы.
|
И тут начались выстрелы.
|
||||||
После войны вы моментально реагировали на громкий хлопок и металлический «бзынь» в сантиметре от руки.
|
После войны вы моментально реагировали на громкий хлопок и металлический «бзынь» в сантиметре от руки.
|
||||||
Вы спрятались в кабине, но вам не было видно, что происходит на входе в сарай.^^
|
Вы спрятались в кабине, но вам не было видно, что происходит на входе в сарай.^^
|
||||||
|
|
||||||
-- Я говорила вам не чинить этот комбайн!^^
|
-- Я говорила вам не чинить этот комбайн!^^
|
||||||
|
|
||||||
Хотя вам и не надо было смотреть, только лишь считать выстрелы.
|
Хотя вам и не надо было смотреть, только лишь считать выстрелы.
|
||||||
|
|
|
@ -20,13 +20,12 @@ room {
|
||||||
nam = 'call';
|
nam = 'call';
|
||||||
disp = 'домофон';
|
disp = 'домофон';
|
||||||
act = function(s)
|
act = function(s)
|
||||||
if not isduel then
|
return 'Домофон был включён, хозяин — дома. Достаточно было только поговорить с ним.'
|
||||||
return 'Домофон был включён, хозяин — дома. Достаточно было только поговорить с ним.'
|
|
||||||
else
|
|
||||||
return s.talk()
|
|
||||||
end
|
|
||||||
end;
|
end;
|
||||||
talk = function()
|
talk = function()
|
||||||
|
if _('pavels-call').obj:empty() then
|
||||||
|
return 'Вам нечего сказать.'
|
||||||
|
end
|
||||||
return walk('pavels-call')
|
return walk('pavels-call')
|
||||||
end;
|
end;
|
||||||
take = function()
|
take = function()
|
||||||
|
@ -47,7 +46,7 @@ room {
|
||||||
return false
|
return false
|
||||||
end,
|
end,
|
||||||
act = function()
|
act = function()
|
||||||
char.saw_suit = true
|
char.saw_suit = true
|
||||||
local out = [[
|
local out = [[
|
||||||
Боевой механизированный костюм высотой 2,7 метров, марка РГ-22.
|
Боевой механизированный костюм высотой 2,7 метров, марка РГ-22.
|
||||||
Рассчитан на одного пилота.
|
Рассчитан на одного пилота.
|
||||||
|
@ -81,13 +80,7 @@ dlg {
|
||||||
nam = 'pavels-call',
|
nam = 'pavels-call',
|
||||||
disp = 'Разговор с домофоном',
|
disp = 'Разговор с домофоном',
|
||||||
decor = [[Камера домофона смотрела на вас бесстрастным блеском.]],
|
decor = [[Камера домофона смотрела на вас бесстрастным блеском.]],
|
||||||
enter = function(self)
|
enter = [[-- Кто там? — спросил неприветливый мужской низкий голос.]],
|
||||||
if empty(self) then
|
|
||||||
return 'Вам нечего сказать.'
|
|
||||||
else
|
|
||||||
return [[-- Кто там? — спросил неприветливый мужской низкий голос.]]
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
obj = {
|
obj = {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
@ -100,7 +93,7 @@ dlg {
|
||||||
|
|
||||||
Домофон отключился. Видимо, нет.
|
Домофон отключился. Видимо, нет.
|
||||||
]]
|
]]
|
||||||
end
|
end
|
||||||
};
|
};
|
||||||
{
|
{
|
||||||
'#yours',
|
'#yours',
|
||||||
|
@ -475,7 +468,7 @@ dlg {
|
||||||
{
|
{
|
||||||
'#detail',
|
'#detail',
|
||||||
{
|
{
|
||||||
cond = function()
|
cond = function()
|
||||||
return (char.saw_suit == true)
|
return (char.saw_suit == true)
|
||||||
end,
|
end,
|
||||||
[[
|
[[
|
||||||
|
@ -508,7 +501,7 @@ dlg {
|
||||||
{
|
{
|
||||||
'#general',
|
'#general',
|
||||||
{
|
{
|
||||||
cond = function()
|
cond = function()
|
||||||
return (char.saw_suit == true and char.asked_suit ~= true)
|
return (char.saw_suit == true and char.asked_suit ~= true)
|
||||||
end,
|
end,
|
||||||
'У вас во дворе стоит РГ-22 с тремя независимыми программаторами этого типа. Вы на нём за хлебом ходите?',
|
'У вас во дворе стоит РГ-22 с тремя независимыми программаторами этого типа. Вы на нём за хлебом ходите?',
|
||||||
|
|
25
main3.lua
25
main3.lua
|
@ -4,27 +4,8 @@
|
||||||
require "fmt"
|
require "fmt"
|
||||||
require "noinv"
|
require "noinv"
|
||||||
declare "isdebug" (false)
|
declare "isdebug" (false)
|
||||||
declare "isduel" (false)
|
|
||||||
if not isduel then
|
require "proxymenu"
|
||||||
require "proxymenu"
|
|
||||||
else
|
|
||||||
std.menu_player = std.class ({
|
|
||||||
__menu_player_type = true;
|
|
||||||
new = function(self, v)
|
|
||||||
if type(v) ~= 'table' then
|
|
||||||
std.err ("Wrong argument to std.menu_player: "..std.tostr(v), 2)
|
|
||||||
end
|
|
||||||
if not v.room then
|
|
||||||
v.room = 'main'
|
|
||||||
end
|
|
||||||
v.invent = std.list {}
|
|
||||||
return std.player(v)
|
|
||||||
end;
|
|
||||||
inventory = function(s)
|
|
||||||
return s.invent
|
|
||||||
end;
|
|
||||||
}, std.player)
|
|
||||||
end
|
|
||||||
|
|
||||||
if isdebug then
|
if isdebug then
|
||||||
require "dbg"
|
require "dbg"
|
||||||
|
@ -76,7 +57,7 @@ room {
|
||||||
decor = [[
|
decor = [[
|
||||||
Вы стояли на окраине Жестианы.
|
Вы стояли на окраине Жестианы.
|
||||||
Прямая автодорога шла на север.
|
Прямая автодорога шла на север.
|
||||||
|
|
||||||
Здесь от неё на запад отходил небольшой заезд из булыжника.
|
Здесь от неё на запад отходил небольшой заезд из булыжника.
|
||||||
]]
|
]]
|
||||||
}
|
}
|
||||||
|
|
54
tools.lua
54
tools.lua
|
@ -59,55 +59,53 @@ init = function ()
|
||||||
end
|
end
|
||||||
}, me())
|
}, me())
|
||||||
char.act = nil
|
char.act = nil
|
||||||
if not isduel then
|
place( proxy_menu {
|
||||||
place( proxy_menu {
|
disp = function()
|
||||||
disp = function()
|
if stead.table.maxn(here().obj) > 0 then
|
||||||
if stead.table.maxn(here().obj) > 0 then
|
return 'ОСМОТРЕТЬ';
|
||||||
return 'ОСМОТРЕТЬ';
|
end
|
||||||
end
|
return false
|
||||||
return false
|
end;
|
||||||
end;
|
acts = { inv = 'act' };
|
||||||
acts = { inv = 'act' };
|
sources = { scene = true, inv = false }; -- осмотр инвентаря вынесен отдельно
|
||||||
sources = { scene = true, inv = false }; -- осмотр инвентаря вынесен отдельно
|
}, me())
|
||||||
}, me())
|
|
||||||
--[[
|
--[[
|
||||||
place( proxy_menu {
|
place( proxy_menu {
|
||||||
disp = 'ВЗЯТЬ';
|
disp = 'ВЗЯТЬ';
|
||||||
acts = { inv = 'take' };
|
acts = { inv = 'take' };
|
||||||
sources = { scene = true, inv = false };
|
sources = { scene = true, inv = false };
|
||||||
}, me())
|
}, me())
|
||||||
place( proxy_menu {
|
place( proxy_menu {
|
||||||
disp = 'ВЫБРОСИТЬ';
|
disp = 'ВЫБРОСИТЬ';
|
||||||
acts = { inv = 'drop' };
|
acts = { inv = 'drop' };
|
||||||
sources = { scene = false, inv = true };
|
sources = { scene = false, inv = true };
|
||||||
}, me())
|
}, me())
|
||||||
place( proxy_menu {
|
place( proxy_menu {
|
||||||
disp = 'ОТКРЫТЬ';
|
disp = 'ОТКРЫТЬ';
|
||||||
acts = { inv = 'open' };
|
acts = { inv = 'open' };
|
||||||
sources = { scene = false, inv = true };
|
sources = { scene = false, inv = true };
|
||||||
}, me())
|
}, me())
|
||||||
place( proxy_menu {
|
place( proxy_menu {
|
||||||
disp = 'ЗАКРЫТЬ';
|
disp = 'ЗАКРЫТЬ';
|
||||||
acts = { inv = 'close' };
|
acts = { inv = 'close' };
|
||||||
sources = { scene = false, inv = true };
|
sources = { scene = false, inv = true };
|
||||||
}, me())
|
}, me())
|
||||||
]]
|
]]
|
||||||
place( proxy_menu {
|
place( proxy_menu {
|
||||||
disp = function()
|
disp = function()
|
||||||
if stead.table.maxn( here().obj ) > 0 then
|
if stead.table.maxn( here().obj ) > 0 then
|
||||||
return 'ГОВОРИТЬ С';
|
return 'ГОВОРИТЬ С';
|
||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
end;
|
end;
|
||||||
acts = { inv = 'talk' };
|
acts = { inv = 'talk' };
|
||||||
sources = { scene = true, inv = false };
|
sources = { scene = true, inv = false };
|
||||||
}, me())
|
}, me())
|
||||||
end
|
|
||||||
end
|
end
|
||||||
game.after_take = function(s, w)
|
game.after_take = function(s, w)
|
||||||
take(w)
|
take(w)
|
||||||
end
|
end
|
||||||
|
|
||||||
game.after_drop = function(s, w)
|
game.after_drop = function(s, w)
|
||||||
drop(w)
|
drop(w)
|
||||||
end
|
end
|
||||||
|
@ -218,7 +216,7 @@ changeop = function(name, delta)
|
||||||
rawset(char, name, fairadd(rawget(char, name), delta))
|
rawset(char, name, fairadd(rawget(char, name), delta))
|
||||||
end
|
end
|
||||||
fairadd = function(value, add)
|
fairadd = function(value, add)
|
||||||
return math.floor(value + (100-value)*(add/100))
|
return math.floor(value + (100-value)*(add/100))
|
||||||
end
|
end
|
||||||
listinv = function()
|
listinv = function()
|
||||||
local out = ''
|
local out = ''
|
||||||
|
|
Loading…
Reference in a new issue