mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2025-02-04 14:20:16 +01:00
[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:
parent
b0ba6a7956
commit
f6341038af
@ -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},
|
||||
|
@ -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},
|
||||
|
@ -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},
|
||||
|
Loading…
Reference in New Issue
Block a user