[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
This commit is contained in:
LeMagnesium 2017-04-19 23:37:33 +02:00
parent b0ba6a7956
commit f6341038af
No known key found for this signature in database
GPG Key ID: A54DDB5272C51E8B
3 changed files with 19 additions and 16 deletions

View File

@ -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},

View File

@ -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},

View File

@ -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},