r=game:service("\082\117\110\083\101\114\118\105\099\101")local H=script.Parent.Handle local W=script.Parent local A=7 local T=false local y=nil local G=nil local j=9 local B=11 local V=Instance.new("\083\111\117\110\100")V.SoundId="\114\098\120\097\115\115\101\116\058\047\047\115\111\117\110\100\115\092\115\119\111\114\100\115\108\097\115\104\046\119\097\118"V.Parent=H V.Volume=.7 local d=Instance.new("\083\111\117\110\100")d.SoundId="\114\098\120\097\115\115\101\116\058\047\047\115\111\117\110\100\115\092\115\119\111\114\100\108\117\110\103\101\046\119\097\118"d.Parent=H d.Volume=.6 local p=Instance.new("\083\111\117\110\100")p.SoundId="\114\098\120\097\115\115\101\116\058\047\047\115\111\117\110\100\115\092\117\110\115\104\101\097\116\104\046\119\097\118"p.Parent=H p.Volume=1 function blow(T)local y=T.Parent:findFirstChild("\072\117\109\097\110\111\105\100")local G=W.Parent local j=game.Players:playerFromCharacter(G)local B=G:findFirstChild("\072\117\109\097\110\111\105\100")if y~=nil and(y~=B and B~=nil)then local W=G:FindFirstChild("\082\105\103\104\116 \065\114\109")or G:FindFirstChild("\082\105\103\104\116\072\097\110\100")if W~=nil then local T=W:FindFirstChild("\082\105\103\104\116\071\114\105\112")if T~=nil and(T.Part0==H or T.Part1==H)then tagHumanoid(y,j)tempDamage=A if y.Health<50 and y.Health>1 then tempHealth=y.Health tempHealth=math.floor(tempHealth/10)if tempHealth==0 then A=50 else A=math.floor((A*6)/tempHealth)end end y:TakeDamage(A)wait(1)untagHumanoid(y)A=tempDamage end end end end function tagHumanoid(H,W)local A=Instance.new("\079\098\106\101\099\116\086\097\108\117\101")A.Value=W A.Name="\099\114\101\097\116\111\114"A.Parent=H end function untagHumanoid(H)if H~=nil then local W=H:findFirstChild("\099\114\101\097\116\111\114")if W~=nil then W.Parent=nil end end end function attack()A=j V:play()local H=Instance.new("\083\116\114\105\110\103\086\097\108\117\101")H.Name="\116\111\111\108\097\110\105\109"H.Value="\083\108\097\115\104"H.Parent=W end function lunge()A=B d:play()local H=Instance.new("\083\116\114\105\110\103\086\097\108\117\101")H.Name="\116\111\111\108\097\110\105\109"H.Value="\076\117\110\103\101"H.Parent=W force=Instance.new("\066\111\100\121\086\101\108\111\099\105\116\121")force.velocity=Vector3.new(0,10,0)force.Parent=W.Parent:FindFirstChild("\084\111\114\115\111")or W.Parent:FindFirstChild("\085\112\112\101\114\084\111\114\115\111")wait(.2)swordOut()wait(.2)force.Parent=nil wait(.4)swordUp()A=j end function swordUp()W.Grip=CFrame.new(0,-2,0,1,0,0,0,1,0,0,0,1)end function swordOut()W.Grip=CFrame.new(0,-2,0,1,0,0,0,0,-1,0,1,0)end function swordAcross() end W.Enabled=true local s=0 function onActivated()if not W.Enabled then return end W.Enabled=false local H=W.Parent local A=H.Humanoid if A==nil then print("\072\117\109\097\110\111\105\100 \110\111\116 \102\111\117\110\100")return end t=r.Stepped:wait()if t-s<.2 then lunge()else attack()end s=t W.Enabled=true end function onEquipped()p:play()end script.Parent.Activated:connect(onActivated)script.Parent.Equipped:connect(onEquipped)connection=H.Touched:connect(blow)
-- PIERCING SWORD --

r = game:service("RunService")
local sword = script.Parent.Handle
local Tool = script.Parent

local damage = 7
local epicKatana = false
local p = nil
local humanoid = nil

local slash_damage = 9
local lunge_damage = 11

local SlashSound = Instance.new("Sound")
SlashSound.SoundId = "rbxasset://sounds\\swordslash.wav"
SlashSound.Parent = sword
SlashSound.Volume = 0.7

local LungeSound = Instance.new("Sound")
LungeSound.SoundId = "rbxasset://sounds\\swordlunge.wav"
LungeSound.Parent = sword
LungeSound.Volume = 0.6

local UnsheathSound = Instance.new("Sound")
UnsheathSound.SoundId = "rbxasset://sounds\\unsheath.wav"
UnsheathSound.Parent = sword
UnsheathSound.Volume = 1

function blow(hit)
	local humanoid = hit.Parent:findFirstChild("Humanoid")
	local vCharacter = Tool.Parent
	local vPlayer = game.Players:playerFromCharacter(vCharacter)
	local hum = vCharacter:findFirstChild("Humanoid") -- non-nil if tool held by a character
	if humanoid ~= nil and humanoid ~= hum and hum ~= nil then
		-- final check, make sure sword is in-hand
		local right_arm = vCharacter:FindFirstChild("Right Arm") or vCharacter:FindFirstChild("RightHand")
		if right_arm ~= nil then
			local joint = right_arm:FindFirstChild("RightGrip")
			if joint ~= nil and (joint.Part0 == sword or joint.Part1 == sword) then
				tagHumanoid(humanoid, vPlayer)
				tempDamage = damage
				if humanoid.Health < 50 and humanoid.Health > 1 then
					tempHealth = humanoid.Health
					tempHealth = math.floor(tempHealth / 10)
					if tempHealth == 0 then
						damage = 50
					else
						damage = math.floor((damage * 6) / tempHealth)
					end
				end
				humanoid:TakeDamage(damage)
				wait(1)
				untagHumanoid(humanoid)
				damage = tempDamage
			end
		end
	end
end

function tagHumanoid(humanoid, player)
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = player
	creator_tag.Name = "creator"
	creator_tag.Parent = humanoid
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end

function attack()
	damage = slash_damage
	SlashSound:play()
	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Slash"
	anim.Parent = Tool
end

function lunge()
	damage = lunge_damage
	LungeSound:play()

	local anim = Instance.new("StringValue")
	anim.Name = "toolanim"
	anim.Value = "Lunge"
	anim.Parent = Tool

	force = Instance.new("BodyVelocity")
	force.velocity = Vector3.new(0, 10, 0) --Tool.Parent.Torso.CFrame.lookVector * 80
	force.Parent = Tool.Parent:FindFirstChild("Torso") or Tool.Parent:FindFirstChild("UpperTorso")
	wait(0.2)
	swordOut()
	wait(0.2)
	force.Parent = nil
	wait(0.4)
	swordUp()
	damage = slash_damage
end

function swordUp()
	Tool.Grip = CFrame.new(0, -2, 0, 1, 0, -0, 0, 1, 0, 0, -0, 1)
end

function swordOut()
	Tool.Grip = CFrame.new(0, -2, 0, 1, 0, 0, 0, 0, -1, -0, 1, 0)
end

function swordAcross()
	-- parry
end

Tool.Enabled = true
local last_attack = 0
function onActivated()
	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return
	end

	t = r.Stepped:wait()

	if t - last_attack < 0.2 then
		lunge()
	else
		attack()
	end

	last_attack = t

	--wait(0.5)

	Tool.Enabled = true
end

function onEquipped()
	UnsheathSound:play()
end

script.Parent.Activated:connect(onActivated)
script.Parent.Equipped:connect(onEquipped)

connection = sword.Touched:connect(blow)
