mirror of
https://github.com/sys4-fr/server-nalc.git
synced 2025-02-10 08:40:23 +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
|
-- See https://github.com/Ombridride/minetest-minetestforfun-server/issues/114
|
||||||
--
|
--
|
||||||
|
|
||||||
|
local tmp = {}
|
||||||
|
|
||||||
pclasses.api.register_class("hunter", {
|
pclasses.api.register_class("hunter", {
|
||||||
on_assigned = function(pname, inform)
|
on_assigned = function(pname, inform)
|
||||||
if inform then
|
if inform then
|
||||||
minetest.chat_send_player(pname, "You are now a hunter")
|
minetest.chat_send_player(pname, "You are now a hunter")
|
||||||
minetest.sound_play("pclasses_full_hunter", {to_player=pname, gain=1})
|
minetest.sound_play("pclasses_full_hunter", {to_player=pname, gain=1})
|
||||||
end
|
end
|
||||||
|
sprint.increase_maxstamina(pname, 10)
|
||||||
minetest.log("action", "[PClasses] Player " .. pname .. " become a hunter")
|
minetest.log("action", "[PClasses] Player " .. pname .. " become a hunter")
|
||||||
end,
|
end,
|
||||||
on_unassigned = function(pname)
|
on_unassigned = function(pname)
|
||||||
sprint.set_default_maxstamina(pname)
|
sprint.decrease_maxstamina(pname, 10)
|
||||||
end,
|
end,
|
||||||
on_update = function(pname)
|
on_update = function(pname)
|
||||||
local staminavalue = 30
|
|
||||||
local manavalue = 100
|
|
||||||
local reinforced = pclasses.api.util.does_wear_full_armor(pname, "reinforcedleather", true)
|
local reinforced = pclasses.api.util.does_wear_full_armor(pname, "reinforcedleather", true)
|
||||||
if reinforced then
|
if reinforced then
|
||||||
staminavalue = staminavalue + 20
|
if not tmp[pname] then
|
||||||
|
tmp[pname] = true
|
||||||
|
sprint.increase_maxstamina(pname, 10) -- 10 more
|
||||||
|
end
|
||||||
else
|
else
|
||||||
staminavalue = staminavalue + 10
|
if tmp[pname] then
|
||||||
|
tmp[pname] = false
|
||||||
|
sprint.decrease_maxstamina(pname, 10)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
sprint.set_maxstamina(pname, staminavalue)
|
|
||||||
mana.setmax(pname, manavalue)
|
|
||||||
end,
|
end,
|
||||||
switch_params = {
|
switch_params = {
|
||||||
color = {r = 30, g = 170, b = 00},
|
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.sound_play("pclasses_full_warrior", {to_player=pname, gain=1})
|
||||||
minetest.chat_send_player(pname, "You are now a warrior")
|
minetest.chat_send_player(pname, "You are now a warrior")
|
||||||
end
|
end
|
||||||
|
sprint.increase_maxstamina(pname, 10)
|
||||||
minetest.log("action", "[PClasses] Player " .. pname .. " becomes a warrior")
|
minetest.log("action", "[PClasses] Player " .. pname .. " becomes a warrior")
|
||||||
end,
|
end,
|
||||||
on_unassigned = function(pname)
|
on_unassigned = function(pname)
|
||||||
sprint.set_default_maxstamina(pname)
|
sprint.decrease_maxstamina(pname, 10)
|
||||||
end,
|
end,
|
||||||
on_update = function(pname)
|
on_update = function(pname)
|
||||||
local staminavalue = 20
|
-- No specific armor changes, no code
|
||||||
local manavalue = 100
|
|
||||||
sprint.set_maxstamina(pname, staminavalue)
|
|
||||||
mana.setmax(pname, manavalue)
|
|
||||||
end,
|
end,
|
||||||
switch_params = {
|
switch_params = {
|
||||||
color = {r = 06, g = 06, b = 30},
|
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.")
|
minetest.chat_send_player(pname, "You are now a wizard.")
|
||||||
end
|
end
|
||||||
-- Add specs here
|
-- Add specs here
|
||||||
|
mana.setmax(pname, mana.getmax(pname)+100)
|
||||||
|
sprint.increase_maxstamina(pname, 10)
|
||||||
minetest.log("action", "[PClasses] Player " .. pname .. " becomes a wizard")
|
minetest.log("action", "[PClasses] Player " .. pname .. " becomes a wizard")
|
||||||
end,
|
end,
|
||||||
on_unassigned = function(pname)
|
on_unassigned = function(pname)
|
||||||
mana.setmax(pname, mana.getmax(pname)-100)
|
mana.setmax(pname, mana.getmax(pname)-100)
|
||||||
|
sprint.decrease_maxstamina(pname, 10)
|
||||||
end,
|
end,
|
||||||
on_update = function(pname)
|
on_update = function(pname)
|
||||||
local staminavalue = 10
|
-- No armor, no update needed
|
||||||
local manavalue = 200
|
|
||||||
sprint.set_maxstamina(pname, staminavalue)
|
|
||||||
mana.setmax(pname, manavalue)
|
|
||||||
end,
|
end,
|
||||||
switch_params = {
|
switch_params = {
|
||||||
color = {r = 230, g = 230, b = 0},
|
color = {r = 230, g = 230, b = 0},
|
||||||
|
Loading…
Reference in New Issue
Block a user