mff/mff_pclasses/hunter.lua

82 lines
3.4 KiB
Lua
Executable File

------------------
-- Hunter class --
------------------
--
-- 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, 20)
minetest.log("action", "[PClasses] Player " .. pname .. " become a hunter")
end,
on_unassigned = function(pname)
sprint.decrease_maxstamina(pname, 20)
if tmp[pname] then
sprint.decrease_maxstamina(pname, 10)
tmp[pname] = nil
end
end,
on_update = function(pname)
local reinforced = pclasses.api.util.does_wear_full_armor(pname, "reinforcedleather", true)
if reinforced then
if not tmp[pname] then
tmp[pname] = true
sprint.increase_maxstamina(pname, 10) -- 10 more
end
else
if tmp[pname] then
tmp[pname] = false
sprint.decrease_maxstamina(pname, 10)
end
end
end,
switch_params = {
color = {r = 30, g = 170, b = 00},
tile = "default_wood.png",
holo_item = "throwing:bow_minotaur_horn_improved"
},
informations = pclasses.api.textify("Being a hunter is mostly being tactical, or just kicking in and firing arrows like madness." ..
"Being a hunter, you're in the only class which member can use new and exclusive" ..
"ranged weapons, like spears, arbalests and bows. Your stamina is increased to" ..
"40, you're a sport person, able to sprint for a long time, which is found to be" ..
"useful when you hunt down animals and mobs who can't run faster than you walk.." ..
"and even more when you need to cowardly run away... anyway. The point is, being" ..
"a hunter is great, since you can access new and exclusive weapons, and leather" ..
"armors, crafted from leather. Obviously.. Those clothes are pretty strong, and" ..
"will protect you more than wooden pieces (at least the reinforced one), with the" ..
"satation consumption of wearing nothing. If you want to risk it and become a" ..
"hunter, you should look for a green pedestal with a bow so fancy over it that you" ..
"can already tell that we're gonna make you use loads of ores for it. (actually" ..
"you need to fight a super strong mob, but it's just details...)") .. "image[2.4,5.6;6,4;pclasses_showcase_hunter.png]"
})
minetest.register_on_leaveplayer(function(player)
tmp[player:get_player_name()] = false
end)
pclasses.api.reserve_item("hunter", "throwing:bow_minotaur_horn")
pclasses.api.reserve_item("hunter", "throwing:bow_minotaur_horn_loaded")
pclasses.api.reserve_item("hunter", "throwing:bow_minotaur_horn_improved")
pclasses.api.reserve_item("hunter", "throwing:bow_minotaur_horn_improved_loaded")
pclasses.api.reserve_item("hunter", "throwing:arrow_mithril")
pclasses.api.reserve_item("hunter", "throwing:arbalest_auto")
pclasses.api.reserve_item("hunter", "throwing:arbalest_auto_loaded")
pclasses.api.reserve_item("hunter", "spears:spear_stone")
pclasses.api.reserve_item("hunter", "spears:spear_steel")
pclasses.api.reserve_item("hunter", "spears:spear_obsidian")
pclasses.api.reserve_item("hunter", "spears:spear_diamond")
pclasses.api.reserve_item("hunter", "spears:spear_mithril")
for _, i in pairs({"helmet", "chestplate", "boots", "leggings"}) do
pclasses.api.reserve_item("hunter", "3d_armor:" .. i .. "_hardenedleather")
pclasses.api.reserve_item("hunter", "3d_armor:" .. i .. "_reinforcedleather")
end