2019-03-13 04:15:41 +00:00
|
|
|
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 + (2 / stage.panelWidth) * info.direction
|
|
|
|
|
|
|
|
act.stage.setDamage(info.x, info.y, 40, info.owner, 2)
|
|
|
|
|
|
|
|
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, 2)
|
|
|
|
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, 2)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
return false
|
|
|
|
else
|
|
|
|
return true, {{images.cannon, info.x, info.y}}
|
|
|
|
end
|
|
|
|
end
|
2019-03-13 17:56:51 +00:00
|
|
|
}
|