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