Merge remote-tracking branch 'upstream/master'
@ -18,13 +18,13 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
|||||||
textures = {
|
textures = {
|
||||||
{"zmobs_lava_flan.png"},
|
{"zmobs_lava_flan.png"},
|
||||||
{"zmobs_lava_flan2.png"},
|
{"zmobs_lava_flan2.png"},
|
||||||
{"zmobs_lava_flan3.png"},
|
{"zmobs_lava_flan3.png"}
|
||||||
},
|
},
|
||||||
blood_texture = "fire_basic_flame.png",
|
blood_texture = "fire_basic_flame.png",
|
||||||
makes_footstep_sound = false,
|
makes_footstep_sound = false,
|
||||||
sounds = {
|
sounds = {
|
||||||
random = "mobs_lavaflan",
|
random = "mobs_lavaflan",
|
||||||
war_cry = "mobs_lavaflan",
|
war_cry = "mobs_lavaflan"
|
||||||
},
|
},
|
||||||
walk_velocity = 0.5,
|
walk_velocity = 0.5,
|
||||||
run_velocity = 2,
|
run_velocity = 2,
|
||||||
@ -32,14 +32,14 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
|||||||
view_range = 10,
|
view_range = 10,
|
||||||
floats = 1,
|
floats = 1,
|
||||||
drops = {
|
drops = {
|
||||||
{name = "mobs:lava_orb", chance = 15, min = 1, max = 1},
|
{name = "mobs:lava_orb", chance = 15, min = 1, max = 1}
|
||||||
},
|
},
|
||||||
water_damage = 8,
|
water_damage = 8,
|
||||||
lava_damage = -1,
|
lava_damage = -1,
|
||||||
fire_damage = 0,
|
fire_damage = 0,
|
||||||
light_damage = 0,
|
light_damage = 0,
|
||||||
immune_to = {
|
immune_to = {
|
||||||
{"mobs:pick_lava", -2}, -- lava pick heals 2 health
|
{"mobs:pick_lava", -2} -- lava pick heals 2 health
|
||||||
},
|
},
|
||||||
fly_in = {"default:lava_source", "default:lava_flowing"},
|
fly_in = {"default:lava_source", "default:lava_flowing"},
|
||||||
animation = {
|
animation = {
|
||||||
@ -54,6 +54,8 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
|||||||
punch_start = 20,
|
punch_start = 20,
|
||||||
punch_end = 28
|
punch_end = 28
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- custom death function
|
||||||
on_die = function(self, pos)
|
on_die = function(self, pos)
|
||||||
|
|
||||||
local cod = self.cause_of_death or {}
|
local cod = self.cause_of_death or {}
|
||||||
@ -66,26 +68,32 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
|||||||
mobs:effect(pos, 40, "tnt_smoke.png", 3, 5, 2, 0.5, nil, false)
|
mobs:effect(pos, 40, "tnt_smoke.png", 3, 5, 2, 0.5, nil, false)
|
||||||
|
|
||||||
minetest.sound_play("fire_extinguish_flame",
|
minetest.sound_play("fire_extinguish_flame",
|
||||||
{pos = pos, max_hear_distance = 12, gain = 1.5}, true)
|
{pos = pos, max_hear_distance = 12, gain = 1.5}, true)
|
||||||
|
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
|
|
||||||
if math.random(4) == 1 then
|
if math.random(4) == 1 then
|
||||||
mobs:add_mob(pos, {
|
mobs:add_mob(pos, {name = "mobs_monster:obsidian_flan"})
|
||||||
name = "mobs_monster:obsidian_flan",
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if minetest.get_node(pos).name == "air" then
|
mobs:effect(pos, 40, "fire_basic_flame.png", 2, 3, 2, 5, 10, nil)
|
||||||
|
|
||||||
|
local nods = minetest.find_nodes_in_area(
|
||||||
|
{x = pos.x, y = pos.y + 1, z = pos.z},
|
||||||
|
{x = pos.x, y = pos.y, z = pos.z}, "air")
|
||||||
|
|
||||||
|
-- place flame if position empty and flame exists
|
||||||
|
if nods and #nods > 0
|
||||||
|
and minetest.registered_nodes["fire:basic_flame"] then
|
||||||
|
|
||||||
|
pos = nods[math.random(#nods)]
|
||||||
minetest.set_node(pos, {name = "fire:basic_flame"})
|
minetest.set_node(pos, {name = "fire:basic_flame"})
|
||||||
end
|
end
|
||||||
|
|
||||||
mobs:effect(pos, 40, "fire_basic_flame.png", 2, 3, 2, 5, 10, nil)
|
|
||||||
|
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
glow = 10,
|
glow = 10
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -95,21 +103,24 @@ mobs:spawn({
|
|||||||
nodes = {"default:lava_source"},
|
nodes = {"default:lava_source"},
|
||||||
chance = 1500,
|
chance = 1500,
|
||||||
active_object_count = 1,
|
active_object_count = 1,
|
||||||
max_height = 0,
|
max_height = 0
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- add spawn egg
|
||||||
mobs:register_egg("mobs_monster:lava_flan", S("Lava Flan"), "default_lava.png", 1)
|
mobs:register_egg("mobs_monster:lava_flan", S("Lava Flan"), "default_lava.png", 1)
|
||||||
|
|
||||||
mobs:alias_mob("mobs:lava_flan", "mobs_monster:lava_flan") -- compatibility
|
|
||||||
|
-- compatibility alias, only needed for servers who used the old mobs mod
|
||||||
|
mobs:alias_mob("mobs:lava_flan", "mobs_monster:lava_flan")
|
||||||
|
|
||||||
|
|
||||||
-- lava orb
|
-- lava orb
|
||||||
minetest.register_craftitem(":mobs:lava_orb", {
|
minetest.register_craftitem(":mobs:lava_orb", {
|
||||||
description = S("Lava orb"),
|
description = S("Lava orb"),
|
||||||
inventory_image = "zmobs_lava_orb.png",
|
inventory_image = "zmobs_lava_orb.png",
|
||||||
light_source = 14,
|
light_source = 14
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_alias("zmobs:lava_orb", "mobs:lava_orb")
|
minetest.register_alias("zmobs:lava_orb", "mobs:lava_orb")
|
||||||
@ -117,7 +128,7 @@ minetest.register_alias("zmobs:lava_orb", "mobs:lava_orb")
|
|||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "fuel",
|
type = "fuel",
|
||||||
recipe = "mobs:lava_orb",
|
recipe = "mobs:lava_orb",
|
||||||
burntime = 80,
|
burntime = 80
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -225,13 +236,12 @@ mobs:register_mob("mobs_monster:obsidian_flan", {
|
|||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "zmobs_lava_flan.x",
|
mesh = "zmobs_lava_flan.x",
|
||||||
textures = {
|
textures = {
|
||||||
{"mobs_obsidian_flan.png"},
|
{"mobs_obsidian_flan.png"}
|
||||||
},
|
},
|
||||||
blood_texture = "default_obsidian.png",
|
blood_texture = "default_obsidian.png",
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
sounds = {
|
sounds = {
|
||||||
random = "mobs_lavaflan",
|
random = "mobs_lavaflan"
|
||||||
-- war_cry = "mobs_lavaflan",
|
|
||||||
},
|
},
|
||||||
walk_velocity = 0.1,
|
walk_velocity = 0.1,
|
||||||
run_velocity = 0.5,
|
run_velocity = 0.5,
|
||||||
@ -240,7 +250,7 @@ mobs:register_mob("mobs_monster:obsidian_flan", {
|
|||||||
floats = 0,
|
floats = 0,
|
||||||
drops = {
|
drops = {
|
||||||
{name = "default:obsidian_shard", chance = 1, min = 1, max = 5},
|
{name = "default:obsidian_shard", chance = 1, min = 1, max = 5},
|
||||||
{name = "default:obsidian", chance = 3, min = 0, max = 2},
|
{name = "default:obsidian", chance = 3, min = 0, max = 2}
|
||||||
},
|
},
|
||||||
water_damage = 0,
|
water_damage = 0,
|
||||||
lava_damage = 8,
|
lava_damage = 8,
|
||||||
@ -260,6 +270,8 @@ mobs:register_mob("mobs_monster:obsidian_flan", {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
-- add spawn egg
|
||||||
mobs:register_egg("mobs_monster:obsidian_flan", S("Obsidian Flan"),
|
mobs:register_egg("mobs_monster:obsidian_flan", S("Obsidian Flan"),
|
||||||
"default_obsidian.png", 1)
|
"default_obsidian.png", 1)
|
||||||
|
|
||||||
@ -269,11 +281,9 @@ local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false
|
|||||||
-- mese arrow (weapon)
|
-- mese arrow (weapon)
|
||||||
mobs:register_arrow("mobs_monster:obsidian_arrow", {
|
mobs:register_arrow("mobs_monster:obsidian_arrow", {
|
||||||
visual = "sprite",
|
visual = "sprite",
|
||||||
-- visual = "wielditem",
|
|
||||||
visual_size = {x = 0.5, y = 0.5},
|
visual_size = {x = 0.5, y = 0.5},
|
||||||
textures = {"default_obsidian_shard.png"},
|
textures = {"default_obsidian_shard.png"},
|
||||||
velocity = 6,
|
velocity = 6,
|
||||||
-- rotate = 180,
|
|
||||||
|
|
||||||
hit_player = function(self, player)
|
hit_player = function(self, player)
|
||||||
player:punch(self.object, 1.0, {
|
player:punch(self.object, 1.0, {
|
||||||
|
10
license.txt
@ -31,6 +31,14 @@ mobs.fireball.png was originally made by Sapier and edited by Benrob:
|
|||||||
-- (c) Sapier
|
-- (c) Sapier
|
||||||
-- Contact sapier a t gmx net
|
-- Contact sapier a t gmx net
|
||||||
|
|
||||||
Textures created by wwar (cc0)
|
Textures created by wwar (CC0)
|
||||||
mobs_dungeon_master_nether.png
|
mobs_dungeon_master_nether.png
|
||||||
mobs_dungeon_master_netherdeep.png
|
mobs_dungeon_master_netherdeep.png
|
||||||
|
|
||||||
|
Textures and Model created by SirrobZeroone (CC0)
|
||||||
|
mobs_mese_monster_red.png
|
||||||
|
mobs_mese_monster_blue.png
|
||||||
|
mobs_mese_monster_green.png
|
||||||
|
mobs_mese_monster_purple.png
|
||||||
|
mobs_mese_arrow.png
|
||||||
|
mobs_mese_monster.b3d
|
||||||
|
332
mese_monster.lua
@ -1,41 +1,183 @@
|
|||||||
|
|
||||||
local S = mobs.intllib_monster
|
local S = mobs.intllib_monster
|
||||||
|
|
||||||
-- Mese Monster by Zeg9
|
local mese_monster_types = {
|
||||||
|
|
||||||
|
-- mese_monster_red
|
||||||
|
{
|
||||||
|
y_min = -20,
|
||||||
|
y_max = -1000,
|
||||||
|
damage = 2,
|
||||||
|
reach = 3,
|
||||||
|
hp_min = 15,
|
||||||
|
hp_max = 25,
|
||||||
|
armor = 80,
|
||||||
|
skins = {"mobs_mese_monster_red.png"},
|
||||||
|
immune_to = {
|
||||||
|
{"default:pick_wood", 0},
|
||||||
|
{"default:shovel_wood", 0},
|
||||||
|
{"default:axe_wood", 0},
|
||||||
|
{"default:sword_wood", 0}
|
||||||
|
},
|
||||||
|
drops = {
|
||||||
|
{name = "default:mese_crystal", chance = 15, min = 0, max = 1},
|
||||||
|
{name = "default:mese_crystal_fragment", chance = 2, min = 0, max = 1}
|
||||||
|
},
|
||||||
|
arrow_override = function(self)
|
||||||
|
self.velocity = 6
|
||||||
|
self.damage = 2
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
|
-- mese_monster_green
|
||||||
|
{
|
||||||
|
y_min = -1001,
|
||||||
|
y_max = -2000,
|
||||||
|
damage = 3,
|
||||||
|
reach = 3,
|
||||||
|
hp_min = 20,
|
||||||
|
hp_max = 30,
|
||||||
|
armor = 75,
|
||||||
|
skins = {"mobs_mese_monster_green.png"},
|
||||||
|
immune_to = {
|
||||||
|
{"default:pick_wood", 0},
|
||||||
|
{"default:shovel_wood", 0},
|
||||||
|
{"default:axe_wood", 0},
|
||||||
|
{"default:sword_wood", 0},
|
||||||
|
{"default:pick_stone", 0},
|
||||||
|
{"default:shovel_stone", 0},
|
||||||
|
{"default:axe_stone", 0},
|
||||||
|
{"default:sword_stone", 0}
|
||||||
|
},
|
||||||
|
drops = {
|
||||||
|
{name = "default:mese_crystal", chance = 12, min = 0, max = 1},
|
||||||
|
{name = "default:mese_crystal_fragment", chance = 1, min = 0, max = 1}
|
||||||
|
},
|
||||||
|
arrow_override = function(self)
|
||||||
|
self.velocity = 6
|
||||||
|
self.damage = 2
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
|
-- mese_monster_blue
|
||||||
|
{
|
||||||
|
y_min = -2001,
|
||||||
|
y_max = -3000,
|
||||||
|
damage = 3,
|
||||||
|
reach = 4,
|
||||||
|
hp_min = 25,
|
||||||
|
hp_max = 35,
|
||||||
|
armor = 70,
|
||||||
|
skins = {"mobs_mese_monster_blue.png"},
|
||||||
|
immune_to = {
|
||||||
|
{"default:pick_wood", 0},
|
||||||
|
{"default:shovel_wood", 0},
|
||||||
|
{"default:axe_wood", 0},
|
||||||
|
{"default:sword_wood", 0},
|
||||||
|
{"default:pick_stone", 0},
|
||||||
|
{"default:shovel_stone", 0},
|
||||||
|
{"default:axe_stone", 0},
|
||||||
|
{"default:sword_stone", 0},
|
||||||
|
{"default:pick_bronze", 0},
|
||||||
|
{"default:shovel_bronze", 0},
|
||||||
|
{"default:axe_bronze", 0},
|
||||||
|
{"default:sword_bronze", 0}
|
||||||
|
},
|
||||||
|
drops = {
|
||||||
|
{name = "default:mese", chance = 15, min = 0, max = 1},
|
||||||
|
{name = "default:mese_crystal", chance = 9, min = 0, max = 2},
|
||||||
|
{name = "default:mese_crystal_fragment", chance = 1, min = 0, max = 2}
|
||||||
|
},
|
||||||
|
arrow_override = function(self)
|
||||||
|
self.velocity = 7
|
||||||
|
self.damage = 3
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
|
-- mese_monster_purple
|
||||||
|
{
|
||||||
|
y_min = -3000,
|
||||||
|
y_max = -31000,
|
||||||
|
damage = 4,
|
||||||
|
reach = 5,
|
||||||
|
hp_min = 30,
|
||||||
|
hp_max = 40,
|
||||||
|
armor = 60,
|
||||||
|
skins = {"mobs_mese_monster_purple.png"},
|
||||||
|
immune_to = {
|
||||||
|
{"default:pick_wood", 0},
|
||||||
|
{"default:shovel_wood", 0},
|
||||||
|
{"default:axe_wood", 0},
|
||||||
|
{"default:sword_wood", 0},
|
||||||
|
{"default:pick_stone", 0},
|
||||||
|
{"default:shovel_stone", 0},
|
||||||
|
{"default:axe_stone", 0},
|
||||||
|
{"default:sword_stone", 0},
|
||||||
|
{"default:pick_bronze", 0},
|
||||||
|
{"default:shovel_bronze", 0},
|
||||||
|
{"default:axe_bronze", 0},
|
||||||
|
{"default:sword_bronze", 0},
|
||||||
|
{"default:pick_steel", 0},
|
||||||
|
{"default:shovel_steel", 0},
|
||||||
|
{"default:axe_steel", 0},
|
||||||
|
{"default:sword_steel", 0}
|
||||||
|
},
|
||||||
|
drops = {
|
||||||
|
{name = "default:mese", chance = 9, min = 0, max = 1},
|
||||||
|
{name = "default:mese_crystal", chance = 6, min = 0, max = 2},
|
||||||
|
{name = "default:mese_crystal_fragment", chance = 1, min = 0, max = 3}
|
||||||
|
},
|
||||||
|
arrow_override = function(self)
|
||||||
|
self.velocity = 8
|
||||||
|
self.damage = 4
|
||||||
|
end
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
-- Mese Monster by SirrobZeroone
|
||||||
mobs:register_mob("mobs_monster:mese_monster", {
|
mobs:register_mob("mobs_monster:mese_monster", {
|
||||||
type = "monster",
|
type = "monster",
|
||||||
|
visual_size = {x = 10, y = 10}, -- Got scale wrong in blender by factor of 10 - S01
|
||||||
passive = false,
|
passive = false,
|
||||||
damage = 3,
|
attack_type = "dogshoot",
|
||||||
attack_type = "shoot",
|
damage = 4,
|
||||||
|
reach = 4,
|
||||||
shoot_interval = 0.5,
|
shoot_interval = 0.5,
|
||||||
arrow = "mobs_monster:mese_arrow",
|
arrow = "mobs_monster:mese_arrow",
|
||||||
shoot_offset = 2,
|
shoot_offset = 0.75,
|
||||||
--arrow_override = function(self)
|
--arrow_override = function(self)
|
||||||
-- self.velocity = 20
|
-- self.velocity = 20
|
||||||
--end,
|
--end,
|
||||||
|
knock_back = true,
|
||||||
hp_min = 10,
|
hp_min = 10,
|
||||||
hp_max = 25,
|
hp_max = 25,
|
||||||
armor = 80,
|
armor = 80,
|
||||||
collisionbox = {-0.5, -1.5, -0.5, 0.5, 0.5, 0.5},
|
collisionbox = {-0.75, -0.5, -0.75, 0.75, 2.5, 0.75},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "zmobs_mese_monster.x",
|
mesh = "mobs_mese_monster.b3d",
|
||||||
textures = {
|
textures = {
|
||||||
{"zmobs_mese_monster.png"},
|
{"mobs_mese_monster_purple.png"}
|
||||||
},
|
},
|
||||||
blood_texture = "default_mese_crystal_fragment.png",
|
blood_texture = "default_mese_crystal_fragment.png",
|
||||||
makes_footstep_sound = false,
|
makes_footstep_sound = false,
|
||||||
sounds = {
|
sounds = {
|
||||||
random = "mobs_mesemonster",
|
random = "mobs_mesemonster",
|
||||||
|
damage = "default_glass_footstep"
|
||||||
},
|
},
|
||||||
view_range = 10,
|
view_range = 10,
|
||||||
walk_velocity = 0.5,
|
walk_velocity = 1,
|
||||||
run_velocity = 2,
|
run_velocity = 3,
|
||||||
jump = true,
|
jump = true,
|
||||||
jump_height = 8,
|
jump_height = 8,
|
||||||
|
can_leap = true,
|
||||||
fall_damage = 0,
|
fall_damage = 0,
|
||||||
fall_speed = -6,
|
fall_speed = -6,
|
||||||
stepheight = 2.1,
|
stepheight = 2.1,
|
||||||
|
immune_to = {
|
||||||
|
{"default:pick_wood", 0},
|
||||||
|
{"default:shovel_wood", 0},
|
||||||
|
{"default:axe_wood", 0},
|
||||||
|
{"default:sword_wood", 0}
|
||||||
|
},
|
||||||
drops = {
|
drops = {
|
||||||
{name = "default:mese_crystal", chance = 9, min = 0, max = 2},
|
{name = "default:mese_crystal", chance = 9, min = 0, max = 2},
|
||||||
{name = "default:mese_crystal_fragment", chance = 1, min = 0, max = 2},
|
{name = "default:mese_crystal_fragment", chance = 1, min = 0, max = 2},
|
||||||
@ -46,17 +188,129 @@ mobs:register_mob("mobs_monster:mese_monster", {
|
|||||||
lava_damage = 1,
|
lava_damage = 1,
|
||||||
light_damage = 0,
|
light_damage = 0,
|
||||||
animation = {
|
animation = {
|
||||||
speed_normal = 15,
|
speed_normal = 18,
|
||||||
speed_run = 15,
|
speed_run = 18,
|
||||||
stand_start = 0,
|
walk_start = 10,
|
||||||
stand_end = 14,
|
walk_end = 41,
|
||||||
walk_start = 15,
|
walk_speed = 20,
|
||||||
walk_end = 38,
|
run_start = 10,
|
||||||
run_start = 40,
|
run_end = 41,
|
||||||
run_end = 63,
|
run_speed = 30,
|
||||||
punch_start = 40,
|
stand_start = 60,
|
||||||
punch_end = 63,
|
stand_end = 83,
|
||||||
|
shoot_start = 100,
|
||||||
|
shoot_end = 113,
|
||||||
|
die_start = 125,
|
||||||
|
die_end = 141,
|
||||||
|
death_speed = 25,
|
||||||
|
die_loop = false,
|
||||||
|
jump_start = 150 ,
|
||||||
|
jump_end = 168,
|
||||||
|
jump_loop = false,
|
||||||
|
punch_start = 175,
|
||||||
|
punch_end = 189
|
||||||
},
|
},
|
||||||
|
|
||||||
|
on_spawn = function(self)
|
||||||
|
|
||||||
|
local pos = self.object:get_pos()
|
||||||
|
|
||||||
|
-- quick update self function
|
||||||
|
local function update(self, def)
|
||||||
|
|
||||||
|
self.object:set_properties({textures = def.skins})
|
||||||
|
|
||||||
|
-- added by mobs_redo
|
||||||
|
self.hp_min = def.hp_min
|
||||||
|
self.hp_max = def.hp_max
|
||||||
|
self.health = math.random(self.hp_min, self.hp_max)
|
||||||
|
self.damage = def.damage
|
||||||
|
self.reach = def.reach
|
||||||
|
self.armor = def.armor
|
||||||
|
self.immune_to = def.immune_to
|
||||||
|
self.drops = def.drops
|
||||||
|
self.arrow_override = def.arrow_override
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Normal spawn case
|
||||||
|
for name, def in pairs(mese_monster_types) do
|
||||||
|
|
||||||
|
if pos.y <= def.y_min and pos.y >= def.y_max then
|
||||||
|
|
||||||
|
update(self, def)
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
--[[
|
||||||
|
-- player using egg
|
||||||
|
-- direction sets type N = red, E = green, S = blue, W = purple
|
||||||
|
-- Just for fun - S01
|
||||||
|
|
||||||
|
local objects = minetest.get_objects_inside_radius(pos, 10)
|
||||||
|
|
||||||
|
for i, obj in ipairs(objects) do
|
||||||
|
|
||||||
|
if minetest.is_player(obj)
|
||||||
|
and obj:get_wielded_item():get_name() == "mobs_monster:mese_monster" then
|
||||||
|
|
||||||
|
local degree = (360 + math.deg(obj:get_look_horizontal())) % 360
|
||||||
|
local compass_sel
|
||||||
|
|
||||||
|
if degree > 45 and degree <= 135 then compass_sel = 4
|
||||||
|
elseif degree > 135 and degree <= 225 then compass_sel = 3
|
||||||
|
elseif degree > 225 and degree <= 315 then compass_sel = 2
|
||||||
|
else compass_sel = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
local def = mese_monster_types[compass_sel]
|
||||||
|
|
||||||
|
update(self, def)
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
]]
|
||||||
|
-- catch case if all else fails random it
|
||||||
|
update(self, mese_monster_types[math.random(4)])
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
-- mese arrow (weapon)
|
||||||
|
minetest.register_craftitem("mobs_monster:mese_crystal_fragment_arrow", {
|
||||||
|
description = S("Mese Monster Arrow"),
|
||||||
|
inventory_image = "mobs_mese_arrow.png",
|
||||||
|
groups = {not_in_creative_inventory = 1}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
mobs:register_arrow("mobs_monster:mese_arrow", {
|
||||||
|
visual = "wielditem",
|
||||||
|
visual_size = {x = 0.25, y = 0.25},
|
||||||
|
textures = {"mobs_monster:mese_crystal_fragment_arrow"},
|
||||||
|
velocity = 8,
|
||||||
|
rotate = 180,
|
||||||
|
damage = 2,
|
||||||
|
|
||||||
|
hit_player = function(self, player)
|
||||||
|
player:punch(self.object, 1.0, {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
damage_groups = {fleshy = self.damage},
|
||||||
|
}, nil)
|
||||||
|
end,
|
||||||
|
|
||||||
|
hit_mob = function(self, player)
|
||||||
|
player:punch(self.object, 1.0, {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
damage_groups = {fleshy = self.damage},
|
||||||
|
}, nil)
|
||||||
|
end,
|
||||||
|
|
||||||
|
hit_node = function(self, pos, node)
|
||||||
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -67,7 +321,7 @@ mobs:spawn({
|
|||||||
max_light = 7,
|
max_light = 7,
|
||||||
chance = 5000,
|
chance = 5000,
|
||||||
active_object_count = 1,
|
active_object_count = 1,
|
||||||
max_height = -20,
|
max_height = -20
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -78,40 +332,10 @@ mobs:register_egg("mobs_monster:mese_monster", S("Mese Monster"), "default_mese_
|
|||||||
mobs:alias_mob("mobs:mese_monster", "mobs_monster:mese_monster") -- compatiblity
|
mobs:alias_mob("mobs:mese_monster", "mobs_monster:mese_monster") -- compatiblity
|
||||||
|
|
||||||
|
|
||||||
-- mese arrow (weapon)
|
|
||||||
mobs:register_arrow("mobs_monster:mese_arrow", {
|
|
||||||
visual = "sprite",
|
|
||||||
-- visual = "wielditem",
|
|
||||||
visual_size = {x = 0.5, y = 0.5},
|
|
||||||
textures = {"default_mese_crystal_fragment.png"},
|
|
||||||
--textures = {"default:mese_crystal_fragment"},
|
|
||||||
velocity = 6,
|
|
||||||
-- rotate = 180,
|
|
||||||
|
|
||||||
hit_player = function(self, player)
|
|
||||||
player:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval = 1.0,
|
|
||||||
damage_groups = {fleshy = 2},
|
|
||||||
}, nil)
|
|
||||||
end,
|
|
||||||
|
|
||||||
hit_mob = function(self, player)
|
|
||||||
player:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval = 1.0,
|
|
||||||
damage_groups = {fleshy = 2},
|
|
||||||
}, nil)
|
|
||||||
end,
|
|
||||||
|
|
||||||
hit_node = function(self, pos, node)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
-- 9x mese crystal fragments = 1x mese crystal
|
-- 9x mese crystal fragments = 1x mese crystal
|
||||||
|
local f = "default:mese_crystal_fragment"
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:mese_crystal",
|
output = "default:mese_crystal",
|
||||||
recipe = {
|
recipe = {{f, f, f}, {f, f, f}, {f, f, f}}
|
||||||
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
|
|
||||||
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
|
|
||||||
{"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"},
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
BIN
models/mobs_mese_monster.b3d
Normal file
@ -15,7 +15,7 @@ Lava Flan
|
|||||||
|
|
||||||
Mese Monster
|
Mese Monster
|
||||||
|
|
||||||
- These mobs are territorial and spawn below -20 and will fire mese shards at passers by, so best avoided. Will drop mese when killed.
|
- These mobs are territorial and spawn below -20 and will fire mese shards at passers by, so best avoided. The deeper you go the tougher they seem to get. Will drop mese when killed.
|
||||||
|
|
||||||
Oerkki
|
Oerkki
|
||||||
|
|
||||||
|
BIN
screenshot.jpg
Normal file
After Width: | Height: | Size: 176 KiB |
BIN
textures/mobs_mese_arrow.png
Normal file
After Width: | Height: | Size: 563 B |
BIN
textures/mobs_mese_monster_blue.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
textures/mobs_mese_monster_green.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
textures/mobs_mese_monster_purple.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
textures/mobs_mese_monster_red.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 305 B |
Before Width: | Height: | Size: 567 B |