powerup spawning

I am trying to get enemies to drop powerups but it isnt working, this is the code i have for it:

initPowerups = function() powerups = [] // Lege lijst voor powerups end

createSplitPowerup = function(x, y) local types = ["speed", "invulnerable", "weapon"] for i = 0 to 2 for powerup in powerups local offsetX = randRange(-10, 10) local offsetY = randRange(-10, 10) local p = (object x = x + offsetX y = y + offsetY type = types[i] timer = 5 end)

powerups.push(p)
end

print("nee") end end updatePowerups = function(dt) local temp = [] for powerup in powerups powerup.timer -= dt

if distance(powerup.x, powerup.y, player.x, player.y) < 15 then
  applyPowerup(powerup.type)
elsif powerup.timer > 0 then
  temp.push(powerup)  
end

end powerups = temp end

applyPowerup = function(type) if type == "speed" then player.speed += 1
player.speed_timer = 5
elsif type == "invulnerable" then player.invulnerable_timer = 5
elsif type == "weapon" then player.extra_weapon = true
player.weapon_timer = 5
end end

drawPowerups = function() for powerup in powerups spriteName = "powerup" if powerup.type == "speed" then spriteName = "powerup_speed" elsif powerup.type == "invulnerable" then spriteName = "powerup_invul" elsif powerup.type == "weapon" then spriteName = "extra_weapon" end screen.drawSprite(spriteName, powerup.x, powerup.y, 20, 20) end end

this if when you have slain an enemy: if distance(enemy.x, enemy.y, sword_x, sword_y) < 20 then score += 1 enemy.active = false if random.next() < 0.3 then createSplitPowerup(enemy.x, enemy.y) end end end

can someone please take a look at it an maybe tell what the problem was/is?