minetest-mod-nssm/mobs/pumpboom.lua
2019-01-05 17:15:54 +00:00

107 lines
2.5 KiB
Lua

local function register_pumpboom(sizename, params)
mobs:register_mob("nssm:pumpboom_"..sizename, {
type = "monster",
hp_min = params.hp_min,
hp_max = params.hp_max,
collisionbox = params.collisionbox,
visual = "mesh",
mesh = "pumpboom.x",
rotate = 270,
textures = {{"pumpboom.png"}},
visual_size = params.visual_size,
explosion_radius = params.boom_radius,
makes_footstep_sound = true,
view_range = params.view_range,
fear_height = 4,
walk_velocity = 2,
run_velocity = 2.5,
sounds = {
explode = "tnt_explode"
},
damage = 1.5,
jump = true,
drops = params.drops,
armor = 100,
drawtype = "front",
water_damage = 2,
lava_damage = 5,
light_damage = 0,
group_attack=true,
attack_animals=true,
knock_back=2,
blood_texture="nssm_blood.png",
stepheight=1.1,
on_rightclick = nil,
attack_type = "explode",
animation = {
speed_normal = 25,
speed_run = 25,
stand_start = 1,
stand_end = 30,
walk_start = 81,
walk_end = 97,
run_start = 81,
run_end = 97,
punch_start = 70,
punch_end = 80,
}
})
end
register_pumpboom("small",{
hp_min = 14,
hp_max = 15,
visual_size = {x=3, y=3},
collisionbox = {-0.45, -0.3, -0.45, 0.45, 0.45, 0.45},
boom_radius = 4,
view_range = 20,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 1,
max = 2,},
{name = "nssm:black_powder",
chance = 2,
min = 1,
max = 2,},
},
})
register_pumpboom("medium",{
hp_min = 17,
hp_max = 18,
visual_size = {x=5, y=5},
collisionbox = {-0.7, -0.3, -0.7, 0.7, 0.7, 0.7},
boom_radius = 6,
view_range = 25,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 2,
max = 3,},
{name = "nssm:black_powder",
chance = 2,
min = 1,
max = 3,},
},
})
register_pumpboom("large",{
hp_min = 19,
hp_max = 20,
visual_size = {x=8, y=8},
collisionbox = {-1.2, -0.3, -1.2, 1.2, 1.2, 1.2},
boom_radius = 8,
view_range = 30,
drops = {
{name = "nssm:life_energy",
chance = 1,
min = 3,
max = 4,},
{name = "nssm:black_powder",
chance = 2,
min = 2,
max = 4,},
},
})