make on_death compatible (return either player or nil)

This commit is contained in:
tenplus1 2024-04-26 11:07:08 +01:00
parent d20dfa0b41
commit 99bea53af3
2 changed files with 10 additions and 2 deletions

View File

@ -882,7 +882,14 @@ function mob_class:check_for_death(cmi_cause)
-- execute official engine on_death function if found
if self.on_death then
self:on_death(self, cmi_cause)
-- only return killer if punched by player
if cmi_cause.type == "punch" and is_player(cmi_cause.puncher) then
cmi_cause = cmi_cause.puncher
else
cmi_cause = nil
end
self:on_death(cmi_cause)
remove_mob(self, true)

View File

@ -336,7 +336,8 @@ enhance mob functionality and have them do many interesting things:
is returned normal attack function continued.
'on_die' a function that is called when mob is killed (self, pos), also
has access to self.cause_of_death table.
'on_death' Official engine version of above when mob killed (self, cause).
'on_death' Official engine version of above when mob killed (self, killer),
'killer' is only returned if player killed the mob.
'on_flop' function called when flying or swimmimng mob is no longer in
air/water, (self) paramater and return true to skip the built
in api flop feature.