1fire = class:new() 2 3function fire:init(x, y) 4 --PHYSICS STUFF 5 if objects["bowser"][1] then --make bowser fire this 6 self.y = objects["bowser"][1].y+0.25 7 self.x = objects["bowser"][1].x-0.750 8 9 --get goal Y 10 self.targety = objects["bowser"][1].starty-math.random(3)+2/16 11 self.source = "bowser" 12 else 13 self.y = y-1+1/16 14 self.targety = self.y 15 self.x = x+6/16 16 self.source = "none" 17 end 18 19 self.speedy = 0 20 self.speedx = -firespeed 21 22 self.width = 24/16 23 self.height = 8/16 24 self.active = true 25 self.static = true 26 self.autodelete = true 27 self.gravity = 0 28 self.category = 17 29 30 self.mask = { true, 31 true, false, true, true, true, 32 true, true, true, true, true, 33 true, true, true, true, true, 34 true, true, true, true, true, 35 true, true, true, true, true, 36 true, true, true, true, true} 37 38 --IMAGE STUFF 39 self.drawable = true 40 self.graphic = fireimg 41 self.quad = firequad[1] 42 self.offsetX = 0 43 self.offsetY = 8 44 self.quadcenterX = 0 45 self.quadcenterY = 0 46 47 self.rotation = 0 --for portals 48 self.timer = 0 49 self.quadi = 1 50 51 playsound(firesound) 52end 53 54function fire:update(dt) 55 --animate 56 self.timer = self.timer + dt 57 while self.timer > fireanimationdelay do 58 if self.quadi == 2 then 59 self.quadi = 1 60 else 61 self.quadi = 2 62 end 63 64 self.quad = firequad[self.quadi] 65 self.timer = self.timer - fireanimationdelay 66 end 67 68 self.x = self.x + self.speedx*dt 69 70 if self.y > self.targety then 71 self.y = self.y - fireverspeed*dt 72 if self.y < self.targety then 73 self.y = self.targety 74 end 75 elseif self.y < self.targety then 76 self.y = self.y + fireverspeed*dt 77 if self.y > self.targety then 78 self.y = self.targety 79 end 80 end 81end 82 83function fire:leftcollide(a, b) 84 return false 85end 86 87function fire:rightcollide(a, b) 88 return false 89end 90 91function fire:floorcollide(a, b) 92 return false 93end 94 95function fire:ceilcollide(a, b) 96 return false 97end