From d6a69cedecaa2473efadba79d03caf1ce1f42df9 Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Thu, 23 Feb 2017 22:49:32 +0100 Subject: [PATCH] Simplify zombie/baby zombie code --- mods/ENTITIES/mobs_mc/zombie.lua | 113 +++++++------------------------ 1 file changed, 24 insertions(+), 89 deletions(-) diff --git a/mods/ENTITIES/mobs_mc/zombie.lua b/mods/ENTITIES/mobs_mc/zombie.lua index d5f1047e7..bb38d76c8 100644 --- a/mods/ENTITIES/mobs_mc/zombie.lua +++ b/mods/ENTITIES/mobs_mc/zombie.lua @@ -3,12 +3,7 @@ --made for MC like Survival game --License for code WTFPL and otherwise stated in readmes - ---dofile(minetest.get_modpath("mobs").."/api.lua") - - - -mobs:register_mob("mobs_mc:zombie", { +local zombie = { type = "monster", hp_min = 20, hp_max = 20, @@ -29,7 +24,9 @@ mobs:register_mob("mobs_mc:zombie", { run_velocity = 1.6, damage = 3, fear_height = 8, - pathfinding = 1, + pathfinding = true, + jump = true, + jump_height = 1.25, group_attack = true, drops = { {name = "mcl_mobitems:rotten_flesh", @@ -87,97 +84,35 @@ mobs:register_mob("mobs_mc:zombie", { light_damage = 1, view_range = 40, attack_type = "dogfight", -}) +} -mobs:register_mob("mobs_mc:baby_zombie", { - type = "monster", - hp_min = 20, - hp_max = 20, - -- They are a bit shorter than 1 block high to fit through gaps - collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}, - visual_size = {x=0.5, y=0.5}, - textures = { - {"mobs_zombie.png"} - }, - visual = "mesh", - mesh = "mobs_zombie.x", - makes_footstep_sound = true, - sounds = { - random = "zombie1", - death = "zombiedeath", - damage = "zombiehurt1", - attack = "default_punch3", - }, - walk_velocity = 1.2, - run_velocity = 2.4, - damage = 3, - -- Half attack range because they are small - reach = 1.5, - fear_height = 8, - pathfinding = 1, - group_attack = true, - drops = { - {name = "mcl_mobitems:rotten_flesh", - chance = 1, - min = 0, - max = 2,}, - {name = "mcl_core:iron_ingot", - -- approximation to 8.5% - chance = 11, - min = 1, - max = 1,}, - {name = "mcl_core:shovel_iron", - -- approximation to 8.5% - chance = 11, - min = 1, - max = 1,}, - {name = "mcl_core:sword_iron", - -- approximation to 8.5% - chance = 11, - min = 1, - max = 1,}, - {name = "mcl_farming:carrot_item", - -- approximation to 8.5% - chance = 11, - min = 1, - max = 1,}, - {name = "mcl_farming:potato_item", - -- approximation to 8.5% - chance = 11, - min = 1, - max = 1,}, - }, - animation = { - speed_normal = 24, - speed_run = 48, - stand_start = 0, - stand_end = 23, - walk_start = 24, - walk_end = 47, - run_start = 48, - run_end = 62, - hurt_start = 64, - hurt_end = 86, - death_start = 88, - death_end = 118, - }, - drawtype = "front", - lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second, - view_range = 40, - attack_type = "dogfight", -}) +mobs:register_mob("mobs_mc:zombie", zombie) + +-- Baby Zombie. +-- A smaller and more dangerous variant of the zombie + +local baby = table.copy(zombie) +baby.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25} +baby.visual_size = {x=0.5, y=0.5} +baby.walk_velocity = 1.2 +baby.run_velocity = 2.4 +baby.light_damage = 0 + +mobs:register_mob("mobs_mc:baby_zombie", baby) + + +-- Spawning mobs:register_spawn("mobs_mc:zombie", {"group:solid"}, 7, -1, 5000, 4, 31000) - --- 20 times less likely than regular zombies +-- Baby zombie is 20 times less likely than regular zombies mobs:register_spawn("mobs_mc:baby_zombie", {"group:solid"}, 7, -1, 100000, 4, 31000) --- compatibility +-- Compatibility mobs:alias_mob("mobs:zombie", "mobs_mc:zombie") --- spawn eggs +-- Spawn eggs mobs:register_egg("mobs_mc:zombie", "Spawn Zombie", "spawn_egg_zombie.png") mobs:register_egg("mobs_mc:baby_zombie", "Spawn Baby Zombie", "spawn_egg_baby_zombie.png")