jacques/objects.lua

219 lines
9.2 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

door1_obj = obj{
nam = 'дверь 1',
dsc = 'Здесь есть {дверь 1}, ',
act = 'Табличка на двери гласит: "За этой дверью находится смерть."',
}
door2_obj = obj{
nam = 'дверь 2',
dsc = '{дверь 2} и ',
act = 'Табличка на двери гласит: "Это - безопасная дверь"',
}
door3_obj = obj{
nam = 'дверь 3',
dsc = '{дверь 3}.',
act = 'Табличка на двери гласит: "Смерть за дверью 2"',
}
-- === Испытание 2 ===
cobj = function(v)
v.use = function(this,that)
if (here() == end_fall) then return 'Нет, вы уже пропустили свой шанс.' end;
return call(this, 'fuse', that);
end;
v.used = v.use;
return obj(v);
end
rope = cobj{
nam = 'верёвка',
inv = 'Длинная крепкая пеньковая верёвка.',
fuse = function(this, that)
if (that == 'lock') then
inv():del('lock');
inv():del('rope');
inv():add('rope_with_lock');
return 'Вы привязываете к концу верёвки замок.'
end;
end,
}
boat = cobj{
nam = 'лодка',
inv = 'Складная одноместная лодка с вёслами.',
fuse = function(this, that)
if (that == 'stick') then
inv():del('stick');
inv():del('boat');
inv():add('boat_with_stick');
return 'Вы раскладываете лодку и укрепляете на ней палку, как мачту.'
end;
end,
}
cape = cobj{
nam = 'плащ',
inv = function()
local response = 'Заботливо сложенный коричневый плотный плащ. Хорош в сырую погоду и неплох для скрытного лазания по лесу.';
if cape.wet == true then response = response.." Да, ещё плащ промок до нитки." end;
return response;
end,
wet = false,
}
boat_with_stick = cobj{
nam = 'лодка с палкой',
inv = 'Одноместная лодка с вёслами; рядом с сиденьем прикреплена палка, как мачта. От этого сидеть внутри ещё неудобнее, но возможно; впрочем, куда вам уплыть в свободном полёте.',
fuse = function(this, that)
if (that == 'cape') then
inv():del('cape');
inv():add('sailboat');
inv():del('boat_with_stick');
return 'Вы прикрепляете на мачту плащ и получаете... парусную лодку!';
end;
end,
}
sailboat = obj{
nam = 'парусная лодка',
inv = 'Одноместная лодка с двумя вёслами и самодельным парусом из плаща и палки. Трудно сказать, далеко ли вы уплывёте.'
}
rope_with_lock = cobj{
nam = 'верёвка с замком',
inv = 'Длинная пеньковая верёвка, на конце которой болтается тяжеленный амбарный замок. В принципе, это можно использовать как оружие..возможно, метательное.',
}
pot = cobj{
nam = 'горшок',
inv = 'Пустой глиняный коричневый горшочек.',
fuse = function(this, that)
if (that == 'waterskin') then
inv():del('pot');
inv():del('waterskin');
inv():add('pot_with_water');
return 'Вы заполняете горшок водой.';
elseif(that == 'rope') then
inv():del('pot');
inv():del('rope');
inv():add('pot_with_rope');
return 'Вы кладёте в горшок верёвку.';
elseif(that == 'black_powder') then
inv():del('pot');
inv():del('black_powder');
inv():add('pot_with_powder');
return 'Вы заполняете горшок чёрным порохом.';
end;
end,
}
stick = cobj{
nam = 'палка',
inv = 'Толстая ветка средней длины. На неё хорошо опираться во время ходьбы по горам.',
fuse = function(this, that)
if (that == 'rope') then
inv():del('stick');
inv():del('rope');
inv():add('club');
return 'Вы обвязываете верёвкой палку. Такой дубинушкой можно и пришибить!';
elseif (that == 'rope_with_lock') then
inv():del('stick');
inv():del('rope_with_lock');
inv():add('mace');
return 'Вы привязываете свободный конец верёвки к палке. У вас получилось настоящее оружие!';
end;
end,
}
lock = cobj{
nam = 'амбарный замок',
inv = 'Амбарный навесной замок. Большой и увесистый.'
}
club = cobj{
nam = 'дубина',
inv = 'Толстая палка, обмотанная верёвкой вполне может послужить как хорошая дубинка.',
fuse = function(this, that)
if (that == 'rope') then
inv():del('stick');
inv():del('rope');
inv():add('club');
end;
end,
}
mace = cobj{
nam = 'булава',
inv = 'Один конец верёвки привязан к палке, на втором болтается тяжёлый замок. Это же настоящая цепная булава!',
}
pot_with_powder = cobj{
nam = 'горшочек с порохом',
inv = 'Горшок из коричневой глины, заполненный чёрным порохом. Не переворачивать.',
fuse = function(this, that)
if (that == 'rope') then
inv():del('pot_with_powder');
inv():del('rope');
inv():add('bomb');
return 'Вы кладёте в порох верёвку как фитиль. У вас получилась самодельная бомба.';
end;
end,
}
pot_with_rope = cobj{
nam = 'горшок с верёвкой',
inv = 'Горшок из коричневой глины, в котором лежит верёвка.',
fuse = function(this, that)
if (that == 'black_powder') then
inv():del('pot_with_rope');
inv():del('black_powder');
inv():add('bomb');
return 'Вы заполняете горшок чёрным порохом и вытаскиваете верёвку как фитиль. У вас получилась самодельная бомба.';
end;
end,
}
black_powder = cobj{
nam = 'чёрный порох',
inv = 'Небольшой мешочек с чёрным порохом. Хранить в сухом и холодном месте. Вблизи лучше не чихать.',
}
bomb = cobj{
nam = 'бомба',
inv = 'Горшок, доверху наполненный чёрным порохом, из которого высовывается отрезок верёвки. Настоящая самодельная бомба. Если порох будет сухим, такая сможет взорвать небольшое каменное здание.'
}
waterskin = cobj{
nam = 'мех с водой',
inv = 'Мех с водой.',
fuse = function(this, that)
if (that == 'cape') then
inv():del('waterskin');
cape.wet = true;
return 'Вы выливаете воду на плащ и он становится мокрым.';
end;
end,
}
plantain = cobj{
nam = 'листья подорожника',
inv = 'Несколько листьев подорожника большого (Plantago major), травянистого растения семейства Подорожниковые.',
fuse = function(this, that)
if (that == 'cape' and cape.wet) then
inv():del('cape');
inv():del('plantain');
inv():add('compress');
return 'Вы заворачиваете листья в мокрый плащ и получаете лечебный компресс с листьями подорожника. Хотя немного не угадали с размером. ';
end;
end,
}
compress = cobj{
nam = 'компресс',
inv = 'Лечебный компресс с листьями подорожника. Если вы ушибнетесь всей спиной (что вполне возможно в вашей ситуации), то может быть, он потом вас вылечит...хотя в вашем случае, вряд ли.',
}
knife = cobj{
nam = 'нож',
inv = 'Охотничий нож с резной рукоятью.',
}
axe = cobj{
nam = 'топор',
inv = 'Большой железный топор для рубки деревьев...может быть, и для чего другого сгодится.',
}
pot_with_water = cobj{
nam = 'горшок с водою',
inv = 'Глиняный коричневый горшочек, заполненный водой.',
fuse = function(this, that)
if (that == 'axe') then
inv():del('pot_with_water');
inv():del('axe');
inv():add('axe_porridge');
return 'Вы кладёте в горшок топор. Часть воды выливается.';
end;
end,
}
axe_porridge = cobj{
nam = 'каша из топора',
inv = 'В маленьком глиняном горшочке, доверху заполненном водой, лежит топор. Наверное, это будущая каша.',
}