tweak custom attack function

This commit is contained in:
tenplus1 2020-06-19 16:07:29 +01:00
parent 3b8c4bc070
commit 245128f9e6
2 changed files with 6 additions and 12 deletions

15
api.lua
View File

@ -1224,7 +1224,6 @@ local entity_physics = function(pos, radius)
-- punches work on entities AND players
objs[n]:punch(objs[n], 1.0, {
-- objs[n]:punch(nil, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = damage},
}, pos)
@ -2524,9 +2523,11 @@ function mob_class:do_states(dtime)
self:set_velocity(0)
if not self.custom_attack then
if self.timer > 1 then
if self.timer > 1 then
-- no custom attack or custom attack returns true to continue
if not self.custom_attack
or self:custom_attack(self, p) == true then
self.timer = 0
self:set_animation("punch")
@ -2555,14 +2556,6 @@ function mob_class:do_states(dtime)
}, nil)
end
end
else -- call custom attack every second
if self.custom_attack
and self.timer > 1 then
self.timer = 0
self:custom_attack(p)
end
end
end

View File

@ -291,7 +291,8 @@ enhance mob functionality and have them do many interesting things:
time_from_last_punch, tool_capabilities, direction), return
false to stop punch damage and knockback from taking place.
'custom_attack' when set this function is called instead of the normal mob
melee attack, parameters are (self, to_attack).
melee attack, parameters are (self, to_attack) and if true
is returned normal attack function continued.
'on_die' a function that is called when mob is killed (self, pos)
'do_custom' a custom function that is called every tick while mob is
active and which has access to all of the self.* variables