noita_entangled_worlds/quant.ew/files/system/perk_patches/init.lua

39 lines
No EOL
1.5 KiB
Lua

local ctx = dofile_once("mods/quant.ew/files/core/ctx.lua")
local net = dofile_once("mods/quant.ew/files/core/net.lua")
local np = require("noitapatcher")
local rpc = net.new_rpc_namespace()
local module = {}
ModLuaFileAppend("data/scripts/perks/perk_list.lua", "mods/quant.ew/files/system/perk_patches/append/perks_common.lua")
if ctx.proxy_opt.game_mode == "shared_health" then
print("Loading extra perk patches for shared health mode")
ModLuaFileAppend("data/scripts/perks/perk_list.lua", "mods/quant.ew/files/system/perk_patches/append/perks_shared.lua")
else
print("Loading extra perk patches for local health mode")
ModLuaFileAppend("data/scripts/perks/perk_list.lua", "mods/quant.ew/files/system/perk_patches/append/perks_local.lua")
end
rpc.opts_reliable()
rpc.opts_everywhere()
function rpc.modify_max_hp(percent_amount, do_heal)
if ctx.is_host then
local player_count = tonumber(GlobalsGetValue("ew_player_count", "1"))
local health = ctx.cap.health
local max_hp = health.max_health()
health.set_max_health(max_hp + max_hp / player_count * (percent_amount-1))
if do_heal then
local hp = health.health()
health.set_health(hp + max_hp / player_count * (percent_amount-1))
end
if health.health() > health.max_health() then
health.set_health(health.max_health())
end
end
end
np.CrossCallAdd("ew_perks_modify_max_hp", rpc.modify_max_hp)
return module