diff --git a/coachman.lua b/coachman.lua --- a/coachman.lua +++ b/coachman.lua @@ -1,70 +1,97 @@ --[[ Кучер, который будет за деньги возить вас по локациям первой части ]] +--TODO случайный ответ кучера из нескольких вариантов char_coachman = obj { nam = "coachman"; disp = "экипаж"; dsc = [[Вы видите небольшую двухколесную повозку, с впряженными в нее двумя лошадьми. Его {владелец} стоит рядом и, судя по всему, ждет пассажиров^ ]]; - act = function() - walkin "coachman_dlg"; + act = function(s) + return "Оплатите проезд"; + end; + used = function(s, o) + if (o == item_coin) then + coachman_dlg.onecoin = true; + walkin "coachman_dlg"; + elseif (o == item_money) then + coachman_dlg.onecoin = false; + walkin "coachman_dlg"; + end; end; }; coachman_dlg = dlg { nam = "coachman_dlg"; - disp = "Кучер"; + disp = "Извозчик"; dsc = "Куда едем?"; hideinv = true; - enter = function(s) - pon(1, 2, 3, 4, 5, 6); - if (where(char_coachman) == hotel) then - poff(1); - end; - if (where(char_coachman) == michael_house) then - poff(2); - end; - if (where(char_coachman) == warehouse_18) then - poff(3); - end; - if (where(char_coachman) == warehouse_32) then - poff(4); - end; - if (where(char_coachman) == shipyard_2) then - poff(5); - end; - if (where(char_coachman) == port) then - poff(6); + entered = function(s) + poff(1, 2, 3, 4, 5, 6, 7); + if (s.onecoin) then + pon(7); + else + if (where(char_coachman) ~= port) then + pon(6); + end; + if (where(char_coachman) ~= hotel) then + pon(1); + end; + if (where(char_coachman) ~= wright_house) then + pon(2); + end; + if (where(char_coachman) ~= dock_2 and global.dock_found) then + pon(5); + end; + if (where(char_coachman) ~= warehouse_18 and global.warehouse_found) then + pon(3); + end; + if (where(char_coachman) ~= warehouse_32 and global.warehouse_found) then + pon(4); + end; end; end; phr = { - {1, always = true, "В гостиницу (0 монет)", "Садитесь! Здесь совсем близко. Гостиница называется \"У старого Фрэнки\"", + {1, always = true, "В гостиницу", function (s) walk 'hotel'; + return "Садитесь! Здесь совсем близко. Гостиница называется \"У старого Фрэнки\""; end }, - {2, always = true, "[Майкл Райт] (0 монет)", "Садитесь!", + {2, always = true, "К Райту", function (s) - walk 'michael_house'; + walk 'wright_house'; + return "Садитесь!"; end }, - {3, always = true, "[Склад 18] (0 монет)", "Садитесь!", + {3, always = true, "На склад 18", function (s) walk 'warehouse_18'; - end - }, - {4, always = true, "[Склад 32] (0 монет)", "Садитесь!", - function (s) - walk 'warehouse_32'; + return "Садитесь!"; end }, - {5, always = true, "[Верфь 2] (0 монет)", "Садитесь!", + {4, always = true, "На склад 32", function (s) - walk 'shipyard_2'; + walk 'warehouse_32'; + return "Садитесь!"; + end + + }, + {5, always = true, "К доку 2", + function (s) + walk 'dock_2'; + return "Садитесь!"; end }, - {6, always = true, "В порт (0 монет)", "Садитесь!", + {6, always = true, "В порт", function (s) walk 'port'; + return "Садитесь!"; + end + }, + {7, always = true, "В банк", "Садитесь!", + function (s) + remove(item_coin, pl); + walk 'bank_street'; end }, {255, always = true, "Я передумал", function(s)