Make villager stand still if there is near player
[MineClone/MineClone2.git] / mods / ENTITIES / mobs_mc / shulker.lua
blobf7f4dabca7dc0e50bbf52c0f07efe8e0a443d295
1 --MCmobs v0.2
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")
12 --###################
13 --################### SHULKER
14 --###################
16 -- animation 45-80 is transition between passive and attack stance
18 mobs:register_mob("mobs_mc:shulker", {
19 type = "monster",
20 attack_type = "shoot",
21 shoot_interval = 0.5,
22 arrow = "mobs_mc:shulkerbullet",
23 shoot_offset = 0.5,
24 passive = false,
25 hp_min = 30,
26 hp_max = 30,
27 armor = 150,
28 collisionbox = {-0.5, -0.01, -0.5, 0.5, 0.99, 0.5},
29 visual = "mesh",
30 mesh = "mobs_mc_shulker.b3d",
31 textures = { "mobs_mc_endergolem.png", },
32 -- TODO: Make shulker dye-able
33 visual_size = {x=3, y=3},
34 walk_chance = 0,
35 jump = false,
36 drops = {
37 {name = mobs_mc.items.shulker_shell,
38 chance = 1,
39 min = 0,
40 max = 1,},
42 animation = {
43 stand_speed = 25, walk_speed = 25, run_speed = 50, punch_speed = 25,
44 speed_normal = 25, speed_run = 50,
45 stand_start = 0, stand_end = 45,
46 walk_start = 0, walk_end = 45,
47 run_start = 0, run_end = 45,
48 punch_start = 80, punch_end = 100,
50 blood_amount = 0,
51 view_range = 16,
52 fear_height = 4,
53 water_damage = 1,
54 lava_damage = 4,
55 light_damage = 0,
58 -- bullet arrow (weapon)
59 mobs:register_arrow("mobs_mc:shulkerbullet", {
60 visual = "sprite",
61 visual_size = {x = 0.25, y = 0.25},
62 textures = {"mobs_mc_shulkerbullet.png"},
63 velocity = 6,
65 hit_player = function(self, player)
66 player:punch(self.object, 1.0, {
67 full_punch_interval = 1.0,
68 damage_groups = {fleshy = 4},
69 }, nil)
70 end,
72 hit_mob = function(self, player)
73 player:punch(self.object, 1.0, {
74 full_punch_interval = 1.0,
75 damage_groups = {fleshy = 4},
76 }, nil)
77 end,
79 hit_node = function(self, pos, node)
80 end
84 mobs:register_egg("mobs_mc:shulker", S("Shulker"), "mobs_mc_spawn_icon_shulker.png", 0)
86 mobs:spawn_specific("mobs_mc:shulker", mobs_mc.spawn.end_city, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 5000, 2, mobs_mc.spawn_height.end_min, mobs_mc.spawn_height.end_max)
88 if minetest.settings:get_bool("log_mods") then
89 minetest.log("action", "MC Shulkers loaded")
90 end