diff --git a/sonic-bluestreak.love/datas/consts/battle.lua b/sonic-bluestreak.love/datas/consts/battle.lua
new file mode 100644
index 0000000..cbafe36
--- /dev/null
+++ b/sonic-bluestreak.love/datas/consts/battle.lua
@@ -0,0 +1,10 @@
+local CONST = {}
+
+CONST.ACCURACY = 100
+CONST.ATKWRONGTYPE = 0.66
+
+CONST.DAMAGE = {}
+CONST.DAMAGE.DIVISOR = 10
+CONST.DAMAGE.DEFFACTOR = 0.66
+
+return CONST
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/consts/stats.lua b/sonic-bluestreak.love/datas/consts/stats.lua
new file mode 100644
index 0000000..04a3302
--- /dev/null
+++ b/sonic-bluestreak.love/datas/consts/stats.lua
@@ -0,0 +1,76 @@
+local CONST = {}
+
+CONST.HPMAX = "hpmax"
+CONST.PPMAX = "ppmax"
+CONST.ATTACK = "attack"
+CONST.POWER = "power"
+CONST.DEFENSE = "defense"
+CONST.MIND = "mind"
+CONST.TECHNIC = "technic"
+CONST.SPEED = "speed"
+
+CONST.DAMAGE = "damage"
+CONST.ACCURACY = "accuracy"
+CONST.EVASION = "evasion"
+CONST.LUCK = "luck"
+CONST.ARMOR = "armor"
+CONST.CRITICAL = "critical"
+CONST.HPREGEN = "hpregen"
+CONST.PPREGEN = "ppregen"
+
+CONST.RANK_E = 10
+CONST.RANK_D = 25
+CONST.RANK_C = 40
+CONST.RANK_B = 60
+CONST.RANK_A = 80
+CONST.RANK_S = 100
+CONST.MULT_HP = 4.5
+
+CONST.LIST = {CONST.HPMAX, CONST.PPMAX, CONST.ATTACK, CONST.POWER, CONST.DEFENSE, CONST.MIND, CONST.TECHNIC, CONST.SPEED}
+CONST.BATTLELIST = {CONST.ACCURACY, CONST.EVASION, CONST.LUCK, CONST.DAMAGE, CONST.ARMOR, CONST.CRITICAL, CONST.HPREGEN, CONST.PPREGEN}
+CONST.NOBONUS = {CONST.HPMAX, CONST.PPMAX, CONST.HPREGEN, CONST.PPREGEN}
+
+CONST.SIMPLENAME = {}
+CONST.SIMPLENAME[CONST.HPMAX] = "HP"
+CONST.SIMPLENAME[CONST.PPMAX] = "PP"
+CONST.SIMPLENAME[CONST.ATTACK] = "ATK"
+CONST.SIMPLENAME[CONST.POWER] = "POW"
+CONST.SIMPLENAME[CONST.DEFENSE] = "DEF"
+CONST.SIMPLENAME[CONST.MIND] = "MND"
+CONST.SIMPLENAME[CONST.TECHNIC] = "TEK"
+CONST.SIMPLENAME[CONST.SPEED] = "SPD"
+
+CONST.EXP_MULTIPLICATOR = 4
+CONST.EXP_RATIO = 5
+
+CONST.BASE_STAT = 5
+CONST.BASE_HP = 15
+CONST.BASE_MP = 8
+
+CONST.MULT_STAT = 2
+CONST.MULT_HP = 7.5
+CONST.SALT_HP = 35
+CONST.MULT_MP = 1.5
+
+local function createBattleStat(name, valueHero, valueEnnemy)
+ CONST.BATTLESTAT.HERO[name] = valueHero
+ CONST.BATTLESTAT.ENNEMI[name] = valueEnnemy or valueHero
+end
+
+CONST.BATTLESTAT = {}
+CONST.BATTLESTAT.HERO = {}
+CONST.BATTLESTAT.ENNEMI = {}
+createBattleStat("accuracy", 100)
+createBattleStat("evasion", 0)
+createBattleStat("luck", 66, 40)
+createBattleStat("damage", 0)
+createBattleStat("armor", 0)
+createBattleStat("critical", 0)
+createBattleStat("hpregen", 0)
+createBattleStat("ppregen", 0)
+
+CONST.ARMOR_AND_DAMAGE_RATIO = .5
+
+CONST.BONUS = {0.75, 0.8125, 0.875, 0.9375, 1, 1.125, 1.25, 1.375, 1.5}
+
+return CONST
diff --git a/sonic-bluestreak.love/datas/gamedata/battles/elements.lua b/sonic-bluestreak.love/datas/gamedata/battles/elements.lua
new file mode 100644
index 0000000..3ec5f5b
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/battles/elements.lua
@@ -0,0 +1,42 @@
+return {
+ ["none"] = {
+ fullname = "None",
+ weakTo = {},
+ resists = {}
+ },
+ ["water"] = {
+ fullname = "Water",
+ weakTo = {"light"},
+ resists = {"fire", "water"}
+ },
+ ["fire"] = {
+ fullname = "Fire",
+ weakTo = {"water"},
+ resists = {"ice", "fire"}
+ },
+ ["ice"] = {
+ fullname = "Fire",
+ weakTo = {"fire"},
+ resists = {"wind", "ice"}
+ },
+ ["wind"] = {
+ fullname = "Fire",
+ weakTo = {"ice"},
+ resists = {"earth", "wind"}
+ },
+ ["earth"] = {
+ fullname = "Fire",
+ weakTo = {"wind"},
+ resists = {"light", "earth"}
+ },
+ ["light"] = {
+ fullname = "Fire",
+ weakTo = {"earth"},
+ resists = {"water", "light"}
+ },
+ ["chaos"] = {
+ fullname = "Chaos",
+ weakTo = {"chaos"},
+ resists = {}
+ }
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/battles/protectypes.lua b/sonic-bluestreak.love/datas/gamedata/battles/protectypes.lua
new file mode 100644
index 0000000..222ce6f
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/battles/protectypes.lua
@@ -0,0 +1,22 @@
+return {
+ ["basic"] = {
+ resistTo = {},
+ backDamage = {}
+ },
+ ["aerial"] = {
+ resistTo = {"basic"},
+ backDamage = {}
+ },
+ ["shielded"] = {
+ resistTo = {"basic", "projectile"},
+ backDamage = {}
+ },
+ ["spiked"] = {
+ resistTo = {"basic", "aerial"},
+ backDamage = {"basic", "aerial"}
+ },
+ ["backspiked"] = {
+ resistTo = {"aerial"},
+ backDamage = {"aerial"}
+ },
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/battles/test/testBattle.lua b/sonic-bluestreak.love/datas/gamedata/battles/test/testBattle.lua
new file mode 100644
index 0000000..4ae4401
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/battles/test/testBattle.lua
@@ -0,0 +1,14 @@
+return {
+ music = "battle1",
+ ennemies = {
+ {"normal", "classics", "motobug", 1},
+ {"normal", "classics", "spinner", 1},
+ {"normal", "classics", "motobug", 1},
+ }
+}
+
+-- There are three possible type of ennemies
+
+-- NORMAL {"normal", category, name, number}
+-- BOSS : {"boss", category, pvbonus, statbonus}
+-- RIVALS : {"rival", charname, level, pvbonus}
diff --git a/sonic-bluestreak.love/datas/gamedata/battles/test/testBoss.lua b/sonic-bluestreak.love/datas/gamedata/battles/test/testBoss.lua
new file mode 100644
index 0000000..85ff44b
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/battles/test/testBoss.lua
@@ -0,0 +1,13 @@
+return {
+ music = "battle2",
+ ennemies = {
+ {"normal", "classics", "motobug", 1},
+ {"boss", "classics", "motobug", 10, 1.8, true},
+ {"normal", "classics", "motobug", 1}}
+}
+
+-- There are three possible type of ennemies
+
+-- NORMAL {"normal", category, name, number}
+-- BOSS : {"boss", category, pvbonus, statbonus}
+-- RIVALS : {"rival", charname, level, pvbonus}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/actions.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/actions.lua
new file mode 100644
index 0000000..af13095
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/amy/actions.lua
@@ -0,0 +1,17 @@
+local actions = {}
+
+actions.aerial = {}
+
+function actions.aerial.start(n, actor)
+
+end
+
+function actions.aerial.update(dt, actor)
+
+end
+
+function actions.aerial.onGround(actor)
+
+end
+
+return actions
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/artwork.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/artwork.lua
new file mode 100644
index 0000000..298a6e9
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/amy/artwork.lua
@@ -0,0 +1,4 @@
+return {
+ x = 120,
+ y = -16
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/artwork.png b/sonic-bluestreak.love/datas/gamedata/characters/amy/artwork.png
new file mode 100644
index 0000000..5e473d5
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/amy/artwork.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/gfx/tornado.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/gfx/tornado.lua
new file mode 100644
index 0000000..c1d863f
--- /dev/null
+++ b/sonic-bluestreak.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-bluestreak.love/datas/gamedata/characters/amy/gfx/tornado.png b/sonic-bluestreak.love/datas/gamedata/characters/amy/gfx/tornado.png
new file mode 100644
index 0000000..734a84c
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/amy/gfx/tornado.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/init.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/init.lua
new file mode 100644
index 0000000..a6975e4
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/amy/init.lua
@@ -0,0 +1,22 @@
+return {
+ name = "Amy",
+ fullname = "Amy Rose",
+ class = "power",
+ speed = 3,
+ jump = 3,
+ turns = 2,
+ move = 4,
+
+ startlevel = 1,
+
+ isUnlockedAtStart = true,
+ canGoSuper = true,
+ canBreakCraft = false,
+
+ weakTo = {},
+ resists = {},
+
+ icon = 3,
+ charset = "perso",
+ charId = 3,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/inventory.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/inventory.lua
new file mode 100644
index 0000000..b809bc3
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/amy/inventory.lua
@@ -0,0 +1,5 @@
+return {
+ gloves = "basicgloves",
+ shoes = "lightsneakers",
+ accessories = "simplehammer",
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/skills.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/skills.lua
new file mode 100644
index 0000000..c584a0c
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/amy/skills.lua
@@ -0,0 +1,4 @@
+return {
+ {"hitcombo", 2},
+ {"tornado", 8},
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/sprites.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/sprites.lua
new file mode 100644
index 0000000..d42c4e0
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/amy/sprites.lua
@@ -0,0 +1,180 @@
+return {
+ metadata = {
+ height = 64,
+ width = 64,
+ ox = 32,
+ oy = 32,
+ defaultAnim = "idle"
+ },
+ animations = {
+ ["idle"] = {
+ startAt = 1,
+ endAt = 8,
+ loop = 1,
+ speed = 10,
+ pauseAtEnd = false,
+ },
+ ["walk"] = {
+ startAt = 9,
+ endAt = 17,
+ loop = 10,
+ speed = -1,
+ pauseAtEnd = false,
+ },
+ ["jump"] = {
+ startAt = 18,
+ endAt = 21,
+ loop = 21,
+ speed = 10,
+ pauseAtEnd = true,
+ },
+ ["fall"] = {
+ startAt = 22,
+ endAt = 24,
+ loop = 26,
+ speed = 10,
+ pauseAtEnd = true,
+ },
+ ["hit1start"] = {
+ startAt = 29,
+ endAt = 32,
+ loop = 32,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit1end"] = {
+ startAt = 33,
+ endAt = 34,
+ loop = 34,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit2start"] = {
+ startAt = 35,
+ endAt = 37,
+ loop = 37,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit2end"] = {
+ startAt = 38,
+ endAt = 39,
+ loop = 39,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit3start"] = {
+ startAt = 40,
+ endAt = 44,
+ loop = 44,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit3end"] = {
+ startAt = 45,
+ endAt = 46,
+ loop = 46,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["spindash"] = {
+ startAt = 59,
+ endAt = 62,
+ loop = 59,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spindash_full"] = {
+ startAt = 59,
+ endAt = 62,
+ loop = 59,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spin"] = {
+ startAt = 55,
+ endAt = 58,
+ loop = 55,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spinjump"] = {
+ startAt = 49,
+ endAt = 54,
+ loop = 51,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spinjump_nucurl"] = {
+ startAt = 51,
+ endAt = 54,
+ loop = 51,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["hurt"] = {
+ startAt = 47,
+ endAt = 49,
+ loop = 49,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["getKo"] = {
+ startAt = 50,
+ endAt = 52,
+ loop = 52,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["ko"] = {
+ startAt = 52,
+ endAt = 52,
+ loop = 52,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["defend"] = {
+ startAt = 53,
+ endAt = 54,
+ loop = 54,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["heal"] = {
+ startAt = 63,
+ endAt = 66,
+ loop = 64,
+ speed = 15,
+ pauseAtEnd = false,
+ },
+ ["healend"] = {
+ startAt = 67,
+ endAt = 68,
+ loop = 68,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["hammer1"] = {
+ startAt = 69,
+ endAt = 82,
+ loop = 69,
+ speed = 15,
+ pauseAtEnd = false,
+ },
+ ["upper"] = {
+ startAt = 83,
+ endAt = 95,
+ loop = 83,
+ speed = 15,
+ pauseAtEnd = false,
+ signal = {{5, "tornado"}, {7, "hitconnect"}}
+ },
+ ["gift"] = {
+ startAt = 96,
+ endAt = 106,
+ loop = 96,
+ speed = 15,
+ pauseAtEnd = false,
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/sprites.png b/sonic-bluestreak.love/datas/gamedata/characters/amy/sprites.png
new file mode 100644
index 0000000..ef2b7d3
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/amy/sprites.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/stats.lua b/sonic-bluestreak.love/datas/gamedata/characters/amy/stats.lua
new file mode 100644
index 0000000..f1d7862
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/amy/stats.lua
@@ -0,0 +1,13 @@
+local CONST = require "datas.consts.stats"
+
+return {
+ hpmax = CONST.RANK_A, --
+ ppmax = CONST.RANK_C, --
+
+ attack = CONST.RANK_A, --
+ defense = CONST.RANK_B, --
+ technic = CONST.RANK_C, -- How much items & wisps will be powerfull for this character.
+ power = CONST.RANK_B, --
+ mind = CONST.RANK_C, -- Magic defense.
+ speed = CONST.RANK_B, -- Où le personnage se trouve dans le tour.
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/voices/move.wav b/sonic-bluestreak.love/datas/gamedata/characters/amy/voices/move.wav
new file mode 100644
index 0000000..c0bb10b
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/amy/voices/move.wav differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/amy/voices/turnstart.wav b/sonic-bluestreak.love/datas/gamedata/characters/amy/voices/turnstart.wav
new file mode 100644
index 0000000..a2fd113
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/amy/voices/turnstart.wav differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/baseteam.lua b/sonic-bluestreak.love/datas/gamedata/characters/baseteam.lua
index 765b627..c8a9068 100644
--- a/sonic-bluestreak.love/datas/gamedata/characters/baseteam.lua
+++ b/sonic-bluestreak.love/datas/gamedata/characters/baseteam.lua
@@ -1 +1 @@
-return {"sonic"}
+return {"sonic", "tails", "amy"}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/actions.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/actions.lua
index 961afed..af13095 100644
--- a/sonic-bluestreak.love/datas/gamedata/characters/sonic/actions.lua
+++ b/sonic-bluestreak.love/datas/gamedata/characters/sonic/actions.lua
@@ -1,7 +1,6 @@
local actions = {}
actions.aerial = {}
-actions.special = {}
function actions.aerial.start(n, actor)
@@ -15,16 +14,4 @@ function actions.aerial.onGround(actor)
end
-function actions.special.start(n, actor)
-
-end
-
-function actions.special.update(dt, actor)
-
-end
-
-function actions.special.onGround(actor)
-
-end
-
return actions
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/artwork.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/artwork.lua
new file mode 100644
index 0000000..d65e99f
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/sonic/artwork.lua
@@ -0,0 +1,4 @@
+return {
+ x = 120,
+ y = -32
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/artwork.png b/sonic-bluestreak.love/datas/gamedata/characters/sonic/artwork.png
new file mode 100644
index 0000000..94f3a2f
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/sonic/artwork.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/assets.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/assets.lua
deleted file mode 100644
index 9f12102..0000000
--- a/sonic-bluestreak.love/datas/gamedata/characters/sonic/assets.lua
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
- lifeicon = 1,
- spriteset = "sonic",
-}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/init.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/init.lua
index d9584ed..b4e8d10 100644
--- a/sonic-bluestreak.love/datas/gamedata/characters/sonic/init.lua
+++ b/sonic-bluestreak.love/datas/gamedata/characters/sonic/init.lua
@@ -1,10 +1,22 @@
return {
name = "Sonic",
fullname = "Sonic the Hedgehog",
+ class = "speedster",
+ speed = 5,
+ jump = 3,
+ turns = 3,
+ move = 4,
- class = "speed",
- alignement = "hero",
- team = "heroes",
+ startlevel = 1,
- description = "Lorem Ipsum...",
+ isUnlockedAtStart = true,
+ canGoSuper = true,
+ canBreakCraft = false,
+
+ weakTo = {"water"},
+ resists = {"wind"},
+
+ icon = 1,
+ charset = "perso",
+ charId = 1,
}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/inventory.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/inventory.lua
new file mode 100644
index 0000000..531e3eb
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/sonic/inventory.lua
@@ -0,0 +1,5 @@
+return {
+ gloves = "basicgloves",
+ shoes = "lightsneakers",
+ accessories = "",
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/skills.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/skills.lua
index 636ef13..332e914 100644
--- a/sonic-bluestreak.love/datas/gamedata/characters/sonic/skills.lua
+++ b/sonic-bluestreak.love/datas/gamedata/characters/sonic/skills.lua
@@ -1,3 +1,16 @@
return {
---{skill_flag},
+--{attack_name, level},
+ {"spindash", 2},
+ --{"spinjump", 3},
+ {"homming", 5},
+ {"tornado", 9},
+ {"sonicwind", 9},
+ -- {"spinattack", 15},
+ -- {"sonicflare", 18},
+ -- {"spindash", 26},
+ -- {"soniccracker", 30},
+ -- {"hommingattack", 35},
+ -- {"bluetornado", 40},
+ -- {"boost", 62},
+ -- {"lightspeedattack", 70},
}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/sprites.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/sprites.lua
new file mode 100644
index 0000000..7b7cc4b
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/sonic/sprites.lua
@@ -0,0 +1,180 @@
+return {
+ metadata = {
+ height = 64,
+ width = 64,
+ ox = 32,
+ oy = 32,
+ defaultAnim = "idle"
+ },
+ animations = {
+ ["idle"] = {
+ startAt = 1,
+ endAt = 6,
+ loop = 1,
+ speed = 12,
+ pauseAtEnd = false,
+ },
+ ["walk"] = {
+ startAt = 7,
+ endAt = 14,
+ loop = 7,
+ speed = -1,
+ pauseAtEnd = false,
+ },
+ ["jump"] = {
+ startAt = 15,
+ endAt = 18,
+ loop = 18,
+ speed = 10,
+ pauseAtEnd = true,
+ },
+ ["fall"] = {
+ startAt = 19,
+ endAt = 21,
+ loop = 21,
+ speed = 10,
+ pauseAtEnd = true,
+ },
+ ["hit1start"] = {
+ startAt = 22,
+ endAt = 24,
+ loop = 24,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit1end"] = {
+ startAt = 24,
+ endAt = 26,
+ loop = 26,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit2start"] = {
+ startAt = 28,
+ endAt = 30,
+ loop = 30,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit2end"] = {
+ startAt = 30,
+ endAt = 32,
+ loop = 32,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit3start"] = {
+ startAt = 33,
+ endAt = 35,
+ loop = 35,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit3end"] = {
+ startAt = 36,
+ endAt = 36,
+ loop = 36,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["spindash"] = {
+ startAt = 37,
+ endAt = 40,
+ loop = 37,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spindash_full"] = {
+ startAt = 41,
+ endAt = 44,
+ loop = 41,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spin"] = {
+ startAt = 45,
+ endAt = 48,
+ loop = 45,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spinjump"] = {
+ startAt = 49,
+ endAt = 54,
+ loop = 51,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spinjump_nucurl"] = {
+ startAt = 51,
+ endAt = 54,
+ loop = 51,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["hurt"] = {
+ startAt = 55,
+ endAt = 57,
+ loop = 57,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["getKo"] = {
+ startAt = 58,
+ endAt = 62,
+ loop = 62,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["ko"] = {
+ startAt = 62,
+ endAt = 62,
+ loop = 62,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["defend"] = {
+ startAt = 63,
+ endAt = 64,
+ loop = 64,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["flare"] = {
+ startAt = 65,
+ endAt = 80,
+ loop = 65,
+ speed = 20,
+ pauseAtEnd = false,
+ },
+ ["upper"] = {
+ startAt = 81,
+ endAt = 89,
+ loop = 81,
+ speed = 18,
+ pauseAtEnd = false,
+ signal = {{2, "tornado"}, {3, "hitconnect"}}
+ },
+ ["heal"] = {
+ startAt = 90,
+ endAt = 93,
+ loop = 91,
+ speed = 15,
+ pauseAtEnd = false,
+ },
+ ["healend"] = {
+ startAt = 94,
+ endAt = 95,
+ loop = 95,
+ speed = 15,
+ pauseAtEnd = false,
+ },
+ ["gift"] = {
+ startAt = 96,
+ endAt = 101,
+ loop = 96,
+ speed = 15,
+ pauseAtEnd = false,
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/sprites.png b/sonic-bluestreak.love/datas/gamedata/characters/sonic/sprites.png
new file mode 100644
index 0000000..53b1be3
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/sonic/sprites.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/sonic/stats.lua b/sonic-bluestreak.love/datas/gamedata/characters/sonic/stats.lua
index 349703b..96d3630 100644
--- a/sonic-bluestreak.love/datas/gamedata/characters/sonic/stats.lua
+++ b/sonic-bluestreak.love/datas/gamedata/characters/sonic/stats.lua
@@ -1,13 +1,13 @@
-return {
- startlevel = 1,
- hpmax = 50, -- Les points de vie du personnages
- spd = 5,
- jmp = 3,
- atk = 5,
- jumpaction_power = 2,
- action_power = 1,
- action_cost = 30,
+local CONST = require "datas.consts.stats"
- canGoSuper = true,
- canBreakCraft = false
+return {
+ hpmax = CONST.RANK_B, --
+ ppmax = CONST.RANK_C, --
+
+ attack = CONST.RANK_B, --
+ defense = CONST.RANK_B, --
+ technic = CONST.RANK_C, -- How much items & wisps will be powerfull for this character.
+ power = CONST.RANK_C, --
+ mind = CONST.RANK_D, -- Magic defense.
+ speed = CONST.RANK_S, -- Où le personnage se trouve dans le tour.
}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/actions.lua b/sonic-bluestreak.love/datas/gamedata/characters/tails/actions.lua
new file mode 100644
index 0000000..af13095
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/tails/actions.lua
@@ -0,0 +1,17 @@
+local actions = {}
+
+actions.aerial = {}
+
+function actions.aerial.start(n, actor)
+
+end
+
+function actions.aerial.update(dt, actor)
+
+end
+
+function actions.aerial.onGround(actor)
+
+end
+
+return actions
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/artwork.lua b/sonic-bluestreak.love/datas/gamedata/characters/tails/artwork.lua
new file mode 100644
index 0000000..aeb11ca
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/tails/artwork.lua
@@ -0,0 +1,4 @@
+return {
+ x = 128,
+ y = -40
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/artwork.png b/sonic-bluestreak.love/datas/gamedata/characters/tails/artwork.png
new file mode 100644
index 0000000..7663f05
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/tails/artwork.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/init.lua b/sonic-bluestreak.love/datas/gamedata/characters/tails/init.lua
new file mode 100644
index 0000000..e5fe46c
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/tails/init.lua
@@ -0,0 +1,22 @@
+return {
+ name = "Tails",
+ fullname = "Miles \"Tails\" Prower",
+ class = "technic",
+ speed = 2,
+ jump = 5,
+ turns = 2,
+ move = 3,
+
+ startlevel = 1,
+
+ isUnlockedAtStart = true,
+ canGoSuper = true,
+ canBreakCraft = false,
+
+ weakTo = {"light"},
+ resists = {"earth"},
+
+ icon = 2,
+ charset = "perso",
+ charId = 2,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/inventory.lua b/sonic-bluestreak.love/datas/gamedata/characters/tails/inventory.lua
new file mode 100644
index 0000000..531e3eb
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/tails/inventory.lua
@@ -0,0 +1,5 @@
+return {
+ gloves = "basicgloves",
+ shoes = "lightsneakers",
+ accessories = "",
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/skills.lua b/sonic-bluestreak.love/datas/gamedata/characters/tails/skills.lua
new file mode 100644
index 0000000..04220c4
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/tails/skills.lua
@@ -0,0 +1,3 @@
+return {
+
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/sprites.lua b/sonic-bluestreak.love/datas/gamedata/characters/tails/sprites.lua
new file mode 100644
index 0000000..19ad024
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/tails/sprites.lua
@@ -0,0 +1,144 @@
+return {
+ metadata = {
+ height = 64,
+ width = 64,
+ ox = 32,
+ oy = 32,
+ defaultAnim = "idle"
+ },
+ animations = {
+ ["idle"] = {
+ startAt = 1,
+ endAt = 8,
+ loop = 1,
+ speed = 10,
+ pauseAtEnd = false,
+ },
+ ["walk"] = {
+ startAt = 9,
+ endAt = 17,
+ loop = 10,
+ speed = -1,
+ pauseAtEnd = false,
+ },
+ ["jump"] = {
+ startAt = 18,
+ endAt = 21,
+ loop = 21,
+ speed = 10,
+ pauseAtEnd = true,
+ },
+ ["fall"] = {
+ startAt = 22,
+ endAt = 26,
+ loop = 26,
+ speed = 10,
+ pauseAtEnd = true,
+ },
+ ["hit1start"] = {
+ startAt = 27,
+ endAt = 30,
+ loop = 30,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit1end"] = {
+ startAt = 31,
+ endAt = 32,
+ loop = 32,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit2start"] = {
+ startAt = 33,
+ endAt = 37,
+ loop = 37,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit2end"] = {
+ startAt = 38,
+ endAt = 38,
+ loop = 38,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit3start"] = {
+ startAt = 42,
+ endAt = 46,
+ loop = 46,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["hit3end"] = {
+ startAt = 46,
+ endAt = 48,
+ loop = 48,
+ speed = 25,
+ pauseAtEnd = true,
+ },
+ ["spindash"] = {
+ startAt = 66,
+ endAt = 73,
+ loop = 66,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spindash_full"] = {
+ startAt = 66,
+ endAt = 73,
+ loop = 66,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spin"] = {
+ startAt = 62,
+ endAt = 65,
+ loop = 65,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spinjump"] = {
+ startAt = 49,
+ endAt = 54,
+ loop = 51,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["spinjump_nucurl"] = {
+ startAt = 51,
+ endAt = 54,
+ loop = 51,
+ speed = 25,
+ pauseAtEnd = false,
+ },
+ ["hurt"] = {
+ startAt = 49,
+ endAt = 51,
+ loop = 51,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["getKo"] = {
+ startAt = 53,
+ endAt = 59,
+ loop = 59,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["ko"] = {
+ startAt = 59,
+ endAt = 59,
+ loop = 59,
+ speed = 15,
+ pauseAtEnd = true,
+ },
+ ["defend"] = {
+ startAt = 60,
+ endAt = 61,
+ loop = 61,
+ speed = 15,
+ pauseAtEnd = true,
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/sprites.png b/sonic-bluestreak.love/datas/gamedata/characters/tails/sprites.png
new file mode 100644
index 0000000..7d9e28e
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/tails/sprites.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/stats.lua b/sonic-bluestreak.love/datas/gamedata/characters/tails/stats.lua
new file mode 100644
index 0000000..3c38b84
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/characters/tails/stats.lua
@@ -0,0 +1,13 @@
+local CONST = require "datas.consts.stats"
+
+return {
+ hpmax = CONST.RANK_C, --
+ ppmax = CONST.RANK_A, --
+
+ attack = CONST.RANK_D, --
+ defense = CONST.RANK_C, --
+ technic = CONST.RANK_S, -- How much items & wisps will be powerfull for this character.
+ power = CONST.RANK_C, --
+ mind = CONST.RANK_A, -- Magic defense.
+ speed = CONST.RANK_B, -- Où le personnage se trouve dans le tour.
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/voices/move.wav b/sonic-bluestreak.love/datas/gamedata/characters/tails/voices/move.wav
new file mode 100644
index 0000000..c0bb10b
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/tails/voices/move.wav differ
diff --git a/sonic-bluestreak.love/datas/gamedata/characters/tails/voices/turnstart.wav b/sonic-bluestreak.love/datas/gamedata/characters/tails/voices/turnstart.wav
new file mode 100644
index 0000000..21b958b
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/characters/tails/voices/turnstart.wav differ
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/init.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/init.lua
new file mode 100644
index 0000000..9aaed30
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/init.lua
@@ -0,0 +1,18 @@
+return {
+ name = "Motobug",
+ fullname = "E-03 Motobug",
+ type = "badnics",
+ element = "none",
+ protectypes = {},
+ rarity = 0,
+ isAerial = false,
+ distAttack = false,
+ turns = 2,
+
+ hudHeight = 18,
+ behaviour = "random",
+ behaviourAlt = "random",
+
+ giveExp = 20,
+ giveRings = 30,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/skills.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/skills.lua
new file mode 100644
index 0000000..77087dc
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/skills.lua
@@ -0,0 +1,3 @@
+return {
+ "tackle",
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/sprites.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/sprites.lua
new file mode 100644
index 0000000..5be6329
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/sprites.lua
@@ -0,0 +1,25 @@
+return {
+ metadata = {
+ height = 64,
+ width = 64,
+ ox = 32,
+ oy = 32,
+ defaultAnim = "idle"
+ },
+ animations = {
+ ["idle"] = {
+ startAt = 1,
+ endAt = 4,
+ loop = 1,
+ speed = 12,
+ pauseAtEnd = false,
+ },
+ ["walk"] = {
+ startAt = 5,
+ endAt = 8,
+ loop = 5,
+ speed = 12,
+ pauseAtEnd = false,
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/sprites.png b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/sprites.png
new file mode 100644
index 0000000..82fe1d3
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/sprites.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/stats.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/stats.lua
new file mode 100644
index 0000000..f547ce8
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/motobug/stats.lua
@@ -0,0 +1,12 @@
+return {
+ hpmax = 25, --
+ ppmax = 20, --
+
+ attack = 15, --
+ power = 20, --
+ defense = 05, --
+ technic = 10, --
+ mind = 10, --
+ luck = 02, --
+ speed = 15, --
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/init.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/init.lua
new file mode 100644
index 0000000..810be5c
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/init.lua
@@ -0,0 +1,18 @@
+return {
+ name = "Spinner",
+ fullname = "E-06 Spinner",
+ type = "badnics",
+ element = "none",
+ protectypes = {"aerial"},
+ rarity = 0,
+ isAerial = true,
+ distAttack = false,
+ turns = 2,
+
+ hudHeight = 24,
+ behaviour = "random",
+ behaviourAlt = "random",
+
+ giveExp = 20,
+ giveRings = 30,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/skills.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/skills.lua
new file mode 100644
index 0000000..77087dc
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/skills.lua
@@ -0,0 +1,3 @@
+return {
+ "tackle",
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/sprites.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/sprites.lua
new file mode 100644
index 0000000..9c42950
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/sprites.lua
@@ -0,0 +1,25 @@
+return {
+ metadata = {
+ width = 64,
+ height = 64,
+ ox = 32,
+ oy = 32,
+ defaultAnim = "idle"
+ },
+ animations = {
+ ["idle"] = {
+ startAt = 1,
+ endAt = 6,
+ loop = 1,
+ speed = 12,
+ pauseAtEnd = false,
+ },
+ ["walk"] = {
+ startAt = 1,
+ endAt = 6,
+ loop = 1,
+ speed = 12,
+ pauseAtEnd = false,
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/sprites.png b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/sprites.png
new file mode 100644
index 0000000..29cb2f3
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/sprites.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/stats.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/stats.lua
new file mode 100644
index 0000000..f547ce8
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/classics/spinner/stats.lua
@@ -0,0 +1,12 @@
+return {
+ hpmax = 25, --
+ ppmax = 20, --
+
+ attack = 15, --
+ power = 20, --
+ defense = 05, --
+ technic = 10, --
+ mind = 10, --
+ luck = 02, --
+ speed = 15, --
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/init.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/init.lua
new file mode 100644
index 0000000..033b8e0
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/init.lua
@@ -0,0 +1,3 @@
+return {
+ "classics",
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/ennemies/skills/tackle.lua b/sonic-bluestreak.love/datas/gamedata/ennemies/skills/tackle.lua
new file mode 100644
index 0000000..1d0a2e1
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/ennemies/skills/tackle.lua
@@ -0,0 +1,28 @@
+-- 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 = "tackle",
+ cost = 0,
+
+ targetNumber = 1, -- 0 for targeting all ennemies
+ targetEnnemies = true,
+
+ isSpecial = false,
+
+ choregraphy = { -- the main attack choregraphy
+ {"goTo3D", "none", "actor", "target", -0.4, 0, 0, 0.5, true},
+ {"sendDamage", "none", 120, "basic", "none", false},
+ {'addGFX', "sentDamage", 'hit1', "target", -0.4, 0, 0, true, false},
+ {'playSFX', "sentDamage", 'hitconnect'},
+ {'jumpBack', "none", "actor", 4, 8, true},
+ {"wait", "none", 0.1},
+ {'goTo3D', "none", "actor", "start", 0, 0, 0, 0.3, true},
+ },
+
+ onContact = { -- if the attack move and touch multiple ennemies, you can add
+ -- specific effect when you touch the ennemy.
+ },
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/events/test/espio.lua b/sonic-bluestreak.love/datas/gamedata/events/test/espio.lua
new file mode 100644
index 0000000..dd71819
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/events/test/espio.lua
@@ -0,0 +1,5 @@
+return {
+ ["actions"] = {
+ {"dialogBox", "", "Hello Sonic. I'm testing the dialog system of Sonic Radiance. Here, I should do an in-character joke, but the dev is too lazy to even think about that. But don't do that. Remember than only training and discipline will help you.", "Espio", ""}
+ }
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/events/test/mighty.lua b/sonic-bluestreak.love/datas/gamedata/events/test/mighty.lua
new file mode 100644
index 0000000..4a82919
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/events/test/mighty.lua
@@ -0,0 +1,7 @@
+return {
+ ["actions"] = {
+ {"dialogBox", "haveMoney:eq:0", "You don't have any rings !", "Mighty", ""},
+ {"dialogBox", {"haveMoney:lt:300", "haveMoney:gt:0"}, "You seems to only have a few rings", "Mighty", ""},
+ {"dialogBox", "haveMoney:ge:300", "Wow you're rich !", "Mighty", ""}
+ }
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/events/test/rouge.lua b/sonic-bluestreak.love/datas/gamedata/events/test/rouge.lua
new file mode 100644
index 0000000..d737292
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/events/test/rouge.lua
@@ -0,0 +1,10 @@
+return {
+ ["actions"] = {
+ {"dialogBox", "", "Hi Big Blue. Let's test a bit the choice dialog.", "Rouge", ""},
+ {"optionBox", "", "What do you want ?", "Rouge", "", "Ring", "A health fruit", "Battling badnics", "optionFlag"},
+ {"dialogBox", {"optionFlag:1", "haveMoney:lt:300"}, "Oooh, in need of cash ?", "Rouge", ""},
+ {"dialogBox", {"optionFlag:1", "haveMoney:gt:300"}, "You doesn't seem that poor to me.", "Rouge", ""},
+ {"dialogBox", "optionFlag:2", "Did you failed your battle ? Well, you'll have to train more", "Rouge", ""},
+ {"dialogBox", "optionFlag:3", "Let's see if you can keep it up", "Rouge", ""},
+ }
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/index.lua b/sonic-bluestreak.love/datas/gamedata/index.lua
new file mode 100644
index 0000000..2c47d9c
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/index.lua
@@ -0,0 +1,11 @@
+return {
+ datapacks = {
+ ["battles"] = {"battles", {"test"}, true, {}},
+ ["items"] = {"items", {"medicines", "powerups", "gloves", "shoes", "accessories"}, true, {}},
+ ["ennemies"] = {"ennemies", {"classics"}, false, {"stats", "skills"}},
+ ["characters"] = {"characters", {}, false, {"stats", "skills", "inventory"}},
+ ["skills"] = {"skills", {}, true, {}},
+ ["badskills"] = {"ennemies.skills", {}, true, {}}
+ },
+ singlefile = {}
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/items/accessories/simplehammer.lua b/sonic-bluestreak.love/datas/gamedata/items/accessories/simplehammer.lua
new file mode 100644
index 0000000..c71ad67
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/accessories/simplehammer.lua
@@ -0,0 +1,15 @@
+return {
+ name = "simplehammer",
+ fullname = "Simple Hammer",
+ description = "A basic hammer",
+ conditions = {},
+ effects = {},
+ statsBoost = {
+ attack = 3
+ },
+ isEquipement = true,
+ usableInBattle = false,
+ usableOnMap = false,
+ affectEverybody = false,
+ duration = 0
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/gloves/basicgloves.lua b/sonic-bluestreak.love/datas/gamedata/items/gloves/basicgloves.lua
new file mode 100644
index 0000000..e1a74a1
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/gloves/basicgloves.lua
@@ -0,0 +1,16 @@
+return {
+ name = "basicgloves",
+ fullname = "Basic Gloves",
+ description = "Basic gloves that help fighting",
+ conditions = {},
+ effects = {},
+ statsBoost = {
+ attack = 2,
+ defense = 1
+ },
+ isEquipement = true,
+ usableInBattle = false,
+ usableOnMap = false,
+ affectEverybody = false,
+ duration = 0
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/gloves/darkgloves.lua b/sonic-bluestreak.love/datas/gamedata/items/gloves/darkgloves.lua
new file mode 100644
index 0000000..f55c44b
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/gloves/darkgloves.lua
@@ -0,0 +1,16 @@
+return {
+ name = "darkgloves",
+ fullname = "Dark Gloves",
+ description = "Gloves engluffed with darkness",
+ conditions = {},
+ effects = {},
+ statsBoost = {
+ attack = 5,
+ hpmax = -10
+ },
+ isEquipement = true,
+ usableInBattle = false,
+ usableOnMap = false,
+ affectEverybody = false,
+ duration = 0
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/init.lua b/sonic-bluestreak.love/datas/gamedata/items/init.lua
new file mode 100644
index 0000000..a742be6
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/init.lua
@@ -0,0 +1,59 @@
+return {
+ [1] = {
+ name = "medicines",
+ fullname = "Medicines",
+ description = "Healing items",
+ inBattle = true,
+ isEquipement = false,
+ },
+ [2] = {
+ name = "powerups",
+ fullname = "Powerups",
+ description = "Helping items usable in battle",
+ inBattle = true,
+ isEquipement = false,
+ },
+ [3] = {
+ name = "wisps",
+ fullname = "Wisps",
+ description = "Little alien creatures that can attack ennemies",
+ inBattle = true,
+ isEquipement = false,
+ },
+ [4] = {
+ name = "gloves",
+ fullname = "Gloves",
+ description = "All equipables gloves",
+ inBattle = false,
+ isEquipement = true,
+ },
+ [5] = {
+ name = "shoes",
+ fullname = "Shoes",
+ description = "All equipables shoes",
+ inBattle = false,
+ isEquipement = true,
+ },
+ [6] = {
+ name = "accessories",
+ fullname = "Accessories",
+ description = "All equipables accessories",
+ inBattle = false,
+ isEquipement = true,
+ },
+ [7] = {
+ name = "chao",
+ fullname = "Chao's Items",
+ description = "All chao-related items",
+ inBattle = false,
+ isEquipement = false,
+ },
+ [8] = {
+ name = "quest",
+ fullname = "Quest Items",
+ description = "All quest items",
+ inBattle = false,
+ isEquipement = false,
+ },
+
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/antidote.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/antidote.lua
new file mode 100644
index 0000000..154b3fd
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/antidote.lua
@@ -0,0 +1,14 @@
+return {
+ name = "antidote",
+ fullname = "Antidote",
+ description = "A medicine that heal a character from poison",
+ conditions = {
+ {"status", "poison", true},
+ },
+ effects= {
+ {"setStatus", "poison", false},
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/awakener.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/awakener.lua
new file mode 100644
index 0000000..fcf3227
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/awakener.lua
@@ -0,0 +1,14 @@
+return {
+ name = "awakener",
+ fullname = "Awakener",
+ description = "A medicine that awaken an asleep character.",
+ conditions = {
+ {"status", "sleep", true}
+ },
+ effects= {
+ {"setStatus", "sleep", false}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/chilidog.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/chilidog.lua
new file mode 100644
index 0000000..94caf6f
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/chilidog.lua
@@ -0,0 +1,14 @@
+return {
+ name = "chilidog",
+ fullname = "Chili Dog",
+ description = "Sonic's favorite meal, complete with jalapeños. Heal a bit",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "hp", "fixed", 10}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/cureallspray.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/cureallspray.lua
new file mode 100644
index 0000000..fd85eb4
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/cureallspray.lua
@@ -0,0 +1,15 @@
+return {
+ name = "cureallspray",
+ fullname = "Cure-All Spray",
+ description = "A medicine that cure every illness",
+ conditions = {
+ {"status", "haveNegative", true},
+ {"status", "ko", false},
+ },
+ effects= {
+ {"setStatus", "allNegative", false}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/defenserestorer.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/defenserestorer.lua
new file mode 100644
index 0000000..8aae7bf
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/defenserestorer.lua
@@ -0,0 +1,14 @@
+return {
+ name = "defenserestorer",
+ fullname = "Defense Restorer",
+ description = "A medicine that restore a character's defense",
+ conditions = {
+ {"status", "vulnerable", true}
+ },
+ effects= {
+ {"setStatus", "vulnerable", false}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/eggdog.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/eggdog.lua
new file mode 100644
index 0000000..e3d02e5
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/eggdog.lua
@@ -0,0 +1,14 @@
+return {
+ name = "eggdog",
+ fullname = "Egg Dog",
+ description = "Eggman's best hot dog, complete with motor oil. Doesn't really heal.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "hp", "fixed", -1}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/healthfruit.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthfruit.lua
new file mode 100644
index 0000000..3756131
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthfruit.lua
@@ -0,0 +1,14 @@
+return {
+ name = "healthfruit",
+ fullname = "Health Fruit",
+ description = "The fruit of a plant known for its healing effects. Heal completely.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "hp", "percent", 100}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/healthleaf.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthleaf.lua
new file mode 100644
index 0000000..268b3d5
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthleaf.lua
@@ -0,0 +1,14 @@
+return {
+ name = "healthleaf",
+ fullname = "Health Leaf",
+ description = "The leaf of a plant known for its healing effects. Heal a good amount.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "hp", "fixed", 100}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/healthroot.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthroot.lua
new file mode 100644
index 0000000..470bd9b
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthroot.lua
@@ -0,0 +1,14 @@
+return {
+ name = "healthroot",
+ fullname = "Health Root",
+ description = "The root of a plant known for its healing effects. Heal grealty.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "hp", "fixed", 250}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/healthseed.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthseed.lua
new file mode 100644
index 0000000..956dd20
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/healthseed.lua
@@ -0,0 +1,14 @@
+return {
+ name = "healthseed",
+ fullname = "Health Seed",
+ description = "The seed of a plant known for its healing effects. Heal a bit",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "hp", "fixed", 50}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/healunit.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/healunit.lua
new file mode 100644
index 0000000..fb348c8
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/healunit.lua
@@ -0,0 +1,15 @@
+return {
+ name = "healunit",
+ fullname = "Heal Unit",
+ description = "A special medicine that restore entirely the body.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "allNegative", false},
+ {"heal", "hp", "percent", 100}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/medemmiter.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/medemmiter.lua
new file mode 100644
index 0000000..98f1600
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/medemmiter.lua
@@ -0,0 +1,14 @@
+return {
+ name = "medemmiter",
+ fullname = "Med Emmiter",
+ description = "A device that produces an energy pulse that heals all party members",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "hp", "fixed", 100}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=true,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/movementrestorer.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/movementrestorer.lua
new file mode 100644
index 0000000..2be253d
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/movementrestorer.lua
@@ -0,0 +1,14 @@
+return {
+ name = "movementrestorer",
+ fullname = "Movement Restorer",
+ description = "A medicine that restore a character's movement capacity.",
+ conditions = {
+ {"status", "paralysis", true}
+ },
+ effects= {
+ {"setStatus", "paralysis", false}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/refresherwave.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/refresherwave.lua
new file mode 100644
index 0000000..a94c017
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/refresherwave.lua
@@ -0,0 +1,14 @@
+return {
+ name = "refresherwave",
+ fullname = "Refresher Wave",
+ description = "A device that produces an energy pulse that invigorates all party members",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "mp", "fixed", 20}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=true,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/revivalring.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/revivalring.lua
new file mode 100644
index 0000000..79b675f
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/revivalring.lua
@@ -0,0 +1,15 @@
+return {
+ name = "revivalring",
+ fullname = "Revival Ring",
+ description = "A ring with the power to put the fallen back on their feet. Revives partially. ",
+ conditions = {
+ {"status", "ko", true}
+ },
+ effects= {
+ {"setStatus", "ko", false},
+ {"heal", "hp", "percent", 25}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/ringoflife.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/ringoflife.lua
new file mode 100644
index 0000000..a26c1df
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/ringoflife.lua
@@ -0,0 +1,15 @@
+return {
+ name = "ringoflife",
+ fullname = "Ring of Life",
+ description = "A ring with the power to put the fallen back into fighting shape. Revives entirely.",
+ conditions = {
+ {"status", "ko", true}
+ },
+ effects= {
+ {"setStatus", "ko", false},
+ {"heal", "hp", "percent", 100}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/strenthrestorer.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/strenthrestorer.lua
new file mode 100644
index 0000000..02e3e83
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/strenthrestorer.lua
@@ -0,0 +1,14 @@
+return {
+ name = "strenthrestorer",
+ fullname = "Strenth Restorer",
+ description = "A medicine that restore a character's strenth",
+ conditions = {
+ {"status", "weakened", true}
+ },
+ effects= {
+ {"setStatus", "weakened", false}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicdrink.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicdrink.lua
new file mode 100644
index 0000000..a10f469
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicdrink.lua
@@ -0,0 +1,14 @@
+return {
+ name = "tonicdrink",
+ fullname = "Tonic Drink",
+ description = "A refreshing formula that invigorates mind and body.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "mp", "fixed", 10}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicinfusion.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicinfusion.lua
new file mode 100644
index 0000000..68ea245
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicinfusion.lua
@@ -0,0 +1,14 @@
+return {
+ name = "tonicinfusion",
+ fullname = "Tonic Infusion",
+ description = "A refreshing formula that invigorates mind and body.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "mp", "fixed", 25}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicpotion.lua b/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicpotion.lua
new file mode 100644
index 0000000..1f587c3
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/medicines/tonicpotion.lua
@@ -0,0 +1,14 @@
+return {
+ name = "tonicpotion",
+ fullname = "Tonic Potion",
+ description = "A refreshing formula that invigorates mind and body.",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"heal", "mp", "fixed", 50}
+ },
+ usableInBattle=true,
+ usableOnMap=true,
+ affectEverybody=false,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/cloverjuice.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/cloverjuice.lua
new file mode 100644
index 0000000..c386e73
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/cloverjuice.lua
@@ -0,0 +1,15 @@
+return {
+ name = "cloverjuice",
+ fullname = "Clover Juice",
+ description = "The potion to take before going to Casinopolis",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "lucky", true}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=5,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/fireshield.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/fireshield.lua
new file mode 100644
index 0000000..03d3eda
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/fireshield.lua
@@ -0,0 +1,16 @@
+return {
+ name = "fireshield",
+ fullname = "Fire Shield",
+ description = "A special shield to protect a hero from fire damage",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "fortified", true},
+ {"protectElement", "fire"}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=3,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/focusrock.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/focusrock.lua
new file mode 100644
index 0000000..42e2053
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/focusrock.lua
@@ -0,0 +1,15 @@
+return {
+ name = "focusrock",
+ fullname = "Focus Rock",
+ description = "A curious rock that makes one more focused",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "focus", true}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=5,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/goldshield.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/goldshield.lua
new file mode 100644
index 0000000..e9e8822
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/goldshield.lua
@@ -0,0 +1,16 @@
+return {
+ name = "fireshield",
+ fullname = "Fire Shield",
+ description = "A special shield to protect a hero and give him back some pp",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "fortified", true},
+ {"regen", "pp", 6}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=3,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/immunitybooster.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/immunitybooster.lua
new file mode 100644
index 0000000..6521446
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/immunitybooster.lua
@@ -0,0 +1,15 @@
+return {
+ name = "immunitybooster",
+ fullname = "Immunity Booster",
+ description = "A rather immediate yet short-term vaccine",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"blockStatus", "negative"}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=5,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/invincibility.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/invincibility.lua
new file mode 100644
index 0000000..d65462e
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/invincibility.lua
@@ -0,0 +1,15 @@
+return {
+ name = "invincibility",
+ fullname = "Invincibility",
+ description = "Make a character",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "invincibility", true}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=1,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/powerring.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/powerring.lua
new file mode 100644
index 0000000..bb0b2d3
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/powerring.lua
@@ -0,0 +1,15 @@
+return {
+ name = "powerring",
+ fullname = "Power Ring",
+ description = "A fantastic ring infused with Chaos Energy",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "hyper", true}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=5,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/psychicwater.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/psychicwater.lua
new file mode 100644
index 0000000..0483a83
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/psychicwater.lua
@@ -0,0 +1,15 @@
+return {
+ name = "psychicwater",
+ fullname = "Psychic Water",
+ description = "A strange infusion that enhance stealth",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "hidden", true}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=5,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/shield.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/shield.lua
new file mode 100644
index 0000000..eec0862
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/shield.lua
@@ -0,0 +1,15 @@
+return {
+ name = "shield",
+ fullname = "Shield",
+ description = "A basic yet effective shield to protect a hero",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "fortified", true}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=5,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/speedup.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/speedup.lua
new file mode 100644
index 0000000..467c99d
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/speedup.lua
@@ -0,0 +1,15 @@
+return {
+ name = "speedup",
+ fullname = "Speed Up",
+ description = "Improve a character ability to attack several time",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "speedup", true}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=1,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/thundershield.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/thundershield.lua
new file mode 100644
index 0000000..eb260a4
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/thundershield.lua
@@ -0,0 +1,16 @@
+return {
+ name = "thundershield",
+ fullname = "Thunder Shield",
+ description = "A special shield to protect a hero from lightning damage",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "fortified", true},
+ {"protectElement", "light"}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=3,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/powerups/watershield.lua b/sonic-bluestreak.love/datas/gamedata/items/powerups/watershield.lua
new file mode 100644
index 0000000..b7c10f2
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/powerups/watershield.lua
@@ -0,0 +1,16 @@
+return {
+ name = "watershield",
+ fullname = "Water Shield",
+ description = "A special shield to protect a hero from water damage",
+ conditions = {
+ {"status", "ko", false}
+ },
+ effects= {
+ {"setStatus", "fortified", true},
+ {"protectElement", "water"}
+ },
+ usableInBattle=true,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=3,
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/items/shoes/lightsneakers.lua b/sonic-bluestreak.love/datas/gamedata/items/shoes/lightsneakers.lua
new file mode 100644
index 0000000..e89edfa
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/shoes/lightsneakers.lua
@@ -0,0 +1,17 @@
+return {
+ name = "lightsneakers",
+ fullname = "Light Sneakers",
+ description = "Simple sneakers that protect a little",
+ conditions = {},
+ effects= {},
+ statsBoost = {
+ speed = 2,
+ defense = 1
+ },
+ isEquipement = true,
+ usableInBattle=false,
+ usableOnMap=false,
+ affectEverybody=false,
+ duration=0,
+ }
+
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/items/shoes/slowmoshoes.lua b/sonic-bluestreak.love/datas/gamedata/items/shoes/slowmoshoes.lua
new file mode 100644
index 0000000..7161e40
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/items/shoes/slowmoshoes.lua
@@ -0,0 +1,16 @@
+return {
+ name = "slowmoshoes",
+ fullname = "SlowMo Shoes",
+ description = "Shoes that make you slower",
+ conditions = {},
+ effects = {},
+ statsBoost = {
+ speed = -5,
+ mind = 6
+ },
+ isEquipement = true,
+ usableInBattle = false,
+ usableOnMap = false,
+ affectEverybody = false,
+ duration = 0
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/area/test/grotto.lua b/sonic-bluestreak.love/datas/gamedata/maps/area/test/grotto.lua
new file mode 100644
index 0000000..8960a84
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/area/test/grotto.lua
@@ -0,0 +1,21 @@
+return {
+ areaName = "testmap2",
+ canSave = true,
+ color = {0.3, 0.3, 0.3},
+ maps = {
+ {
+ name = "Not Hidden Grotto",
+ music = "testmap",
+ folder = "test",
+ map = "map",
+ x = 0,
+ y = 0,
+ }
+ },
+ exitTo = {
+ area = "test.plain",
+ x = 21,
+ y = 7,
+ charDir = "down"
+ }
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/area/test/plain.lua b/sonic-bluestreak.love/datas/gamedata/maps/area/test/plain.lua
new file mode 100644
index 0000000..5054091
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/area/test/plain.lua
@@ -0,0 +1,23 @@
+return {
+ areaName = "testmap",
+ canSave = true,
+ color = {0.3, 0.3, 0.3},
+ maps = {
+ {
+ name = "Test Plains Field",
+ music = "testmap",
+ folder = "plain",
+ map = "test",
+ x = 0,
+ y = 0,
+ },
+ {
+ name = "Test Road Zone",
+ music = "testmap2",
+ folder = "plain",
+ map = "test2",
+ x = 0,
+ y = 640,
+ }
+ }
+}
\ No newline at end of file
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/battle/crouge/init.lua b/sonic-bluestreak.love/datas/gamedata/maps/battle/crouge/init.lua
index f485ed8..d1d0918 100644
--- a/sonic-bluestreak.love/datas/gamedata/maps/battle/crouge/init.lua
+++ b/sonic-bluestreak.love/datas/gamedata/maps/battle/crouge/init.lua
@@ -1,5 +1,5 @@
return {
- name = "Chao Ruins",
+ name = "Club Rouge",
blocks = {
{ 56, 128, 16, 96, "top1", "side1"},
{248, 128, 16, 96, "top1", "side1"},
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/battle/init.lua b/sonic-bluestreak.love/datas/gamedata/maps/battle/init.lua
new file mode 100644
index 0000000..5a88bd3
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/battle/init.lua
@@ -0,0 +1 @@
+return {"aroom", "bhighway", "crouge", "cruins", "ebeach", "ghill", "hsummit", "library", "mdepot", "tlab"}
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/shoot/zones.lua b/sonic-bluestreak.love/datas/gamedata/maps/shoot/zones.lua
index 35ec57c..75e10b0 100644
--- a/sonic-bluestreak.love/datas/gamedata/maps/shoot/zones.lua
+++ b/sonic-bluestreak.love/datas/gamedata/maps/shoot/zones.lua
@@ -1,37 +1,44 @@
return {
["forest"] = {
name = "Jade Forest",
- tiles = 4,
+ borders = 0,
+ tiles = 0,
background = "forest"
},
["city"] ={
name = "Diamond Highway",
+ borders = 1,
tiles = 1,
background = "city"
},
["tunnel"] ={
name = "Peridot Tunnel",
+ borders = 2,
tiles = 2,
background = "tunnel",
music = nil
},
["mountain"] ={
name = "Pearl Mountain",
+ borders = 3,
tiles = 3,
background = "mountain"
},
- ["coast"] ={
- name = "Olivine Coast",
- tiles = 0,
+ ["hills"] ={
+ name = "Calcite Hills",
+ borders = 4,
+ tiles = 4,
background = "hills"
},
["bridge"] ={
name = "Carnelian Bridge",
+ borders = 5,
tiles = 5,
background = "bridge"
},
["castle"] ={
name = "Ametist Castle",
+ borders = 6,
tiles = 6,
background = "castle",
music = nil
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.lua b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.lua
new file mode 100644
index 0000000..f2242b4
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.lua
@@ -0,0 +1,399 @@
+return {
+ version = "1.4",
+ luaversion = "5.1",
+ tiledversion = "1.4.3",
+ name = "plain1",
+ tilewidth = 16,
+ tileheight = 16,
+ spacing = 0,
+ margin = 0,
+ columns = 8,
+ image = "plain1.png",
+ imagewidth = 128,
+ imageheight = 480,
+ objectalignment = "unspecified",
+ tileoffset = {
+ x = 0,
+ y = 0
+ },
+ grid = {
+ orientation = "orthogonal",
+ width = 16,
+ height = 16
+ },
+ properties = {},
+ terrains = {},
+ tilecount = 240,
+ tiles = {
+ {
+ id = 8,
+ type = "solid"
+ },
+ {
+ id = 9,
+ type = "solid"
+ },
+ {
+ id = 10,
+ type = "solid"
+ },
+ {
+ id = 11,
+ type = "solid"
+ },
+ {
+ id = 16,
+ type = "solid"
+ },
+ {
+ id = 17,
+ type = "solid"
+ },
+ {
+ id = 18,
+ type = "solid"
+ },
+ {
+ id = 19,
+ type = "solid"
+ },
+ {
+ id = 20,
+ type = "solid"
+ },
+ {
+ id = 21,
+ type = "solid"
+ },
+ {
+ id = 22,
+ type = "solid"
+ },
+ {
+ id = 23,
+ type = "solid"
+ },
+ {
+ id = 24,
+ type = "solid"
+ },
+ {
+ id = 26,
+ type = "solid"
+ },
+ {
+ id = 30,
+ type = "solid"
+ },
+ {
+ id = 31,
+ type = "solid"
+ },
+ {
+ id = 32,
+ type = "solid"
+ },
+ {
+ id = 33,
+ type = "solid"
+ },
+ {
+ id = 34,
+ type = "solid",
+ objectGroup = {
+ type = "objectgroup",
+ draworder = "index",
+ id = 2,
+ name = "",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 1,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 0,
+ y = 0,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ }
+ }
+ }
+ },
+ {
+ id = 38,
+ type = "solid"
+ },
+ {
+ id = 40,
+ type = "solid"
+ },
+ {
+ id = 41,
+ type = "solid"
+ },
+ {
+ id = 42,
+ type = "solid"
+ },
+ {
+ id = 43,
+ type = "solid"
+ },
+ {
+ id = 44,
+ type = "solid"
+ },
+ {
+ id = 48,
+ type = "solid"
+ },
+ {
+ id = 50,
+ type = "solid"
+ },
+ {
+ id = 51,
+ type = "solid"
+ },
+ {
+ id = 52,
+ type = "solid"
+ },
+ {
+ id = 53,
+ type = "solid"
+ },
+ {
+ id = 54,
+ type = "solid"
+ },
+ {
+ id = 56,
+ type = "solid"
+ },
+ {
+ id = 57,
+ type = "solid"
+ },
+ {
+ id = 58,
+ type = "solid"
+ },
+ {
+ id = 61,
+ type = "solid"
+ },
+ {
+ id = 62,
+ type = "solid"
+ },
+ {
+ id = 64,
+ type = "solid"
+ },
+ {
+ id = 65,
+ type = "solid"
+ },
+ {
+ id = 66,
+ type = "solid"
+ },
+ {
+ id = 69,
+ type = "solid"
+ },
+ {
+ id = 70,
+ type = "solid"
+ },
+ {
+ id = 72,
+ type = "solid"
+ },
+ {
+ id = 73,
+ type = "solid"
+ },
+ {
+ id = 74,
+ type = "solid"
+ },
+ {
+ id = 75,
+ type = "solid"
+ },
+ {
+ id = 76,
+ type = "solid"
+ },
+ {
+ id = 77,
+ type = "solid"
+ },
+ {
+ id = 80,
+ type = "solid"
+ },
+ {
+ id = 82,
+ type = "solid"
+ },
+ {
+ id = 83,
+ type = "solid"
+ },
+ {
+ id = 84,
+ type = "solid"
+ },
+ {
+ id = 85,
+ type = "solid"
+ },
+ {
+ id = 86,
+ type = "solid"
+ },
+ {
+ id = 88,
+ type = "solid"
+ },
+ {
+ id = 89,
+ type = "solid"
+ },
+ {
+ id = 90,
+ type = "solid"
+ },
+ {
+ id = 93,
+ type = "solid"
+ },
+ {
+ id = 94,
+ type = "solid"
+ },
+ {
+ id = 96,
+ type = "solid"
+ },
+ {
+ id = 97,
+ type = "solid"
+ },
+ {
+ id = 98,
+ type = "solid"
+ },
+ {
+ id = 101,
+ type = "solid"
+ },
+ {
+ id = 102,
+ type = "solid"
+ },
+ {
+ id = 108,
+ type = "solid"
+ },
+ {
+ id = 109,
+ type = "solid"
+ },
+ {
+ id = 110,
+ type = "solid"
+ },
+ {
+ id = 116,
+ type = "solid"
+ },
+ {
+ id = 117,
+ type = "solid"
+ },
+ {
+ id = 118,
+ type = "solid"
+ },
+ {
+ id = 124,
+ type = "solid"
+ },
+ {
+ id = 125,
+ type = "solid"
+ },
+ {
+ id = 126,
+ type = "solid"
+ },
+ {
+ id = 129,
+ type = "solid"
+ },
+ {
+ id = 130,
+ type = "solid"
+ },
+ {
+ id = 132,
+ type = "solid"
+ },
+ {
+ id = 133,
+ type = "solid"
+ },
+ {
+ id = 134,
+ type = "solid"
+ },
+ {
+ id = 140,
+ type = "solid"
+ },
+ {
+ id = 141,
+ type = "solid"
+ },
+ {
+ id = 142,
+ type = "solid"
+ },
+ {
+ id = 148,
+ type = "solid"
+ },
+ {
+ id = 149,
+ type = "solid"
+ },
+ {
+ id = 150,
+ type = "solid"
+ },
+ {
+ id = 156,
+ type = "solid"
+ },
+ {
+ id = 157,
+ type = "solid"
+ },
+ {
+ id = 158,
+ type = "solid"
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.png b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.png
new file mode 100644
index 0000000..495abe2
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.tsx b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.tsx
new file mode 100644
index 0000000..bb05e32
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/plain1.tsx
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test.lua b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test.lua
new file mode 100644
index 0000000..40fb1b3
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test.lua
@@ -0,0 +1,901 @@
+return {
+ version = "1.4",
+ luaversion = "5.1",
+ tiledversion = "1.4.3",
+ orientation = "orthogonal",
+ renderorder = "right-down",
+ width = 30,
+ height = 40,
+ tilewidth = 16,
+ tileheight = 16,
+ nextlayerid = 11,
+ nextobjectid = 26,
+ properties = {},
+ tilesets = {
+ {
+ name = "plain1",
+ firstgid = 1,
+ filename = "plain1.tsx",
+ tilewidth = 16,
+ tileheight = 16,
+ spacing = 0,
+ margin = 0,
+ columns = 8,
+ image = "plain1.png",
+ imagewidth = 128,
+ imageheight = 480,
+ objectalignment = "unspecified",
+ tileoffset = {
+ x = 0,
+ y = 0
+ },
+ grid = {
+ orientation = "orthogonal",
+ width = 16,
+ height = 16
+ },
+ properties = {},
+ terrains = {},
+ tilecount = 240,
+ tiles = {
+ {
+ id = 8,
+ type = "solid"
+ },
+ {
+ id = 9,
+ type = "solid"
+ },
+ {
+ id = 10,
+ type = "solid"
+ },
+ {
+ id = 11,
+ type = "solid"
+ },
+ {
+ id = 16,
+ type = "solid"
+ },
+ {
+ id = 17,
+ type = "solid"
+ },
+ {
+ id = 18,
+ type = "solid"
+ },
+ {
+ id = 19,
+ type = "solid"
+ },
+ {
+ id = 20,
+ type = "solid"
+ },
+ {
+ id = 21,
+ type = "solid"
+ },
+ {
+ id = 22,
+ type = "solid"
+ },
+ {
+ id = 23,
+ type = "solid"
+ },
+ {
+ id = 24,
+ type = "solid"
+ },
+ {
+ id = 26,
+ type = "solid"
+ },
+ {
+ id = 30,
+ type = "solid"
+ },
+ {
+ id = 31,
+ type = "solid"
+ },
+ {
+ id = 32,
+ type = "solid"
+ },
+ {
+ id = 33,
+ type = "solid"
+ },
+ {
+ id = 34,
+ type = "solid",
+ objectGroup = {
+ type = "objectgroup",
+ draworder = "index",
+ id = 2,
+ name = "",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 1,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 0,
+ y = 0,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ }
+ }
+ }
+ },
+ {
+ id = 38,
+ type = "solid"
+ },
+ {
+ id = 40,
+ type = "solid"
+ },
+ {
+ id = 41,
+ type = "solid"
+ },
+ {
+ id = 42,
+ type = "solid"
+ },
+ {
+ id = 43,
+ type = "solid"
+ },
+ {
+ id = 44,
+ type = "solid"
+ },
+ {
+ id = 48,
+ type = "solid"
+ },
+ {
+ id = 50,
+ type = "solid"
+ },
+ {
+ id = 51,
+ type = "solid"
+ },
+ {
+ id = 52,
+ type = "solid"
+ },
+ {
+ id = 53,
+ type = "solid"
+ },
+ {
+ id = 54,
+ type = "solid"
+ },
+ {
+ id = 56,
+ type = "solid"
+ },
+ {
+ id = 57,
+ type = "solid"
+ },
+ {
+ id = 58,
+ type = "solid"
+ },
+ {
+ id = 61,
+ type = "solid"
+ },
+ {
+ id = 62,
+ type = "solid"
+ },
+ {
+ id = 64,
+ type = "solid"
+ },
+ {
+ id = 65,
+ type = "solid"
+ },
+ {
+ id = 66,
+ type = "solid"
+ },
+ {
+ id = 69,
+ type = "solid"
+ },
+ {
+ id = 70,
+ type = "solid"
+ },
+ {
+ id = 72,
+ type = "solid"
+ },
+ {
+ id = 73,
+ type = "solid"
+ },
+ {
+ id = 74,
+ type = "solid"
+ },
+ {
+ id = 75,
+ type = "solid"
+ },
+ {
+ id = 76,
+ type = "solid"
+ },
+ {
+ id = 77,
+ type = "solid"
+ },
+ {
+ id = 80,
+ type = "solid"
+ },
+ {
+ id = 82,
+ type = "solid"
+ },
+ {
+ id = 83,
+ type = "solid"
+ },
+ {
+ id = 84,
+ type = "solid"
+ },
+ {
+ id = 85,
+ type = "solid"
+ },
+ {
+ id = 86,
+ type = "solid"
+ },
+ {
+ id = 88,
+ type = "solid"
+ },
+ {
+ id = 89,
+ type = "solid"
+ },
+ {
+ id = 90,
+ type = "solid"
+ },
+ {
+ id = 93,
+ type = "solid"
+ },
+ {
+ id = 94,
+ type = "solid"
+ },
+ {
+ id = 96,
+ type = "solid"
+ },
+ {
+ id = 97,
+ type = "solid"
+ },
+ {
+ id = 98,
+ type = "solid"
+ },
+ {
+ id = 101,
+ type = "solid"
+ },
+ {
+ id = 102,
+ type = "solid"
+ },
+ {
+ id = 108,
+ type = "solid"
+ },
+ {
+ id = 109,
+ type = "solid"
+ },
+ {
+ id = 110,
+ type = "solid"
+ },
+ {
+ id = 116,
+ type = "solid"
+ },
+ {
+ id = 117,
+ type = "solid"
+ },
+ {
+ id = 118,
+ type = "solid"
+ },
+ {
+ id = 124,
+ type = "solid"
+ },
+ {
+ id = 125,
+ type = "solid"
+ },
+ {
+ id = 126,
+ type = "solid"
+ },
+ {
+ id = 129,
+ type = "solid"
+ },
+ {
+ id = 130,
+ type = "solid"
+ },
+ {
+ id = 132,
+ type = "solid"
+ },
+ {
+ id = 133,
+ type = "solid"
+ },
+ {
+ id = 134,
+ type = "solid"
+ },
+ {
+ id = 140,
+ type = "solid"
+ },
+ {
+ id = 141,
+ type = "solid"
+ },
+ {
+ id = 142,
+ type = "solid"
+ },
+ {
+ id = 148,
+ type = "solid"
+ },
+ {
+ id = 149,
+ type = "solid"
+ },
+ {
+ id = 150,
+ type = "solid"
+ },
+ {
+ id = 156,
+ type = "solid"
+ },
+ {
+ id = 157,
+ type = "solid"
+ },
+ {
+ id = 158,
+ type = "solid"
+ }
+ }
+ }
+ },
+ layers = {
+ {
+ type = "tilelayer",
+ x = 0,
+ y = 0,
+ width = 30,
+ height = 40,
+ id = 1,
+ name = "Calque 2",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ encoding = "lua",
+ data = {
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 90, 87, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 98, 95, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 89, 87, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 97, 95, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 89, 87, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2,
+ 29, 29, 97, 95, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+ 29, 29, 29, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 87, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 86, 90,
+ 29, 29, 29, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 95, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 98,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 83, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 89, 90, 90, 90, 90, 87, 1, 1, 86, 90, 90, 90, 90, 91, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 97, 98, 98, 98, 98, 95, 1, 1, 94, 98, 98, 98, 98, 99, 29
+ }
+ },
+ {
+ type = "tilelayer",
+ x = 0,
+ y = 0,
+ width = 30,
+ height = 40,
+ id = 2,
+ name = "Calque 1",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ encoding = "lua",
+ data = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 58, 58, 58, 58, 58, 58, 58, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66, 66, 66, 66, 66, 66, 66, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 109, 110, 111, 50, 50, 50, 50, 50, 50, 50,
+ 0, 0, 0, 0, 0, 0, 0, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 117, 118, 119, 58, 58, 58, 58, 58, 58, 58,
+ 0, 0, 0, 0, 0, 0, 0, 65, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 125, 126, 127, 66, 66, 66, 66, 66, 66, 66,
+ 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 39, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0, 0, 0, 9, 0,
+ 24, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, 0, 0,
+ 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 39, 0, 0, 0, 0, 39, 0, 0, 0, 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 10,
+ name = "teleporter",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 25,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 336,
+ y = 96,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["area"] = "test.grotto",
+ ["isSolid"] = true,
+ ["needButton"] = true,
+ ["x"] = 13.5,
+ ["y"] = 29
+ }
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 7,
+ name = "ring",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 13,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 112,
+ y = 144,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 14,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 112,
+ y = 176,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 15,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 112,
+ y = 208,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 16,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 112,
+ y = 240,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 17,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 112,
+ y = 272,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 18,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 288,
+ y = 272,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 19,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 320,
+ y = 272,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 20,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 352,
+ y = 272,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 8,
+ name = "itembox",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 24,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 48,
+ y = 64,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["category"] = "medicines",
+ ["item"] = "healthseed",
+ ["number"] = 5
+ }
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 9,
+ name = "ringbox",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 22,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 96,
+ y = 64,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["number"] = 500
+ }
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 6,
+ name = "gizmo",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 4,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 176,
+ y = 112,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["charId"] = 1,
+ ["charset"] = "perso2",
+ ["event"] = "test.espio",
+ ["isSolid"] = true
+ }
+ },
+ {
+ id = 10,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 224,
+ y = 112,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["charId"] = 2,
+ ["charset"] = "perso2",
+ ["event"] = "test.rouge",
+ ["isSolid"] = true
+ }
+ },
+ {
+ id = 11,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 272,
+ y = 112,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["charId"] = 3,
+ ["charset"] = "perso2",
+ ["event"] = "test.mighty",
+ ["isSolid"] = true
+ }
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 3,
+ name = "player",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 1,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 160,
+ y = 176,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["id"] = 1
+ }
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 5,
+ name = "objects",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {}
+ },
+ {
+ type = "tilelayer",
+ x = 0,
+ y = 0,
+ width = 30,
+ height = 40,
+ id = 4,
+ name = "Calque 0",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ encoding = "lua",
+ data = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0, 0, 0, 105, 106, 107, 108, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0, 0, 0, 113, 114, 115, 116, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 122, 123, 124, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test.tmx b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test.tmx
new file mode 100644
index 0000000..3f78ec4
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test.tmx
@@ -0,0 +1,210 @@
+
+
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test2.lua b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test2.lua
new file mode 100644
index 0000000..e7a46f5
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test2.lua
@@ -0,0 +1,791 @@
+return {
+ version = "1.4",
+ luaversion = "5.1",
+ tiledversion = "1.4.3",
+ orientation = "orthogonal",
+ renderorder = "right-down",
+ width = 30,
+ height = 40,
+ tilewidth = 16,
+ tileheight = 16,
+ nextlayerid = 8,
+ nextobjectid = 21,
+ properties = {},
+ tilesets = {
+ {
+ name = "plain1",
+ firstgid = 1,
+ filename = "plain1.tsx",
+ tilewidth = 16,
+ tileheight = 16,
+ spacing = 0,
+ margin = 0,
+ columns = 8,
+ image = "plain1.png",
+ imagewidth = 128,
+ imageheight = 480,
+ objectalignment = "unspecified",
+ tileoffset = {
+ x = 0,
+ y = 0
+ },
+ grid = {
+ orientation = "orthogonal",
+ width = 16,
+ height = 16
+ },
+ properties = {},
+ terrains = {},
+ tilecount = 240,
+ tiles = {
+ {
+ id = 8,
+ type = "solid"
+ },
+ {
+ id = 9,
+ type = "solid"
+ },
+ {
+ id = 10,
+ type = "solid"
+ },
+ {
+ id = 11,
+ type = "solid"
+ },
+ {
+ id = 16,
+ type = "solid"
+ },
+ {
+ id = 17,
+ type = "solid"
+ },
+ {
+ id = 18,
+ type = "solid"
+ },
+ {
+ id = 19,
+ type = "solid"
+ },
+ {
+ id = 20,
+ type = "solid"
+ },
+ {
+ id = 21,
+ type = "solid"
+ },
+ {
+ id = 22,
+ type = "solid"
+ },
+ {
+ id = 23,
+ type = "solid"
+ },
+ {
+ id = 24,
+ type = "solid"
+ },
+ {
+ id = 26,
+ type = "solid"
+ },
+ {
+ id = 30,
+ type = "solid"
+ },
+ {
+ id = 31,
+ type = "solid"
+ },
+ {
+ id = 32,
+ type = "solid"
+ },
+ {
+ id = 33,
+ type = "solid"
+ },
+ {
+ id = 34,
+ type = "solid",
+ objectGroup = {
+ type = "objectgroup",
+ draworder = "index",
+ id = 2,
+ name = "",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 1,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 0,
+ y = 0,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ }
+ }
+ }
+ },
+ {
+ id = 38,
+ type = "solid"
+ },
+ {
+ id = 40,
+ type = "solid"
+ },
+ {
+ id = 41,
+ type = "solid"
+ },
+ {
+ id = 42,
+ type = "solid"
+ },
+ {
+ id = 43,
+ type = "solid"
+ },
+ {
+ id = 44,
+ type = "solid"
+ },
+ {
+ id = 48,
+ type = "solid"
+ },
+ {
+ id = 50,
+ type = "solid"
+ },
+ {
+ id = 51,
+ type = "solid"
+ },
+ {
+ id = 52,
+ type = "solid"
+ },
+ {
+ id = 53,
+ type = "solid"
+ },
+ {
+ id = 54,
+ type = "solid"
+ },
+ {
+ id = 56,
+ type = "solid"
+ },
+ {
+ id = 57,
+ type = "solid"
+ },
+ {
+ id = 58,
+ type = "solid"
+ },
+ {
+ id = 61,
+ type = "solid"
+ },
+ {
+ id = 62,
+ type = "solid"
+ },
+ {
+ id = 64,
+ type = "solid"
+ },
+ {
+ id = 65,
+ type = "solid"
+ },
+ {
+ id = 66,
+ type = "solid"
+ },
+ {
+ id = 69,
+ type = "solid"
+ },
+ {
+ id = 70,
+ type = "solid"
+ },
+ {
+ id = 72,
+ type = "solid"
+ },
+ {
+ id = 73,
+ type = "solid"
+ },
+ {
+ id = 74,
+ type = "solid"
+ },
+ {
+ id = 75,
+ type = "solid"
+ },
+ {
+ id = 76,
+ type = "solid"
+ },
+ {
+ id = 77,
+ type = "solid"
+ },
+ {
+ id = 80,
+ type = "solid"
+ },
+ {
+ id = 82,
+ type = "solid"
+ },
+ {
+ id = 83,
+ type = "solid"
+ },
+ {
+ id = 84,
+ type = "solid"
+ },
+ {
+ id = 85,
+ type = "solid"
+ },
+ {
+ id = 86,
+ type = "solid"
+ },
+ {
+ id = 88,
+ type = "solid"
+ },
+ {
+ id = 89,
+ type = "solid"
+ },
+ {
+ id = 90,
+ type = "solid"
+ },
+ {
+ id = 93,
+ type = "solid"
+ },
+ {
+ id = 94,
+ type = "solid"
+ },
+ {
+ id = 96,
+ type = "solid"
+ },
+ {
+ id = 97,
+ type = "solid"
+ },
+ {
+ id = 98,
+ type = "solid"
+ },
+ {
+ id = 101,
+ type = "solid"
+ },
+ {
+ id = 102,
+ type = "solid"
+ },
+ {
+ id = 108,
+ type = "solid"
+ },
+ {
+ id = 109,
+ type = "solid"
+ },
+ {
+ id = 110,
+ type = "solid"
+ },
+ {
+ id = 116,
+ type = "solid"
+ },
+ {
+ id = 117,
+ type = "solid"
+ },
+ {
+ id = 118,
+ type = "solid"
+ },
+ {
+ id = 124,
+ type = "solid"
+ },
+ {
+ id = 125,
+ type = "solid"
+ },
+ {
+ id = 126,
+ type = "solid"
+ },
+ {
+ id = 129,
+ type = "solid"
+ },
+ {
+ id = 130,
+ type = "solid"
+ },
+ {
+ id = 132,
+ type = "solid"
+ },
+ {
+ id = 133,
+ type = "solid"
+ },
+ {
+ id = 134,
+ type = "solid"
+ },
+ {
+ id = 140,
+ type = "solid"
+ },
+ {
+ id = 141,
+ type = "solid"
+ },
+ {
+ id = 142,
+ type = "solid"
+ },
+ {
+ id = 148,
+ type = "solid"
+ },
+ {
+ id = 149,
+ type = "solid"
+ },
+ {
+ id = 150,
+ type = "solid"
+ },
+ {
+ id = 156,
+ type = "solid"
+ },
+ {
+ id = 157,
+ type = "solid"
+ },
+ {
+ id = 158,
+ type = "solid"
+ }
+ }
+ }
+ },
+ layers = {
+ {
+ type = "tilelayer",
+ x = 0,
+ y = 0,
+ width = 30,
+ height = 40,
+ id = 1,
+ name = "Calque de Tuiles 1",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ encoding = "lua",
+ data = {
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 1, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 1, 1, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 73, 103, 1, 1, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 73, 74, 74, 74, 74, 74, 74, 74, 74, 103, 82, 1, 1, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29
+ }
+ },
+ {
+ type = "tilelayer",
+ x = 0,
+ y = 0,
+ width = 30,
+ height = 40,
+ id = 5,
+ name = "Calque de Tuiles 2",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ encoding = "lua",
+ data = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 6,
+ name = "encounter",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 17,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 192,
+ y = 240,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 18,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 336,
+ y = 240,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 2,
+ name = "ring",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 4,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 240,
+ y = 96,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 5,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 288,
+ y = 96,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 6,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 240,
+ y = 112,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 7,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 288,
+ y = 112,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 8,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 240,
+ y = 128,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 9,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 288,
+ y = 128,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 10,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 240,
+ y = 192,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 11,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 256,
+ y = 192,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 12,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 272,
+ y = 192,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 13,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 288,
+ y = 192,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 14,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 304,
+ y = 176,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ },
+ {
+ id = 15,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 224,
+ y = 176,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {}
+ }
+ }
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 3,
+ name = "gizmo",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {}
+ },
+ {
+ type = "objectgroup",
+ draworder = "topdown",
+ id = 7,
+ name = "pnj",
+ visible = true,
+ opacity = 1,
+ offsetx = 0,
+ offsety = 0,
+ properties = {},
+ objects = {
+ {
+ id = 20,
+ name = "",
+ type = "",
+ shape = "rectangle",
+ x = 176,
+ y = 64,
+ width = 16,
+ height = 16,
+ rotation = 0,
+ visible = true,
+ properties = {
+ ["charDir"] = "right",
+ ["charId"] = 5,
+ ["charset"] = "perso",
+ ["isSolid"] = true,
+ ["message1"] = "Sonic, you should stop doing stupid stuff and focus on defeating badnics.",
+ ["message2"] = "What did I say ? Stop fooling around.",
+ ["message4"] = "Seriously Sonic ?",
+ ["message5"] = "STOP. TALKING.",
+ ["message6"] = "You'll do the whole list of message, don't you ?",
+ ["message7"] = "...",
+ ["message8"] = "Well, so I'll give you some information. The story of this game will be shitty.",
+ ["message9"] = "Especially the name. Sonic Radiance ? Is it a friggin Fire Emblem game ?",
+ ["messageType"] = "list",
+ ["title"] = "Shadow"
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test2.tmx b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test2.tmx
new file mode 100644
index 0000000..7aee811
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/plain/test2.tmx
@@ -0,0 +1,134 @@
+
+
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/stuff/tilescreen.png b/sonic-bluestreak.love/datas/gamedata/maps/sti/stuff/tilescreen.png
new file mode 100644
index 0000000..c388932
Binary files /dev/null and b/sonic-bluestreak.love/datas/gamedata/maps/sti/stuff/tilescreen.png differ
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/stuff/tilescreen.tmx b/sonic-bluestreak.love/datas/gamedata/maps/sti/stuff/tilescreen.tmx
new file mode 100644
index 0000000..48ba9bc
--- /dev/null
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/stuff/tilescreen.tmx
@@ -0,0 +1,343 @@
+
+
diff --git a/sonic-bluestreak.love/datas/gamedata/maps/sti/test/arena.tmx b/sonic-bluestreak.love/datas/gamedata/maps/sti/test/arena.tmx
index 29dee38..5e54ddb 100644
--- a/sonic-bluestreak.love/datas/gamedata/maps/sti/test/arena.tmx
+++ b/sonic-bluestreak.love/datas/gamedata/maps/sti/test/arena.tmx
@@ -1,108 +1,183 @@
-