From 7252e79d86e4fdeb55ea1a59c7e724989ee8d2af Mon Sep 17 00:00:00 2001 From: eno Date: Thu, 9 Jul 2026 19:39:13 +0200 Subject: [PATCH 1/8] Tyler. The. The Tyler. Added a "Hunt Mode" text that displays the amount of time that Tyler has left before his Destroyer form ends. --- lua/slashco/slasher/tyler.lua | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index f05b5dd2..cfb1e9b9 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -700,6 +700,25 @@ function SLASHER.InitHud(_, hud) hud:AddMeter("anger", 100, "", nil, true) hud:TieMeterInt("anger", "TylerAnger") + function hud.TitleCard.Label:PaintOver() + if hud.prevState ~= 3 then -- eno: Just checking if he's in any form other than Destroyer + draw.SimpleText("HIDE TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHideTime"), 1), "TVCD", 4, 18, red) + end + end + + hook.Add("SlashCo:DrawHUD", "SlashCo:SlasherHUD", function() + if GameData.LocalPlayer:Team() ~= TEAM_SLASHER then + hook.Remove("SlashCo:DrawHUD", "SlashCo:SlasherHUD") + return + end + + if hud.prevState == 3 and hud.prevState ~= 1 then -- eno: Basically checking if he's in Destroyer form and not in Creator form. + if GameData.LocalPlayer:GetNWInt("TylerHuntTime") then + draw.SimpleText("HUNT TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHuntTime"), 1), "TVCD", ScrW() / 2, 550, Color(255, 0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) + end + end + end) + hud.prevState = -1 hud.destroyEnabled = true hud.prevWater = -1 @@ -750,16 +769,6 @@ function SLASHER.InitHud(_, hud) hud.prevState = state end - if hud.prevState ~= 3 then -- eno: Just checking if he's in any form other than Destroyer. - if GameData.LocalPlayer:GetNWInt("TylerHideTime") then - draw.SimpleText("HIDE TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHideTime"), 1), "TVCD", ScrW() / 2, 550, Color(255, 0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) - end - elseif hud.prevState == 3 and hud.prevState ~= 1 then -- eno: Basically checking if he's in Destroyer form and not in Creator form. - if GameData.LocalPlayer:GetNWInt("TylerHuntTime") then - draw.SimpleText("HUNT TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHuntTime"), 1), "TVCD", ScrW() / 2, 550, Color(255, 0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) - end - end - local target = GameData.LocalPlayer:GetEyeTrace().Entity local class = IsValid(target) and target:GetClass() if IsValid(target) and target:IsPlayer() or (target.PingType == "ITEM" and class ~= "sc_beacon") From 91ffd6c382c91b6479cdf6037f003f5acfd12763 Mon Sep 17 00:00:00 2001 From: eno Date: Thu, 9 Jul 2026 19:40:21 +0200 Subject: [PATCH 2/8] Can't forget my grammar! --- lua/slashco/slasher/tyler.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index cfb1e9b9..69073ec9 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -701,7 +701,7 @@ function SLASHER.InitHud(_, hud) hud:TieMeterInt("anger", "TylerAnger") function hud.TitleCard.Label:PaintOver() - if hud.prevState ~= 3 then -- eno: Just checking if he's in any form other than Destroyer + if hud.prevState ~= 3 then -- eno: Just checking if he's in any form other than Destroyer. draw.SimpleText("HIDE TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHideTime"), 1), "TVCD", 4, 18, red) end end From a28279374ba9795f8969b9f865cbb9ed2230882b Mon Sep 17 00:00:00 2001 From: eno Date: Sat, 11 Jul 2026 15:55:52 +0200 Subject: [PATCH 3/8] Potentially Fix Tyler? --- lua/slashco/slasher/tyler.lua | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index 69073ec9..c9299d04 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -195,6 +195,7 @@ function SLASHER.OnTickBehaviour(slasher) slasher:SetBodygroup(0, 0) slasher.TimeAsTylerForm = 0 slasher:SetNWBool("CanKill", false) + slasher:SetNWBool("TylerIsDestroyer", false) slasher:SetImpervious(true) slasher.TimeAsTylerSpecter = (slasher.TimeAsTylerSpecter or 0) + FrameTime() final_perception = 6.0 @@ -435,6 +436,7 @@ function SLASHER.OnTickBehaviour(slasher) slasher:SetBodygroup(0, 1) slasher.TimeAsTylerForm = TimeAsTylerForm + FrameTime() slasher:SetNWBool("CanKill", true) + slasher:SetNWBool("TylerIsDestroyer", true) slasher:SetCanSeePlayers(true) final_perception = 2.0 @@ -689,6 +691,7 @@ local manifestTable = { } function SLASHER.InitHud(_, hud) + local state = GameData.LocalPlayer:GetNWInt("TylerState") hud:SetAvatarTable(avatarTable) hud:SetTitle("Tyler_creator") @@ -701,24 +704,9 @@ function SLASHER.InitHud(_, hud) hud:TieMeterInt("anger", "TylerAnger") function hud.TitleCard.Label:PaintOver() - if hud.prevState ~= 3 then -- eno: Just checking if he's in any form other than Destroyer. - draw.SimpleText("HIDE TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHideTime"), 1), "TVCD", 4, 18, red) - end + draw.SimpleText("HIDE TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHideTime"), 1), "TVCD", 4, 18, red) end - hook.Add("SlashCo:DrawHUD", "SlashCo:SlasherHUD", function() - if GameData.LocalPlayer:Team() ~= TEAM_SLASHER then - hook.Remove("SlashCo:DrawHUD", "SlashCo:SlasherHUD") - return - end - - if hud.prevState == 3 and hud.prevState ~= 1 then -- eno: Basically checking if he's in Destroyer form and not in Creator form. - if GameData.LocalPlayer:GetNWInt("TylerHuntTime") then - draw.SimpleText("HUNT TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHuntTime"), 1), "TVCD", ScrW() / 2, 550, Color(255, 0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) - end - end - end) - hud.prevState = -1 hud.destroyEnabled = true hud.prevWater = -1 @@ -769,6 +757,19 @@ function SLASHER.InitHud(_, hud) hud.prevState = state end + hook.Add("SlashCo:DrawHUD", "SlashCo:SlasherHUD", function() + if GameData.LocalPlayer:Team() ~= TEAM_SLASHER then + hook.Remove("SlashCo:DrawHUD", "SlashCo:SlasherHUD") + return + end + + if state == 3 then + if GameData.LocalPlayer:GetNWInt("TylerHuntTime") then + draw.SimpleText("HUNT TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHuntTime"), 1), "TVCD", ScrW() / 2, 550, Color(255, 0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) + end + end + end) + local target = GameData.LocalPlayer:GetEyeTrace().Entity local class = IsValid(target) and target:GetClass() if IsValid(target) and target:IsPlayer() or (target.PingType == "ITEM" and class ~= "sc_beacon") From e059eaf7dc264292a48f6e3db25b72567b72370e Mon Sep 17 00:00:00 2001 From: eno Date: Sat, 11 Jul 2026 15:58:17 +0200 Subject: [PATCH 4/8] Remove placeholders --- lua/slashco/slasher/tyler.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index c9299d04..8a87b7a6 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -195,7 +195,6 @@ function SLASHER.OnTickBehaviour(slasher) slasher:SetBodygroup(0, 0) slasher.TimeAsTylerForm = 0 slasher:SetNWBool("CanKill", false) - slasher:SetNWBool("TylerIsDestroyer", false) slasher:SetImpervious(true) slasher.TimeAsTylerSpecter = (slasher.TimeAsTylerSpecter or 0) + FrameTime() final_perception = 6.0 @@ -436,7 +435,6 @@ function SLASHER.OnTickBehaviour(slasher) slasher:SetBodygroup(0, 1) slasher.TimeAsTylerForm = TimeAsTylerForm + FrameTime() slasher:SetNWBool("CanKill", true) - slasher:SetNWBool("TylerIsDestroyer", true) slasher:SetCanSeePlayers(true) final_perception = 2.0 From c60d9487fe25120edb49e7944f13b74a8882a2a7 Mon Sep 17 00:00:00 2001 From: eno Date: Sat, 11 Jul 2026 16:22:51 +0200 Subject: [PATCH 5/8] Unnecessary line, remove --- lua/slashco/slasher/tyler.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index 8a87b7a6..3f175da4 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -689,7 +689,6 @@ local manifestTable = { } function SLASHER.InitHud(_, hud) - local state = GameData.LocalPlayer:GetNWInt("TylerState") hud:SetAvatarTable(avatarTable) hud:SetTitle("Tyler_creator") From 78ecd557ac5cc4caa22d6114313b850576b3565d Mon Sep 17 00:00:00 2001 From: eno Date: Tue, 14 Jul 2026 17:01:16 +0200 Subject: [PATCH 6/8] Use TYLER_DESTROYER instead of Magic (Wand) Numbers Tested a gazillion times, the hud should ACTUALLY be visible now, if not, you have my permission to castrate me. --- lua/slashco/slasher/tyler.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index 3f175da4..be19144d 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -760,7 +760,7 @@ function SLASHER.InitHud(_, hud) return end - if state == 3 then + if TYLER_DESTROYER then if GameData.LocalPlayer:GetNWInt("TylerHuntTime") then draw.SimpleText("HUNT TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHuntTime"), 1), "TVCD", ScrW() / 2, 550, Color(255, 0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) end From 1d70fde43b0039c8bc57875d892d5aa4e2751243 Mon Sep 17 00:00:00 2001 From: RaphaelIT7 <64648134+RaphaelIT7@users.noreply.github.com> Date: Tue, 14 Jul 2026 18:47:45 +0200 Subject: [PATCH 7/8] Small changes --- lua/slashco/slasher/tyler.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index be19144d..d6de2da1 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -707,6 +707,7 @@ function SLASHER.InitHud(_, hud) hud.prevState = -1 hud.destroyEnabled = true hud.prevWater = -1 + local HuntTimeColor = Color(255, 0, 0, 255) function hud.AlsoThink() local state = GameData.LocalPlayer:GetNWInt("TylerState") if state == 0 then @@ -760,9 +761,10 @@ function SLASHER.InitHud(_, hud) return end - if TYLER_DESTROYER then - if GameData.LocalPlayer:GetNWInt("TylerHuntTime") then - draw.SimpleText("HUNT TIME: " .. math.Round(GameData.LocalPlayer:GetNWInt("TylerHuntTime"), 1), "TVCD", ScrW() / 2, 550, Color(255, 0, 0, 255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) + if state == TYLER_DESTROYER then + local HuntTime = GameData.LocalPlayer:GetNWInt("TylerHuntTime") + if HuntTime > 0 then -- In Lua "if 0 then" is still true. + draw.SimpleText("HUNT TIME: " .. math.Round(HuntTime, 1), "TVCD", ScrW() / 2, 550, HuntTimeColor, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP) end end end) From 12df42046bff9df88d86b1ceff52f25ad2e6bd45 Mon Sep 17 00:00:00 2001 From: RaphaelIT7 <64648134+RaphaelIT7@users.noreply.github.com> Date: Tue, 14 Jul 2026 18:53:28 +0200 Subject: [PATCH 8/8] Last fixes from rebase --- lua/slashco/slasher/tyler.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lua/slashco/slasher/tyler.lua b/lua/slashco/slasher/tyler.lua index d6de2da1..106295dc 100644 --- a/lua/slashco/slasher/tyler.lua +++ b/lua/slashco/slasher/tyler.lua @@ -710,7 +710,7 @@ function SLASHER.InitHud(_, hud) local HuntTimeColor = Color(255, 0, 0, 255) function hud.AlsoThink() local state = GameData.LocalPlayer:GetNWInt("TylerState") - if state == 0 then + if state == TYLER_SPECTER then local isInWater = GameData.LocalPlayer:WaterLevel() > 1 if hud.prevWater ~= isInWater then if isInWater then @@ -722,10 +722,10 @@ function SLASHER.InitHud(_, hud) end if state ~= hud.prevState then - if state == 0 then + if state == TYLER_SPECTER then hud:SetControlVisible("R", true) hud:SetControlText("R", "manifest") - elseif state == 1 then + elseif state == TYLER_CREATOR then hud:SetControlVisible("R", true) hud:SetControlEnabled("R", false) hud:SetControlText("R", "(hiding)") @@ -734,7 +734,7 @@ function SLASHER.InitHud(_, hud) hud:SetControlVisible("R", false) end - if state <= 1 then + if state <= TYLER_CREATOR then hud:SetTitle("Tyler_creator") hud:SetAvatar("creator") else @@ -742,7 +742,7 @@ function SLASHER.InitHud(_, hud) hud:SetAvatar("destroyer") end - if state == 3 then + if state == TYLER_DESTROYER then hud:SetCrosshairEnabled(true) else hud:SetCrosshairAlpha(0)