From f6341038afbec150d7a398a030ec631ec3deb9b4 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Wed, 19 Apr 2017 23:37:33 +0200 Subject: [PATCH] [mff_pclasses] Stop using asbolute stats values - Stop using absolute stats values for stamina and manamax when you can add/subtract in on_assign and on_unassign - Use on_update for hunters to determine whether or not to add the sprint bonus from the full reinforced leather armor set --- mods/mff/mff_pclasses/hunter.lua | 19 ++++++++++++------- mods/mff/mff_pclasses/warrior.lua | 8 +++----- mods/mff/mff_pclasses/wizard.lua | 8 ++++---- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/mods/mff/mff_pclasses/hunter.lua b/mods/mff/mff_pclasses/hunter.lua index da0df45b..f84f0c7b 100755 --- a/mods/mff/mff_pclasses/hunter.lua +++ b/mods/mff/mff_pclasses/hunter.lua @@ -6,28 +6,33 @@ -- See https://github.com/Ombridride/minetest-minetestforfun-server/issues/114 -- +local tmp = {} + pclasses.api.register_class("hunter", { on_assigned = function(pname, inform) if inform then minetest.chat_send_player(pname, "You are now a hunter") minetest.sound_play("pclasses_full_hunter", {to_player=pname, gain=1}) end + sprint.increase_maxstamina(pname, 10) minetest.log("action", "[PClasses] Player " .. pname .. " become a hunter") end, on_unassigned = function(pname) - sprint.set_default_maxstamina(pname) + sprint.decrease_maxstamina(pname, 10) end, on_update = function(pname) - local staminavalue = 30 - local manavalue = 100 local reinforced = pclasses.api.util.does_wear_full_armor(pname, "reinforcedleather", true) if reinforced then - staminavalue = staminavalue + 20 + if not tmp[pname] then + tmp[pname] = true + sprint.increase_maxstamina(pname, 10) -- 10 more + end else - staminavalue = staminavalue + 10 + if tmp[pname] then + tmp[pname] = false + sprint.decrease_maxstamina(pname, 10) + end end - sprint.set_maxstamina(pname, staminavalue) - mana.setmax(pname, manavalue) end, switch_params = { color = {r = 30, g = 170, b = 00}, diff --git a/mods/mff/mff_pclasses/warrior.lua b/mods/mff/mff_pclasses/warrior.lua index b1261e09..eb68117f 100755 --- a/mods/mff/mff_pclasses/warrior.lua +++ b/mods/mff/mff_pclasses/warrior.lua @@ -12,16 +12,14 @@ pclasses.api.register_class("warrior", { minetest.sound_play("pclasses_full_warrior", {to_player=pname, gain=1}) minetest.chat_send_player(pname, "You are now a warrior") end + sprint.increase_maxstamina(pname, 10) minetest.log("action", "[PClasses] Player " .. pname .. " becomes a warrior") end, on_unassigned = function(pname) - sprint.set_default_maxstamina(pname) + sprint.decrease_maxstamina(pname, 10) end, on_update = function(pname) - local staminavalue = 20 - local manavalue = 100 - sprint.set_maxstamina(pname, staminavalue) - mana.setmax(pname, manavalue) + -- No specific armor changes, no code end, switch_params = { color = {r = 06, g = 06, b = 30}, diff --git a/mods/mff/mff_pclasses/wizard.lua b/mods/mff/mff_pclasses/wizard.lua index b674a116..c0214c8a 100755 --- a/mods/mff/mff_pclasses/wizard.lua +++ b/mods/mff/mff_pclasses/wizard.lua @@ -13,16 +13,16 @@ pclasses.api.register_class("wizard", { minetest.chat_send_player(pname, "You are now a wizard.") end -- Add specs here + mana.setmax(pname, mana.getmax(pname)+100) + sprint.increase_maxstamina(pname, 10) minetest.log("action", "[PClasses] Player " .. pname .. " becomes a wizard") end, on_unassigned = function(pname) mana.setmax(pname, mana.getmax(pname)-100) + sprint.decrease_maxstamina(pname, 10) end, on_update = function(pname) - local staminavalue = 10 - local manavalue = 200 - sprint.set_maxstamina(pname, staminavalue) - mana.setmax(pname, manavalue) + -- No armor, no update needed end, switch_params = { color = {r = 230, g = 230, b = 0},