1
0
mirror of https://codeberg.org/tenplus1/mobs_redo.git synced 2025-07-01 16:00:23 +02:00

Added custom_attack function (thanks to NPXcoot)

This commit is contained in:
TenPlus1
2016-04-28 20:18:00 +01:00
parent b512f882e9
commit b51bafcf0e
3 changed files with 33 additions and 2856 deletions

52
api.lua
View File

@ -1,5 +1,5 @@
-- Mobs Api (25th April 2016)
-- Mobs Api (28th April 2016)
mobs = {}
mobs.mod = "redo"
@ -1529,33 +1529,44 @@ local do_states = function(self, dtime)
set_velocity(self, 0)
set_animation(self, "punch")
if self.timer > 1 then
if not self.custom_attack then
self.timer = 0
if self.timer > 1 then
local p2 = p
local s2 = s
self.timer = 0
p2.y = p2.y + 1.5
s2.y = s2.y + 1.5
local p2 = p
local s2 = s
--if minetest.line_of_sight(p2, s2) == true then
if line_of_sight_water(self, p2, s2) == true then
p2.y = p2.y + 1.5
s2.y = s2.y + 1.5
-- play attack sound
if self.sounds.attack then
--if minetest.line_of_sight(p2, s2) == true then
if line_of_sight_water(self, p2, s2) == true then
minetest.sound_play(self.sounds.attack, {
object = self.object,
max_hear_distance = self.sounds.distance
})
-- play attack sound
if self.sounds.attack then
minetest.sound_play(self.sounds.attack, {
object = self.object,
max_hear_distance = self.sounds.distance
})
end
-- punch player
self.attack:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = self.damage}
}, nil)
end
end
else -- call custom attack every second
if self.custom_attack
and self.timer > 1 then
-- punch player
self.attack:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = self.damage}
}, nil)
self.timer = 0
self.custom_attack(self, p)
end
end
end
@ -2165,6 +2176,7 @@ minetest.register_entity(name, {
pathfinding = def.pathfinding,
immune_to = def.immune_to or {},
explosion_radius = def.explosion_radius,
custom_attack = def.custom_attack,
on_step = mob_step,