# HG changeset patch # User Silverwing # Date 2015-05-31 07:40:56 # Node ID a12ad365166a305af5cbfa2963789a058e11bd05 # Parent 42ab3aa9fe3746348bd3b63b502a89d375ef885c fixes diff --git a/first_city_outer_rim.lua b/first_city_outer_rim.lua --- a/first_city_outer_rim.lua +++ b/first_city_outer_rim.lua @@ -31,12 +31,12 @@ first_city_entrance = room { view = function(s) if (not s.open) then return [[ - Левиафан находится РЅР° глубине нескольких километров РїРѕРґ РІРѕРґРѕР№. Мощный прожектор субмарины СЃ трудом пробивает непроглядную толщу РІРѕРґС‹. + "Левиафан" находится РЅР° глубине нескольких километров РїРѕРґ РІРѕРґРѕР№. Мощный прожектор субмарины СЃ трудом пробивает непроглядную толщу РІРѕРґС‹. Огромные ворота РёР· неизвестного материала преграждают вам путь внутрь. ]]; else return [[ - Левиафан находится РЅР° глубине нескольких километров РїРѕРґ РІРѕРґРѕР№. Мощный прожектор субмарины СЃ трудом пробивает непроглядную толщу РІРѕРґС‹. + "Левиафан" находится РЅР° глубине нескольких километров РїРѕРґ РІРѕРґРѕР№. Мощный прожектор субмарины СЃ трудом пробивает непроглядную толщу РІРѕРґС‹. Огромные ворота открыты Рё Левиафан легко пройдет РІ РЅРёС…. ]]; end; @@ -125,6 +125,9 @@ first_city_outer_north = room { view = [[ Р’С‹ находитесь РІ северной части внешнего кольца Лсэрианотр. Это огромный РєРѕСЂРёРґРѕСЂ, опоясывающий РіРѕСЂРѕРґ РїРѕ периметру. ]]; + obj = { + "submarine_hope" + }; way = { vroom("Левиафан", "leviathan_airlock"); vroom("Надежда", "hope_airlock"); diff --git a/hope.lua b/hope.lua --- a/hope.lua +++ b/hope.lua @@ -1,16 +1,136 @@ --[[ -Субмарина Уильяма. Она серьезно пострадала, и врядли экипаж цел. +Субмарина Уильяма. РћРЅР° серьезно пострадала, Рё врядли экипаж цел. ]] submarine_hope = obj { nam = "submarine_hope"; - disp = "Надежда"; + disp = "Надежда"; dsc = [[ - Вы видите "{Надежду}" - субмарину Уильяма Дрейка, первую построенную им. Она заметно пострадала в результате выстрелов из расположенной у входа турели, однако, экипаж в последний момент успел увести подлодку на безопасное расстояние. Люк субмарины разбит и вы сможете заплыть внутрь. + Р’С‹ видите "{Надежду}" - субмарину Уильяма Дрейка, первую построенную РёРј. РћРЅР° заметно пострадала РІ результате выстрелов РёР· расположенной Сѓ РІС…РѕРґР° турели, однако, экипаж РІ последний момент успел увести подлодку РЅР° безопасное расстояние. Люк субмарины разбит Рё РІС‹ сможете заплыть внутрь. ]]; - act = [[ Субмарина сильно повреждена, герметичность корпуса очевидно нарушена. Врядли в ней остался кто-то живой, однако не помешает это проверить. Надпись на борту гласит "А00 - Надежда" ]]; + act = [[ Субмарина сильно повреждена, герметичность РєРѕСЂРїСѓСЃР° очевидно нарушена. Врядли РІ ней остался кто-то живой, однако РЅРµ помешает это проверить. Надпись РЅР° борту гласит "Рђ00 - Надежда" ]]; -- function() -- walk "leviathan_airlock"; - -- return "Оказавшись внутри, вы закрываете за собой люк"; + -- return "Оказавшись внутри, РІС‹ закрываете Р·Р° СЃРѕР±РѕР№ люк"; --end; +}; + +hope_airlock = room { + nam = "hope_airlock"; + disp = "Надежда, шлюз"; + dsc = [[ + Р’С‹ находитесь РІ шлюзовой камере "Надежды". РћРЅР° практически идентична шлюзовой камере Левиафана. Сейчас РѕРЅР° РЅРµ функционирует - камера заполнена РІРѕРґРѕР№ Рё РѕР±Р° люка открыты. + ]]; + way = { + vroom("Наружу", "first_city_outer_north"); + vroom("Р’ СЂСѓР±РєСѓ", "hope_wheelhouse"); + }; +}; + +hope_cargo_door = obj { + nam = "hope_cargo_door"; + disp = "Люк РІ РіСЂСѓР·РѕРІРѕР№ отсек"; + dsc = function(s) + if (s.state == 2) then + return [[ + {Люк} РІ РіСЂСѓР·РѕРІРѕР№ отсек открыт. + ]]; + else + return [[ + {Люк} РІ РіСЂСѓР·РѕРІРѕР№ отсек задраен. + ]]; + end; + end; + state = 0; + act = function(s) + if (s.state == 0) then + if (char_learr.follow) then + pn([[Р’С‹ пытаетесь открыть люк, однако, похоже, РѕРЅ заблокирован СЃ РґСЂСѓРіРѕР№ стороны. Р’ смотровом люке РІС‹ видите голову навьяра, смотрящего РЅР° вас. Р’ темноте РІС‹ СЃ трудом различаете цветные полосы РЅР° его головных плавниках. Полосы бегут нарочито медленно, чтобы РІС‹ успели его понять. Леарр РјСЏРіРєРѕ отодвигает вас РѕС‚ смотрового отверстия. тем же СЃРїРѕСЃРѕР±РѕРј, РѕРЅР° что-то РіРѕРІРѕСЂРёС‚ навьяру, находящемуся РїРѕ ту сторону люка. Через несколько РјРёРЅСѓС‚ РїРѕРґРѕР±РЅРѕРіРѕ общения Леарр кивает вам, показывая РЅР° дверь. ]]); + s.state = 1; + else + pn([[Р’С‹ пытаетесь открыть люк, однако, похоже, РѕРЅ заблокирован СЃ РґСЂСѓРіРѕР№ стороны. Р’ смотровом люке РІС‹ видите голову навьяра, смотрящего РЅР° вас. Р’ темноте РІС‹ СЃ трудом различаете цветные полосы РЅР° его головных плавниках. Полосы бегут нарочито медленно, чтобы РІС‹ успели его понять. Р’С‹ СЃ трудом переводите цвета РІ символы: "Eyle'yhe'he'vji'a'rr vee'nn vtre'e'ran'rr" - РѕРЅ РїСЂРѕСЃРёС‚ вас уйти ]]); + end; + elseif (s.state == 1) then + pn([[Р’С‹ начинаете открывать люк Рё РѕРіСЂРѕРјРЅРѕРµ количество пузырей РІРѕР·РґСѓС…Р° просачивается через образовавшуюся щель. Леарр жестом показывает вам, чтобы РІС‹ продолжали. Р’С‹ ждете, РєРѕРіРґР° РІРѕРґР° заполнит отсек, после чего открываете люк РґРѕ конца. ]]); + hope_airlock_pass:enable(); + state = 2; + elseif (s.state == 2) then + pn("Люк уже открыт"); + end; + return true; + end; +}; + +hope_airlock_pass = vroom("Р’ РіСЂСѓР·РѕРІРѕР№ отсек", "hope_cargo_hold"); + +hope_wheelhouse = room { + nam = "hope_wheelhouse"; + disp = "Надежда, СЂСѓР±РєР°"; + dsc = [[ + Р’С‹ находитесь РІ СЂСѓР±РєРµ "Надежды". РџРѕ размерам РѕРЅР° заметно больше, чем СЂСѓР±РєР° РЅР° Левиафане. Помещение заполнено РІРѕРґРѕР№. Люки РІ машинное отделение Рё пассажирский отсек открыты. + ]]; + obj = { + hope_cargo_door + }; + way = { + vroom("Р’ машинное отделение", "hope_engines"); + hope_airlock_pass:disable(); + vroom("Р’ помещение экипажа", "hope_dormitory"); + }; +}; + +hope_engines = room { + nam = "hope_engines"; + disp = "Надежда, машинное отделение"; + dsc = [[ + Р’С‹ находитесь РІ машинном отделении "Надежды". Попадание РІРѕРґС‹ вызвало короткое замыкание РІ электрической цепи субмарины. Вам нечего здесь делать. + ]]; + way = { + vroom("Р’ СЂСѓР±РєСѓ", "hope_wheelhouse"); + }; +}; + +hope_cargo_hold = room { + nam = "hope_cargo_hold"; + disp = "Надежда, РіСЂСѓР·РѕРІРѕР№ отсек"; + dsc = [[ + Р’С‹ находитесь РІ РіСЂСѓР·РѕРІРѕРј отсеке "Надежды". Герметичные контейнеры сохранили большую часть РіСЂСѓР·Р° РІ целости Рё сохранности, однако РЅР° "Левиафане" достаточно собственных припасов, так что вам придется оставить РІСЃРµ это здесь. + ]]; + way = { + vroom("Р’ СЂСѓР±РєСѓ", "hope_wheelhouse"); + }; +}; + +hope_dormitory = room { + nam = "hope_dormitory"; + disp = "Надежда, помещение для экипажа"; + dsc = [[ + Шесть коек расположены вдоль трех стен помещения РІ РґРІР° СЏСЂСѓСЃР°. Вам нечего здесь делать. + ]]; + way = { + vroom("Р’ СЂСѓР±РєСѓ", "hope_wheelhouse"); + }; +}; + +char_phaetlarr_hope = obj { + nam = "char_phaetlarr_hope"; + disp = "Фаэтларр"; + dsc = "Р СЏРґРѕРј СЃ люком, скрестив СЂСѓРєРё РЅР° РіСЂСѓРґРё, стоит {навьяр}. РћРЅ, кажется, серьезно напуган Рё удивлен вашим появлением. "; + act = function(s) + walkin(phaetlarr_hope_dlg); + end; +}; + +phaetlarr_hope_dlg = obj { + nam = "phaetlarr_hope_dlg"; + disp = "навьяр"; + entered = [[ + Навьяр выглядит удивленным Рё напуганным, однако, СЃСѓРґСЏ РїРѕ всему, РѕРЅ готов вас выслушать. Рљ сожалению, здесь СЃ РЅРёРј получится общаться только жестами. + ]]; + phr = { + {"Указать РЅР° навьяра правой СЂСѓРєРѕР№, левую опустить РІРЅРёР·", "Цветные полосы складываются РІ слово \"Pha'e'tla'rr\" - сияющий. "}; + {"Указать РЅР° навьяра левой СЂСѓРєРѕР№, правой указать РЅР° себя, затем РЅР° дверь", "Навьяр кивает головой. \"I'rr vee'nn\"", function() + -- Р’СЃРµ втроем РІС‹ возвращаетесь РЅР° Левиафан + end;}; + }; }; \ No newline at end of file diff --git a/leviathan.lua b/leviathan.lua --- a/leviathan.lua +++ b/leviathan.lua @@ -188,6 +188,9 @@ leviathan_wheelhouse = room { Р’С‹ находитесь РІ рулевой СЂСѓР±РєРµ Левиафана. РўСЂРё огромных иллюминатора дают превосходный РѕР±Р·РѕСЂ. РЇСЂРєРёР№ свет электрических ламп освещает помещение. ]] .. (view); end; + way = { + vroom("Кают-компания", "leviathan_wardroom"); + }; obj = { vway("handwheel", "Перед вами расположен {штурвал}. ^", 'leviathan_dlg') }; diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -28,6 +28,7 @@ dofile "final_battle.lua"; dofile "first_city_inner_rim.lua" dofile "first_city_middle_rim.lua" dofile "first_city_outer_rim.lua" +dofile "hope.lua"; item_note_1 = obj { nam = "note1"; @@ -143,8 +144,9 @@ function init() ---debug --pl.where = submarine_leviathan; --move(submarine_leviathan, first_city_entrance); - move(submarine_leviathan, first_city_outer_south); + move(submarine_leviathan, first_city_outer_north); --walk(final_scene); + --walk(leviathan_wardroom); walk(leviathan_wardroom); put("char_learr", "leviathan_wardroom"); --put("char_phaetlarr", "leviathan_engines");