diff --git a/mods/classes/depends.txt b/mods/classes/depends.txt index 20a05db..9e155b2 100644 --- a/mods/classes/depends.txt +++ b/mods/classes/depends.txt @@ -1,5 +1,4 @@ default legendary_items -mobs xp central_message diff --git a/mods/classes/init.lua b/mods/classes/init.lua index f893f04..756c8c7 100644 --- a/mods/classes/init.lua +++ b/mods/classes/init.lua @@ -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", ""}, diff --git a/mods/mobs/depends.txt b/mods/mobs/depends.txt new file mode 100644 index 0000000..ac2fee8 --- /dev/null +++ b/mods/mobs/depends.txt @@ -0,0 +1,2 @@ +classes +default diff --git a/mods/mobs/init.lua b/mods/mobs/init.lua index 1e215a9..e1e6dd0 100644 --- a/mods/mobs/init.lua +++ b/mods/mobs/init.lua @@ -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,