From 0710944d8fb9b6347d63ad6ec083ec2c0e533fa1 Mon Sep 17 00:00:00 2001 From: npx Date: Sun, 2 Oct 2016 16:09:27 +0200 Subject: [PATCH] Morlu now gives back what he has stollen on dying --- mobs/morlu.lua | 24 +++++++++++++++--------- nssm_api.lua | 3 ++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/mobs/morlu.lua b/mobs/morlu.lua index 88dcdcd..c757f01 100644 --- a/mobs/morlu.lua +++ b/mobs/morlu.lua @@ -52,8 +52,9 @@ mobs:register_mob("nssm:morlu", { if self.inv_flag ~= 1 then self.inventory = {} - for i=1,32 do - self.inventory[i]={name = '', num = 0} + self.invnum = 0 + for i=1,6 do + self.inventory[i]={name = ''} end end self.inv_flag = (self.inv_flag or 1) @@ -102,7 +103,7 @@ mobs:register_mob("nssm:morlu", { end end if armor_num > 0 then - minetest.chat_send_all("Numero di pezzi: "..armor_num) + --minetest.chat_send_all("Numero di pezzi: "..armor_num) steal_pos = math.random(1,armor_num) steal_pos = steal_pos-1 --[[for i=0,armor_num-1 do @@ -159,6 +160,14 @@ mobs:register_mob("nssm:morlu", { armor:update_inventory(self.attack) --armor:update_player_visuals(self.attack) + --Update personal inventory of armors: + if (self.invnum ~= nil) and (self.invnum <= 5) then + minetest.chat_send_all("Invnum: "..self.invnum) + minetest.chat_send_all("Salvo: "..armor_elements[steal_pos].name) + self.invnum = self.invnum + 1 + self.inventory[self.invnum].name = armor_elements[steal_pos].name + end + set_animation(self, "run") self.flag = 1 self.morlu_timer = os.time() @@ -178,14 +187,12 @@ mobs:register_mob("nssm:morlu", { end end end, - --[[ on_die = function(self) local pos = self.object:getpos() if (self.inventory ~= nil) then - local elem - for i = 1,32 do - if self.inventory[i].num~=0 then - local items = ItemStack(self.inventory[i].name.." "..self.inventory[i].num) + if self.invnum > 0 then + for i=1,self.invnum do + local items = ItemStack(self.inventory[i].name.." 1") local obj = minetest.add_item(pos, items) obj:setvelocity({ x = math.random(-1, 1), @@ -196,5 +203,4 @@ mobs:register_mob("nssm:morlu", { end end end, - ]] }) diff --git a/nssm_api.lua b/nssm_api.lua index 58baed5..69342e2 100644 --- a/nssm_api.lua +++ b/nssm_api.lua @@ -326,7 +326,8 @@ function webber_ability( --puts randomly around the block defined as w_block w_block, --definition of the block to use radius --max distance the block can be put ) - if math.random(1,nssm:virulence(self)) ~= 1 then return end + + if (nssm:virulence(self)~=0) and (math.random(1,nssm:virulence(self)) ~= 1) then return end local pos = self.object:getpos() if (math.random(1,55)==1) then