noita_entangled_worlds/quant.ew/files/resource/append/action_fix.lua

46 lines
No EOL
1.2 KiB
Lua

-- loop backwards through perk_list so we can remove entries
for i=#actions,1,-1 do
local action = actions[i]
local func = action.action
action.action = function(...)
if reflecting then
func(...)
return
end
local oldSetRandomSeed = SetRandomSeed
local shooter = EntityGetRootEntity(GetUpdatedEntityID())
local x, y = EntityGetTransform(GetUpdatedEntityID())
local seed = math.floor(x * y + GameGetFrameNum())
if EntityHasTag(shooter, "ew_client") then
seed = tonumber(GlobalsGetValue("ew_action_rng_"..EntityGetName(shooter), "0")) or 0
else
if GlobalsGetValue("ew_player_action_rng", "0") ~= "0" then
seed = tonumber(GlobalsGetValue("ew_player_action_rng", "0"))
else
GlobalsSetValue("ew_player_action_rng", tostring(seed))
end
end
SetRandomSeed = function()
oldSetRandomSeed(seed, seed)
end
func(...)
SetRandomSeed = oldSetRandomSeed
end
end
local orig = GetUpdatedEntityID
function GetUpdatedEntityID()
local ent = EntityGetRootEntity(orig())
return ent
end