diff --git a/items.lua b/items.lua --- a/items.lua +++ b/items.lua @@ -55,8 +55,10 @@ item_spear = obj { }; item_colt = obj { + var { + bullets = 6; + }; nam = "colt"; - bullets = 6; disp = function(s) return "Кольт (" .. tostring(s.bullets) .. " зарядов)"; end; @@ -105,8 +107,10 @@ item_colt = obj { }; item_harpoon = obj { + var { + charge = 1; + }; nam = "item_harpoon"; - charge = 1; disp = function(s) if (s.charge == 0) then return "Гарпунное ружье (разряжено)"; diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -81,18 +81,22 @@ global { player_drake = player { + var { + hp = 10; + has_light = false; + party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]}; + companion = nil; + money = 200; + }; nam = "player"; disp = "Дэвид Дрейк"; disp2 = "Дрейка"; disp3 = "Дрейку"; where = 'port'; - hp = 10; + obj = {'item_umbrella', 'item_charts', 'item_note_1', 'item_money', }; - -- party array. Should be empty on start - party = {--[["learr", "radcliffe", "phaetlarr", "wright"]]}; - companion = nil; - money = 200; + pay = function(s, c) if (s.money >= c) then s.money = s.money - c; diff --git a/warehouse32.lua b/warehouse32.lua --- a/warehouse32.lua +++ b/warehouse32.lua @@ -5,9 +5,11 @@ ]] warehouse_32_guard = npc { + var { + dlg = 'warehouse_32_guard_dlg'; + }; nam = "warehouse_32_guard"; dsc = "Рядом со входом, опершись на стену, стоит {охранник}. Он не обращает на вас никакого внимания. "; - dlg = 'warehouse_32_guard_dlg'; phrases = { 'Мне больше не о чем с ним говорить. '; 'Он меня не пропустит. '; @@ -171,6 +173,10 @@ w32_backdoor = room { }; w32_mgr = darkroom { + var { + key_inplace = true; + book_inplace = true; + }; nam = "w32_mgr"; disp = "Склад 32, кабинет управляющего"; dsc_dark = [[ @@ -182,8 +188,6 @@ w32_mgr = darkroom { entered = function(s) warehouse_32.pos = "54"; end; - key_inplace = true; - book_inplace = true; way = { kh_vroom("Выйти", function(s) print(w32_mgr.key_inplace); @@ -223,6 +227,10 @@ w32_journal = obj { }; w32_mgr_table = obj { + var { + open = false; + locked = true; + }; seen_level = 1; nam = 'w32_mgr_table'; dsc = function(s) @@ -236,8 +244,6 @@ w32_mgr_table = obj { ]]; end; end; - open = false; - locked = true; act = function(s) if (not s.locked) then if (s.open) then @@ -421,6 +427,16 @@ function getDirName(dir) end; warehouse_32 = room { + var{ + pos = "01"; + hidden = false; + guards = { + { pos = "21", dir=1, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо + { pos = "31", dir=4, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо + { pos = "24", dir=2, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо + { pos = "34", dir=3, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо + }; + }; nam = "warehouse_32"; nolamp = true; disp = function(s) @@ -432,14 +448,6 @@ warehouse_32 = room { return 'Вы стоите где-то между стеллажами склада 32. В помещении темно, за исключением фонарей охранников. ' .. s.definitions[s.pos].dsc; end; definitions = warehouse_32_definitions; - pos = "01"; - hidden = false; - guards = { - { pos = "21", dir=1, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо - { pos = "31", dir=4, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо - { pos = "24", dir=2, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо - { pos = "34", dir=3, s = 1 }; --s=1 - должен повернуть направо, s=2 - должен пройти прямо - }; checkGuardSight = function(s) --Проверить область зрения каждого стражника, если игрок находится в области зрения - FAIL for i = 1, #s.guards do @@ -553,11 +561,6 @@ warehouse_32 = room { end; end; makeTurn = function(s) - --print("turn"); - --print(s.guards[1].pos, s.guards[1].dir); - --print(s.guards[2].pos, s.guards[2].dir); - --print(s.guards[3].pos, s.guards[3].dir); - --print(s.guards[4].pos, s.guards[4].dir); -- TODO debug if (s:checkGuardSight()) then s:guardTurn(); @@ -678,8 +681,10 @@ warehouse_32 = room { }; warehouse_32_shelves = obj { + var { + current = "E1"; + }; nam = "warehouse_32_shelves"; - current = "E1"; dsc = function (s) return "Стеллажи, расположенные в этой секции отмечены табличкой {" .. s.current .. "}"; end; @@ -690,6 +695,12 @@ warehouse_32_shelves = obj { }; w32_shelf_input = input_number { + var { + items = { + { n = "item_electrodes"; }; + { n = "item_pump_details"; }; + }; + }; nam = "w32_shelf_input"; disp = function(s) return "Стеллаж с отметкой " .. s.sector; @@ -705,10 +716,6 @@ w32_shelf_input = input_number { back(); end; label = "Укажите номер позиции:"; - items = { - { n = "item_electrodes"; }; - { n = "item_pump_details"; }; - }; }; function warehouse32_init()