--MCmobs v0.4 --maikerumine --made for MC like Survival game --License for code WTFPL and otherwise stated in readmes local S = minetest.get_translator("mobs_mc") --################### --################### VEX --################### mcl_mobs.register_mob("mobs_mc:vex", { description = S("Vex"), type = "monster", spawn_class = "hostile", pathfinding = 1, passive = false, attack_type = "dogfight", physical = false, hp_min = 14, hp_max = 14, xp_min = 6, xp_max = 6, collisionbox = {-0.2, 0.2, -0.2, 0.2, 1.0, 0.2}, --bat visual = "mesh", mesh = "mobs_mc_vex.b3d", textures = { { "default_tool_steelsword.png", "mobs_mc_vex.png", }, }, visual_size = {x=1.25, y=1.25}, damage = 9, reach = 2, view_range = 16, walk_velocity = 3.2, run_velocity = 5.9, attack_type = "dogfight", attack_frequency = 2, sounds = { -- TODO: random death = "mobs_mc_vex_death", damage = "mobs_mc_vex_hurt", distance = 16, }, animation = { stand_speed = 25, walk_speed = 25, run_speed = 50, stand_start = 40, stand_end = 80, walk_start = 0, walk_end = 40, run_start = 0, run_end = 40, }, do_custom = function(self, dtime) -- Glow red while attacking -- TODO: Charge sound if self.state == "attack" then if self.base_texture[2] ~= "mobs_mc_vex_charging.png" then self.base_texture[2] = "mobs_mc_vex_charging.png" self.object:set_properties({textures=self.base_texture}) end else if self.base_texture[2] == "mobs_mc_vex_charging.png" then self.base_texture[2] = "mobs_mc_vex.png" end if self.base_texture[1] ~= "default_tool_steelsword.png" then self.base_texture[1] = "default_tool_steelsword.png" end self.object:set_properties({textures=self.base_texture}) end -- Take constant damage if the vex' life clock ran out -- (only for vexes summoned by evokers) if self._summoned then if not self._lifetimer then self._lifetimer = 33 end self._lifetimer = self._lifetimer - dtime if self._lifetimer <= 0 then if self._damagetimer then self._damagetimer = self._damagetimer - 1 end self.object:punch(self.object, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = 2}, }, nil) self._damagetimer = 1 end end end, fly = true, makes_footstep_sound = false, }) -- spawn eggs mcl_mobs.register_egg("mobs_mc:vex", S("Vex"), "#7a90a4", "#e8edf1", 0) mcl_mobs:non_spawn_specific("mobs_mc:vex","overworld",0,7)