From 06d167a175c21dbc80c537092318103a5bb000a3 Mon Sep 17 00:00:00 2001 From: NathanSalapat Date: Sat, 7 Sep 2019 14:19:21 -0500 Subject: [PATCH] minor updates. --- boss.lua | 37 ++++++++++++++++++++++------ pet.lua | 50 +++++++++++++++++++++++++++++++------- textures/scorpion_pet.png | Bin 0 -> 2356 bytes 3 files changed, 70 insertions(+), 17 deletions(-) create mode 100644 textures/scorpion_pet.png diff --git a/boss.lua b/boss.lua index c913cc8..4f9da3f 100644 --- a/boss.lua +++ b/boss.lua @@ -2,8 +2,8 @@ mobs:register_mob('scorpion:boss', { type = 'monster', passive = false, attack_type = 'dogfight', - damage = 20, - hp_min = 75, hp_max = 175, armor = 20, + damage = 2, + hp_min = 7.5, hp_max = 17.5, armor = 200, collisionbox = {-1, -0.95, -1, 1, .35, 1}, visual = 'mesh', mesh = 'scorpion.b3d', @@ -46,7 +46,7 @@ mobs:register_mob('scorpion:boss', { }, custom_attack = function(self) - local random_number = math.random(0,8) + local random_number = math.random(0,7) print (random_number) if random_number == 3 then local s = self.object:get_pos() @@ -57,11 +57,32 @@ mobs:register_mob('scorpion:boss', { on_die = function(self) local random_number = math.random(0,10) - if random_number == 2 then - local s = self.object:get_pos() - local pos1 = {x=s.x+math.random(-2,2), y=s.y, z=s.z+math.random(-2,2)} - minetest.add_entity(pos1, 'scorpion:pet') - end + --if random_number == 2 then + local pos = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(pos, 4) + for _, obj in pairs(objs) do + if obj:is_player() then + local pos1 = {x=pos.x+math.random(-2,2), y=pos.y, z=pos.z+math.random(-2,2)} + local mob = minetest.add_entity(pos1, 'scorpion:pet') + local ent2 = mob:get_luaentity() + mob:set_properties({ + visual_size = { + x = ent2.base_size.x / 2, + y = ent2.base_size.y / 2 + }, + collisionbox = { + ent2.base_colbox[1] / 2, + ent2.base_colbox[2] / 2, + ent2.base_colbox[3] / 2, + ent2.base_colbox[4] / 2, + ent2.base_colbox[5] / 2, + ent2.base_colbox[6] / 2 + }, + }) + ent2.child = true + end + end + --end end, }) diff --git a/pet.lua b/pet.lua index 3acf7d6..3927399 100644 --- a/pet.lua +++ b/pet.lua @@ -1,8 +1,9 @@ mobs:register_mob('scorpion:pet', { - type = 'animal', + type = 'npc', passive = false, attack_type = 'dogfight', owner_loyal = true, + pathfinding = true, damage = 10, hp_min = 30, hp_max = 75, armor = 45, collisionbox = {-0.6, -0.35, -0.5, 0.6, 0.3, 0.5}, @@ -10,28 +11,30 @@ mobs:register_mob('scorpion:pet', { mesh = 'scorpion.b3d', drawtype = 'front', textures = { - {'scorpion_red.png'}, - {'scorpion_green.png'}, - {'scorpion_tan.png'}, + {'scorpion_red.png^scorpion_pet.png'}, + {'scorpion_green.png^scorpion_pet.png'}, + {'scorpion_tan.png^scorpion_pet.png'}, }, blood_texture = 'mobs_blood.png', - visual_size = {x=7,y=7}, + visual_size = {x=8,y=8}, makes_footstep_sound = true, sounds = { war_cry = 'scorpion_squeak', }, - walk_velocity = 2, + walk_velocity = 3, run_velocity = 6, jump = true, stepheight = 1.7, reach = 4, - view_range = 6, + view_range = 15, fear_height = 2, + ower = '', + order = 'follow', drops = { {name = 'mobs:meat_raw', chance = 1, min = 2, max = 8}, }, - water_damage = 2, - lava_damage = 60, + water_damage = 1, + lava_damage = 6, light_damage = 0, animation = { speed_normal = 45, speed_run = 90, @@ -42,6 +45,35 @@ mobs:register_mob('scorpion:pet', { punch2_start = 265, punch2_end = 305, punch3_start = 70, punch3_end = 140, }, + + on_spawn = function(self) + local pos = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(pos, 4) + for _, obj in pairs(objs) do + if obj:is_player() then + local owner = obj:get_player_name() + print ('owner name is '..owner) + self.owner = owner + end + end + end, + + on_rightclick = function(self, clicker) + local name = clicker:get_player_name() + if self.owner and self.owner == name then + if self.order == "follow" then + self.order = "stand" + minetest.chat_send_player(name, ("Scorpion holding ground.")) + else + self.order = "follow" + minetest.chat_send_player(name, ("Scorpion following you.")) + end + end + end, + + on_grown = function(self) + print 'your pet grew up.' + end, }) mobs:register_egg('scorpion:pet', 'Pet Scorpion', 'default_grass.png', 1) diff --git a/textures/scorpion_pet.png b/textures/scorpion_pet.png new file mode 100644 index 0000000000000000000000000000000000000000..eb60f1757667775a777dd2e8e5f51c59bf783bb0 GIT binary patch literal 2356 zcmeHHcTf{{6#fO2gbkXA4Ont4feJyw2@1#vD~JpcG!dIHVg-SQ9iXTLA|Q$+GQ$dc zib`Y)N)x4Q4??L>RzO8WMnymnX#Ashz5eZg^}T!d#@&10-FNT4BxgrkX$hnR06-dN zXLSYu5n(9;U}D0wO66|~o9U>t=R?nUMxZFcKVS0oC!<0mDP$Cx>U#+Q>gfAS7v>mB z>c-@8>pR!g;(0+2VzVdMolCMBT^i%zWyUdc*xo(<))~BA$V=(%&UN|r=^_;+ChH9| zgqLow?GZGy(o)OtB5c1G1jN)OY$-_HC8fPf{_{RVdtsB>G1#Cyuts|0IAi=m=YxzU z=7Ymvz-)?Y*B7r!RY4RNCmc!% z!ZS6a@cHOX`bB7r#?FxAgUrKv#SO#ROGeGosI$E^cZZmSA-vonVuC!>T+{S^B}7viAInL3aD| zyN+pDO&m|3llY9jXHCn^?2?z4AMAZ`navHRImsdOZ^{+Lfmp{lIn$?l2>znpnY{kh<4Wi~lTwDZuw z_k7Z^RysQ}cg{!5D;LHK*q4J!(#t=b^tUPF$_~XuDQ}P;)PP{Dw%LO z`CjKdf*c}tUwUL^qN;CSq5rax+%0P9UXU`RmCN9YGrC^s11lfFkdpKqP~OH zdX%^_)ug<%Xu3E7*|DKlUK%lC`(-d3HRAmP-C*r1@p_wb+(e#3j3eB2S&6v5yz)`E zpYwQN`*>9P<1SEOZqgIVRhdBLPdp0k-{Q%;GvR^|L6(Jr+SS>Xg})Tv6mhTSe|J>> zZKMG9(0PH>9Eb06PAX3mX=~^VOiD%vWk@Cc0l*$BoR!5{p+1cj z$^(>~XovZ(shLQUH97p05tesXxbw~acML4|F;O`EQ9uIJ&mSS|(F_2j0C+0oL73Py z)y5w5SLB4vWlkME0r>(}FT(Es4;Z&0llT?EzMcB|4DgN0cf=GRMV>;f0RU(1XjN-T GqWum3scs7Z literal 0 HcmV?d00001