Nerf zombie/husk/zvillager drops
[MineClone/MineClone2.git] / mods / ENTITIES / mobs_mc / zombie.lua
blob9221ea90700b05ba16e9236f6b65979bcf03e7d0
1 --MCmobs v0.4
2 --maikerumine
3 --made for MC like Survival game
4 --License for code WTFPL and otherwise stated in readmes
6 -- intllib
7 local MP = minetest.get_modpath(minetest.get_current_modname())
8 local S, NS = dofile(MP.."/intllib.lua")
10 --dofile(minetest.get_modpath("mobs").."/api.lua")
13 --###################
14 --################### ZOMBIE
15 --###################
17 local drops_common = {
18 {name = mobs_mc.items.rotten_flesh,
19 chance = 1,
20 min = 0,
21 max = 2,},
22 {name = mobs_mc.items.iron_ingot,
23 chance = 120, -- 2.5% / 3
24 min = 1,
25 max = 1,},
26 {name = mobs_mc.items.carrot,
27 chance = 120, -- 2.5% / 3
28 min = 1,
29 max = 1,},
30 {name = mobs_mc.items.potato,
31 chance = 120, -- 2.5% / 3
32 min = 1,
33 max = 1,},
36 local drops_zombie = table.copy(drops_common)
37 table.insert(drops_zombie, {
38 -- Zombie Head
39 -- TODO: Only drop if killed by charged creeper
40 name = mobs_mc.items.head_zombie,
41 chance = 200, -- 0.5%
42 min = 1,
43 max = 1,
46 local zombie = {
47 type = "monster",
48 hp_min = 20,
49 hp_max = 20,
50 armor = 90,
51 collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3},
52 visual = "mesh",
53 mesh = "mobs_mc_zombie.b3d",
54 textures = {
55 {"mobs_mc_zombie.png"},
57 visual_size = {x=3, y=3},
58 makes_footstep_sound = true,
59 sounds = {
60 random = "mobs_mc_zombie_idle",
61 war_cry = "mobs_mc_zombie_idle",
62 death = "mobs_mc_zombie_death",
63 damage = "mobs_mc_zombie_hurt",
64 distance = 16,
66 walk_velocity = .8,
67 run_velocity = 1.6,
68 damage = 3,
69 reach = 2,
70 fear_height = 4,
71 pathfinding = 1,
72 jump = true,
73 --jump_height = 3,
74 group_attack = true,
75 drops = drops_zombie,
76 animation = {
77 speed_normal = 25, speed_run = 50,
78 stand_start = 40, stand_end = 80,
79 walk_start = 0, walk_end = 40,
80 run_start = 0, run_end = 40,
82 lava_damage = 4,
83 -- TODO: Burn mob only when in direct sunlight
84 light_damage = 2,
85 view_range = 16,
86 attack_type = "dogfight",
89 mobs:register_mob("mobs_mc:zombie", zombie)
91 -- Baby zombie.
92 -- A smaller and more dangerous variant of the zombie
94 local baby_zombie = table.copy(zombie)
95 baby_zombie.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}
96 baby_zombie.visual_size = {x=zombie.visual_size.x/2, y=zombie.visual_size.y/2}
97 baby_zombie.walk_velocity = 1.2
98 baby_zombie.run_velocity = 2.4
99 baby_zombie.light_damage = 0
101 mobs:register_mob("mobs_mc:baby_zombie", baby_zombie)
103 -- Husk.
104 -- Desert variant of the zombie
105 local husk = table.copy(zombie)
106 husk.textures = {{"mobs_mc_husk.png"}}
107 husk.light_damage = 0
108 husk.water_damage = 3
109 husk.drops = drops_common
110 -- TODO: Husks avoid water
112 mobs:register_mob("mobs_mc:husk", husk)
114 -- Baby husk.
115 -- A smaller and more dangerous variant of the husk
116 local baby_husk = table.copy(husk)
117 baby_husk.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}
118 baby_husk.visual_size = {x=zombie.visual_size.x/2, y=zombie.visual_size.y/2}
119 baby_husk.walk_velocity = 1.2
120 baby_husk.run_velocity = 2.4
122 mobs:register_mob("mobs_mc:baby_husk", baby_husk)
125 -- Spawning
127 mobs:spawn_specific("mobs_mc:zombie", mobs_mc.spawn.solid, {"air"}, 0, 7, 30, 6000, 4, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max)
128 -- Baby zombie is 20 times less likely than regular zombies
129 mobs:spawn_specific("mobs_mc:baby_zombie", mobs_mc.spawn.solid, {"air"}, 0, 7, 30, 60000, 4, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max)
130 mobs:spawn_specific("mobs_mc:husk", mobs_mc.spawn.desert, {"air"}, 0, 7, 30, 6500, 4, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max)
131 mobs:spawn_specific("mobs_mc:baby_husk", mobs_mc.spawn.desert, {"air"}, 0, 7, 30, 65000, 4, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max)
133 -- Compatibility
134 mobs:alias_mob("mobs:zombie", "mobs_mc:zombie")
136 -- Spawn eggs
137 mobs:register_egg("mobs_mc:husk", S("Husk"), "mobs_mc_spawn_icon_husk.png", 0)
138 mobs:register_egg("mobs_mc:zombie", S("Zombie"), "mobs_mc_spawn_icon_zombie.png", 0)
140 if minetest.settings:get_bool("log_mods") then
141 minetest.log("action", "MC Zombie loaded")