updated mobs api and classes api

This commit is contained in:
cale 2016-03-07 17:32:13 +01:00
parent 48e8ec11c2
commit b317aa19f9
4 changed files with 35 additions and 10 deletions

View File

@ -1,5 +1,4 @@
default
legendary_items
mobs
xp
central_message

View File

@ -2,7 +2,17 @@ classes = {}
classes.all_classes = {}
classes.selected = {}
classes.classes_file = minetest.get_worldpath() .. "/classes"
function classes.get_dmg(lvl)
return lvl+2
end
classes.register_weapon = function(name,fromLevel,levels, def)
if not def.damage then
if def.damage_m and def.damage_d then
def.damage = math.floor(classes.get_dmg(fromLevel)*def.damage_m-def.damage_d)
end
end
for i = fromLevel, levels, 1 do
minetest.register_tool("classes:"..name .. "_lvl_" .. tostring(i), {
description = def.description.."\n For Level: ".. tostring(i).. "\n Damage: " .. tostring(def.damage+ i-fromLevel) .." \n Class: " .. def.class,
@ -155,7 +165,8 @@ classes.register_weapon("spear",2, 12, {
description = "Spear",
inventory_image = "classes_spear.png",
wield_scale = {x = 2, y=2, z = 1},
damage = 17,
damage_m = 1.0,
damage_d = 0,
class = "warrior",
recipe = {
{"", "default:flint", ""},
@ -164,11 +175,12 @@ classes.register_weapon("spear",2, 12, {
}
})
classes.register_weapon("chemical_spear",2, 17, {
classes.register_weapon("chemical_spear",5, 17, {
description = "Chemical Spear",
inventory_image = "classes_chemical_spear.png",
wield_scale = {x = 2, y=2, z = 1},
damage = 19,
damage_m = 1.1,
damage_d = -1,
class = "warrior"
})
@ -176,7 +188,8 @@ classes.register_weapon("sword",20, 30, {
description = "Sword",
inventory_image = "classes_sword.png",
wield_scale = {x = 1.5, y=1.5, z = 1},
damage = 21,
damage_m = 1.0,
damage_d = 0,
class = "warrior",
recipe = {
{"", "default:blade", ""},
@ -190,7 +203,8 @@ classes.register_weapon("hoe",2, 20, {
description = "Hoe",
inventory_image = "classes_hoe.png",
wield_scale = {x = 1, y=1, z = 1},
damage = 12,
damage_m = 0.9,
damage_d = 1,
class = "farmer",
recipe = {
{"", "furnace:iron_rod", "default:blade"},
@ -203,7 +217,8 @@ classes.register_weapon("pitchfork",15, 30, {
description = "Pitchfork",
inventory_image = "classes_pitchfork.png",
wield_scale = {x = 1, y=1, z = 1},
damage = 18,
damage_m = 0.95,
damage_d = 0,
class = "farmer",
recipe = {
{"furnace:iron_rod", "furnace:iron_rod", "furnace:iron_rod"},
@ -216,7 +231,8 @@ classes.register_weapon("stick",2, 30, {
description = "Stick",
inventory_image = "classes_stick.png",
wield_scale = {x = 1, y=1, z = 1},
damage = 9,
damage_m = 0.8,
damage_d = 1,
class = "thief",
recipe = {
{"", "default:stick", ""},
@ -228,7 +244,8 @@ classes.register_weapon("long_stick",20, 60, {
description = "Long Stick",
inventory_image = "classes_stick.png",
wield_scale = {x = 2, y=2, z = 1},
damage = 20,
damage_m = 0.8,
damage_d = 1,
class = "thief",
recipe = {
{"", "default:stick", ""},

2
mods/mobs/depends.txt Normal file
View File

@ -0,0 +1,2 @@
classes
default

View File

@ -6,6 +6,12 @@ function mobs.get_velocity(v, yaw, y)
end
function mobs.register_mob(name, def)
if not def.hp then
if def.lvl and def.hits then
def.hp = classes.get_dmg(def.lvl)*def.hits
end
end
minetest.register_entity(name, {
hp_max = def.hp,
physical = true,
@ -56,7 +62,8 @@ end
mobs.register_mob("mobs:angry_player", {
mesh = "character.x",
textures = {"character.png",},
hp = 40,
lvl = 3,
hits = 6,
dmg = {
full_punch_interval = 0.9,
max_drop_level = 0,