diff --git a/items.lua b/items.lua new file mode 100644 --- /dev/null +++ b/items.lua @@ -0,0 +1,74 @@ +item_pipe = obj { + nam = "pipe"; + disp = "Кусок трубы"; + inv = "Прочный, толстый кусок металлической трубы. Вполне может пригодиться"; + use = function(s, o) + local canhit = false; + if (type(o.canhit) == "function") then + canhit = o.canhit(o); + else + canhit = o.canhit; + end; + + if (canhit) then + if (o.onhit) then + return(o.onhit(o)); + else + return ""; + end; + elseif (o.nohitmsg) then + return o.nohitmsg; + else + return "Я не буду этого делать!"; + end; + end; +}; + +item_colt = obj { + nam = "colt"; + bullets = 6; + disp = function(s) + return "Кольт (" .. tostring(s.bullets) .. " зарядов)"; + end; + dsc = [[ + Ваш револьвер. Надежное оружие в хорошем состоянии. Оно еще не раз спасет вашу жизнь. У вас также есть небольшой запас патронов к нему. + ]]; + use = function(s, o) + if (s.bullets == 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.bullets = s.bullets - 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.bullets > 0) then + return [[ + Ваш револьвер. Надежное оружие в хорошем состоянии. Оно еще не раз спасет вашу жизнь. У вас также есть небольшой запас патронов к нему. + ]]; + else + s.bullets = 6; + return [[ + Вы перезаряжаете ваш револьвер и оружие снова готово к бою + ]]; + end; + end; +}; \ No newline at end of file