Guest User

Unitale: Orange Mode (Final)

a guest
Jan 6th, 2016
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.04 KB | None | 0 0
  1. --An empty wave to serve as a skeleton
  2.  
  3. --Stopping against the border needs to hurt, so here a we make a hurtbox for the border.
  4. lborder = CreateProjectile('vborder', -Arena.width/2, 0)
  5. rborder = CreateProjectile('vborder', Arena.width/2, 0)
  6. tborder = CreateProjectile('hborder', 0, Arena.height/2)
  7. bborder = CreateProjectile('hborder', 0, -Arena.height/2)
  8. border = {lborder, rborder, tborder, bborder}   --I add them to a border table to make things prettier later on.
  9.  
  10. mask = CreateProjectile('orangeheart', 0, 0)    --Here we make the orange heart.
  11. mask.SetVar('ignore', true)
  12.  
  13. unmoved = true  --Initializing variables
  14. num = math.random(0, 7)
  15. xstart = 1.5*math.sin(math.pi*num/4)
  16. ystart = 1.5*math.cos(math.pi*num/4)
  17. lastx = 0
  18. lasty = 0
  19. buffer = 0
  20.  
  21. function Update()
  22.     if Player.isMoving then --This keeps track of if the player has moved at all
  23.         unmoved = false
  24.         buffer = 0  --I added a buffer for the controls
  25.         bufferx = Player.x - lastx
  26.         buffery = Player.y - lasty
  27.     end
  28.     if unmoved then
  29.         Player.MoveTo(Player.x + xstart, Player.y + ystart, false) --The initial direction of movement
  30.     elseif not Player.isMoving then
  31.         if buffer < 6 then --Now players have 6/60 = 1/10 sec to release both keys to move diagonally
  32.             Player.MoveTo(Player.x + bufferx/2, Player.y + buffery/2, false)
  33.         else
  34.             Player.MoveTo(2*Player.x - lastx, 2*Player.y - lasty, false) --Keeps the player moving     
  35.         end
  36.     end
  37.     lastx = mask.--I use the mask to set the last positions
  38.     lasty = mask.y
  39.     for i=1, #border do --Here we turn the borders on if the player hasn't moved (by getting into a corner)
  40.         if Player.x == lastx and Player.y == lasty then
  41.             border[i].SetVar('ignore', false)
  42.         else
  43.             border[i].SetVar('ignore', true)
  44.         end
  45.     end
  46.     buffer = buffer + 1
  47.     mask.MoveTo(Player.x, Player.y) --Finally move the mask back to the player
  48. end
  49.  
  50. function OnHit(bullet)
  51.     if bullet.GetVar('ignore') then --I changed this to make copying into other waves eaiser.
  52.     else                            --Now you don't have to add a 'real' variable to each bullet.
  53.         Player.Hurt(1)
  54.     end
  55. end
Advertisement
Add Comment
Please, Sign In to add comment