Hi hello. it's me again, the dude that has the worst scripts on this entire website

So, with the help of a user named blowup999 (go check them out), i have fixed my battle script

However another problem arose.

--Variables

local parts = game.Workspace.Parts:GetChildren()
local Players = game:GetService("Players")
local Dummy = game.Workspace.Dummy
local DummyHumanoid = Dummy.Humanoid
local debounce = false
local player = Players.LocalPlayer
local Character = player.Character
local Humanoid = Character:WaitForChild("Humanoid")
local FadeInFrame = script.Parent.Parent.FadeInUI.FadeInFrame

--Battle Loop

for i, v in pairs(parts) do
	v.Touched:Connect(function(hit)
		if hit.Parent:FindFirstChild("Humanoid") then

			script.Parent.Parent.FadeInUI.Enabled = true
			
			FadeInFrame.BackgroundTransparency = 1
			
			for k = 1,100 do
				FadeInFrame.BackgroundTransparency -= 0.01
				wait(0.05)
				if FadeInFrame.BackgroundTransparency == 0 then
					break
				end
			end
			script.Parent.Parent.FadeInUI.Enabled = false
			
			Humanoid.WalkSpeed = 0
			Humanoid.JumpPower = 0
			script.Parent.Enabled = true
			Character:FindFirstChild("HumanoidRootPart").CFrame = game.Workspace.TpPart.CFrame + Vector3.new(0,1,0)

			if script.Parent.Enabled == true then
				if script.Parent.AtkSelector.Punch.MouseButton1Click then
					script.Parent.AtkSelector.Punch.MouseButton1Click:Connect(function()
						if not debounce then
							debounce = true
							DummyHumanoid.Health = DummyHumanoid.Health - 50
							
							local function typeText(text)
								for i = 1, #text do
									script.Parent.DialogueLabel.Text = string.sub(text, 1, i)
									wait()
								end
								wait(1.5)
								script.Parent.DialogueLabel.Text = ""
							end
					
							if DummyHumanoid.Health <= 0 then
								typeText("You won!")
								Humanoid.WalkSpeed = 16
								Humanoid.JumpPower = 40
								script.Parent.AtkSelector.Punch.Visible = false
								script.Parent.AtkSelector.Kick.Visible = false
								script.Parent.AtkSelector.Cancel.Visible = false
								script.Parent.Enabled = false
								DummyHumanoid.Health = 100
								debounce = false
								v:Destroy()
							else
								script.Parent.AtkSelector.Visible = false
								script.Parent.MagicSelector.Visible = false
								wait(1)					

								typeText("This is the core battle system")
								typeText("Isn't this cool???")					
								typeText("No??")
								typeText("Welp, I tried")
								Humanoid.Health = Humanoid.Health - 100			
								wait(1)
								script.Parent.AtkSelector.Visible = true
								script.Parent.MagicSelector.Visible = true
								debounce = false
							end
						end	
					end)			
				end		
			end	
		end
	end)
end

So, this is the entire script, i know its ugly and inefficient but hear me out on this one

So in this part

							if DummyHumanoid.Health <= 0 then
								typeText("You won!")
								Humanoid.WalkSpeed = 16
								Humanoid.JumpPower = 40
								script.Parent.AtkSelector.Punch.Visible = false
								script.Parent.AtkSelector.Kick.Visible = false
								script.Parent.AtkSelector.Cancel.Visible = false
								script.Parent.Enabled = false
								DummyHumanoid.Health = 100
								debounce = false
								v:Destroy()
							else
								script.Parent.AtkSelector.Visible = false
								script.Parent.MagicSelector.Visible = false
								wait(1)					

								typeText("This is the core battle system")
								typeText("Isn't this cool???")					
								typeText("No??")
								typeText("Welp, I tried")
								Humanoid.Health = Humanoid.Health - 100			
								wait(1)
								script.Parent.AtkSelector.Visible = true
								script.Parent.MagicSelector.Visible = true
								debounce = false

Something is missing here. If you can't guess what it is, im just gonna tell you.

I did not conclude the possibility that the player can die, so, even if the player dies, this will go on forever.

I thought adding an elseif statement after the first if was gonna work

Something along the lines of this

							if DummyHumanoid.Health <= 0 then
								typeText("You won!")
								Humanoid.WalkSpeed = 16
								Humanoid.JumpPower = 40
								script.Parent.AtkSelector.Punch.Visible = false
								script.Parent.AtkSelector.Kick.Visible = false
								script.Parent.AtkSelector.Cancel.Visible = false
								script.Parent.Enabled = false
								DummyHumanoid.Health = 100
								debounce = false
								v:Destroy()
							elseif Humanoid.Health <= 0 then
								typeText("Ded")
								Humanoid.WalkSpeed = 16
								Humanoid.JumpPower = 40
								script.Parent.AtkSelector.Punch.Visible = false
								script.Parent.AtkSelector.Kick.Visible = false
								script.Parent.AtkSelector.Cancel.Visible = false
								script.Parent.Enabled = false
								DummyHumanoid.Health = 100
								debounce = false
							else
								script.Parent.AtkSelector.Visible = false
								script.Parent.MagicSelector.Visible = false
								wait(1)					

								typeText("This is the core battle system")
								typeText("Isn't this cool???")					
								typeText("No??")
								typeText("Welp, I tried")
								Humanoid.Health = Humanoid.Health - 100			
								wait(1)
								script.Parent.AtkSelector.Visible = true
								script.Parent.MagicSelector.Visible = true
								debounce = false

Apparently, it doesn't, the battle UI stays visible after i die and the dummy does not get healed, nor the typeText() function runs.

I might be missing something obvious here, but i still need some help.

I'd appreciate any help you all can give. Thank you