Advertisement
Guest User

spikeydispenser.lua

a guest
Mar 6th, 2012
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.98 KB | None | 0 0
  1. spikeydispenser = class:new()
  2.  
  3. function spikeydispenser:init(x, y, r)
  4.     --PHYSICS STUFF
  5.     self.cox = x
  6.     self.coy = y
  7.     self.x = x-1
  8.     self.y = y-1
  9.     self.speedy = 0
  10.     self.speedx = 0
  11.     self.width = 2
  12.     self.height = 2
  13.     self.static = true
  14.     self.active = true
  15.     self.category = 7
  16.     self.mask = {true, false, false, false, false, false, false, false, true}
  17.    
  18.     self.r = r
  19.     self.timer = spikeydispensertime
  20.     self.inputactive = false
  21.     self.spikeyexists = false
  22.     self.spikey = nil
  23. end
  24.  
  25. function spikeydispenser:input(t)
  26.     if t == "on" or t == "toggle" then
  27.         if self.spikeyexists then
  28.             self.spikeyexists = false
  29.             self:removespikey()
  30.         end
  31.        
  32.         if self.timer == spikeydispensertime then
  33.             self.timer = 0
  34.         end
  35.     end
  36. end
  37.  
  38. function spikeydispenser:link()
  39.     self.outtable = {}
  40.     if #self.r > 2 then
  41.         for j, w in pairs(outputs) do
  42.             for i, v in pairs(objects[w]) do
  43.                 if tonumber(self.r[4]) == v.cox and tonumber(self.r[5]) == v.coy then
  44.                     v:addoutput(self)
  45.                     if entityquads[map[v.cox][v.coy][2]].t == "spikey" then
  46.                         self.spikeyexists = true
  47.                     end
  48.                 end
  49.             end
  50.         end
  51.     end
  52. end
  53.  
  54. function spikeydispenser:update(dt)
  55.     if self.timer < spikeydispensertime then
  56.         self.timer = self.timer + dt
  57.        
  58.         if self.timer > 0.1 and self.timer <= 0.4 and self.active == true then
  59.             self.active = false
  60.         elseif self.timer > 0.4 and self.timer <= 0.6 and self.active == false then
  61.             self.active = true
  62.         elseif self.timer > 0.6 and self.spikeyexists == false then
  63.             local temp = goomba:new(self.cox, self.coy, "spikeyfall")
  64.             table.insert(objects["goomba"], temp)
  65.             self.spikey = temp
  66.             self.spikeyexists = true
  67.         elseif self.timer > 1 then
  68.             self.timer = 1
  69.         end
  70.     end
  71.     return false
  72. end
  73.  
  74. function spikeydispenser:draw()
  75.     love.graphics.draw(spikeydispenserimg, math.floor((self.cox-xscroll-1)*16*scale), (self.coy-1.5)*16*scale, 0, scale, scale, 0, 0)
  76. end
  77.  
  78. function spikeydispenser:removespikey()
  79.     if self.spikey then
  80.         self.spikey:emancipate()
  81.     end
  82. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement