-- You've seen this one in the trailer (if you've seen the trailer). spawntimer = 1 bigshots = {} spinners = {} spinnersroll = true dogs = {} dogsroll = true wheels = {} faster = 1.01 linez = {} wheelsroll = true spinnersgo = 0 spinnersout = 100 mult = 0.5 place = 22.666 county = 0 bulletfrick = 0.4 mult = 2 yOffset = 100 xOffset = 0 Encounter.SetVar("wavetimer",65) local numbullets = 20 function OnHit(bullet) Player.Hurt(1, 0.01) end for i=1,numbullets do local spinner = CreateProjectile('ink', 0 , 50) spinner.SetVar('timer', 0) spinner.SetVar('offset', math.pi * 2 * i / (numbullets)) spinner.SetVar('negmult', mult) spinner.SetVar('lerp', 0) spinner.SetVar('velx',-1) spinner.SetVar('placer',place) table.insert(spinners, spinner) end function OnHit(bullet) Player.Hurt(1, 0.01) end function Update() place = 22.666 spawntimer = spawntimer + 1 if(spawntimer % 30 == 0 and spawntimer < 200) then x = math.random(4) if x == 1 then xOffset = 230 yOffset = 64 elseif x == 2 then xOffset = -210 yOffset = 64 elseif x == 3 then xOffset = 230 yOffset = -44 else xOffset = -210 yOffset = -44 end local numbullets = 5 for i=1,numbullets+1 do local bigshot = CreateProjectile('money', xOffset + math.random(20), yOffset + math.random(20)) bigshot.SetVar('speed', 4) bigshot.SetVar('timer', 0) bigshot.SetVar('xspeed', 0) bigshot.SetVar('yspeed', 0) bigshot.SetVar('angle', (i*35)-220) if(i>3) then bigshot.SetVar('anglefrick',1*mult) else bigshot.SetVar('anglefrick',-1*mult) end table.insert(bigshots, bigshot) end elseif(spawntimer%1 == 0 and spawntimer > 200 and spawntimer < 300)then spinnersout = spinnersout - 0.3 elseif(spawntimer % 30 == 0 and spawntimer > 300 and spawntimer < 500) then x = math.random(4) if x == 1 then xOffset = 230 yOffset = 64 elseif x == 2 then xOffset = -210 yOffset = 64 elseif x == 3 then xOffset = 230 yOffset = -44 else xOffset = -210 yOffset = -44 end local numbullets = 5 for i=1,numbullets+1 do local bigshot = CreateProjectile('money', xOffset + math.random(20), yOffset + math.random(20)) bigshot.SetVar('speed', 4) bigshot.SetVar('timer', 0) bigshot.SetVar('xspeed', 0) bigshot.SetVar('yspeed', 0) bigshot.SetVar('angle', (i*35)-220) if(i>3) then bigshot.SetVar('anglefrick',1*mult) else bigshot.SetVar('anglefrick',-1*mult) end table.insert(bigshots, bigshot) end elseif(spawntimer%1 == 0 and spawntimer > 500 and spawntimer < 600)then spinnersout = spinnersout - 0.225 elseif(spawntimer%1 == 0 and spawntimer > 623 and spawntimer < 625)then bigshots = {} elseif(spawntimer%35 == 0 and spawntimer > 600 and spawntimer < 800)then x = math.random(4) if x == 1 then xOffset = 230 yOffset = 64 elseif x == 2 then xOffset = -210 yOffset = 64 elseif x == 3 then xOffset = 230 yOffset = -44 else xOffset = -210 yOffset = -44 end local numbullets = 5 for i=1,numbullets+1 do local bigshot = CreateProjectile('money', xOffset + math.random(20), yOffset + math.random(20)) bigshot.SetVar('speed', 4) bigshot.SetVar('timer', 0) bigshot.SetVar('xspeed', 0) bigshot.SetVar('yspeed', 0) bigshot.SetVar('angle', (i*35)-220) if(i>3) then bigshot.SetVar('anglefrick',1*mult) else bigshot.SetVar('anglefrick',-1*mult) end table.insert(bigshots, bigshot) end elseif(spawntimer % 50 == 0 and spawntimer > 800 and spawntimer < 1800) then faster = faster + 0.01 corner = math.random(4) xHolder = 0 yHolder = 0 if corner == 1 then -- topright xOffset = 80 yOffset = 104 yPlacer = -9.4 xPlacer = 0 elseif corner == 2 then -- topleft xOffset = 120 yOffset = 64 yPlacer = 0 xPlacer = -9.4 elseif corner == 3 then -- bottomleft xOffset = -120 yOffset = -64 yPlacer = 0 xPlacer = 9.4 else --bottomright xOffset = -80 yOffset = -104 yPlacer = 9.4 xPlacer = 0 end numbullets = 8 for i=1, numbullets do line = CreateProjectile('ink', xOffset + (yHolder + yPlacer), yOffset + (xHolder + xPlacer)) xHolder = xHolder + xPlacer yHolder = yHolder + yPlacer line.SetVar('velx',xPlacer) line.SetVar('vely',yPlacer) table.insert(linez,line) end elseif(spawntimer%1 == 0 and spawntimer >1900 and spawntimer < 1902)then faster = 444 elseif(spawntimer%1 == 0 and spawntimer > 1908 and spawntimer < 1910)then linez = {} elseif(spawntimer % 50 == 0 and spawntimer > 1910 and spawntimer < 2240)then DogRY = 65- math.random(30) DogR = CreateProjectile('ink', Arena.width/2+200, DogRY) --Right DogLY = DogRY DogL = CreateProjectile('ink', Arena.width/-2-200, DogLY) --left DogR.SetVar('velx',-3) DogL.SetVar('velx',3) DogR.SetVar('vely',0) DogL.SetVar('vely',0) table.insert(dogs, DogR) table.insert(dogs, DogL) local numbullets = 2 for i=1, numbullets+1 do local posxR = Arena.width/2+200 local posyR = DogRY - 40 local posxL = Arena.width/-2-200 local posyL = DogLY - 40 DogRY = DogRY - 40 DogLY = DogLY - 40 local DogR = CreateProjectile('ink', posxR, posyR) --right local DogL = CreateProjectile('ink', posxL, posyL) ---left DogR.SetVar('velx',-3) DogL.SetVar('velx',3) DogR.SetVar('vely',0) DogL.SetVar('vely',0) table.insert(dogs, DogR) table.insert(dogs, DogL) end elseif(spawntimer % 1 == 0 and 2280 < spawntimer and 2340 > spawntimer)then Arena.resize(Arena.width + 8, Arena.height + 2) elseif(spawntimer % 1 == 0 and 2340 < spawntimer and 2342 > spawntimer)then Arena.resize(620,250) spinnersgo = 0.04 elseif(spawntimer% 170 == 0 and 2400 < spawntimer)then spinners = {} dogs = {} local numbullets = 12 for i=1,numbullets do local wheelL = CreateProjectile('ink', -240 , - 64) local wheelR = CreateProjectile('ink', - -240 , - 64) wheelL.SetVar('timerw', 0) wheelL.SetVar('offsetw', math.pi * 2 * i / (numbullets/3)) wheelL.SetVar('negmult', mult) wheelL.SetVar('lerpw', 0) wheelL.SetVar('velxw',1) wheelL.SetVar('placer',place) wheelR.SetVar('timerw', 0) wheelR.SetVar('offsetw', math.pi * 2 * i / (numbullets/3)) wheelR.SetVar('negmult', mult) wheelR.SetVar('lerpw', 0) wheelR.SetVar('velxw',-1) wheelR.SetVar('placer',place) county = county + 1 if county == 4 then place = place + 22.666 county = 0 end table.insert(wheels, wheelR) table.insert(wheels, wheelL) end end for i=1,#spinners do local bullet = spinners[i] local placer = bullet.GetVar('placer') local timer = bullet.GetVar('timer') local offset = bullet.GetVar('offset') local lerp = bullet.GetVar('lerp') local velx = bullet.GetVar('velx') local posx = ((lerp * 3+1)*spinnersout)*math.sin(-velx * timer*8.8 + offset) local posy = ((lerp * 3+1)*spinnersout)*math.cos(-velx * timer*8.8 + offset) bullet.MoveTo(posx, posy) lerp = lerp + spinnersgo bullet.SetVar('lerp', lerp) bullet.SetVar('timer', timer + 1/100) end for i=1,#bigshots do -- set vurbles local bullet = bigshots[i] if bullet.isactive == true then local timer = bullet.GetVar('timer') local speed = bullet.GetVar('speed') local angle = bullet.GetVar('angle') local xspeed = bullet.GetVar('xspeed') local yspeed = bullet.GetVar('yspeed') local anglefrick = bullet.GetVar('anglefrick') local xdifference = Player.x - bullet.x local ydifference = Player.y - bullet.y local length = math.abs(math.sqrt(xdifference^2 + ydifference^2)) -- change the trajectory for the next frame so the bullet curves if(timer<30)then xspeed = math.cos(angle*math.pi / 180)*speed yspeed = math.sin(angle*math.pi / 180)*speed bullet.SetVar('angle', angle+anglefrick) bullet.SetVar('speed', speed*bulletfrick) elseif(timer%30 == 0 and timer < 60) then bullet.SetVar('xspeed', (xdifference/length)*4) bullet.SetVar('yspeed', (ydifference/length)*4) end timer = timer + 1 bullet.SetVar('timer', timer) bullet.Move(xspeed*1.5, yspeed*1.5) if(bullet.x > 500)then bullet.Remove() elseif(bullet.x < -500) then bullet.Remove() elseif(bullet.y > 500)then bullet.Remove() elseif(bullet.y < -500)then bullet.Remove() end end end for i=1,#dogs do local dog = dogs[i] local velx = dog.GetVar('velx') local vely = dog.GetVar('vely') local newposx = dog.x + velx * 1.2 local newposy = dog.y + vely if newposx == 0 then vely = 10 velx = 0 end vely = vely dog.MoveTo(newposx, newposy) dog.SetVar('vely', vely) end for i=1,#linez do local Line = linez[i] if Line.isactive == true then local velx = Line.GetVar('velx') local vely = Line.GetVar('vely') local newposx = Line.x + velx / 3.5 * faster local newposy = Line.y + vely / 3.5 * faster Line.MoveTo(newposx,newposy) if(Line.x > 500)then Line.Remove() elseif(Line.x < -500) then Line.Remove() elseif(Line.y > 500)then Line.Remove() elseif(Line.y < -500)then Line.Remove() end end end for i=1,#wheels do local Wheel = wheels[i] if Wheel.isactive == true then local placer = Wheel.GetVar('placer') local timerw = Wheel.GetVar('timerw') local offsetw = Wheel.GetVar('offsetw') local lerpw = Wheel.GetVar('lerpw') local velxw = Wheel.GetVar('velxw') local posxw = (placer)*math.sin(-velxw * timerw*3.8 + offsetw) - 380 * velxw + (lerpw) * velxw local posyw = (placer)*math.cos(-velxw * timerw*3.8 + offsetw) - 64 * velxw Wheel.MoveTo(posxw, posyw) lerpw = lerpw + 1 Wheel.SetVar('lerpw', lerpw) Wheel.SetVar('timerw', timerw + 1/100) if timerw > 7.2 then Wheel.Remove() end end end end