Facebook
From Botched Mockingjay, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 299
  1. oblib = require "Blasters"
  2. Arena.Resize(360, 172)
  3.  
  4. waveStartTime = Time.time
  5. ourTime = Time.time
  6. timeMult = 1
  7.  
  8. NORMAL = 0
  9. THIN = 1
  10. LARGE = 2
  11.  
  12. PX = -42
  13. PY = -42
  14.  
  15. gbs = {}
  16. oneFrameBullets = {}
  17.  
  18. timer = 0
  19. inicioX = 0
  20. inicioY = 0
  21. finalX = 0
  22. finalY = 0
  23.  
  24. function Update()
  25.         timer = timer + 1
  26.         if timer%60 == 0 then
  27.                 inicioX = Player.absx
  28.                 inicioY = Player.absy
  29.                 finalX = Player.absx
  30.                 finalY = Player.absy
  31.                 local rotacion = math.random(359)
  32.                 if rotacion >= 0 and rotacion < 90 then
  33.                         local formula1 = 13.4164078649/90 * (rotacion)
  34.                         local formula2 = 13.4164078649 - formula1
  35.                         local spawn1 = 26.4575131106/90 * (rotacion)
  36.                         local spawn2 = 26.4575131106 - spawn1
  37.                         inicioX = inicioX + 700 - (spawn2*spawn2)
  38.                         inicioY = inicioY + 700 - (spawn1*spawn1)
  39.                         finalX = finalX + 180 - (formula2*formula2)
  40.                         finalY = finalY + 180 - (formula1*formula1)
  41.                 elseif rotacion >= 90 and rotacion < 180 then
  42.                         local formula1 = 13.4164078649/90 * (rotacion - 90)
  43.                         local formula2 = 13.4164078649 - formula1
  44.                         local spawn1 = 26.4575131106/90 * (rotacion - 90)
  45.                         local spawn2 = 26.4575131106 - spawn1
  46.                         inicioX = inicioX + 700 - (spawn1*spawn1)
  47.                         inicioY = inicioY - 700 + (spawn2*spawn2)
  48.                         finalX = finalX + 180 - (formula1*formula1)
  49.                         finalY = finalY - 180 + (formula2*formula2)
  50.                 elseif rotacion >= 180 and rotacion < 270 then
  51.                         local formula1 = 13.4164078649/90 * (rotacion - 180)
  52.                         local formula2 = 13.4164078649 - formula1
  53.                         local spawn1 = 26.4575131106/90 * (rotacion - 180)
  54.                         local spawn2 = 26.4575131106 - spawn1
  55.                         inicioX = inicioX - 700 + (spawn2*spawn2)
  56.                         inicioY = inicioY - 700 + (spawn1*spawn1)
  57.                         finalX = finalX - 180 + (formula2*formula2)
  58.                         finalY = finalY - 180 + (formula1*formula1)
  59.                 elseif rotacion >= 270 and rotacion < 360 then
  60.                         local formula1 = 13.4164078649/90 * (rotacion - 270)
  61.                         local formula2 = 13.4164078649 - formula1
  62.                         local spawn1 = 26.4575131106/90 * (rotacion - 270)
  63.                         local spawn2 = 26.4575131106 - spawn1
  64.                         inicioX = inicioX - 700 + (spawn1*spawn1)
  65.                         inicioY = inicioY + 700 - (spawn2*spawn2)
  66.                         finalX = finalX - 180 + (formula1*formula1)
  67.                         finalY = finalY + 180 - (formula2*formula2)
  68.                 end
  69.                 if finalX > 640 then
  70.                         local diferenciaX = finalX - 640
  71.                         finalX = finalX - diferenciaX
  72.                 elseif finalX < 0 then
  73.                         finalX = 0
  74.                 end
  75.                 if finalY > 480 then
  76.                         local diferenciaY = finalY - 480
  77.                         finalY = finalY - diferenciaY
  78.                 elseif finalY < 0 then
  79.                         finalY = 0
  80.                 end
  81.                 table.insert(gbs, oblib.GasterBlaster.new({ lifetime = 3, startX = inicioX, startY = inicioY, endX = finalX, endY = finalY, time = ourTime+0.2, rotation = rotacion, size = NORMAL, laserDelay = 0.75, laserLength = 0.55, s1 = false, s2 = false }))
  82.         end
  83.         ourTime = ourTime + (Time.dt * timeMult)
  84.         for i=#oneFrameBullets,1,-1 do
  85.                 oneFrameBullets[i].Remove()
  86.                 table.remove(oneFrameBullets,i)
  87.         end
  88.         for i=1,#gbs do
  89.                 gbs[i].Update()
  90.         end
  91. end
  92.  
  93. function OnHit(bullet)
  94.         if bullet.GetVar("canHit") then
  95.                 Player.Hurt(4, 0.01)
  96.         end