e1d4fccda5
Начат первый акт, пока что надо только добавить все предметы.
73 lines
2.1 KiB
Lua
73 lines
2.1 KiB
Lua
choose_location = dlg {
|
|
debug = true,
|
|
nam = 'Выберите локацию',
|
|
dsc = 'Нажмите на имя локации, в которую хотите переместиться.',
|
|
gen = function(s)
|
|
local k,v
|
|
objs(s):zap();
|
|
for k,v in pairs(_G) do
|
|
if isRoom(v) and not v.debug then
|
|
local n = call(v, 'nam');
|
|
put(phr(n, '', [[return goto("]]..k..[[")]]), s);
|
|
end
|
|
end
|
|
put (phr('Назад','','back()'), s)
|
|
end
|
|
}
|
|
|
|
choose_object = dlg {
|
|
debug = true,
|
|
nam = 'Выберите объект',
|
|
dsc = 'Нажмите на имя объекта, который вы хотите взять.',
|
|
gen = function(s)
|
|
local k,v
|
|
objs(s):zap();
|
|
for k,v in pairs(_G) do
|
|
if isObject(v) and not isRoom(v) and not isPlayer(v) and not v.debug and not have(v) then
|
|
local n = call(v, 'nam');
|
|
put(phr(n, '', [[return take("]]..k..[[")]]), s);
|
|
end
|
|
end
|
|
put (phr('Назад','','back()'), s)
|
|
end
|
|
}
|
|
|
|
drop_object = dlg {
|
|
debug = true,
|
|
nam = 'Выберите объект',
|
|
dsc = 'Нажмите на имя объекта, который вы хотите добавить в текущую сцену.',
|
|
gen = function(s)
|
|
local k,v
|
|
objs(s):zap();
|
|
for k,v in pairs(_G) do
|
|
if isObject(v) and not isRoom(v) and not isPlayer(v) and not v.debug and have(v) then
|
|
local n = call(v, 'nam');
|
|
put (phr(k,'','drop("'..k..'","'..deref(from())..'")'), s)
|
|
end
|
|
end
|
|
put (phr('Назад','','back()'), s)
|
|
end
|
|
}
|
|
|
|
debug_dlg = dlg {
|
|
debug = true,
|
|
nam = 'Инструмент Разработчика',
|
|
dsc = 'Выберите действие.',
|
|
obj = {
|
|
[1]=phr('Переход на локацию', nil ,[[pon(1); choose_location:gen(); return goto('choose_location')]]),
|
|
[2]=phr('Взять предмет', nil , [[pon(2); choose_object:gen(); return goto('choose_object')]]),
|
|
[3]=phr('Положить предмет', nil , [[pon(3); drop_object:gen(); return goto('drop_object')]]),
|
|
[4]=phr('Выход', nil , [[pon(4); back()]]),
|
|
},
|
|
};
|
|
|
|
debug_tool = obj {
|
|
debug = true,
|
|
nam = 'отладка',
|
|
inv = function(s)
|
|
return goto('debug_dlg');
|
|
end
|
|
};
|
|
|
|
inv():add('debug_tool');
|