# HG changeset patch # User Silverwing # Date 2016-10-02 18:35:36 # Node ID d8e9f9dc841a3daccaad2f9ea3a0dd39623bb096 # Parent c1561bd81710b8103280f6f1e70f2e23956f92b9 Some combat additions diff --git a/battlefield.lua b/battlefield.lua --- a/battlefield.lua +++ b/battlefield.lua @@ -103,7 +103,6 @@ battlefield = function(tab) v = v .. ";" .. s.obj[i].pic .. "@" .. tostring(s.obj[i].x * 32 - 32) .. "," .. tostring(s.obj[i].y * 32 - 32); end; end; - print(v); return v; end; end; diff --git a/items.lua b/items.lua --- a/items.lua +++ b/items.lua @@ -40,6 +40,10 @@ item_colt = obj { Ваш револьвер. Надежное оружие в хорошем состоянии. Оно еще не раз спасет вашу жизнь. У вас также есть небольшой запас патронов к нему. ]]; use = function(s, o) + if (here().underwater) then + return "Под водой это вам не поможет. "; + end; + if (s.bullets == 0) then return "Нужно перезарядиться, патроны кончились"; end; @@ -58,7 +62,7 @@ item_colt = obj { return(o.onshoot(o)); else return ""; - end + end; elseif (o.noshootmsg) then return o.noshootmsg; else @@ -81,7 +85,55 @@ item_colt = obj { item_harpoon = obj { nam = "item_harpoon"; - + charge = 1; + disp = function(s) + if (s.charge == 0) then + return "Гарпунное ружье (разряжено)"; + else + return "Гарпунное ружье (заряжено)"; + end; + end; + dsc = [[ + + ]]; + use = function(s, o) + if (s.charge == 0) then + return "Ружье не заряжено. "; + end; + + local canshoot = false; + if (type(o.canshoot) == "function") then + canshoot = o.canshoot(o); + else + canshoot = o.canshoot; + end; + + if (canshoot) then + s.charge = s.charge - 1; + p("Вы стреляете в "..o.disp2 .. ". "); + if (o.onshoot) then + return(o.onshoot(o)); + else + return ""; + end; + elseif (o.noshootmsg) then + return o.noshootmsg; + else + return "Я не буду этого делать!"; + end; + end; + inv = function(s) + if (s.charge > 0) then + return [[ + Пневматическое ружье с Левиафана. Стреляет гарпунами. Также у вас есть несколько запасных гарпунов с собой. + ]]; + else + s.charge = 1; + return [[ + Вы заряжаете ружье. + ]]; + end; + end; }; item_first_city_key = obj { diff --git a/journey_zayslanotrr.lua b/journey_zayslanotrr.lua --- a/journey_zayslanotrr.lua +++ b/journey_zayslanotrr.lua @@ -96,6 +96,7 @@ za_cmbt_phaetlarr = combatant { za_cmbt_guard = function(nam, x, y) return combatant { nam = nam; + disp2 = "стражника"; x = x; y = y; hp = 8; diff --git a/main.lua b/main.lua --- a/main.lua +++ b/main.lua @@ -222,6 +222,7 @@ function init() --ven_temple_l1.position = "66"; put(item_ven_tablet, pl); + put(item_harpoon, pl); --ven_shark.position = "55"; pl.where = "za_plaetlarr_fight"; move(submarine_leviathan, "ven_center");