Make villager stand still if there is near player
[MineClone/MineClone2.git] / mods / ENTITIES / mobs_mc / vex.lua
blobb7d1570d3b178358a349e6d1c03b5e6d5ce3c421
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 --###################
11 --################### VEX
12 --###################
14 mobs:register_mob("mobs_mc:vex", {
15 type = "monster",
16 pathfinding = 1,
17 passive = false,
18 attack_type = "dogfight",
19 physical = false,
20 hp_min = 14,
21 hp_max = 14,
22 collisionbox = {-0.2, 0.2, -0.2, 0.2, 1.0, 0.2}, --bat
23 visual = "mesh",
24 mesh = "mobs_mc_vex.b3d",
25 textures = {
27 "default_tool_steelsword.png",
28 "mobs_mc_vex.png",
31 visual_size = {x=1.25, y=1.25},
32 damage = 9,
33 reach = 2,
34 view_range = 16,
35 walk_velocity = 3.2,
36 run_velocity = 5.9,
37 attack_type = "dogfight",
38 sounds = {
39 random = "mobs_rat",
40 death = "green_slime_death",
41 distance = 16,
43 animation = {
44 stand_speed = 25,
45 walk_speed = 25,
46 run_speed = 50,
47 stand_start = 40,
48 stand_end = 80,
49 walk_start = 0,
50 walk_end = 40,
51 run_start = 0,
52 run_end = 40,
54 do_custom = function(self, dtime)
55 -- Glow red while attacking
56 if self.state == "attack" then
57 if self.base_texture[2] ~= "mobs_mc_vex_charging.png" then
58 self.base_texture[2] = "mobs_mc_vex_charging.png"
59 self.object:set_properties({textures=self.base_texture})
60 end
61 else
62 if self.base_texture[1] ~= "default_tool_steelsword.png" then
63 self.base_texture[1] = "default_tool_steelsword.png"
64 self.object:set_properties({textures=self.base_texture})
65 end
66 end
68 -- Take constant damage if the vex' life clock ran out
69 -- (only for vexes summoned by evokers)
70 if self._summoned then
71 if not self._lifetimer then
72 self._lifetimer = 33
73 end
74 self._lifetimer = self._lifetimer - dtime
75 if self._lifetimer <= 0 then
76 if self._damagetimer then
77 self._damagetimer = self._damagetimer - 1
78 end
79 self.object:punch(self.object, 1.0, {
80 full_punch_interval = 1.0,
81 damage_groups = {fleshy = 2},
82 }, nil)
83 self._damagetimer = 1
84 end
85 end
86 end,
87 water_damage = 0,
88 lava_damage = 4,
89 light_damage = 0,
90 fly = true,
91 fly_in = {"air"},
95 -- spawn eggs
96 mobs:register_egg("mobs_mc:vex", S("Vex"), "mobs_mc_spawn_icon_vex.png", 0)
99 if minetest.settings:get_bool("log_mods") then
100 minetest.log("action", "MC Vex loaded")