# HG changeset patch # User Silverwing # Date 2017-12-02 08:00:44 # Node ID fdb71dc0b13619a4a28dfd2b85e9423b547b67b9 # Parent e064dca483b769898a67773589b97053b5f7b201 realtime pumps on leviathan diff --git a/leviathan.lua b/leviathan.lua --- a/leviathan.lua +++ b/leviathan.lua @@ -410,7 +410,6 @@ leviathan_engines = darkroom { dsc_lit = [[Вы стоите на небольшой металлической платформе посреди достаточно большого помещения. Вверху и внизу тянутся какие-то трубы. Слева и справа от вас расположены механизмы, приводящие субмарину в движение. Единственная лампа, расположенная над входом, дает достаточно света, чтобы можно было осмотреться. ]]; dsc_halflit = [[В слабом свете лампы вы с трудом различаете очертания предметов. Вы стоите на небольшой металлической платформе посреди достаточно большого помещения. Вверху и внизу тянутся какие-то трубы. Слева и справа от вас расположены механизмы, приводящие субмарину в движение. ]]; dsc_dark = [[Машинный отсек Левиафана погружен во мрак и вы совсем ничего не видите. ]]; - -- Равномерный гул электрических двигателей сообщает о полной готовности субмарины. way = { kh_vroom("В коридор", "leviathan_corridor", 1); }; @@ -651,6 +650,17 @@ leviathan_handwheel = obj { end; }; +leviathan_airpump_timer = function() + if (submarine_leviathan.power_on and submarine_leviathan.airpump and submarine_leviathan.battery) then + submarine_leviathan.air_level = submarine_leviathan.air_level + 4000; + if (submarine_leviathan.air_level > 432000) then + submarine_leviathan.air_level = 432000; + timer:stop(); + end; + end; + +end; + leviathan_airpump_control = obj { nam = "leviathan_airpump_control"; dsc = function(s) @@ -663,19 +673,20 @@ leviathan_airpump_control = obj { act = function(s) if (submarine_leviathan.airpump) then submarine_leviathan.airpump = false; + timer:stop(); return [[Вы выключаете воздушные насосы. ]]; else - lifeon(s); submarine_leviathan.airpump = true; + game.timer = leviathan_airpump_timer; + timer:set(1000); return [[Вы включаете воздушные насосы. ]]; end; end; life = function(s) if (submarine_leviathan.power_on and submarine_leviathan.airpump and submarine_leviathan.battery) then - submarine_leviathan.air_level = submarine_leviathan.air_level + 4000; if (submarine_leviathan.air_level > 432000) then submarine_leviathan.air_level = 432000; - lifeoff(s); + timer:stop(); end; if (here().leviathan) then pr([[Вы слышите гул работающих насосов. ]]);