forked from VoxeLibre/VoxeLibre
Fixed the pillager so he shoots, along with the animation
This commit is contained in:
parent
a48664b8b3
commit
24939326c4
|
@ -1,4 +1,5 @@
|
||||||
local S = minetest.get_translator("mobs_mc")
|
local S = minetest.get_translator("mobs_mc")
|
||||||
|
local mod_bows = minetest.get_modpath("mcl_bows") ~= nil
|
||||||
|
|
||||||
local function reload(self)
|
local function reload(self)
|
||||||
if not self or not self.object then return end
|
if not self or not self.object then return end
|
||||||
|
@ -11,8 +12,8 @@ end
|
||||||
|
|
||||||
local function reset_animation(self, animation)
|
local function reset_animation(self, animation)
|
||||||
if not self or not self.object or self.current_animation ~= animation then return end
|
if not self or not self.object or self.current_animation ~= animation then return end
|
||||||
self.current_animation = "stand_reload" -- Mobs Redo won't set the animation unless we do this
|
self.animation.current = "stand_reload" -- Mobs Redo won't set the animation unless we do this
|
||||||
mcl_mobs.set_mob_animation(self, animation)
|
mcl_mobs:set_animation(self, animation)
|
||||||
end
|
end
|
||||||
|
|
||||||
pillager = {
|
pillager = {
|
||||||
|
@ -20,7 +21,7 @@ pillager = {
|
||||||
type = "monster",
|
type = "monster",
|
||||||
spawn_class = "hostile",
|
spawn_class = "hostile",
|
||||||
hostile = true,
|
hostile = true,
|
||||||
rotate = 270,
|
rotate = 0,
|
||||||
hp_min = 24,
|
hp_min = 24,
|
||||||
hp_max = 24,
|
hp_max = 24,
|
||||||
xp_min = 6,
|
xp_min = 6,
|
||||||
|
@ -64,7 +65,7 @@ pillager = {
|
||||||
reach = 8,
|
reach = 8,
|
||||||
view_range = 16,
|
view_range = 16,
|
||||||
fear_height = 4,
|
fear_height = 4,
|
||||||
attack_type = "projectile",
|
attack_type = "shoot",
|
||||||
arrow = "mcl_bows:arrow_entity",
|
arrow = "mcl_bows:arrow_entity",
|
||||||
sounds = {
|
sounds = {
|
||||||
random = "mobs_mc_pillager_grunt2",
|
random = "mobs_mc_pillager_grunt2",
|
||||||
|
@ -133,19 +134,21 @@ pillager = {
|
||||||
local props = self.object:get_properties()
|
local props = self.object:get_properties()
|
||||||
props.textures[2] = "mcl_bows_crossbow_0.png^[resize:16x16"
|
props.textures[2] = "mcl_bows_crossbow_0.png^[resize:16x16"
|
||||||
self.object:set_properties(props)
|
self.object:set_properties(props)
|
||||||
local old_anim = self.current_animation
|
local old_anim = self.animation.current
|
||||||
if old_anim == "run" then
|
if old_anim == "run" then
|
||||||
mcl_mobs.set_mob_animation(self, "reload_run")
|
mcl_mobs:set_animation(self, "reload_run")
|
||||||
end
|
end
|
||||||
if old_anim == "stand" then
|
if old_anim == "stand" then
|
||||||
mcl_mobs.set_mob_animation(self, "reload_stand")
|
mcl_mobs:set_animation(self, "reload_stand")
|
||||||
end
|
end
|
||||||
self.current_animation = old_anim -- Mobs Redo will imediately reset the animation otherwise
|
self.animation.current = old_anim -- Mobs Redo will imediately reset the animation otherwise
|
||||||
minetest.after(1, reload, self)
|
minetest.after(1, reload, self)
|
||||||
minetest.after(2, reset_animation, self, old_anim)
|
minetest.after(2, reset_animation, self, old_anim)
|
||||||
mcl_mobs.shoot_projectile_handling(
|
if mod_bows then
|
||||||
"mcl_bows:arrow", pos, dir, self.object:get_yaw(),
|
-- 2-4 damage per arrow
|
||||||
self.object, 30, math.random(3,4))
|
local dmg = math.max(4, math.random(2, 8))
|
||||||
|
mcl_bows_s.shoot_arrow_crossbow("mcl_bows:arrow", pos, dir, self.object:get_yaw(), self.object, nil, dmg)
|
||||||
|
end
|
||||||
|
|
||||||
-- While we are at it, change the sounds since there is no way to do this in Mobs Redo
|
-- While we are at it, change the sounds since there is no way to do this in Mobs Redo
|
||||||
if self.sounds and self.sounds.random then
|
if self.sounds and self.sounds.random then
|
||||||
|
|
Loading…
Reference in New Issue