local stage, players, objects, projectiles, act, images = ...
return {
	info = {
		name = "AirShot3",
		description = "Fires a powerful, pushing shot forwards!",
		cooldown = {
			shoot = 8,
			move = 4
		}
	},
	logic = function(info)
		info.x = info.x + (4 / stage.panelWidth) * info.direction

		act.stage.setDamage(info.x, info.y, 40, info.owner, 1)

		local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info)

		if info.frame > 50 or struckPlayer or struckObject then
			if struckPlayer then
				if act.player.movePlayer(struckPlayer, info.direction, 0, true) then
					act.stage.setDamage(info.x + info.direction, info.y, 40, info.owner, 1)
				end
			elseif struckObject then
				if objects[struckObject].doYeet then
					objects[struckObject].xvel = (4 / stage.panelWidth) * info.direction
				else
					if act.object.moveObject(struckObject, info.direction, 0) then
						act.stage.setDamage(info.x + info.direction, info.y, 40, info.owner, 1)
					end
				end
			end
			return false
		else
			return true, {{images.cannon, info.x, info.y}}
		end
	end
}