diff --git a/sonic-radiance.love/assets/sprites/gfx/tornado.lua b/sonic-radiance.love/assets/sprites/gfx/tornado.lua new file mode 100644 index 0000000..c1d863f --- /dev/null +++ b/sonic-radiance.love/assets/sprites/gfx/tornado.lua @@ -0,0 +1,18 @@ +return { + metadata = { + width = 64, + height = 54, + defaultAnim = "default", + ox = 32, + oy = 48, + }, + animations = { + ["default"] = { + startAt = 1, + endAt = 15, + loop = 1, + speed = 30, + pauseAtEnd = false, + }, + } +} diff --git a/sonic-radiance.love/assets/sprites/gfx/tornado.png b/sonic-radiance.love/assets/sprites/gfx/tornado.png new file mode 100644 index 0000000..ae5d581 Binary files /dev/null and b/sonic-radiance.love/assets/sprites/gfx/tornado.png differ diff --git a/sonic-radiance.love/datas/gamedata/characters/amy/gfx/tornado.lua b/sonic-radiance.love/datas/gamedata/characters/amy/gfx/tornado.lua new file mode 100644 index 0000000..c1d863f --- /dev/null +++ b/sonic-radiance.love/datas/gamedata/characters/amy/gfx/tornado.lua @@ -0,0 +1,18 @@ +return { + metadata = { + width = 64, + height = 54, + defaultAnim = "default", + ox = 32, + oy = 48, + }, + animations = { + ["default"] = { + startAt = 1, + endAt = 15, + loop = 1, + speed = 30, + pauseAtEnd = false, + }, + } +} diff --git a/sonic-radiance.love/datas/gamedata/characters/amy/gfx/tornado.png b/sonic-radiance.love/datas/gamedata/characters/amy/gfx/tornado.png new file mode 100644 index 0000000..734a84c Binary files /dev/null and b/sonic-radiance.love/datas/gamedata/characters/amy/gfx/tornado.png differ diff --git a/sonic-radiance.love/datas/gamedata/characters/amy/skills.lua b/sonic-radiance.love/datas/gamedata/characters/amy/skills.lua index a3bd261..c584a0c 100644 --- a/sonic-radiance.love/datas/gamedata/characters/amy/skills.lua +++ b/sonic-radiance.love/datas/gamedata/characters/amy/skills.lua @@ -1,3 +1,4 @@ return { {"hitcombo", 2}, + {"tornado", 8}, } diff --git a/sonic-radiance.love/datas/gamedata/characters/sonic/skills.lua b/sonic-radiance.love/datas/gamedata/characters/sonic/skills.lua index a627801..384ba4c 100644 --- a/sonic-radiance.love/datas/gamedata/characters/sonic/skills.lua +++ b/sonic-radiance.love/datas/gamedata/characters/sonic/skills.lua @@ -2,10 +2,11 @@ return { --{attack_name, level}, {"spindash", 2}, --{"spinjump", 3}, - {"homming", 8}, + {"homming", 5}, + {"tornado", 9}, + {"sonicwind", 9}, {"spinattack", 15}, {"sonicflare", 18}, - {"bluetornado", 22}, {"spindash", 26}, {"soniccracker", 30}, {"hommingattack", 35}, diff --git a/sonic-radiance.love/datas/gamedata/skills/sonicwind.lua b/sonic-radiance.love/datas/gamedata/skills/sonicwind.lua new file mode 100644 index 0000000..c350d63 --- /dev/null +++ b/sonic-radiance.love/datas/gamedata/skills/sonicwind.lua @@ -0,0 +1,41 @@ +-- A basic file describing the basic attack, in order to make it customizable one +-- day ? + +-- Also serve as a tutoriel for how to create a file attack and choregraphy + +return { + name = "sonicwind", -- unused for this attack, but still usefull sometimes + fullname = "Sonic Wind", + cost = 08, -- the pp cost of the attack. Will be ignored if it's set + -- as character default attack + description = "Spin to attack. Roll at the right time for more damages", + + targetNumber = 0, -- 0 for targeting all ennemies + targetEnnemies = true, + + choregraphy = { -- the main attack choregraphy + {"setAnimation", "none", "actor", "walk", false}, + {"taggedAction", "playerMove", {"goTo", "none", "actor", "center", 0, 0, 0.5, true}}, + {'setAnimation', "none", "actor", 'heal', false}, + {"wait", "none", 0.2}, + + {"startSubChoregraphies", "none", 0.3, true}, + {'setAnimation', "none", "actor", 'idle', false}, + {"waitFor", "none", "hasSubChoregraphiesActive:not"}, + + {"setAnimation", "none", "actor", "walk", false}, + {'goTo', "none", "actor", "start", 0, 0, 0.5, true}, + {'setAnimation', "none", "actor", 'idle', false}, + }, + + subChoregraphy = { + {'addGFX', "none", 'tornado', "target", 0, 0, 0, true, false}, + {"sendDamage", "none", 30, "basic", "none", false}, + {"taggedAction", "ennemyJump", {'jump', "none", "target", 3, true, false}}, + {"waitFor", "none", "actionFinished:ennemyJump"}, + }, + + onContact = { -- if the attack move and touch multiple ennemies, you can add + -- specific effect when you touch the ennemy. + }, +} diff --git a/sonic-radiance.love/datas/gamedata/skills/tornado.lua b/sonic-radiance.love/datas/gamedata/skills/tornado.lua new file mode 100644 index 0000000..6bb5e0c --- /dev/null +++ b/sonic-radiance.love/datas/gamedata/skills/tornado.lua @@ -0,0 +1,54 @@ +-- A basic file describing the basic attack, in order to make it customizable one +-- day ? + +-- Also serve as a tutoriel for how to create a file attack and choregraphy + +return { + name = "tornado", -- unused for this attack, but still usefull sometimes + fullname = "Blue Tornado", + altName = { + amy = "Piko Tornado" + }, + cost = 08, -- the pp cost of the attack. Will be ignored if it's set + -- as character default attack + description = "Spin to attack. Roll at the right time for more damages", + + targetNumber = 1, -- 0 for targeting all ennemies + targetEnnemies = true, + + choregraphy = { -- the main attack choregraphy + {"setAnimation", "none", "actor", "walk", false}, + {"taggedAction", "playerMove", {"goTo", "none", "actor", "target", -2, 0, 1, false}}, + {"wait", "none", 0.3}, + + {"taggedAction", "tornadoQte", {"addQTE", "none", {"simplePrompt", {{"right", 1}, {"left", 1}}, 0.9}, "target", false}}, + {"waitFor", "none", {"or", "qteSuccess", "actionFinished:playerMove"}}, + {'setAnimation', "actionFinished:playerMove", "actor", 'idle', true}, + {"stopMov", "qteSuccess", "actor"}, + {"waitFor", "none", "actionFinished:tornadoQte"}, + {"setAnimSpeed", "qteFailure", "actor", 0.66}, + {"taggedAction", "upperAnimation", {'setAnimation', "none", "actor", 'upper', false}}, + {"waitFor", "none", "haveFrameSignal:tornado"}, + + {"sendDamage", "none", 120, "basic", "none", false}, + {"taggedAction", "tornadoGFX", {'addGFX', "sentDamage", 'tornado', "actor", 0, 0, 0, true, false}}, + {"goTo", "none", "tornadoGFX", "target", 0, 0, 0.3, true}, + {"taggedAction", "ennemyJump", {'jump', "none", "target", 5.5, true, false}}, + {'playSFX', "sentDamage", 'hitconnect'}, + + {"waitFor", "none", "actionFinished:upperAnimation"}, + {"setAnimSpeed", "none", "actor", 1}, + + {'setAnimation', "none", "actor", 'idle', false}, + {"wait", "none", 0.3}, + + {"setAnimation", "none", "actor", "walk", false}, + {'goTo', "none", "actor", "start", 0, 0, 0.3, true}, + {'setAnimation', "none", "actor", 'idle', false}, + {"waitFor", "none", "actionFinished:ennemyJump"} + }, + + onContact = { -- if the attack move and touch multiple ennemies, you can add + -- specific effect when you touch the ennemy. + }, +}