item_book_on_navjiarr = obj { nam = "item_book_on_navjiarr"; disp = "Книга о навьярах"; dsc = [[На столе лежит кем-то оставленная {книга}.]]; tak = [[Книга содержит некоторые сведения о навьярах. Возможно, она поможет вам в странствиях. ]]; inv = function(s) if (here().underwater) then return [[Я не смогу здесь читать. ]]; else walkin('item_book_dlg'); end; end; }; item_book_dlg = obj { var = { a = false; b = false; c = false; }; nam = "item_book_dlg"; entered = [[Вы открываете оглавление и ищете нужную вам информацию. ]]; phr = { {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(); ]]}; {always=true, "Язык", code [[ psub('language'); ]]}; {tag="language"}; --TODO заполнить этот раздел {always=true, "Алфавит и письменность", [[]], code [[ item_book_dlg.a = item_book_dlg.a + 1; ]]}; {always=true, "Грамматика", [[]], code [[ item_book_dlg.b = item_book_dlg.b + 1; ]]}; {always=true, "Словарь", [[]], code [[ item_book_dlg.c = item_book_dlg.c + 1; ]]}; {always=true, "[В другой раздел]", code [[ pret(); ]]} }; }; item_pickaxe = obj { nam = "pickaxe"; disp = "Кирка"; dsc = [[На одной из полок вы замечаете {кирку}. ]]; tak = [[Вы решили забрать кирку с собой, на всякий случай. ]]; inv = [[Хорошая годная кирка. Сделанная из неизвестного металла она хорошо перенесла тысячелетия здесь. ]]; use = function(s, o) local canhit = false; if (type(o.canhit) == "function") then canhit = o.canhit(o); else canhit = o.canhit; end; if (canhit) then if (o.onhit) then return(o.onhit(o)); else return ""; end; elseif (o.nohitmsg) then return o.nohitmsg; else return "Я не буду этого делать!"; end; end; }; item_spear = obj { nam = "item_spear"; disp = "Копье"; dsc = [[{Копье Фаэтларра} аккуратно прислонено к стене]]; tak = [[Фаэтларр забирает копье. ]]; inv = [[Копье, добытое Фаэтларром в честном бою. ]]; use = function(s, o) local canhit = false; if (type(o.canhit) == "function") then canhit = o.canhit(o); else canhit = o.canhit; end; if (canhit) then if (o.onhit) then return(o.onhit(o)); else return ""; end; elseif (o.nohitmsg) then return o.nohitmsg; else return "Я не буду этого делать!"; end; end; }; item_colt = obj { var { bullets = 6; }; nam = "colt"; disp = function(s) return "Кольт (" .. tostring(s.bullets) .. " зарядов)"; end; dsc = [[Ваш револьвер. Надежное оружие в хорошем состоянии. Оно еще не раз спасет вашу жизнь. У вас также есть небольшой запас патронов к нему. ]]; use = function(s, o) if (here().underwater) then return "Под водой это вам не поможет. "; end; if (s.bullets == 0) then return "Нужно перезарядиться, патроны кончились"; end; local canshoot = false; if (type(o.canshoot) == "function") then canshoot = o.canshoot(o); else canshoot = o.canshoot; end; if (canshoot) then s.bullets = s.bullets - 1; p("Вы стреляете в "..o.disp2 .. ". "); if (o.onshoot) then return(o.onshoot(o)); else return ""; end; elseif (o.noshootmsg) then return o.noshootmsg; else return "Я не буду этого делать!"; end; end; inv = function(s) if (s.bullets > 0) then return [[Ваш револьвер. Надежное оружие в хорошем состоянии. Оно еще не раз спасет вашу жизнь. У вас также есть небольшой запас патронов к нему. ]]; else s.bullets = 6; p [[Вы перезаряжаете ваш револьвер и оружие снова готово к бою. ]]; if (type(here().onreload) == 'function') then here().onreload(); end; end; end; }; item_harpoon = obj { var { charge = 1; }; nam = "item_harpoon"; disp = function(s) if (s.charge == 0) then return "Гарпунное ружье (разряжено)"; else return "Гарпунное ружье (заряжено)"; end; end; dsc = [[ ]]; use = function(s, o) if (s.charge == 0) then return "Ружье не заряжено. "; end; local canshoot = false; if (type(o.canshoot) == "function") then canshoot = o:canshoot(); else canshoot = o.canshoot; end; local canthrust = false; if (type(o.canthrust) == "function") then canthrust = o:canthrust(); else canthrust = o.canthrust; end; if (canthrust) then p("Вы атакуете "..o.disp2 .. ". "); if (o.onthrust) then return(o.onthrust(o)); else return ""; end; elseif (canshoot) then s.charge = s.charge - 1; p("Вы стреляете в "..o.disp2 .. ". "); if (o.onshoot) then return(o.onshoot(o)); else return ""; end; elseif (o.noshootmsg) then return o.noshootmsg; else return "Я не буду этого делать!"; end; end; inv = function(s) if (s.charge > 0) then return [[Пневматическое ружье с Левиафана. Стреляет гарпунами. Также у вас есть несколько запасных гарпунов с собой. ]]; else s.charge = 1; p [[Вы заряжаете ружье. ]]; if (type(here().onreload) == 'function') then here().onreload(); end; end; end; }; item_first_city_key = obj { nam = "first_city_key"; disp = "Ключ от города"; inv = [[Небольшой светящийся кубик со стороной около 2-х сантиметров. Он плавно меняет цвета: синий, зеленый, желтый, белый, красный, черный. ]]; use = function(s, o) if (o == char_first_city_guardian) then objs("first_city_entrance"):enable("first_city_first_gate"); first_city_entrance.open = true; return [[Как только кубик попадает в поле зрения стража, его плавник гаснет и ворота начинают медленно открываться. Через несколько минут они застывают в открытом состоянии. Теперь ничто не мешает вашему проходу. ]]; end; end }; item_service_info = obj { nam = "service_info"; disp = "Схема города"; inv = [[Это "карта" сервисных тоннелей Лсэрианотра. Вы видите следующие последовательности символов, подписанные на языке навьяров Nol Tei Vlye'Tei Elt'Dyle Tei'Elt Tei'Tei ]]; }; item_umbrella = obj { nam = "umbrella"; disp = "Зонт"; inv = [[Совершенно новый зонт производства "Винсент и сыновья". ]]; }; --[[ Chapter 1 ]] item_lamp = obj { nam = "lamp"; disp = "Лампа"; dsc = "На столе стоит {керосиновая лампа}. "; tak = "Вы забираете лампу с собой. "; inv = function(s) if (pl.where.nolamp) then return "Здесь не стоит зажигать лампу. "; end; if (pl.has_light) then pl.has_light = false; return "Вы гасите свет. "; else pl.has_light = true; return "Вы зажигаете лампу. "; end; end; }; item_toolbox = obj { nam = "toolbox"; disp = "Ящик с инструментами"; dsc = [[На земле, рядом со скамейкой стоит {ящик с инструментами}. ]]; tak = function(s) if (not char_worker.bought) then return [[Рабочий огрызается на вас: _"Руки прочь!"_ ]], false; else return [[Вы забираете ящик с собой]], true; end; end; inv = [[Ящик со всевозможными полезными и не очень инструментами - отвертками, ключами, молотками и т.д. ]]; }; item_money = obj { nam = "money"; disp = function(s) if (pl.money == 0) then return "Пустой кошелек"; else return s.money_format(); end; end; inv = function(s) if (pl.money == 0) then return "Кошелек пуст"; else return [[Кошелек с монетами различного достоинства на сумму ]] .. s.money_format(); end; end; money_format = function() if (pl.money % 100 / 10 ~= 1 and pl.money % 10 == 1) then return tostring(pl.money) .. " шиллинг"; elseif (pl.money % 100 / 10 ~= 1 and (pl.money % 10 == 2 or pl.money % 10 == 3 or pl.money % 10 == 4)) then return tostring(pl.money) .. " шиллинга"; else return tostring(pl.money) .. " шиллингов"; end; end; }; item_note_1 = obj { nam = "note1"; disp = "Записка"; inv = [[Небольшой клочок бумаги с адресом Майкла Райта в Лондоне. ]]; }; item_charts = obj { nam = "charts"; disp = "Документы отца"; dsc = [[На столе лежат {схемы складов и верфей} Вестхейвен Трансоушен. ]]; 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"_. Чуть ниже написано: _"Подводный корабль предназначенный для долговременных автономных путешествий"_. Теперь все встает на свои места - вот что строил ваш отец. ]]; end; }; item_leviathan_schematics = obj { nam = "item_leviathan_schematics"; disp = "Чертежи \"Левиафана\""; inv = [[Чертежи "Левиафана" - субмарины, созданной Вестхейвен Трансоушен. ]]; }; item_cogs = obj { nam = "item_cogs"; disp = "Шестеренки"; inv = [[Несколько шестерней разного размера. ]]; use = function(s, o) if (o == crane_service_access_panel and crane_service_access_panel.state == 1) then remove(s, pl); dock_crane.broken = false; return [[Вы заменяете поврежденные шестерни новыми. ]]; end; end; }; item_w32_key = obj { nam = "item_w32_key"; disp = "Ключ"; dsc = [[За книгами спрятан небольшой {ключик}. ]]; tak = function(s) w32_mgr.key_inplace = false; return [[Вы забираете ключ. ]]; end; inv = [[Ключ от стола управляющего из склада 32. ]]; }; item_goldmans_clock = obj { nam = "item_goldmans_clock"; disp = "Часы"; dsc = [[На полу валяются дорогие {карманные часы}. ]]; tak = [[Вы забираете часы себе. ]]; 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_lse_map = obj { var { state = 1; }; seen_level = 1; nam = "item_lse_map"; disp = function(s) if (s.state == 1) then return "Фрагмент карты"; elseif (s.state == 5) then return "Навьярская карта"; else return "Фрагменты карты"; end; end; tak = [[Вы забираете табличку себе. ]]; dsc = [[На пьедестале посреди комнаты лежит металлическая {табличка}. ]]; inv = function(s) if (s.state == 1) then return [[Один из фрагментов навьярской карты, ведущей в Лсэрианотр - легендарный город подводной расы. ]]; elseif (s.state == 5) then return [[Навьярская карта, ведущая в Лсэрианотр - легендарный город подводной расы. ]]; else return [[Несколько фрагментов навьярской карты, ведущей в Лсэрианотр - легендарный город подводной расы. ]]; end; end; }; item_venaedanotrr_map = obj { nam = "item_venaedanotrr_map"; disp = "Навьярская карта"; dsc = [[Древняя металлическая пластина с картой пути к Венаэданотру. Вы путаетесь в сложном переплетении символов, линий и обозначений -- это гораздо сложнее карт, описанных в учебнике и виденных вами до сих пор. ]]; }; 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 = [[Небольшая прозрачная {коробочка}, внутрь которой заключена прямоугольная пластинка из неизвестного материала. Пластинка с обеих сторон покрыта тонкими металлическими нитями. ]]; };