From e9fe87098962c50f304f56dc673ad0f736858841 Mon Sep 17 00:00:00 2001 From: unknao Date: Tue, 24 Dec 2024 10:06:16 +0200 Subject: [PATCH] Fix design oversight on timerSetDelay. --- lua/entities/gmod_wire_expression2/core/timer.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lua/entities/gmod_wire_expression2/core/timer.lua b/lua/entities/gmod_wire_expression2/core/timer.lua index 831baa65..8d861a77 100644 --- a/lua/entities/gmod_wire_expression2/core/timer.lua +++ b/lua/entities/gmod_wire_expression2/core/timer.lua @@ -58,7 +58,7 @@ local luaTimers = { delay = 1, repetitions = 1 } - } + } */ } @@ -244,8 +244,18 @@ e2function void timerSetDelay(string name, number delay) end local entIndex = self.entity:EntIndex() + local internalName = luaTimerGetInternalName(entIndex, name) luaTimers[entIndex][name].delay = delay - timer.Adjust(luaTimerGetInternalName(entIndex, name), delay, 0) + + if luaTimers[entIndex][name].repetitions > 0 then + local repsLeft = timer.RepsLeft(internalName) + if repsLeft == 0 then return end + + luaTimers[entIndex][name].repetitions = repsLeft + timer.Adjust(internalName, delay, repsLeft) + return + end + timer.Adjust(internalName, delay, 0) end e2function number timerSetReps(string name, number repetitions)