1castlefire = class:new() 2 3function castlefire:init(x, y, length, dir) 4 self.x = x 5 self.y = y+1/16 6 self.length = length or 6 7 self.dir = dir or "cw" 8 self.quadi = 1 9 self.child = {} 10 for i = 1, self.length do 11 local temp = castlefirefire:new() 12 table.insert(objects["castlefirefire"], temp) 13 table.insert(self.child, temp) 14 end 15 self.angle = 0 16 self.timer = 0 17 self.timer2 = 0 18 19 self:updatepos() 20 self:updatequad() 21end 22 23function castlefire:update(dt) 24 self.timer = self.timer + dt 25 26 while self.timer > castlefiredelay do 27 self.timer = self.timer - castlefiredelay 28 if self.dir == "cw" then 29 self.angle = self.angle + castlefireangleadd 30 self.angle = math.mod(self.angle, 360) 31 else 32 self.angle = self.angle - castlefireangleadd 33 while self.angle < 0 do 34 self.angle = self.angle + 360 35 end 36 end 37 38 self:updatepos() 39 end 40 41 self.timer2 = self.timer2 + dt 42 while self.timer2 > castlefireanimationdelay do 43 self.timer2 = self.timer2 - castlefireanimationdelay 44 self.quadi = self.quadi + 1 45 if self.quadi > 4 then 46 self.quadi = 1 47 end 48 self:updatequad() 49 end 50end 51 52function castlefire:updatepos() 53 local x = self.x-.5 54 local y = self.y-.5 55 56 for i = 1, self.length do 57 local xadd = math.cos(math.rad(self.angle))*(i-1)*0.5 58 local yadd = math.sin(math.rad(self.angle))*(i-1)*0.5 59 60 self.child[i].x = x+xadd-0.25 61 self.child[i].y = y+yadd-0.25 62 end 63end 64 65function castlefire:updatequad() 66 for i = 1, self.length do 67 self.child[i].quad = fireballquad[self.quadi] 68 end 69end 70 71 72 73-------------- 74 75castlefirefire = class:new() 76 77function castlefirefire:init() 78 --PHYSICS STUFF 79 self.y = 0 80 self.x = 0 81 self.width = 8/16 82 self.height = 8/16 83 self.active = true 84 self.static = true 85 self.category = 23 86 87 self.mask = { true, 88 true, false, true, true, true, 89 true, true, true, true, true, 90 true, true, true, true, true, 91 true, true, true, true, true, 92 true, true, true, true, true, 93 true, true, true, true, true} 94 95 --IMAGE STUFF 96 self.drawable = true 97 self.graphic = fireballimg 98 self.quad = fireballquad[1] 99 self.offsetX = 4 100 self.offsetY = 4 101 self.quadcenterX = 4 102 self.quadcenterY = 4 103end