ctf_bandages: Add percentage-based healing (#609)
Remove HP hardcoding; heal up to a certain percentage of player's `hp_max` property.
This commit is contained in:
parent
6238fb2540
commit
7c3d35bd03
1 changed files with 7 additions and 5 deletions
|
@ -1,9 +1,10 @@
|
||||||
--Inspired from Andrey's bandages mod
|
--Inspired from Andrey's bandages mod
|
||||||
|
|
||||||
local healing_limit = 15
|
ctf_bandages = {}
|
||||||
|
ctf_bandages.heal_percent = 0.75 --Percentage of total HP to be healed
|
||||||
|
|
||||||
minetest.register_craftitem("ctf_bandages:bandage", {
|
minetest.register_craftitem("ctf_bandages:bandage", {
|
||||||
description = "Bandage\n\nHeals teammates for 3-4 HP until HP is equal to "..healing_limit,
|
description = "Bandage\n\nHeals teammates for 3-4 HP until HP is equal to 75% of the total HP",
|
||||||
inventory_image = "ctf_bandages_bandage.png",
|
inventory_image = "ctf_bandages_bandage.png",
|
||||||
on_use = function(itemstack, player, pointed_thing)
|
on_use = function(itemstack, player, pointed_thing)
|
||||||
if pointed_thing.type ~= "object" then
|
if pointed_thing.type ~= "object" then
|
||||||
|
@ -17,10 +18,11 @@ minetest.register_craftitem("ctf_bandages:bandage", {
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
if ctf.player(pname).team == ctf.player(name).team then
|
if ctf.player(pname).team == ctf.player(name).team then
|
||||||
local hp = object:get_hp()
|
local hp = object:get_hp()
|
||||||
if hp > 0 and hp < healing_limit then
|
local limit = ctf_bandages.heal_percent * object:get_properties().hp_max
|
||||||
|
if hp > 0 and hp < limit then
|
||||||
hp = hp + math.random(3,4)
|
hp = hp + math.random(3,4)
|
||||||
if hp > healing_limit then
|
if hp > limit then
|
||||||
hp = healing_limit
|
hp = limit
|
||||||
end
|
end
|
||||||
object:set_hp(hp)
|
object:set_hp(hp)
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
|
|
Loading…
Reference in a new issue