Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TweenS = game:GetService("TweenService")
- anim = script:WaitForChild("Animation")
- rad = math.rad(90)
- multiplier = 1.5
- Tween_Time = 0.3
- Destroy_Time = 2.4
- Info2_Time = 0.12
- StunTime = 1.5
- max = 17000
- function Disconnect(con)
- if con ~= nil then
- con:Disconnect()
- con = nil
- end
- end
- function CameraShake(root)
- for i,v in pairs(game.Workspace:GetChildren()) do
- if v:FindFirstChild("HumanoidRootPart") then
- if (v.PrimaryPart.Position - root.Position).Magnitude < 200 then
- if v:FindFirstChild("Humanoid") then
- if game.Players:FindFirstChild(v.Name) then
- game.ReplicatedStorage.Event.PassEvent:FireClient(
- game.Players:FindFirstChild(v.Name),
- 'Shake',
- {
- ['Hum'] = v.Humanoid,
- ['Times'] = 10,
- ['Speed'] = 0.1,
- ['Multiple'] = 6,
- }
- )
- end
- end
- end
- end
- end
- end
- info = TweenInfo.new(Tween_Time/1.3,Enum.EasingStyle.Quint,Enum.EasingDirection.In,0,true,0)
- Color_Mod = require(game.ServerScriptService.ModuleScripts.ColorScripts.Coloring)
- Stun_Mod = require(game.ServerScriptService.ModuleScripts.Stuns.ChangingValues)
- Damage_Mod = require(game.ServerScriptService.ModuleScripts.Moves.Damage)
- local module = {}
- function module:Attack(char)
- -- // GETTING THE RING PART
- local ring = game.ReplicatedStorage.MoveParts.CartoonyMoveParts.BigRing:Clone()
- ring.CFrame = char.PrimaryPart.CFrame
- ring.Anchored = true
- -- // VARIABLES
- local Prev_Ring_CFrame = ring.CFrame
- local root = char.PrimaryPart
- local pos = root.CFrame
- local size = Vector3.new(ring.Size.X * multiplier,ring.Size.Y * multiplier*1.5,ring.Size.Z * multiplier)
- -- // SETTING CONNECTIONS VARIABLES THAT IM GOING TO DISCONNECT
- local connection = nil
- local connection2 = nil
- local connection3 = nil
- -- // TWEENING
- TweenS:Create(ring,TweenInfo.new(Tween_Time,0,0),{Size = size}):Play()
- local rotate = TweenS:Create(ring,info,{CFrame = ring.CFrame * CFrame.Angles(rad,rad,rad)})
- rotate:Play()
- -- // PLAYING THE ANIMATION
- local track = nil
- if char:FindFirstChild(char.Name) then
- local hum = nil
- for i,v in pairs(char:FindFirstChild(char.Name):GetChildren()) do
- if v:IsA("Humanoid") then
- hum = v
- end
- end
- if hum then
- local track = hum:LoadAnimation(anim)
- track:Play()
- delay(1.3,function()
- track:Stop()
- end)
- end
- end
- -- // DOING ALL THE TWEENING
- local function TweenComplete()
- local move = TweenS:Create(ring,TweenInfo.new(Tween_Time/2,0,0),{CFrame = root.CFrame * CFrame.new(0,0,-5) * CFrame.Angles(math.rad(90),0,0)})
- move:Play()
- local function Tween2Complete()
- -- // GETTING PARTS FOR BLAST EFFECT
- local blast = game.ReplicatedStorage.MoveParts.Blast:Clone()
- local outside = blast.OutSide
- local inside = outside.Inside
- local Org_Outside_Size = outside.Size
- local Org_Inside_Size = inside.Size
- -- // WELDING THE 2 MAIN PARTS TOGETHER
- local weld = Instance.new("Weld")
- weld.Part0 = outside
- weld.Part1 = inside
- -- // PROPERTIES FOR THE PARTS
- if game.Players:FindFirstChild(char.Name) then
- Color_Mod:color(game.Players:FindFirstChild(char.Name),outside)
- end
- local charge_colors = {
- ColorSequenceKeypoint.new(0,outside.Color);
- ColorSequenceKeypoint.new(1,outside.Color)
- }
- outside.Transparency = 0.2
- outside.Anchored = true
- outside.CFrame = ring.CFrame
- outside.Charge.Enabled = true
- outside.Charge.Color = ColorSequence.new(charge_colors)
- -- // MAKING THE MOVE EFFECTS
- local function SizeTween1(which,New_Size,times,rev)
- local info2 = TweenInfo.new(Info2_Time,Enum.EasingStyle.Quint,Enum.EasingDirection.InOut,times,rev,0)
- TweenS:Create(which,info2,{Size = which.Size * New_Size}):Play()
- end
- -- // SMALL TWEENING TO SMALL AND A BIT BIGGER
- SizeTween1(outside,outside.Size * 1.2,3,true)
- SizeTween1(inside,inside.Size * 1.2,3,true)
- delay(Info2_Time * 3,function()
- -- // TWEENING TO SIZE OF CIRCLE
- -- SizeTween1(outside,outside.Size * 1.7,0,false)
- -- SizeTween1(inside,inside.Size * 1.7,0,false)
- delay(Info2_Time,function()
- -- // TWEENING FUNCTIONS
- local function SizeTween2(which,Which_Size,Which_Size_2)
- local Tween_Time = 0.05
- -- // TWEENING TO SKINNY
- TweenS:Create(which,TweenInfo.new(Tween_Time,0,0),{Size = Which_Size}):Play()
- TweenS:Create(which,TweenInfo.new(Tween_Time,0,0),{Position = ring.CFrame * Vector3.new(0,-150,0) }):Play()
- delay(Tween_Time,function()
- -- // MAKING IT THICKER
- delay(0.05,function()
- -- // TWEENING IT EVEN THICKER
- SizeTween1(outside,Org_Outside_Size,0,false)
- SizeTween1(inside,Org_Inside_Size,0,false)
- delay(Info2_Time,function()
- TweenS:Create(which,TweenInfo.new(0.03,0,0),{Position = ring.CFrame * Vector3.new(0,-150,0) }):Play()
- TweenS:Create(which,TweenInfo.new(0.03,0,0),{Size = Vector3.new(Which_Size_2.X*2,Which_Size_2.Y*1.5,Which_Size_2.Z*2)}):Play()
- delay(0.01,function()
- local info3 = TweenInfo.new(0.05,Enum.EasingStyle.Quint,Enum.EasingDirection.InOut,0,true,0)
- TweenS:Create(which,info,{Size = which.Size / 1.1 }):Play()
- end)
- end)
- end)
- end)
- end
- local small = 12
- local bigger = 6.6
- -- // TWEENING THE CAMERA
- CameraShake(root)
- -- // CALLING THE FUNCTIONS FOR TWEENING
- SizeTween2(
- outside,
- Vector3.new(outside.Size.X / small,outside.Size.Y * 70,outside.Size.Z / small),
- Vector3.new(outside.Size.X * bigger,outside.Size.Y * 100,outside.Size.Z * bigger)
- )
- SizeTween2(
- inside,
- Vector3.new(inside.Size.X / small,inside.Size.Y * 80,inside.Size.Z / small),
- Vector3.new(inside.Size.X * bigger,inside.Size.Y * 120,inside.Size.Z * bigger)
- )
- local Already_Touched = {}
- local function OnTouched(hit)
- if hit:IsDescendantOf(char) then return end
- if Already_Touched[hit.Parent] then return end
- if not hit.Parent:FindFirstChild("Humanoid") then return end
- Already_Touched[hit.Parent] = true
- local bv = Instance.new("BodyVelocity")
- bv.MaxForce = Vector3.new(max,max,max)
- bv.Parent = hit.Parent.PrimaryPart
- game.Debris:AddItem(bv,0.3)
- Stun_Mod:stun({['Char'] = hit.Parent,['StunTime'] = StunTime})
- for i = 1,5 do
- if hit.Parent:FindFirstChild("Humanoid") then
- Damage_Mod:Damage(
- {
- ['Char'] = hit.Parent;
- ['Effect'] = true;
- ['Damage'] = 10;
- ['WhoSent'] = char;
- ['StunAnim'] = true;
- }
- )
- wait(0.5)
- end
- end
- end
- connection3 = outside.Touched:Connect(OnTouched)
- delay(4,function()
- local function Transparency(which)
- TweenS:Create(which,TweenInfo.new(0.3,0,0),{Transparency = 1}):Play()
- end
- Transparency(outside)
- Transparency(inside)
- Disconnect(connection3)
- end)
- end)
- end)
- -- // PARENTING
- weld.Parent = inside
- blast.Parent = ring
- -- // DELETING THE PART
- game.Debris:AddItem(blast,5)
- -- // DISCONNECTING THE TWEENING FUNCTIONS
- spawn(function()
- wait()
- Disconnect(connection)
- end)
- spawn(function()
- wait()
- Disconnect(connection2)
- end)
- end
- connection2 = move.Completed:Connect(Tween2Complete)
- end
- connection = rotate.Completed:Connect(TweenComplete)
- ring.Parent = workspace
- delay(Destroy_Time,function()
- local NewTween = TweenS:Create(ring,TweenInfo.new(0.3,0,0),{Transparency = 1})
- NewTween:Play()
- local con ; con = NewTween.Completed:Connect(function()
- game.Debris:AddItem(ring,0.1)
- Disconnect(con)
- end)
- end)
- end
- return module
Advertisement
Add Comment
Please, Sign In to add comment