diff --git a/party.lua b/party.lua --- a/party.lua +++ b/party.lua @@ -11,6 +11,17 @@ party_accompany = function(s, value) end; end; +party_follow = function(s) + if (where(pl).cutscene) then + elseif (where(pl).leviathan) then + if (stead.nameof(where(s)) ~= s.home) then + move(s, s.home, where(s)); + end; + else + move(s, where(pl), where(s)); + end; +end; + -- TODO больше отвлеченных диалогов, дабы было о чем поговорить с сопартийцами. Не стоит делать их деревянными безжизненными манекенами char_learr = obj { var { @@ -31,16 +42,7 @@ char_learr = obj { end; home = "leviathan_wardroom"; accompany = party_accompany; - life = function(s) - print("learr"); - if (where(pl).leviathan) then - if (stead.nameof(where(s)) ~= s.home) then - move(s, s.home, where(s)); - end; - else - move(s, where(pl), where(s)); - end; - end; + life = party_follow; act = function(s) if (stead.nameof(where(s)) == s.home) then walkin(learr_home_dlg); @@ -69,15 +71,7 @@ char_phaetlarr = obj { end; home = "leviathan_engines"; accompany = party_accompany; - life = function(s) - if (where(pl).leviathan) then - if (stead.nameof(where(s)) ~= s.home) then - move(s, s.home, where(s)); - end; - else - move(s, where(pl), where(s)); - end; - end; + life = party_follow; act = function(s) if (stead.nameof(where(s)) == s.home) then walkin(phaetlarr_home_dlg); @@ -106,15 +100,7 @@ char_radcliffe = obj { end; home = "leviathan_engines"; accompany = party_accompany; - life = function(s) - if (where(pl).leviathan) then - if (stead.nameof(where(s)) ~= s.home) then - move(s, s.home, where(s)); - end; - else - move(s, where(pl), where(s)); - end; - end; + life = party_follow; act = function(s) if (stead.nameof(where(s)) == s.home) then walkin(radcliffe_home_dlg); @@ -143,19 +129,7 @@ char_wright = obj { end; home = "leviathan_wardroom"; accompany = party_accompany; - life = function(s) - --print("wright"); - if (where(pl).leviathan) then - --print("wright:leviathan"); - if (stead.nameof(where(s)) ~= s.home) then - --print("wright:goinghome"); - move(s, s.home, where(s)); - end; - else - --print("wright:following"); - move(s, where(pl), where(s)); - end; - end; + life = party_follow; act = function(s) if (stead.nameof(where(s)) == s.home) then walkin(wright_home_dlg); @@ -184,15 +158,7 @@ char_anna = obj { end; home = "leviathan_wardroom"; accompany = party_accompany; - life = function(s) - if (where(pl).leviathan) then - if (stead.nameof(where(s)) ~= s.home) then - move(s, s.home, where(s)); - end; - else - move(s, where(pl), where(s)); - end; - end; + life = party_follow; act = function(s) if (stead.nameof(where(s)) == s.home) then walkin(anna_home_dlg); diff --git a/utils.lua b/utils.lua --- a/utils.lua +++ b/utils.lua @@ -283,6 +283,7 @@ function cutscene(nam, disp, dsc, nxt, e disp = disp; entered = entered; hideinv = true; + cutscene = true; dsc = dsc; obj = { vway("continue", "{Продолжить}", nxt);