{always=true, "Арифметика", [[Навьяры используют шестеричную систему счисления. Для цифр используются цветовые обозначения, аналогичные буквам: фиолетовый - 0, синий - 1, зеленый - 2, желтый - 3, оранжевый - 4, красный - 5. названия каждой цифры на навьярском языке(записаны в системе Светловой) 0 – Nol, 1 – Lse, 2 – Dyle, 3 – Vlye, 4 – Elt, 5 – Tei. ]]};
--TODO полезное описание картографии
{always=true, "Картография", [[Навьярские карты значительно отличаются от наших. Масштабы не задаются и не выдерживаются, позволяя тем самым умещать множество деталей там где они нужны и сжимать расстояние там, где это не имеет значения. навьярские карты в основном используются для записи путей от центральной точки к нескольким удаленным от нее. ]]};
{always=true, "[Отложить книгу]", code [[ if item_book_dlg.a and item_book_dlg.b and item_book_dlg.c then language_known = true; end; back(); ]]};
inv = [[Схемы нескольких строений, принадлежавших компании отца. На некоторых схемах есть места отмечены жирными крестиками. Схемы с крестиками обозначены как склад 18, док 2, склад 32. ]];
use = function(s, o)
if (o == char_wright_home) then
remove(s, pl);
put(s, item_wright_table);
char_wright_home.documents = true;
return [[
Вы отдаете бумаги Джеку. Он кладет их на стол и принимается изучать.
]];
end;
end;
tak = function()
pn("Лучше оставить бумаги Джеку. Возможно он что-нибудь найдет. ");
return false;
end;
};
item_bottle = obj {
nam = "item_bottle";
disp = "Бутылка с пойлом";
inv = [[Бутылка дешевого пойла. Вас воротит от одного запаха этой дряни. ]];
use = function(s, o)
if (o == char_worker) then
remove(s, pl);
char_worker.bought = true;
pr([[Вы подходите к рабочему и, аккуратно доставая бутылку, спрашиваете: ^
-- Идет, -- отвечает рабочий, выхватывая из ваших рук заветную бутылку. ]]);
end;
end;
};
item_pump_broken = obj {
nam = "item_pump_broken";
disp = "Насос";
inv = [[Старый ручной насос. Рычаг сломан, делая его использование невозможным. ]];
};
item_pump = obj {
nam = "item_pump";
disp = "Насос";
inv = [[Старый ручной насос. ]];
};
item_pump_details = obj {
nam = "item_pump_details";
disp = "Детали насоса";
inv = [[
Запчасти для насоса.
]];
use = function(s, o)
if (o == item_pump_broken) then
remove(s, pl);
remove(item_pump_broken, pl);
put(item_pump, pl);
return [[Вы починили насос. ]];
end;
end;
};
item_electrodes = obj {
nam = "item_electrodes";
disp = "Электроды";
inv = [[Несколько металлических пластин, предназначенных для использования в качестве электродов. ]];
};
item_ducttape = obj {
nam = "item_ducttape";
disp = "Изолента";
dsc = [[На столе лежит {моток изоленты}. ]];
tak = [[Вы забираете изоленту. ]];
inv = [[Моток изоленты. ]];
};
item_map = obj {
nam = "item_map";
disp = "Карта";
inv = function(s)
if atlantis_found then
return [[Карта Атлантического океана, судя по маркировке, принадлежащая компании "Вестхейвен Трансоушен". На ней изображено несколько объектов, имеющих значение для компании и, в частности, Атлантида. ]];
else
atlantis_found = true;
return [[Карта Атлантического океана, судя по маркировке, принадлежащая компании "Вестхейвен Трансоушен". Вы внимательно осматриваете карту в поисках чего-нибудь необычного. Ваше внимание привлекает отметка "Атлантида", сделанная посреди океана. К сожалению, никаких пояснений у вас нет и единственное, что вы можете сделать -- это попытаться добраться до этой точки. ]];
end;
end;
};
item_map_2 = obj {
nam = "item_map_2";
disp = "Карта";
inv = function(s)
iraaphaanotrr_found = true;
dypatreanotrr_found = true;
return [[Карта, отданная вам Екатериной Светловой. Эта карта почти идентична найденной вам на складе, за исключением наличия дополнительных точек, указывающих навьярские города Дипатреанотр и Ираафаанотр. ]];
end;
};
item_unknown_schematics = obj {
nam = "item_unknown_schematics";
disp = "Чертежи";
inv = function(s)
remove(s, pl);
put(item_leviathan_schematics, pl);
return [[Вы рассматриваете чертежи, найденные на складе. Это чертежи какого-то необычного корабля. Многие детали конструкции кажутся вам непонятными, излишними, переусложненными пока вы не натыкаетесь на надпись в углу: _"Проект ,,Левиафан'', Вестхейвен Трансоушен, 1900"_. Чуть ниже написано: _"Подводный корабль предназначенный для долговременноых автономных путешествий"_. Теперь все встает на свои места - вот что строил ваш отец. ]];
inv = [[Дорогие карманные часы на цепочке. Под крышкой гравировка "Франсуа Голдман, 1864". ]];
};
item_statuette = obj {
nam = "item_statuette";
disp = "Статуэтка";
inv = [[Металлическая статуэтка, сделанная из неизвестного вам сплава, она хорошо сохранилась в океанской воде. Статуэтка в деталях изображает навьяра, держащего в правой руке блокнот, и сосредоточенно смотрящего перед собой. ]];
};
item_temple_disk = obj {
nam = "item_temple_disk";
disp = "Светодиск из храма";
dsc = [[У стены лежит небольшой блестящий диск. ]];
tak = [[Вы поднимаете диск. ]];
inv = [[Найденный в храме блестящий гладкий диск из неизвестного материала. Диаметр около 10 сантиметров. В центре небольшое треугольное отверстие. Вдоль внешней кромки - цветные полосы. ]];
};
item_legend_of_temple = obj {
nam = "item_legend_of_temple";
disp = "Навьярская табличка";
dsc = [[На полу в углу валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены цветные полосы, соответствующие буквам языка навьяров.
~Легенда о храме в глубинах~]];
};
item_legend_of_dark_source = obj {
nam = "item_legend_of_dark_source";
disp = "Навьярская табличка";
dsc = [[На полу у входа валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены цветные полосы, соответствующие буквам языка навьяров.
~Легенда об излучающем тьму~]];
};
item_legend_of_first_city = obj {
nam = "item_legend_of_first_city";
disp = "Навьярская табличка";
dsc = [[На полу в углу валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены цветные полосы, соответствующие буквам языка навьяров.
~Легенда о первом городе~]];
};
item_legend_of_hunter = obj {
nam = "item_legend_of_hunter";
disp = "Навьярская табличка";
dsc = [[На полу в углу валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены цветные полосы, соответствующие буквам языка навьяров.
~Легенда об охотнике~]];
};
item_navjiarr_chart_1 = obj {
nam = "item_navjiarr_chart_1";
disp = "Навьярская табличка";
dsc = [[На полу в углу валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены странные обозначения. ]];
};
item_navjiarr_chart_iraa = obj {
nam = "item_navjiarr_chart_iraa";
disp = "Карта из Ираафаанотра";
dsc = [[На полу в углу валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены странные обозначения. ]];
};
item_navjiarr_chart_dyp = obj {
nam = "item_navjiarr_chart_dyp";
disp = "Карта из Дипатреанотра";
dsc = [[На пьедестале лежит металлическая табличка. ]];
tak = function(s)
path("Выйти из храма"):enable();
return [[Как только вы подбираете табличку, дверь открывается. ]];
end;
inv = [[Металлическая табличка, на которую нанесены странные обозначения. ]];
};
item_navjiarr_chart_2 = obj {
nam = "item_navjiarr_chart_2";
disp = "Навьярская табличка";
dsc = [[На полу в углу валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены странные обозначения. ]];
};
item_navjiarr_chart_ven = obj {
nam = "item_navjiarr_chart_ven";
disp = "Карта из Венаэданотра";
inv = [[Металлическая табличка с нанесенными обозначениями. ]];
}
item_navjiarr_chart_3 = obj {
nam = "item_navjiarr_chart_3";
disp = "Навьярская табличка";
dsc = [[На полу в углу валяется какой-то {предмет}. ]];
tak = [[Вы поднимаете предмет - это небольшая металлическая табличка. ]];
inv = [[Металлическая табличка, на которую нанесены странные обозначения. ]];
};
item_navjiarr_cube = obj {
nam = "item_navjiarr_cube";
disp = "Навьярский артефакт";
inv = [[Небольшой прозрачный куб, очень холодный на ощупь - холод ощущается даже в скафандре. От него исходит слабое свечение. ]];
};
item_talk_device = obj {
nam = "item_talk_device";
disp = "Устройство для общения с навьярами";
inv = [[Небольшое устройство с клавиатурой и большим количеством цветных лампочек. Оно полностью герметично и может быть использовано под водой. ]];
};
item_suit = suit {
dlg = "call_leviathan";
nam = "Скафандр";
has_coder = true;
};
item_deep_key = obj {
nam = "item_deep_key";
disp = "Пирамидка";
dsc = [[На пьедестале вы видите небольшой блестящий {предмет}. ]];
inv = [[Небольшая полупрозрачная пирамидка из неизвестного материала. Гладкая и холодная на ощупь. На гранях пирамидки нанесены непонятные символы. ]];
tak = [[Это оказалась небольшая полупрозрачная пирамидка. Вы забираете ее себе. ]];
};
item_navjiarr_chart_z = obj {
nam = "item_navjiarr_chart_z";
disp = "Навьярская табличка";
dsc = [[На пьедестале лежит небольшая металлическая {табличка}. ]];
tak = function(s)
return [[Вы поднимаете предмет - это небольшая металлическая табличка. Вдалеке вы слышите скрежет камней - дверь храма снова открыта. ]];
end;
inv = [[Металлическая табличка, на которую нанесены странные обозначения. ]];
};
item_naethvjirr_key = obj {
nam = "item_naethvjirr_key";
disp = "Ключ из древнего храма";
dsc = [[На пьедестале лежит небольшая прозрачная {коробочка}, внутрь которой заключена прямоугольная пластинка из неизвестного материала. ]];
inv = [[Небольшая прозрачная {коробочка}, внутрь которой заключена прямоугольная пластинка из неизвестного материала. Пластинка с обеих сторон покрыта тонкими металлическими нитями. ]];
};
\ No newline at end of file
utils.lua
➞
Show inline comments
--[[
Общие утилиты для игр на Instead. Скорее всего будут повторно использоваться в следующих играх, если таковые будут.
]]
--[[
]]
ArrayUtils = {
indexOf = function(array, item)
for i = 1, #array do
if (array[i] == item) then
return i;
end;
end;
return 0;
end;
};
--[[
]]
PartyUtils = {
addToParty = function(object)
if (object.home) then
if (ArrayUtils.indexOf(pl.party, object.nam) == 0) then
move(object, object.home);
table.insert(pl.party, object.nam);
end;
end;
end;
};
--[[
functions, design to simplify some typical actions while developing Instead game
]]
EngineUtils = {
getStringValue = function(source, param)
local value = "";
if (type(source) == "function") then
value = source(param);
else
value = source;
end;
return value;
end;
getValue = function(source, param)
local value = nil;
if (type(source) == "function") then
value = source(param);
else
value = source;
end;
return value;
end;
};
--[[
internal space
]]
_kh = {
vroom_enter = function(s)
local v = EngineUtils.getValue(s.where);
if (v) then
walk(v);
else
return false;
end;
end;
vroom_save = function(s)
if need then
local t = stead.string.format("%s = kh_vroom(%s, %q, %s);\n",