# HG changeset patch # User Silverwing # Date 2017-12-11 21:09:12 # Node ID 08651134c3aae7c5095799a1750be30fb182bd53 # Parent 65250726f35be36f3cbf80036b6ef5b3f4cf3d23 Electric lamps diff --git a/atlantis_dlg.lua b/atlantis_dlg.lua --- a/atlantis_dlg.lua +++ b/atlantis_dlg.lua @@ -687,6 +687,7 @@ char_svetlova_dlg = dlg { flag_help = false; flag_explain = false; lfc_out_dialog = false; + dyp_quest = false; lfc_goldman_execute = 0; lfc_goldman_imprison = 1; lfc_goldman_banish = 0; @@ -750,6 +751,11 @@ char_svetlova_dlg = dlg { s:reset_more(); + if dyp_quest_state == 1 and not s.dyp_quest then + s.dyp_quest = true; + pon('dyp_quest'); + end; + poff("iyh1_learr", "iyh1_aikerjarr"); if (atl_iyh_state == 1 and atl_iyh_learr_spoken and atl_iyh_ryveerr_spoken) then pon('iyh1_learr'); @@ -1087,6 +1093,7 @@ char_svetlova_dlg = dlg { end}; {always=true, "Вернемся к делу.", [[Светлова кивает: "Говорите".]], code [[ char_svetlova_dlg:reset_more(); pret(); ]]}; {tag = "generic"}; + {tag = "dyp_quest", false, "Вождь Дипатреанотра просил меня принести \"светяющуюся капсулу\". Что мы можем ему предложить?", [[Екатерина Светлова отвечает: "Поговорите с Райтом, он найдет что-нибудь, что можно отдать навьярам". ]]}; {tag = "sabotage", false, "Даркстар считает, что причиной пожара в Игнисе был саботаж. Что вы об этом думаете?", function(s) if (atl_iof_learr_dead) then atl_rep_darkstar = atl_rep_darkstar - 1; @@ -1500,6 +1507,7 @@ char_michael_wright_dlg = dlg { end}; {always=true, "Вернемся к делу.", [[Майкл Райт кивает: "Хорошо".]], code [[ char_michael_wright_dlg:reset_more(); pret(); ]]}; {tag="generic"}; + {tag="dyp_quest", false, "Вождь Дипатреанотра просил меня принести \"светящуюся капсулу\". Что мы можем ему предложить?", [[ Майкл Райт говорит: "Можете взять один из фонарей из того шкафа", -- Майкл показывает рукой на шкаф в другом конце мастерской, -- "И не забудьте захватить пару-тройку запасных батарей. Их можете взять там же". ]]}; {tag="nih_fixed", false, "Я нашел утечку.", function(s) if atl_nih_state == 2 then atl_nih_state = 3; diff --git a/items.lua b/items.lua --- a/items.lua +++ b/items.lua @@ -644,4 +644,99 @@ item_naethvjirr_key = obj { disp = "Ключ из древнего храма"; dsc = [[На пьедестале лежит небольшая прозрачная {коробочка}, внутрь которой заключена прямоугольная пластинка из неизвестного материала. ]]; inv = [[Небольшая прозрачная {коробочка}, внутрь которой заключена прямоугольная пластинка из неизвестного материала. Пластинка с обеих сторон покрыта тонкими металлическими нитями. ]]; -}; \ No newline at end of file +}; + +item_dynamo = obj { + var { + state = 0; + }; + nam = "item_dynamo"; + disp = function(s) + if s.state == 0 then + return "Ручная динамо-машина"; + else + return "Детали динамо-машины"; + end; + end; + dsc = [[На одном из столов лежит небольшая {коробочка} с вращающейся рукояткой. ]]; + inv = function(s) + if s.state == 0 then + return [[Небольшая динамо-машина с рукояткой и клеммами для подключения к электрической цепи. При вращении рукоятки вырабатывается электрический ток. ]]; + else + return [[Разобранная динамо-машина. ]]; + end; + end; + tak = [[Вы забираете динамо-машину. ]]; + used = function(s, o) + if s.state == 0 then + if o == item_toolbox then + if here().underwater then + return [[Вы не можете сделать это здесь. ]]; + else + s.state = 1; + return [[Вы разбираете динамо-машину. ]]; + end; + end; + elseif s.state == 1 then + if o == item_electric_lamp and item_electric_lamp.state == 1 then + if here().underwater then + return [[Вы не можете сделать это здесь. ]]; + else + item_electric_lamp.state = 2; + remove(s, pl); + return [[Вы собираете лампу с динамо-машиной в одном корпусе. Теперь батарею можно заряжать не разбирая лампу. Вождь навьяров будет рад такому подарку. ]] + end; + end; + end; + end; +}; + +item_electric_lamp = obj { + var { + state = 0; + }; + nam = "item_electric_lamp"; + disp = function(s) + if s.state == 0 then + return "Лампа"; + elseif s.state == 1 then + return "Разобранная лампа"; + elseif s.state == 2 then + return "Лампа с динамо-машиной"; + end; + end; + dsc = [[В шкафу лежат на полках лампы, предназначенные для монтирования на скафандры. ]]; + inv = function(s) + if s.state == 0 then + return "Электрическая лампа в герметичном корпусе, содержащем саму лампу и батарею для ее питания. Батареи хватит примерно на полчаса-час работы. "; + elseif s.state == 1 then + return "Детали электрической лампы: Корпус, лампа, батарея. "; + elseif s.state == 2 then + return "Электрическая лампа в герметичном корпусе, содержащем саму лампу, батарею для ее питания и динамо-машину. Батареи хватит примерно на полчаса-час работы. Покрутите рукоятку чтобы зарядить батарею. "; + end; + end; + tak = "Вы забираете одну из ламп. "; + used = function(s, o) + if s.state == 0 then + if o == item_toolbox then + if here().underwater then + return [[Вы не можете сделать это здесь. ]]; + else + s.state = 1; + return [[Вы разбираете лампу. ]]; + end; + end; + elseif s.state == 1 then + if o == item_dynamo and item_dynamo.state == 1 then + if here().underwater then + return [[Вы не можете сделать это здесь. ]]; + else + s.state = 2; + remove(item_dynamo, pl); + return [[Вы собираете лампу с динамо-машиной в одном корпусе. Теперь батарею можно заряжать не разбирая лампу. Вождь навьяров будет рад такому подарку. ]] + end; + end; + end; + end; +}; + diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -199,8 +199,9 @@ function init() pl.where = intro; ---debug pl.where = "dyp_crab_cave_puzzle"; - --put("item_lamp", pl); - --put("item_pump", pl); + put("item_toolbox", pl); + put("item_electric_lamp", pl); + put("item_dynamo", pl); --put("item_toolbox", pl); --put("item_cogs", pl); --put("item_ducttape", pl);