Advertisement
IHATEMICROWAVEOVEN

Outrage V2

Dec 14th, 2022 (edited)
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.79 KB | None | 0 0
  1. -- VISUAL SETTINGS
  2. local aoeColor = Color3.fromRGB(250, 80, 0)
  3. local aoeMaterial = "Snow"
  4.  
  5. local dash1Size = Vector3.new(4, 4, 7)
  6. local dash2Size = Vector3.new(7, 7, 10)
  7. local dashColor = Color3.fromRGB(160, 30, 0)
  8.  
  9. local aoeSpeed = 100
  10. local meleeSpeed = 65
  11. -- flat added bonuses
  12.  
  13. -- FUNCTIONS FOR SETUP
  14. local TweenService = game:GetService("TweenService")
  15. local RunService = game:GetService("RunService")
  16.  
  17. local function Buffer(Time)
  18. local save = tick() + Time
  19. repeat RunService.Heartbeat:Wait() until tick() >= save
  20. end
  21.  
  22. local function MakeAoE(root)
  23. local p = Instance.new("Part")
  24. p.Color, p.Material, p.Transparency, p.Size, p.Anchored, p.CanCollide, p.CFrame =
  25. aoeColor, aoeMaterial, 0.5, Vector3.new(40,40,40), true, false, root.CFrame
  26. p.Parent = workspace
  27. TweenService:Create(p, TweenInfo.new(3, Enum.EasingStyle.Linear), {Size = Vector3.new(7, 60, 7), Transparency = 1}):Play()
  28. coroutine.wrap(function()
  29. for i = 1,45 do
  30. p.CFrame = root.CFrame
  31. Buffer(1/15)
  32. end
  33. end)()
  34. end
  35.  
  36. local function ChangeSpeed(char, val, lvl, add)
  37. local speed = char.BaseSpeed
  38. if add then speed.Value = val else speed.Value += val end
  39. char.Humanoid.WalkSpeed = speed.Value * 0.0025 * (100 + lvl)
  40. end
  41.  
  42.  
  43. --[[ATTACK CODE]]--
  44. local function Use(...)
  45. -- Initialize variables
  46. local args = {...}
  47. local char = args[1].Character
  48. local torso = char.Torso
  49. local hum = char.Humanoid
  50. local speed = char.BaseSpeed
  51. local att0 = Instance.new("Attachment", torso)
  52. local DamageMod = require(game:GetService("ServerScriptService").Libraries.DamageService)
  53. local Stats = require(game:GetService("ServerScriptService").Stats)
  54. local lvl = Stats.GetStat(args[1], char.BaseStat.Value)
  55.  
  56. -- Visual aaaaaaaaaaaaefke
  57. local exp = Instance.new("Explosion")
  58. exp.BlastPressure, exp.BlastRadius, exp.ExplosionType, exp.Position =
  59. 0, 0, Enum.ExplosionType.NoCraters, torso.Position
  60. exp.Parent = workspace
  61. local light = Instance.new("PointLight")
  62. light.Color, light.Brightness, light.Range =
  63. Color3.fromRGB(200, 0, 0), 40, 10
  64. light.Parent = torso
  65.  
  66. local old = speed.Value
  67. local temp = math.min(40 + math.floor(speed.Value/15), speed.Value) -- This is the lowered speed (FIRSTSET)
  68. local foo = 0
  69. ChangeSpeed(char, temp, lvl, true)
  70.  
  71. -- Upon taking damage, deal 10 damage AoE (slightly smaller than PowderSnow)
  72. coroutine.wrap(function()
  73. local last = 0
  74. local prev = hum.Health
  75. local c = hum.HealthChanged:Connect(function(newHP)
  76. if newHP < prev then
  77. if tick()-last >= 0.1 then
  78. last = tick()
  79. if light then light.Range += 1 end
  80. MakeAoE(torso)
  81. print("vvv")
  82. DamageMod:RegisterRangeDamage(args[1], 25, 10)
  83. local bv = torso:FindFirstChild("LinearVelocity") or Instance.new("LinearVelocity", torso)
  84. bv.Attachment0, bv.MaxForce, bv.VectorVelocity =
  85. att0, math.huge, Vector3.new(0, -3, 0)
  86. Buffer(0.5)
  87. print("a")
  88. repeat Buffer(1/20) until tick() >= last+0.25
  89. print("babsid")
  90. bv:Destroy()
  91. end
  92. end
  93. prev = newHP
  94. end)
  95. Buffer(15.5)
  96. c:Disconnect()
  97. end)()
  98.  
  99. -- Actual attack section (performs aoe first AND last always)
  100. MakeAoE(torso)
  101. DamageMod:RegisterRangeDamage(args[1], 30, 30)
  102. ChangeSpeed(char, aoeSpeed, lvl)
  103. foo = 2
  104. Buffer(0.5)
  105. ChangeSpeed(char, -aoeSpeed, lvl)
  106. foo = 0
  107. Buffer(2)
  108.  
  109. for i = 1, 5 do
  110. if math.random(1,2) == 1 then
  111. -- Dash Attack
  112. coroutine.wrap(function()
  113.  
  114. end)()
  115. local exp = Instance.new("Explosion")
  116. exp.BlastPressure, exp.BlastRadius, exp.ExplosionType, exp.Position =
  117. 0, 0, Enum.ExplosionType.NoCraters, torso.Position
  118. exp.Parent = workspace
  119.  
  120. local dash = Instance.new("Part")
  121. dash.CanCollide, dash.Massless, dash.Color =
  122. false, true, dashColor
  123. dash.Transparency, dash.Material, dash.Size, dash.CFrame =
  124. 0.4, "Neon", dash1Size, torso.CFrame
  125. dash.Parent = workspace
  126. local weld2 = Instance.new("Weld")
  127. weld2.Part0, weld2.Part1 =
  128. torso, dash
  129. weld2.Parent = dash
  130.  
  131. local dash2 = Instance.new("Part")
  132. dash2.CanCollide, dash2.Massless, dash2.Color =
  133. false, true, dashColor
  134. dash2.Transparency, dash2.Material, dash2.Size, dash2.CFrame =
  135. 0.7, "Neon", dash2Size, torso.CFrame
  136. dash2.Parent = workspace
  137. local weld3 = Instance.new("Weld")
  138. weld3.Part0, weld3.Part1 =
  139. torso, dash2
  140. weld3.Parent = dash2
  141.  
  142. DamageMod:RegisterWeaponPart(args[1], {dash}, 20)
  143. ChangeSpeed(char, meleeSpeed, lvl)
  144. foo = 1
  145. Buffer(1.5)
  146. if dash then dash:Destroy() end
  147. if dash2 then dash2:Destroy() end
  148. ChangeSpeed(char, -meleeSpeed, lvl)
  149. foo = 0
  150. Buffer(0.5)
  151. else
  152. -- AoE Attack
  153. MakeAoE(torso)
  154. local exp = Instance.new("Explosion")
  155. exp.BlastPressure, exp.BlastRadius, exp.ExplosionType, exp.Position =
  156. 0, 0, Enum.ExplosionType.NoCraters, torso.Position
  157. exp.Parent = workspace
  158.  
  159. DamageMod:RegisterRangeDamage(args[1], 30, 30)
  160. ChangeSpeed(char, aoeSpeed, lvl)
  161. foo = 2
  162. Buffer(0.5)
  163. ChangeSpeed(char, -aoeSpeed, lvl)
  164. foo = 0
  165. Buffer(2)
  166. end
  167. end
  168.  
  169. local bv = Instance.new("LinearVelocity")
  170. bv.Attachment0, bv.MaxForce, bv.VectorVelocity =
  171. att0, math.huge, Vector3.new(0, -3, 0)
  172. bv.Parent = torso
  173. Buffer(0.5)
  174. for i = 1, 2 do
  175. MakeAoE(torso)
  176. coroutine.wrap(function()
  177. for i = 1, 3 do
  178. local exp = Instance.new("Explosion")
  179. exp.BlastPressure, exp.BlastRadius, exp.ExplosionType, exp.Position =
  180. 0, 0, Enum.ExplosionType.NoCraters, torso.Position + Vector3.new(math.random(-8, 8), math.random(0, 8), math.random(-8, 8))
  181. exp.Parent = workspace
  182. Buffer(1/3)
  183. end
  184. end)()
  185. DamageMod:RegisterRangeDamage(args[1], 30, 20)
  186. Buffer(0.2)
  187. end
  188. bv:Destroy()
  189.  
  190. if light then light:Destroy() end
  191. ChangeSpeed(char, old - (speed.Value - 50*foo - temp), lvl, true)
  192. end
  193.  
  194. return Use
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement