From e58d3515d1e630aefd97ba16ece7fb6b3c752431 Mon Sep 17 00:00:00 2001 From: LDDestroier Date: Wed, 13 Mar 2019 00:15:41 -0400 Subject: [PATCH] Add files via upload --- CCBN/ccbn-data/chipdata/airshot1 | 37 +++++++++++++++ CCBN/ccbn-data/chipdata/airshot2 | 37 +++++++++++++++ CCBN/ccbn-data/chipdata/airshot3 | 37 +++++++++++++++ CCBN/ccbn-data/chipdata/areagrab | 43 +++++++++++++++++ CCBN/ccbn-data/chipdata/bigbomb | 27 +++++++++++ CCBN/ccbn-data/chipdata/boomer1 | 54 ++++++++++++++++++++++ CCBN/ccbn-data/chipdata/buster | 24 ++++++++++ CCBN/ccbn-data/chipdata/busterup | 17 +++++++ CCBN/ccbn-data/chipdata/cannon | 24 ++++++++++ CCBN/ccbn-data/chipdata/crackout | 17 +++++++ CCBN/ccbn-data/chipdata/crossbomb | 27 +++++++++++ CCBN/ccbn-data/chipdata/crossgun | 31 +++++++++++++ CCBN/ccbn-data/chipdata/dash | 36 +++++++++++++++ CCBN/ccbn-data/chipdata/doublecrack | 18 ++++++++ CCBN/ccbn-data/chipdata/doubleshot | 19 ++++++++ CCBN/ccbn-data/chipdata/fightersword | 19 ++++++++ CCBN/ccbn-data/chipdata/geddon1 | 21 +++++++++ CCBN/ccbn-data/chipdata/geddon2 | 21 +++++++++ CCBN/ccbn-data/chipdata/hicannon | 24 ++++++++++ CCBN/ccbn-data/chipdata/invis | 15 ++++++ CCBN/ccbn-data/chipdata/lifesword | 22 +++++++++ CCBN/ccbn-data/chipdata/lilbomb | 25 ++++++++++ CCBN/ccbn-data/chipdata/longsword | 18 ++++++++ CCBN/ccbn-data/chipdata/mcannon | 24 ++++++++++ CCBN/ccbn-data/chipdata/minibomb | 23 +++++++++ CCBN/ccbn-data/chipdata/muramasa | 17 +++++++ CCBN/ccbn-data/chipdata/panelgrab | 37 +++++++++++++++ CCBN/ccbn-data/chipdata/panelgrab_internal | 34 ++++++++++++++ CCBN/ccbn-data/chipdata/panelreturn | 23 +++++++++ CCBN/ccbn-data/chipdata/panelshot | 35 ++++++++++++++ CCBN/ccbn-data/chipdata/recov10 | 15 ++++++ CCBN/ccbn-data/chipdata/recov120 | 15 ++++++ CCBN/ccbn-data/chipdata/recov150 | 15 ++++++ CCBN/ccbn-data/chipdata/recov200 | 15 ++++++ CCBN/ccbn-data/chipdata/recov30 | 15 ++++++ CCBN/ccbn-data/chipdata/recov300 | 15 ++++++ CCBN/ccbn-data/chipdata/recov50 | 15 ++++++ CCBN/ccbn-data/chipdata/recov80 | 15 ++++++ CCBN/ccbn-data/chipdata/rockcube | 17 +++++++ CCBN/ccbn-data/chipdata/shockwave | 30 ++++++++++++ CCBN/ccbn-data/chipdata/shotgun | 28 +++++++++++ CCBN/ccbn-data/chipdata/sidegun | 29 ++++++++++++ CCBN/ccbn-data/chipdata/spreader | 31 +++++++++++++ CCBN/ccbn-data/chipdata/supervulcan | 28 +++++++++++ CCBN/ccbn-data/chipdata/sword | 17 +++++++ CCBN/ccbn-data/chipdata/triplecrack | 19 ++++++++ CCBN/ccbn-data/chipdata/tripleshot | 20 ++++++++ CCBN/ccbn-data/chipdata/vgun | 29 ++++++++++++ CCBN/ccbn-data/chipdata/vulcan1 | 28 +++++++++++ CCBN/ccbn-data/chipdata/vulcan2 | 28 +++++++++++ CCBN/ccbn-data/chipdata/vulcan3 | 28 +++++++++++ CCBN/ccbn-data/chipdata/vulcan_internal | 25 ++++++++++ CCBN/ccbn-data/chipdata/widesword | 19 ++++++++ CCBN/ccbn-data/objectdata/rockcube | 13 ++++++ 54 files changed, 1315 insertions(+) create mode 100644 CCBN/ccbn-data/chipdata/airshot1 create mode 100644 CCBN/ccbn-data/chipdata/airshot2 create mode 100644 CCBN/ccbn-data/chipdata/airshot3 create mode 100644 CCBN/ccbn-data/chipdata/areagrab create mode 100644 CCBN/ccbn-data/chipdata/bigbomb create mode 100644 CCBN/ccbn-data/chipdata/boomer1 create mode 100644 CCBN/ccbn-data/chipdata/buster create mode 100644 CCBN/ccbn-data/chipdata/busterup create mode 100644 CCBN/ccbn-data/chipdata/cannon create mode 100644 CCBN/ccbn-data/chipdata/crackout create mode 100644 CCBN/ccbn-data/chipdata/crossbomb create mode 100644 CCBN/ccbn-data/chipdata/crossgun create mode 100644 CCBN/ccbn-data/chipdata/dash create mode 100644 CCBN/ccbn-data/chipdata/doublecrack create mode 100644 CCBN/ccbn-data/chipdata/doubleshot create mode 100644 CCBN/ccbn-data/chipdata/fightersword create mode 100644 CCBN/ccbn-data/chipdata/geddon1 create mode 100644 CCBN/ccbn-data/chipdata/geddon2 create mode 100644 CCBN/ccbn-data/chipdata/hicannon create mode 100644 CCBN/ccbn-data/chipdata/invis create mode 100644 CCBN/ccbn-data/chipdata/lifesword create mode 100644 CCBN/ccbn-data/chipdata/lilbomb create mode 100644 CCBN/ccbn-data/chipdata/longsword create mode 100644 CCBN/ccbn-data/chipdata/mcannon create mode 100644 CCBN/ccbn-data/chipdata/minibomb create mode 100644 CCBN/ccbn-data/chipdata/muramasa create mode 100644 CCBN/ccbn-data/chipdata/panelgrab create mode 100644 CCBN/ccbn-data/chipdata/panelgrab_internal create mode 100644 CCBN/ccbn-data/chipdata/panelreturn create mode 100644 CCBN/ccbn-data/chipdata/panelshot create mode 100644 CCBN/ccbn-data/chipdata/recov10 create mode 100644 CCBN/ccbn-data/chipdata/recov120 create mode 100644 CCBN/ccbn-data/chipdata/recov150 create mode 100644 CCBN/ccbn-data/chipdata/recov200 create mode 100644 CCBN/ccbn-data/chipdata/recov30 create mode 100644 CCBN/ccbn-data/chipdata/recov300 create mode 100644 CCBN/ccbn-data/chipdata/recov50 create mode 100644 CCBN/ccbn-data/chipdata/recov80 create mode 100644 CCBN/ccbn-data/chipdata/rockcube create mode 100644 CCBN/ccbn-data/chipdata/shockwave create mode 100644 CCBN/ccbn-data/chipdata/shotgun create mode 100644 CCBN/ccbn-data/chipdata/sidegun create mode 100644 CCBN/ccbn-data/chipdata/spreader create mode 100644 CCBN/ccbn-data/chipdata/supervulcan create mode 100644 CCBN/ccbn-data/chipdata/sword create mode 100644 CCBN/ccbn-data/chipdata/triplecrack create mode 100644 CCBN/ccbn-data/chipdata/tripleshot create mode 100644 CCBN/ccbn-data/chipdata/vgun create mode 100644 CCBN/ccbn-data/chipdata/vulcan1 create mode 100644 CCBN/ccbn-data/chipdata/vulcan2 create mode 100644 CCBN/ccbn-data/chipdata/vulcan3 create mode 100644 CCBN/ccbn-data/chipdata/vulcan_internal create mode 100644 CCBN/ccbn-data/chipdata/widesword create mode 100644 CCBN/ccbn-data/objectdata/rockcube diff --git a/CCBN/ccbn-data/chipdata/airshot1 b/CCBN/ccbn-data/chipdata/airshot1 new file mode 100644 index 0000000..55e957d --- /dev/null +++ b/CCBN/ccbn-data/chipdata/airshot1 @@ -0,0 +1,37 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "AirShot1", + description = "Fires a 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, 20, 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, 20, 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, 20, info.owner, 2) + end + end + end + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/airshot2 b/CCBN/ccbn-data/chipdata/airshot2 new file mode 100644 index 0000000..a158720 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/airshot2 @@ -0,0 +1,37 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "AirShot2", + description = "Fires a better, 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, 30, 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, 30, 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, 30, info.owner, 2) + end + end + end + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/airshot3 b/CCBN/ccbn-data/chipdata/airshot3 new file mode 100644 index 0000000..3200de2 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/airshot3 @@ -0,0 +1,37 @@ +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 +} diff --git a/CCBN/ccbn-data/chipdata/areagrab b/CCBN/ccbn-data/chipdata/areagrab new file mode 100644 index 0000000..cd13471 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/areagrab @@ -0,0 +1,43 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "AreaGrab", + description = "Grabs three panels from enemy!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if info.frame == 0 then + if info.owner == 1 then + info.x = 5 + for y = 1, 3 do + for x = 2, 5 do + if stage.panels[y][x].owner ~= info.owner then + info.x = math.min(info.x, x) + break + end + end + end + else + info.x = 2 + for y = 1, 3 do + for x = 5, 2, -1 do + if stage.panels[y][x].owner ~= info.owner then + info.x = math.max(info.x, x) + break + end + end + end + end + end + + for y = 1, 3 do + act.projectile.newProjectile(info.x, y, info.player, "panelgrab_internal") + end + + return false + + end +} diff --git a/CCBN/ccbn-data/chipdata/bigbomb b/CCBN/ccbn-data/chipdata/bigbomb new file mode 100644 index 0000000..a02a2a3 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/bigbomb @@ -0,0 +1,27 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "BigBomb", + description = "Lob a 3x3 grenade 2 panels forward!", + cooldown = { + shoot = 6, + move = 5 + } + }, + logic = function(info) + local maxDist = 3 + local maxFrames = 10 + local parabola = math.sin((math.pi / maxFrames) * info.frame) * 2 + if parabola < 0.1 and info.frame > 3 then + for y = -1, 1 do + for x = -1, 1 do + act.stage.setDamage(info.x + x, info.y + y, 90, info.owner, 2, false) + end + end + return false + else + info.x = info.x + (maxDist / maxFrames) * info.direction + end + return true, {{images.cannon, info.x, info.y - parabola}} + end +} diff --git a/CCBN/ccbn-data/chipdata/boomer1 b/CCBN/ccbn-data/chipdata/boomer1 new file mode 100644 index 0000000..3a771c5 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/boomer1 @@ -0,0 +1,54 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Boomer1", + description = "Boomerang that orbits stage!", + cooldown = { + shoot = 6, + move = 5 + } + }, + logic = function(info) + if info.direction == 1 then + if info.frame == 0 then + info.x = 0 + info.y = 3 + end + if info.y > 1 then + if info.x <= 6 then + info.x = info.x + (2 / stage.panelWidth) + else + info.y = info.y - (2 / stage.panelHeight) + end + elseif info.x > 0 then + info.x = info.x - (2 / stage.panelWidth) + else + return false + end + elseif info.direction == -1 then + if info.frame == 0 then + info.x = 7 + info.y = 3 + end + if info.y > 1 then + if info.x > 1 then + info.x = info.x - (2 / stage.panelWidth) + else + info.y = info.y - (2 / stage.panelHeight) + end + elseif info.x <= 7 then + info.x = info.x + (2 / stage.panelWidth) + else + return false + end + end + + local struckObject = act.object.checkObjectAtPos(info.x, info.y) + if struckObject then + info.safeObjects[struckObject] = true + end + + act.stage.setDamage(info.x, info.y, 60, info.owner, 2, false, {}, info.safeObjects) + return true, {{images.cannon, info.x, info.y}} + end +} diff --git a/CCBN/ccbn-data/chipdata/buster b/CCBN/ccbn-data/chipdata/buster new file mode 100644 index 0000000..bfb91b0 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/buster @@ -0,0 +1,24 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "MegaBuster", + description = "Fires a weak shot forwards!", + cooldown = { + shoot = 4, + move = 2 + } + }, + logic = function(info) + info.x = info.x + (3 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, info.player.busterPower or 1, info.owner, 1, true) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + return false + else + return true, {{images.buster, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/busterup b/CCBN/ccbn-data/chipdata/busterup new file mode 100644 index 0000000..0cb2ad7 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/busterup @@ -0,0 +1,17 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "BusterUp", + description = "Raises your buster power by 1!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + info.player.busterPower = info.player.busterPower + 1 + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/cannon b/CCBN/ccbn-data/chipdata/cannon new file mode 100644 index 0000000..e195503 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/cannon @@ -0,0 +1,24 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Cannon", + description = "Fires a shot forwards!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (2 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, info.altDamage or 40, info.owner, 1, info.noFlinch) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/crackout b/CCBN/ccbn-data/chipdata/crackout new file mode 100644 index 0000000..c3dab40 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/crackout @@ -0,0 +1,17 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "CrackOut", + description = "Destroys panel in front!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + act.stage.crackPanel(info.x + info.direction, info.y, 2) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/crossbomb b/CCBN/ccbn-data/chipdata/crossbomb new file mode 100644 index 0000000..e6e6153 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/crossbomb @@ -0,0 +1,27 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "CrossBomb", + description = "Lob a cross-shaped bomb 2 panels forward!", + cooldown = { + shoot = 6, + move = 5 + } + }, + logic = function(info) + local maxDist = 3 + local maxFrames = 10 + local parabola = math.sin((math.pi / maxFrames) * info.frame) * 2 + if parabola < 0.1 and info.frame > 3 then + act.stage.setDamage(info.x, info.y - 1, 70, info.owner, 2, false) + act.stage.setDamage(info.x, info.y, 70, info.owner, 2, false) + act.stage.setDamage(info.x, info.y + 1, 70, info.owner, 2, false) + act.stage.setDamage(info.x - 1, info.y, 70, info.owner, 2, false) + act.stage.setDamage(info.x + 1, info.y, 70, info.owner, 2, false) + return false + else + info.x = info.x + (maxDist / maxFrames) * info.direction + end + return true, {{images.cannon, info.x, info.y - parabola}} + end +} diff --git a/CCBN/ccbn-data/chipdata/crossgun b/CCBN/ccbn-data/chipdata/crossgun new file mode 100644 index 0000000..ae0aeb9 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/crossgun @@ -0,0 +1,31 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "CrossGun", + description = "Shoots four diagonal panels around enemy!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (2 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + if struckPlayer or struckObject then + act.stage.setDamage(info.x - 1, info.y - 1, 30, info.owner, 2) + act.stage.setDamage(info.x + 1, info.y - 1, 30, info.owner, 2) + act.stage.setDamage(info.x - 1, info.y + 1, 30, info.owner, 2) + act.stage.setDamage(info.x + 1, info.y + 1, 30, info.owner, 2) + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + end + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/dash b/CCBN/ccbn-data/chipdata/dash new file mode 100644 index 0000000..0d8e2d7 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/dash @@ -0,0 +1,36 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Dash", + description = "Dash forwards to deal massive damage!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + if info.frame == 0 then + info.player.canMove = false + info.player.canShoot = false + info.playerInitX = info.player.x + info.playerInitY = info.player.y + end + if info.frame > 2 then -- start on frame 3 + if info.player.x > 7 or info.player.x < 0 then + info.player.x = info.playerInitX + info.player.y = info.playerInitY + info.player.cooldown.shoot = 6 + info.player.cooldown.move = 2 + info.player.canMove = true + info.player.canShoot = true + return false + else + info.player.x = info.player.x + (5 / stage.panelWidth) * info.player.direction + act.stage.setDamage(info.player.x, info.player.y, 80, info.owner, 4, false) + return true + end + else + return true + end + end +} diff --git a/CCBN/ccbn-data/chipdata/doublecrack b/CCBN/ccbn-data/chipdata/doublecrack new file mode 100644 index 0000000..4c5c060 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/doublecrack @@ -0,0 +1,18 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "DoubleCrack", + description = "Destroys two panels in front!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + act.stage.crackPanel(info.x + info.direction, info.y, 2) + act.stage.crackPanel(info.x + info.direction * 2, info.y, 2) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/doubleshot b/CCBN/ccbn-data/chipdata/doubleshot new file mode 100644 index 0000000..cf9b233 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/doubleshot @@ -0,0 +1,19 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "DoubleShot", + description = "Fires two panels forwards!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + + act.projectile.newProjectile(info.x, info.y, info.player, "panelshot", false, info.altDamage) + act.projectile.newProjectile(info.x + info.direction, info.y, info.player, "panelshot", true, info.altDamage) + + return false + + end +} diff --git a/CCBN/ccbn-data/chipdata/fightersword b/CCBN/ccbn-data/chipdata/fightersword new file mode 100644 index 0000000..193d771 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/fightersword @@ -0,0 +1,19 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "FighterSword", + description = "Slash forwards 3 panels!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + act.stage.setDamage(info.x + info.direction, info.y, 100, info.owner, 4) + act.stage.setDamage(info.x + info.direction * 2, info.y, 100, info.owner, 4) + act.stage.setDamage(info.x + info.direction * 3, info.y, 100, info.owner, 4) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/geddon1 b/CCBN/ccbn-data/chipdata/geddon1 new file mode 100644 index 0000000..9f38d49 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/geddon1 @@ -0,0 +1,21 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Geddon1", + description = "Cracks all panels!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + for y, row in pairs(stage.panels) do + for x, panel in pairs(row) do + act.stage.crackPanel(x, y, 1) + end + end + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/geddon2 b/CCBN/ccbn-data/chipdata/geddon2 new file mode 100644 index 0000000..edf0d07 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/geddon2 @@ -0,0 +1,21 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Geddon2", + description = "Breaks all panels!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + for y, row in pairs(stage.panels) do + for x, panel in pairs(row) do + act.stage.crackPanel(x, y, 2) + end + end + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/hicannon b/CCBN/ccbn-data/chipdata/hicannon new file mode 100644 index 0000000..f72053f --- /dev/null +++ b/CCBN/ccbn-data/chipdata/hicannon @@ -0,0 +1,24 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "HiCannon", + description = "Fires a better shot forwards!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (2 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 60, info.owner, 1) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/invis b/CCBN/ccbn-data/chipdata/invis new file mode 100644 index 0000000..46b9580 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/invis @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Invis", + description = "Makes you invincible for a short time!", + cooldown = { + shoot = 6, + move = 5 + } + }, + logic = function(info) + info.player.cooldown.iframe = 50 + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/lifesword b/CCBN/ccbn-data/chipdata/lifesword new file mode 100644 index 0000000..721b4f1 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/lifesword @@ -0,0 +1,22 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "LifeSword", + description = "Slash 2x3 area with devastating power!", + cooldown = { + shoot = 6, + move = 5 + } + }, + logic = function(info) + + act.stage.setDamage(info.x + info.direction, info.y - 1, 400, info.owner, 4) + act.stage.setDamage(info.x + info.direction * 2, info.y - 1, 400, info.owner, 4) + act.stage.setDamage(info.x + info.direction, info.y, 400, info.owner, 4) + act.stage.setDamage(info.x + info.direction * 2, info.y, 400, info.owner, 4) + act.stage.setDamage(info.x + info.direction, info.y + 1, 400, info.owner, 4) + act.stage.setDamage(info.x + info.direction * 2, info.y + 1, 400, info.owner, 4) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/lilbomb b/CCBN/ccbn-data/chipdata/lilbomb new file mode 100644 index 0000000..e9bf3bd --- /dev/null +++ b/CCBN/ccbn-data/chipdata/lilbomb @@ -0,0 +1,25 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "LilBomb", + description = "Lob a little bomb 2 panels forward!", + cooldown = { + shoot = 6, + move = 5 + } + }, + logic = function(info) + local maxDist = 3 + local maxFrames = 10 + local parabola = math.sin((math.pi / maxFrames) * info.frame) * 2 + if parabola < 0.1 and info.frame > 3 then + act.stage.setDamage(info.x, info.y - 1, 50, info.owner, 2, false) + act.stage.setDamage(info.x, info.y, 50, info.owner, 2, false) + act.stage.setDamage(info.x, info.y + 1, 50, info.owner, 2, false) + return false + else + info.x = info.x + (maxDist / maxFrames) * info.direction + end + return true, {{images.cannon, info.x, info.y - parabola}} + end +} diff --git a/CCBN/ccbn-data/chipdata/longsword b/CCBN/ccbn-data/chipdata/longsword new file mode 100644 index 0000000..7c2e987 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/longsword @@ -0,0 +1,18 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "LongSword", + description = "Slash forwards 2 panels!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + act.stage.setDamage(info.x + info.direction, info.y, 80, info.owner, 4) + act.stage.setDamage(info.x + info.direction * 2, info.y, 80, info.owner, 4) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/mcannon b/CCBN/ccbn-data/chipdata/mcannon new file mode 100644 index 0000000..36e7d17 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/mcannon @@ -0,0 +1,24 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "M-Cannon", + description = "Fires a powerful shot forwards!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (2 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 80, info.owner, 1) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/minibomb b/CCBN/ccbn-data/chipdata/minibomb new file mode 100644 index 0000000..d04fde5 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/minibomb @@ -0,0 +1,23 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "MiniBomb", + description = "Lob a small bomb 2 panels forward!", + cooldown = { + shoot = 6, + move = 5 + } + }, + logic = function(info) + local maxDist = 3 + local maxFrames = 10 + local parabola = math.sin((math.pi / maxFrames) * info.frame) * 2 + if parabola < 0.1 and info.frame > 3 then + act.stage.setDamage(info.x, info.y, 50, info.owner, 2, false) + return false + else + info.x = info.x + (maxDist / maxFrames) * info.direction + end + return true, {{images.cannon, info.x, info.y - parabola}} + end +} diff --git a/CCBN/ccbn-data/chipdata/muramasa b/CCBN/ccbn-data/chipdata/muramasa new file mode 100644 index 0000000..4b48984 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/muramasa @@ -0,0 +1,17 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Muramasa", + description = "Slash for as much damage as you have taken!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + act.stage.setDamage(info.x + info.direction, info.y, math.min(info.player.maxHealth - info.player.health, 1000), info.owner, 2, false) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/panelgrab b/CCBN/ccbn-data/chipdata/panelgrab new file mode 100644 index 0000000..2a08a82 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/panelgrab @@ -0,0 +1,37 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "PanelGrab", + description = "Grabs one panel from enemy!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if info.frame == 0 then + if info.owner == 1 then + info.x = 5 + for x = 2, 5 do + if stage.panels[info.y][x].owner ~= info.owner then + info.x = x + break + end + end + else + info.x = 2 + for x = 5, 2, -1 do + if stage.panels[info.y][x].owner ~= info.owner then + info.x = x + break + end + end + end + end + + act.projectile.newProjectile(info.x, info.y, info.player, "panelgrab_internal") + + return false + + end +} diff --git a/CCBN/ccbn-data/chipdata/panelgrab_internal b/CCBN/ccbn-data/chipdata/panelgrab_internal new file mode 100644 index 0000000..b46abdd --- /dev/null +++ b/CCBN/ccbn-data/chipdata/panelgrab_internal @@ -0,0 +1,34 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "PanelGrab_Internal", + description = "Internal for PanelGrab and AreaGrab.", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + + if not stage.panels[info.y] then + return false + end + + if info.frame == 0 then + info.yadj = 5 + end + + info.yadj = math.max(0, info.yadj - 0.5) + + if info.yadj == 0 then + act.stage.setDamage(info.x, info.y, 80, info.owner, 2) + if not act.player.checkPlayerAtPos(info.x, info.y) then + stage.panels[info.y][info.x].owner = info.owner + stage.panels[info.y][info.x].cooldown.owner = 500 + end + return false + end + + return true, {{images.cannon, info.x, info.y - info.yadj}} + end +} diff --git a/CCBN/ccbn-data/chipdata/panelreturn b/CCBN/ccbn-data/chipdata/panelreturn new file mode 100644 index 0000000..3c87ce9 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/panelreturn @@ -0,0 +1,23 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "PanelReturn", + description = "Fixes all of your panels!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + for y, row in pairs(stage.panels) do + for x, panel in pairs(row) do + if panel.owner == info.owner then + act.stage.crackPanel(x, y, -2) + end + end + end + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/panelshot b/CCBN/ccbn-data/chipdata/panelshot new file mode 100644 index 0000000..ac418d3 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/panelshot @@ -0,0 +1,35 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "CrackShot", + description = "Fires a panel forwards!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if info.frame == 0 then + if act.stage.checkIfSolid(info.x + info.direction, info.y) then + info.panelType = stage.panels[info.y][info.x + info.direction].panelType + act.stage.crackPanel(info.x + info.direction, info.y, 2) + info.x = info.x + info.direction + else + return false + end + elseif info.panelType then + info.x = info.x + (3 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, info.altDamage or 60, info.owner, 1, info.noFlinch) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + return false + else + return true, {{images.panel[info.panelType], info.x, info.y}} + end + end + return {{images.panel[info.panelType], info.x, info.y}} + end +} diff --git a/CCBN/ccbn-data/chipdata/recov10 b/CCBN/ccbn-data/chipdata/recov10 new file mode 100644 index 0000000..f5f6bf5 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov10 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recov10", + description = "Gives you 10 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 10, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/recov120 b/CCBN/ccbn-data/chipdata/recov120 new file mode 100644 index 0000000..209c5a4 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov120 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recon120", + description = "Gives you 120 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 120, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/recov150 b/CCBN/ccbn-data/chipdata/recov150 new file mode 100644 index 0000000..bd97e57 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov150 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recon150", + description = "Gives you 150 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 150, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/recov200 b/CCBN/ccbn-data/chipdata/recov200 new file mode 100644 index 0000000..0d262ff --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov200 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recon200", + description = "Gives you 200 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 200, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/recov30 b/CCBN/ccbn-data/chipdata/recov30 new file mode 100644 index 0000000..d8351d0 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov30 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recon30", + description = "Gives you 30 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 30, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/recov300 b/CCBN/ccbn-data/chipdata/recov300 new file mode 100644 index 0000000..3a28128 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov300 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recon300", + description = "Gives you 300 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 300, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/recov50 b/CCBN/ccbn-data/chipdata/recov50 new file mode 100644 index 0000000..770a6c5 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov50 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recon50", + description = "Gives you 50 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 50, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/recov80 b/CCBN/ccbn-data/chipdata/recov80 new file mode 100644 index 0000000..0f97d94 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/recov80 @@ -0,0 +1,15 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Recon80", + description = "Gives you 80 health!", + cooldown = { + shoot = 6, + move = 2 + } + }, + logic = function(info) + info.player.health = math.min(info.player.health + 80, info.player.maxHealth) + return false + end, +} diff --git a/CCBN/ccbn-data/chipdata/rockcube b/CCBN/ccbn-data/chipdata/rockcube new file mode 100644 index 0000000..19bdfd3 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/rockcube @@ -0,0 +1,17 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "RockCube", + description = "Creates a cube-shaped rock!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if act.stage.checkIfWalkable(info.x + info.direction, info.y) then + act.object.newObject(info.x + info.direction, info.y, info.owner, info.direction, "rockcube") + end + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/shockwave b/CCBN/ccbn-data/chipdata/shockwave new file mode 100644 index 0000000..8830b48 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/shockwave @@ -0,0 +1,30 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "ShockWave", + description = "Piercing ground wave!", + cooldown = { + shoot = 14, + move = 8 + } + }, + logic = function(info) + if info.frame == 0 then + info.x = info.x + info.direction / 2 + end + info.x = info.x + (3 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 60, info.owner, 10, false, {}, info.safeObjects) + + local struckObject = act.object.checkObjectAtPos(info.x, info.y) + if struckObject then + info.safeObjects[struckObject] = true + end + + if info.frame > 50 or not act.stage.checkIfSolid(info.x, info.y) then + return false + else + return true + end + end +} diff --git a/CCBN/ccbn-data/chipdata/shotgun b/CCBN/ccbn-data/chipdata/shotgun new file mode 100644 index 0000000..84fc5e7 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/shotgun @@ -0,0 +1,28 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Shotgun", + description = "Hits enemy as well as the panel behind!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (2 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + if struckPlayer or struckObject then + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + act.stage.setDamage(info.x + info.direction, info.y, 30, info.owner, 2) + end + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/sidegun b/CCBN/ccbn-data/chipdata/sidegun new file mode 100644 index 0000000..2404465 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/sidegun @@ -0,0 +1,29 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "SideGun", + description = "Hits enemy as well as panels above and below!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (2 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + if struckPlayer or struckObject then + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + act.stage.setDamage(info.x, info.y - 1, 30, info.owner, 2) + act.stage.setDamage(info.x, info.y + 1, 30, info.owner, 2) + end + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/spreader b/CCBN/ccbn-data/chipdata/spreader new file mode 100644 index 0000000..32e2fb9 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/spreader @@ -0,0 +1,31 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Spreader", + description = "Hits enemy and all surrounding panels!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (2 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + if struckPlayer or struckObject then + for y = -1, 1 do + for x = -1, 1 do + act.stage.setDamage(info.x + x, info.y + y, 30, info.owner, 2) + end + end + end + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/supervulcan b/CCBN/ccbn-data/chipdata/supervulcan new file mode 100644 index 0000000..de722e7 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/supervulcan @@ -0,0 +1,28 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "SuperVulcan", + description = "Fires twelve shots that damages panel behind!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if info.frame == 0 then + info.player.canMove = false + info.player.canShoot = false + else + if info.frame == 12 * 2 + 1 then + info.player.canMove = true + info.player.canShoot = true + info.player.cooldown.shoot = 6 + info.player.cooldown.shoot = 4 + return false + elseif info.frame % 2 == 0 then + act.projectile.newProjectile(info.x, info.y, info.player, "vulcan_internal") + end + end + return true + end +} diff --git a/CCBN/ccbn-data/chipdata/sword b/CCBN/ccbn-data/chipdata/sword new file mode 100644 index 0000000..e682511 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/sword @@ -0,0 +1,17 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Sword", + description = "Slash forwards 1 panel!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + act.stage.setDamage(info.x + info.direction, info.y, 80, info.owner, 4) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/triplecrack b/CCBN/ccbn-data/chipdata/triplecrack new file mode 100644 index 0000000..54d3c7b --- /dev/null +++ b/CCBN/ccbn-data/chipdata/triplecrack @@ -0,0 +1,19 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "TripleCrack", + description = "Destroys three panels in front!", + cooldown = { + shoot = 8, + move = 4 + } + }, + logic = function(info) + + act.stage.crackPanel(info.x + info.direction, info.y - 1, 2) + act.stage.crackPanel(info.x + info.direction, info.y, 2) + act.stage.crackPanel(info.x + info.direction, info.y + 1, 2) + + return false + end +} diff --git a/CCBN/ccbn-data/chipdata/tripleshot b/CCBN/ccbn-data/chipdata/tripleshot new file mode 100644 index 0000000..51d6977 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/tripleshot @@ -0,0 +1,20 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "TripleShot", + description = "Fires three panels forwards!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + + act.projectile.newProjectile(info.x, info.y - 1, info.player, "panelshot", false, info.altDamage or 100) + act.projectile.newProjectile(info.x, info.y, info.player, "panelshot", true, info.altDamage or 100) + act.projectile.newProjectile(info.x, info.y + 1, info.player, "panelshot", false, info.altDamage or 100) + + return false + + end +} diff --git a/CCBN/ccbn-data/chipdata/vgun b/CCBN/ccbn-data/chipdata/vgun new file mode 100644 index 0000000..d4f0609 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/vgun @@ -0,0 +1,29 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "V-Gun", + description = "Hits enemy as well as two diagonal panels back!", + cooldown = { + shoot = 6, + 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 or struckObject then + act.stage.setDamage(info.x, info.y, 30, info.owner, 2) + act.stage.setDamage(info.x + info.direction, info.y - 1, 30, info.owner, 2) + act.stage.setDamage(info.x + info.direction, info.y + 1, 30, info.owner, 2) + end + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/vulcan1 b/CCBN/ccbn-data/chipdata/vulcan1 new file mode 100644 index 0000000..d2f06ff --- /dev/null +++ b/CCBN/ccbn-data/chipdata/vulcan1 @@ -0,0 +1,28 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Vulcan1", + description = "Fires three shots that damages panel behind!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if info.frame == 0 then + info.player.canMove = false + info.player.canShoot = false + else + if info.frame == 3 * 2 + 1 then + info.player.canMove = true + info.player.canShoot = true + info.player.cooldown.shoot = 6 + info.player.cooldown.shoot = 4 + return false + elseif info.frame % 2 == 0 then + act.projectile.newProjectile(info.x, info.y, info.player, "vulcan_internal") + end + end + return true + end +} diff --git a/CCBN/ccbn-data/chipdata/vulcan2 b/CCBN/ccbn-data/chipdata/vulcan2 new file mode 100644 index 0000000..6d7c783 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/vulcan2 @@ -0,0 +1,28 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Vulcan2", + description = "Fires five shots that damages panel behind!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if info.frame == 0 then + info.player.canMove = false + info.player.canShoot = false + else + if info.frame == 5 * 2 + 1 then + info.player.canMove = true + info.player.canShoot = true + info.player.cooldown.shoot = 6 + info.player.cooldown.shoot = 4 + return false + elseif info.frame % 2 == 0 then + act.projectile.newProjectile(info.x, info.y, info.player, "vulcan_internal") + end + end + return true + end +} diff --git a/CCBN/ccbn-data/chipdata/vulcan3 b/CCBN/ccbn-data/chipdata/vulcan3 new file mode 100644 index 0000000..a09a6cf --- /dev/null +++ b/CCBN/ccbn-data/chipdata/vulcan3 @@ -0,0 +1,28 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Vulcan3", + description = "Fires seven shots that damages panel behind!", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + if info.frame == 0 then + info.player.canMove = false + info.player.canShoot = false + else + if info.frame == 7 * 2 + 1 then + info.player.canMove = true + info.player.canShoot = true + info.player.cooldown.shoot = 6 + info.player.cooldown.shoot = 4 + return false + elseif info.frame % 2 == 0 then + act.projectile.newProjectile(info.x, info.y, info.player, "vulcan_internal") + end + end + return true + end +} diff --git a/CCBN/ccbn-data/chipdata/vulcan_internal b/CCBN/ccbn-data/chipdata/vulcan_internal new file mode 100644 index 0000000..31e6f72 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/vulcan_internal @@ -0,0 +1,25 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "Vulcan_Internal", + description = "Internal component of Vulcan1 through 3 and SuperVulcan.", + cooldown = { + shoot = 6, + move = 4 + } + }, + logic = function(info) + info.x = info.x + (3 / stage.panelWidth) * info.direction + + act.stage.setDamage(info.x, info.y, 10, info.owner, 1, true) + + local struckPlayer, struckObject = act.projectile.checkProjectileCollisions(info) + + if info.frame > 50 or struckPlayer or struckObject then + act.stage.setDamage(info.x + info.direction, info.y, 10, info.owner, 1, true) + return false + else + return true, {{images.cannon, info.x, info.y}} + end + end +} diff --git a/CCBN/ccbn-data/chipdata/widesword b/CCBN/ccbn-data/chipdata/widesword new file mode 100644 index 0000000..0a4ab06 --- /dev/null +++ b/CCBN/ccbn-data/chipdata/widesword @@ -0,0 +1,19 @@ +local stage, players, objects, projectiles, act, images = ... +return { + info = { + name = "WideSword", + description = "Slash column in front!", + cooldown = { + shoot = 8, + move = 5 + } + }, + logic = function(info) + + act.stage.setDamage(info.x + info.direction, info.y - 1, 80, info.owner, 4) + act.stage.setDamage(info.x + info.direction, info.y, 80, info.owner, 4) + act.stage.setDamage(info.x + info.direction, info.y + 1, 80, info.owner, 4) + + return false + end +} diff --git a/CCBN/ccbn-data/objectdata/rockcube b/CCBN/ccbn-data/objectdata/rockcube new file mode 100644 index 0000000..2143bd6 --- /dev/null +++ b/CCBN/ccbn-data/objectdata/rockcube @@ -0,0 +1,13 @@ +local stage, players, objects, projectiles, act, images = ... +return { + image = images.rockcube, + friendlyFire = true, -- can it hit its owner? + health = 500, -- amount of damage before disintegrating + maxHealth = 500, -- just a formality + smackDamage = 200, -- amount of damage it will do if launched at enemy + doYeet = true, -- whether or not to fly backwards and do smackDamage to target + delayedTime = 400, -- amount of frames before running delayedFunc() + delayedFunc = function() -- will run every delayedTime frames + -- rockcubes do what rock cubes do + end, +}