Compare commits

...

2 Commits

18 changed files with 1907 additions and 1580 deletions

View File

@ -7,6 +7,7 @@ edition = "2021"
askama = "0.12.1" askama = "0.12.1"
serde = { version = "1.0.203", features = ["derive"] } serde = { version = "1.0.203", features = ["derive"] }
serde_json = "1.0.118" serde_json = "1.0.118"
toml = "0.8.19"
tracing = "0.1.40" tracing = "0.1.40"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
itertools = "0.13.0" itertools = "0.13.0"

View File

@ -1,214 +0,0 @@
{
"spirit": "Hebby Repp",
"order": 6,
"routes": [
{
"id": 0,
"name": "Wheeler",
"color": "purple",
"tips": [
{
"to": "Salamander",
"tip": "Head"
},
{
"to": "Serpent",
"tip": "Head"
},
{
"to": "Hydra",
"tip": "Chest"
}
]
},
{
"id": 1,
"name": "Salamander",
"color": "yellow",
"tips": [
{
"to": "Hydra",
"tip": "Head"
},
{
"to": "Serpent",
"tip": "Head"
},
{
"to": "Wheeler",
"tip": "Chest"
}
]
},
{
"id": 2,
"name": "Serpent",
"color": "blue",
"tips": [
{
"to": "Wheeler",
"tip": "Head"
},
{
"to": "Hydra",
"tip": "Head"
},
{
"to": "Salamander",
"tip": "Tail"
}
]
},
{
"id": 3,
"name": "Hydra",
"color": "green",
"tips": [
{
"to": "Salamander",
"tip": "Head"
},
{
"to": "Wheeler",
"tip": "Head"
},
{
"to": "Serpent",
"tip": "Chest"
}
]
}
],
"abilities": [
{
"name": "Start",
"pos": "A1",
"type": "Start",
"price": "",
"path": ["E"]
},
{
"name": "Fire Screen",
"pos": "A4",
"type": "Stat",
"price": "60 LP",
"route": 0,
"path": ["E", "S"]
},
{
"name": "Defense Boost",
"pos": "A5",
"type": "Stat",
"price": "100 LP",
"route": 0,
"path": ["N"]
},
{
"name": "Fire",
"pos": "B1",
"type": "Magic",
"price": "10 LP",
"path": ["W", "E"]
},
{
"name": "Fire Screen",
"pos": "B3",
"type": "Stat",
"price": "20 LP",
"path": ["E", "S"]
},
{
"name": "Fire Boost",
"pos": "B4",
"type": "Stat",
"price": "50 LP",
"path": ["N", "W", "S"]
},
{
"name": "Fire Screen",
"pos": "B5",
"type": "Stat",
"price": "40 LP",
"path": ["N", "E"]
},
{
"name": "HP Boost",
"pos": "C1",
"type": "Stat",
"price": "30 LP",
"path": ["W", "E"]
},
{
"name": "Magic Boost",
"pos": "C3",
"type": "Stat",
"price": "100 LP",
"path": ["W", "E"]
},
{
"name": "Fire Boost",
"pos": "C5",
"type": "Stat",
"price": "100 LP",
"path": ["W", "E"]
},
{
"name": "Fire Boost",
"pos": "D1",
"type": "Stat",
"price": "30 LP",
"path": ["W", "S"]
},
{
"name": "Slow Block",
"pos": "D2",
"type": "Stat",
"price": "30 LP",
"path": ["N", "S"]
},
{
"name": "Magic Haste",
"pos": "D3",
"type": "Stat",
"price": "30 LP",
"path": ["N", "W", "E"]
},
{
"name": "Fira",
"pos": "D4",
"type": "Magic",
"price": "100 LP",
"path": ["S"]
},
{
"name": "Checkpoint",
"pos": "D5",
"type": "Checkpoint",
"price": "Link x3",
"path": ["W", "N", "S"]
},
{
"name": "Fire Windmill",
"pos": "D6",
"type": "Attack",
"price": "150 LP",
"path": ["N"]
},
{
"name": "HP Boost",
"pos": "E3",
"type": "Stat",
"price": "50 LP",
"route": 1,
"path": ["W", "E"]
},
{
"name": "Magic Haste",
"pos": "F3",
"type": "Stat",
"price": "50 LP",
"route": 1,
"path": ["W"]
}
]
}

View File

@ -0,0 +1,200 @@
spirit = "Hebby Repp"
order = 6
[[routes]]
id = 0
name = "Wheeler"
color = "purple"
[[routes.tips]]
to = "Salamander"
tip = "Head"
[[routes.tips]]
to = "Serpent"
tip = "Head"
[[routes.tips]]
to = "Hydra"
tip = "Chest"
[[routes]]
id = 1
name = "Salamander"
color = "yellow"
[[routes.tips]]
to = "Hydra"
tip = "Head"
[[routes.tips]]
to = "Serpent"
tip = "Head"
[[routes.tips]]
to = "Wheeler"
tip = "Chest"
[[routes]]
id = 2
name = "Serpent"
color = "blue"
[[routes.tips]]
to = "Wheeler"
tip = "Head"
[[routes.tips]]
to = "Hydra"
tip = "Head"
[[routes.tips]]
to = "Salamander"
tip = "Tail"
[[routes]]
id = 3
name = "Hydra"
color = "green"
[[routes.tips]]
to = "Salamander"
tip = "Head"
[[routes.tips]]
to = "Wheeler"
tip = "Head"
[[routes.tips]]
to = "Serpent"
tip = "Chest"
[[abilities]]
name = "Start"
pos = "A1"
type = "Start"
price = ""
path = ["E"]
[[abilities]]
name = "Fire Screen"
pos = "A4"
type = "Stat"
price = "60 LP"
route = 0
path = ["E", "S"]
[[abilities]]
name = "Defense Boost"
pos = "A5"
type = "Stat"
price = "100 LP"
route = 0
path = ["N"]
[[abilities]]
name = "Fire"
pos = "B1"
type = "Magic"
price = "10 LP"
path = ["W", "E"]
[[abilities]]
name = "Fire Screen"
pos = "B3"
type = "Stat"
price = "20 LP"
path = ["E", "S"]
[[abilities]]
name = "Fire Boost"
pos = "B4"
type = "Stat"
price = "50 LP"
path = ["N", "W", "S"]
[[abilities]]
name = "Fire Screen"
pos = "B5"
type = "Stat"
price = "40 LP"
path = ["N", "E"]
[[abilities]]
name = "HP Boost"
pos = "C1"
type = "Stat"
price = "30 LP"
path = ["W", "E"]
[[abilities]]
name = "Magic Boost"
pos = "C3"
type = "Stat"
price = "100 LP"
path = ["W", "E"]
[[abilities]]
name = "Fire Boost"
pos = "C5"
type = "Stat"
price = "100 LP"
path = ["W", "E"]
[[abilities]]
name = "Fire Boost"
pos = "D1"
type = "Stat"
price = "30 LP"
path = ["W", "S"]
[[abilities]]
name = "Slow Block"
pos = "D2"
type = "Stat"
price = "30 LP"
path = ["N", "S"]
[[abilities]]
name = "Magic Haste"
pos = "D3"
type = "Stat"
price = "30 LP"
path = ["N", "W", "E"]
[[abilities]]
name = "Fira"
pos = "D4"
type = "Magic"
price = "100 LP"
path = ["S"]
[[abilities]]
name = "Checkpoint"
pos = "D5"
type = "Checkpoint"
price = "Link x3"
path = ["W", "N", "S"]
[[abilities]]
name = "Fire Windmill"
pos = "D6"
type = "Attack"
price = "150 LP"
path = ["N"]
[[abilities]]
name = "HP Boost"
pos = "E3"
type = "Stat"
price = "50 LP"
route = 1
path = ["W", "E"]
[[abilities]]
name = "Magic Haste"
pos = "F3"
type = "Stat"
price = "50 LP"
route = 1
path = ["W"]

View File

@ -1,221 +0,0 @@
{
"spirit": "Komory Bat",
"order": 4,
"routes": [
{
"id": 0,
"name": "Rescuer",
"color": "blue",
"tips": [
{
"to": "Aggro",
"tip": "Face"
},
{
"to": "Wingman",
"tip": "Face"
},
{
"to": "Saboteur",
"tip": "Ears"
}
]
},
{
"id": 1,
"name": "Aggro",
"color": "purple",
"tips": [
{
"to": "Rescuer",
"tip": "Face"
},
{
"to": "Wingman",
"tip": "Wings"
},
{
"to": "Saboteur",
"tip": "Face"
}
]
},
{
"id": 2,
"name": "Wingman",
"color": "yellow",
"tips": [
{
"to": "Rescuer",
"tip": "Face"
},
{
"to": "Aggro",
"tip": "Ears"
},
{
"to": "Saboteur",
"tip": "Wings"
}
]
},
{
"id": 3,
"name": "Saboteur",
"color": "green",
"tips": [
{
"to": "Rescuer",
"tip": "Face"
},
{
"to": "Aggro",
"tip": "Ears"
},
{
"to": "Wingman",
"tip": "Ears"
}
]
}
],
"abilities": [
{
"name": "Start",
"pos": "A3",
"type": "Start",
"price": "",
"path": ["E"]
},
{
"name": "Waking Dream",
"pos": "B3",
"type": "Spirit",
"price": "10 LP",
"path": ["W", "E"]
},
{
"name": "Checkpoint",
"pos": "C1",
"type": "Checkpoint",
"price": "Link x2",
"path": ["E", "S"]
},
{
"name": "Zero Gravity",
"pos": "C2",
"type": "Magic",
"price": "50 LP",
"path": ["N", "E", "S"]
},
{
"name": "Confuse",
"pos": "C3",
"type": "Magic",
"price": "50 LP",
"path": ["S", "N", "W", "E"]
},
{
"name": "Dark Screen",
"pos": "C4",
"type": "Stat",
"price": "20 LP",
"path": ["N", "E", "S"]
},
{
"name": "Magic Haste",
"pos": "C5",
"type": "Stat",
"price": "50 LP",
"route": 0,
"path": ["N", "E"]
},
{
"name": "Zero Gravira",
"pos": "D1",
"type": "Magic",
"price": "100 LP",
"path": ["W"]
},
{
"name": "Confusion Block",
"pos": "D2",
"type": "Stat",
"price": "30 LP",
"path": ["W", "S"]
},
{
"name": "Drain Dive",
"pos": "D3",
"type": "Attack",
"price": "50 LP",
"path": ["N", "S", "W", "E"]
},
{
"name": "Magic Boost",
"pos": "D4",
"type": "Stat",
"price": "100 LP",
"path": ["W", "N", "E"]
},
{
"name": "Magic Haste",
"pos": "D5",
"type": "Stat",
"price": "100 LP",
"route": 0,
"path": ["W"]
},
{
"name": "Attack Boost",
"pos": "E2",
"type": "Stat",
"price": "100 LP",
"path": ["S"]
},
{
"name": "Magic Haste",
"pos": "E3",
"type": "Stat",
"price": "30 LP",
"path": ["W", "E", "N"]
},
{
"name": "Attack Haste",
"pos": "E4",
"type": "Stat",
"price": "30 LP",
"route": 1,
"path": ["W", "E"]
},
{
"name": "Dark Screen",
"pos": "F3",
"type": "Stat",
"price": "40 LP",
"path": ["W", "E"]
},
{
"name": "Attack Haste",
"pos": "F4",
"type": "Stat",
"price": "50 LP",
"route": 1,
"path": ["W"]
},
{
"name": "Checkpoint",
"pos": "G3",
"type": "Checkpoint",
"price": "Link x2",
"path": ["W", "E"]
},
{
"name": "Confusing Strike",
"pos": "H3",
"type": "Attack",
"price": "100 LP",
"path": ["W"]
}
]
}

View File

@ -0,0 +1,207 @@
spirit = "Komory Bat"
order = 4
[[routes]]
id = 0
name = "Rescuer"
color = "blue"
[[routes.tips]]
to = "Aggro"
tip = "Face"
[[routes.tips]]
to = "Wingman"
tip = "Face"
[[routes.tips]]
to = "Saboteur"
tip = "Ears"
[[routes]]
id = 1
name = "Aggro"
color = "purple"
[[routes.tips]]
to = "Rescuer"
tip = "Face"
[[routes.tips]]
to = "Wingman"
tip = "Wings"
[[routes.tips]]
to = "Saboteur"
tip = "Face"
[[routes]]
id = 2
name = "Wingman"
color = "yellow"
[[routes.tips]]
to = "Rescuer"
tip = "Face"
[[routes.tips]]
to = "Aggro"
tip = "Ears"
[[routes.tips]]
to = "Saboteur"
tip = "Wings"
[[routes]]
id = 3
name = "Saboteur"
color = "green"
[[routes.tips]]
to = "Rescuer"
tip = "Face"
[[routes.tips]]
to = "Aggro"
tip = "Ears"
[[routes.tips]]
to = "Wingman"
tip = "Ears"
[[abilities]]
name = "Start"
pos = "A3"
type = "Start"
price = ""
path = ["E"]
[[abilities]]
name = "Waking Dream"
pos = "B3"
type = "Spirit"
price = "10 LP"
path = ["W", "E"]
[[abilities]]
name = "Checkpoint"
pos = "C1"
type = "Checkpoint"
price = "Link x2"
path = ["E", "S"]
[[abilities]]
name = "Zero Gravity"
pos = "C2"
type = "Magic"
price = "50 LP"
path = ["N", "E", "S"]
[[abilities]]
name = "Confuse"
pos = "C3"
type = "Magic"
price = "50 LP"
path = ["S", "N", "W", "E"]
[[abilities]]
name = "Dark Screen"
pos = "C4"
type = "Stat"
price = "20 LP"
path = ["N", "E", "S"]
[[abilities]]
name = "Magic Haste"
pos = "C5"
type = "Stat"
price = "50 LP"
route = 0
path = ["N", "E"]
[[abilities]]
name = "Zero Gravira"
pos = "D1"
type = "Magic"
price = "100 LP"
path = ["W"]
[[abilities]]
name = "Confusion Block"
pos = "D2"
type = "Stat"
price = "30 LP"
path = ["W", "S"]
[[abilities]]
name = "Drain Dive"
pos = "D3"
type = "Attack"
price = "50 LP"
path = ["N", "S", "W", "E"]
[[abilities]]
name = "Magic Boost"
pos = "D4"
type = "Stat"
price = "100 LP"
path = ["W", "N", "E"]
[[abilities]]
name = "Magic Haste"
pos = "D5"
type = "Stat"
price = "100 LP"
route = 0
path = ["W"]
[[abilities]]
name = "Attack Boost"
pos = "E2"
type = "Stat"
price = "100 LP"
path = ["S"]
[[abilities]]
name = "Magic Haste"
pos = "E3"
type = "Stat"
price = "30 LP"
path = ["W", "E", "N"]
[[abilities]]
name = "Attack Haste"
pos = "E4"
type = "Stat"
price = "30 LP"
route = 1
path = ["W", "E"]
[[abilities]]
name = "Dark Screen"
pos = "F3"
type = "Stat"
price = "40 LP"
path = ["W", "E"]
[[abilities]]
name = "Attack Haste"
pos = "F4"
type = "Stat"
price = "50 LP"
route = 1
path = ["W"]
[[abilities]]
name = "Checkpoint"
pos = "G3"
type = "Checkpoint"
price = "Link x2"
path = ["W", "E"]
[[abilities]]
name = "Confusing Strike"
pos = "H3"
type = "Attack"
price = "100 LP"
path = ["W"]

View File

@ -1,221 +0,0 @@
{
"spirit": "Meow Wow",
"order": 1,
"routes": [
{
"id": 0,
"name": "Stray",
"color": "purple",
"tips": [
{
"to": "Smart Cookie",
"tip": "Tail"
},
{
"to": "Rascal",
"tip": "Face"
},
{
"to": "Sidekick",
"tip": "Legs"
}
]
},
{
"id": 1,
"name": "Smart Cookie",
"color": "blue",
"tips": [
{
"to": "Stray",
"tip": "Tail"
},
{
"to": "Rascal",
"tip": "Tail"
},
{
"to": "Sidekick",
"tip": "Face"
}
]
},
{
"id": 3,
"name": "Rascal",
"color": "yellow",
"tips": [
{
"to": "Stray",
"tip": "Legs"
},
{
"to": "Smart Cookie",
"tip": "Face"
},
{
"to": "Sidekick",
"tip": "Tail"
}
]
},
{
"id": 4,
"name": "Sidekick",
"color": "green",
"tips": [
{
"to": "Stray",
"tip": "Legs"
},
{
"to": "Smart Cookie",
"tip": "Face"
},
{
"to": "Rascal",
"tip": "Tail"
}
]
}
],
"abilities": [
{
"name": "Start",
"pos": "A2",
"type": "Start",
"price": "",
"path": ["E"]
},
{
"name": "Link Critical",
"pos": "B2",
"type": "Spirit",
"price": "10 LP",
"path": ["W", "E"]
},
{
"name": "Magic Haste",
"pos": "C1",
"type": "Stat",
"price": "30 LP",
"path": ["S", "E"]
},
{
"name": "Cure",
"pos": "C2",
"type": "Magic",
"price": "50 LP",
"path": ["N", "W", "E", "S"]
},
{
"name": "Item Boost",
"pos": "C3",
"type": "Stat",
"price": "30 LP",
"path": ["E", "N"]
},
{
"name": "Light Screen",
"pos": "D1",
"type": "Stat",
"price": "20 LP",
"path": ["E", "W"]
},
{
"name": "Checkpoint",
"pos": "D2",
"type": "Checkpoint",
"price": "Level 10",
"path": ["E", "W"]
},
{
"name": "Slow",
"pos": "D3",
"type": "Magic",
"price": "50 LP",
"path": ["E", "W"]
},
{
"name": "Defense Boost",
"pos": "E1",
"type": "Stat",
"price": "100 LP",
"path": ["E", "W"]
},
{
"name": "Cura",
"pos": "E2",
"type": "Magic",
"price": "100 LP",
"path": ["E", "W"]
},
{
"name": "Poison Block",
"pos": "E3",
"type": "Stat",
"price": "30 LP",
"path": ["E", "S", "W"]
},
{
"name": "Spark",
"pos": "E4",
"type": "Magic",
"price": "50 LP",
"path": ["N"]
},
{
"name": "Confusion Block",
"pos": "F1",
"type": "Stat",
"price": "30 LP",
"route": 0,
"path": ["E", "W"]
},
{
"name": "Leaf Bracer",
"pos": "F2",
"type": "Support",
"price": "300 LP",
"path": ["E", "W"]
},
{
"name": "Attack Haste",
"pos": "F3",
"type": "Stat",
"price": "30 LP",
"route": 1,
"path": ["E", "W"]
},
{
"name": "HP Boost",
"pos": "G1",
"type": "Stat",
"price": "30 LP",
"route": 0,
"path": ["W"]
},
{
"name": "Checkpoint",
"pos": "G2",
"type": "Checkpoint",
"price": "Level 25",
"path": ["E", "W"]
},
{
"name": "Magic Boost",
"pos": "G3",
"type": "Stat",
"price": "100 LP",
"route": 1,
"path": ["W"]
},
{
"name": "Curaga",
"pos": "H2",
"type": "Magic",
"price": "150 LP",
"path": ["W"]
}
]
}

View File

@ -0,0 +1,207 @@
spirit = "Meow Wow"
order = 1
[[routes]]
color = "purple"
id = 0
name = "Stray"
[[routes.tips]]
tip = "Tail"
to = "Smart Cookie"
[[routes.tips]]
tip = "Face"
to = "Rascal"
[[routes.tips]]
tip = "Legs"
to = "Sidekick"
[[routes]]
color = "blue"
id = 1
name = "Smart Cookie"
[[routes.tips]]
tip = "Tail"
to = "Stray"
[[routes.tips]]
tip = "Tail"
to = "Rascal"
[[routes.tips]]
tip = "Face"
to = "Sidekick"
[[routes]]
color = "yellow"
id = 3
name = "Rascal"
[[routes.tips]]
tip = "Legs"
to = "Stray"
[[routes.tips]]
tip = "Face"
to = "Smart Cookie"
[[routes.tips]]
tip = "Tail"
to = "Sidekick"
[[routes]]
color = "green"
id = 4
name = "Sidekick"
[[routes.tips]]
tip = "Legs"
to = "Stray"
[[routes.tips]]
tip = "Face"
to = "Smart Cookie"
[[routes.tips]]
tip = "Tail"
to = "Rascal"
[[abilities]]
name = "Start"
path = ["E"]
pos = "A2"
price = ""
type = "Start"
[[abilities]]
name = "Link Critical"
path = ["W", "E"]
pos = "B2"
price = "10 LP"
type = "Spirit"
[[abilities]]
name = "Magic Haste"
path = ["S", "E"]
pos = "C1"
price = "30 LP"
type = "Stat"
[[abilities]]
name = "Cure"
path = ["N", "W", "E", "S"]
pos = "C2"
price = "50 LP"
type = "Magic"
[[abilities]]
name = "Item Boost"
path = ["E", "N"]
pos = "C3"
price = "30 LP"
type = "Stat"
[[abilities]]
name = "Light Screen"
path = ["E", "W"]
pos = "D1"
price = "20 LP"
type = "Stat"
[[abilities]]
name = "Checkpoint"
path = ["E", "W"]
pos = "D2"
price = "Level 10"
type = "Checkpoint"
[[abilities]]
name = "Slow"
path = ["E", "W"]
pos = "D3"
price = "50 LP"
type = "Magic"
[[abilities]]
name = "Defense Boost"
path = ["E", "W"]
pos = "E1"
price = "100 LP"
type = "Stat"
[[abilities]]
name = "Cura"
path = ["E", "W"]
pos = "E2"
price = "100 LP"
type = "Magic"
[[abilities]]
name = "Poison Block"
path = ["E", "S", "W"]
pos = "E3"
price = "30 LP"
type = "Stat"
[[abilities]]
name = "Spark"
path = ["N"]
pos = "E4"
price = "50 LP"
type = "Magic"
[[abilities]]
name = "Confusion Block"
path = ["E", "W"]
pos = "F1"
price = "30 LP"
route = 0
type = "Stat"
[[abilities]]
name = "Leaf Bracer"
path = ["E", "W"]
pos = "F2"
price = "300 LP"
type = "Support"
[[abilities]]
name = "Attack Haste"
path = ["E", "W"]
pos = "F3"
price = "30 LP"
route = 1
type = "Stat"
[[abilities]]
name = "HP Boost"
path = ["W"]
pos = "G1"
price = "30 LP"
route = 0
type = "Stat"
[[abilities]]
name = "Checkpoint"
path = ["E", "W"]
pos = "G2"
price = "Level 25"
type = "Checkpoint"
[[abilities]]
name = "Magic Boost"
path = ["W"]
pos = "G3"
price = "100 LP"
route = 1
type = "Stat"
[[abilities]]
name = "Curaga"
path = ["W"]
pos = "H2"
price = "150 LP"
type = "Magic"

View File

@ -1,214 +0,0 @@
{
"spirit": "Necho Cat",
"order": 11,
"routes": [
{
"id": 0,
"name": "Diva",
"color": "blue",
"tips": [
{
"to": "Multi-Talent",
"tip": "Face"
},
{
"to": "Dancer",
"tip": "Face"
},
{
"to": "Artist",
"tip": "Body"
}
]
},
{
"id": 1,
"name": "Artist",
"color": "green",
"tips": [
{
"to": "Dancer",
"tip": "Face"
},
{
"to": "Multi-Talent",
"tip": "Face"
},
{
"to": "Diva",
"tip": "Legs"
}
]
},
{
"id": 2,
"name": "Multi-Talent",
"color": "purple",
"tips": [
{
"to": "Diva",
"tip": "Face"
},
{
"to": "Artist",
"tip": "Face"
},
{
"to": "Dancer",
"tip": "Legs"
}
]
},
{
"id": 3,
"name": "Dancer",
"color": "yellow",
"tips": [
{
"to": "Artist",
"tip": "Legs"
},
{
"to": "Multi-Talent",
"tip": "Face"
},
{
"to": "Diva",
"tip": "Legs"
}
]
}
],
"abilities": [
{
"name": "Magic Boost",
"pos": "A4",
"type": "Stat",
"price": "200 LP",
"route": 0,
"path": ["E"]
},
{
"name": "Support Boost",
"pos": "B1",
"type": "Spirit",
"price": "200 LP",
"path": ["E"]
},
{
"name": "HP Boost",
"pos": "B3",
"type": "Stat",
"price": "30 LP",
"path": ["E"]
},
{
"name": "Confusion Block",
"pos": "B4",
"type": "Stat",
"price": "30 LP",
"route": 0,
"path": ["W", "E"]
},
{
"name": "Thunder Boost",
"pos": "B5",
"type": "Stat",
"price": "50 LP",
"path": ["E", "S"]
},
{
"name": "Magic Haste",
"pos": "B6",
"type": "Stat",
"price": "50 LP",
"path": ["E", "N"]
},
{
"name": "Checkpoint",
"pos": "C1",
"type": "Checkpoint",
"price": "Link x3",
"path": ["W", "S"]
},
{
"name": "Magic Boost",
"pos": "C2",
"type": "Stat",
"price": "100 LP",
"path": ["E", "N", "S"]
},
{
"name": "Sleepra",
"pos": "C3",
"type": "Magic",
"price": "100 LP",
"path": ["W", "E", "N", "S"]
},
{
"name": "Magic Haste",
"pos": "C4",
"type": "Stat",
"price": "50 LP",
"path": ["W", "E", "N", "S"]
},
{
"name": "Thunder Boost",
"pos": "C5",
"type": "Stat",
"price": "30 LP",
"path": ["W", "E", "N", "S"]
},
{
"name": "Thunder",
"pos": "C6",
"type": "Magic",
"price": "10 LP",
"path": ["W", "N", "S"]
},
{
"name": "Start",
"pos": "C7",
"type": "Start",
"price": "",
"path": ["N"]
},
{
"name": "Thunder Boost",
"pos": "D2",
"type": "Stat",
"price": "100 LP",
"route": 1,
"path": ["W", "E"]
},
{
"name": "Magic Haste",
"pos": "D3",
"type": "Stat",
"price": "100 LP",
"path": ["W", "S"]
},
{
"name": "Time Bomb",
"pos": "D4",
"type": "Magic",
"price": "50 LP",
"path": ["W", "N"]
},
{
"name": "Sleep Block",
"pos": "D5",
"type": "Stat",
"price": "30 LP",
"path": ["W"]
},
{
"name": "Magic Haste",
"pos": "E2",
"type": "Stat",
"price": "150 LP",
"route": 1,
"path": ["W"]
}
]
}

View File

@ -0,0 +1,200 @@
spirit = "Necho Cat"
order = 11
[[routes]]
id = 0
name = "Diva"
color = "blue"
[[routes.tips]]
to = "Multi-Talent"
tip = "Face"
[[routes.tips]]
to = "Dancer"
tip = "Face"
[[routes.tips]]
to = "Artist"
tip = "Body"
[[routes]]
id = 1
name = "Artist"
color = "green"
[[routes.tips]]
to = "Dancer"
tip = "Face"
[[routes.tips]]
to = "Multi-Talent"
tip = "Face"
[[routes.tips]]
to = "Diva"
tip = "Legs"
[[routes]]
id = 2
name = "Multi-Talent"
color = "purple"
[[routes.tips]]
to = "Diva"
tip = "Face"
[[routes.tips]]
to = "Artist"
tip = "Face"
[[routes.tips]]
to = "Dancer"
tip = "Legs"
[[routes]]
id = 3
name = "Dancer"
color = "yellow"
[[routes.tips]]
to = "Artist"
tip = "Legs"
[[routes.tips]]
to = "Multi-Talent"
tip = "Face"
[[routes.tips]]
to = "Diva"
tip = "Legs"
[[abilities]]
name = "Magic Boost"
pos = "A4"
type = "Stat"
price = "200 LP"
route = 0
path = ["E"]
[[abilities]]
name = "Support Boost"
pos = "B1"
type = "Spirit"
price = "200 LP"
path = ["E"]
[[abilities]]
name = "HP Boost"
pos = "B3"
type = "Stat"
price = "30 LP"
path = ["E"]
[[abilities]]
name = "Confusion Block"
pos = "B4"
type = "Stat"
price = "30 LP"
route = 0
path = ["W", "E"]
[[abilities]]
name = "Thunder Boost"
pos = "B5"
type = "Stat"
price = "50 LP"
path = ["E", "S"]
[[abilities]]
name = "Magic Haste"
pos = "B6"
type = "Stat"
price = "50 LP"
path = ["E", "N"]
[[abilities]]
name = "Checkpoint"
pos = "C1"
type = "Checkpoint"
price = "Link x3"
path = ["W", "S"]
[[abilities]]
name = "Magic Boost"
pos = "C2"
type = "Stat"
price = "100 LP"
path = ["E", "N", "S"]
[[abilities]]
name = "Sleepra"
pos = "C3"
type = "Magic"
price = "100 LP"
path = ["W", "E", "N", "S"]
[[abilities]]
name = "Magic Haste"
pos = "C4"
type = "Stat"
price = "50 LP"
path = ["W", "E", "N", "S"]
[[abilities]]
name = "Thunder Boost"
pos = "C5"
type = "Stat"
price = "30 LP"
path = ["W", "E", "N", "S"]
[[abilities]]
name = "Thunder"
pos = "C6"
type = "Magic"
price = "10 LP"
path = ["W", "N", "S"]
[[abilities]]
name = "Start"
pos = "C7"
type = "Start"
price = ""
path = ["N"]
[[abilities]]
name = "Thunder Boost"
pos = "D2"
type = "Stat"
price = "100 LP"
route = 1
path = ["W", "E"]
[[abilities]]
name = "Magic Haste"
pos = "D3"
type = "Stat"
price = "100 LP"
path = ["W", "S"]
[[abilities]]
name = "Time Bomb"
pos = "D4"
type = "Magic"
price = "50 LP"
path = ["W", "N"]
[[abilities]]
name = "Sleep Block"
pos = "D5"
type = "Stat"
price = "30 LP"
path = ["W"]
[[abilities]]
name = "Magic Haste"
pos = "E2"
type = "Stat"
price = "150 LP"
route = 1
path = ["W"]

View File

@ -1,236 +0,0 @@
{
"spirit": "Pricklemane",
"order": 5,
"routes": [
{
"id": 0,
"name": "Intellectual",
"color": "blue",
"tips": [
{
"to": "Volcano",
"tip": "Feet"
},
{
"to": "Bouncer",
"tip": "Face"
},
{
"to": "Scrapper",
"tip": "Feet"
}
]
},
{
"id": 1,
"name": "Volcano",
"color": "purple",
"tips": [
{
"to": "Intellectual",
"tip": "Face"
},
{
"to": "Bouncer",
"tip": "Face"
},
{
"to": "Scrapper",
"tip": "Tail"
}
]
},
{
"id": 2,
"name": "Scrapper",
"color": "yellow",
"tips": [
{
"to": "Bouncer",
"tip": "Tail"
},
{
"to": "Volcano",
"tip": "Face"
},
{
"to": "Intellectual",
"tip": "Feet"
}
]
},
{
"id": 3,
"name": "Bouncer",
"color": "green",
"tips": [
{
"to": "Scrapper",
"tip": "Face"
},
{
"to": "Volcano",
"tip": "Face"
},
{
"to": "Intellectual",
"tip": "Tail"
}
]
},
{
"id": 100,
"name": "Secret Route 1",
"color": "secret1",
"tips": []
}
],
"abilities": [
{
"name": "HP Boost",
"pos": "A3",
"type": "Stat",
"price": "30 LP",
"path": ["E"]
},
{
"name": "Attack Boost",
"pos": "A5",
"type": "Stat",
"price": "100 LP",
"path": ["E"]
},
{
"name": "HP Boost",
"pos": "A6",
"type": "Stat",
"price": "50 LP",
"route": 100,
"path": ["E"]
},
{
"name": "Start",
"pos": "B1",
"type": "Start",
"price": "",
"path": ["S"]
},
{
"name": "Strike Raid",
"pos": "B2",
"type": "Attack",
"price": "10 LP",
"path": ["N", "S"]
},
{
"name": "Item Boost",
"pos": "B3",
"type": "Stat",
"price": "30 LP",
"path": ["N", "S", "W", "E"]
},
{
"name": "Time Bomb",
"pos": "B4",
"type": "Magic",
"price": "100 LP",
"path": ["N", "S", "E"]
},
{
"name": "Attack Haste",
"pos": "B5",
"type": "Stat",
"price": "30 LP",
"path": ["N", "S", "W", "E"]
},
{
"name": "Secret",
"pos": "B6",
"type": "Secret",
"price": "10 LP",
"path": ["N", "S", "W", "E"]
},
{
"name": "Poison Block",
"pos": "B7",
"type": "Stat",
"price": "30 LP",
"route": 100,
"path": ["N", "S"]
},
{
"name": "Circle Raid",
"pos": "B8",
"type": "Attack",
"price": "100 LP",
"route": 100,
"path": ["N"]
},
{
"name": "Stop Block",
"pos": "C2",
"type": "Stat",
"price": "30 LP",
"route": 0,
"path": ["S", "E"]
},
{
"name": "Sleep Block",
"pos": "C3",
"type": "Stat",
"price": "30 LP",
"path": ["W", "E", "N"]
},
{
"name": "Checkpoint",
"pos": "C4",
"type": "Checkpoint",
"price": "Level 10",
"path": ["W", "E"]
},
{
"name": "Fire Screen",
"pos": "C5",
"type": "Stat",
"price": "20 LP",
"path": ["W"]
},
{
"name": "Attack Haste",
"pos": "C6",
"type": "Stat",
"price": "50 LP",
"route": 100,
"path": ["W"]
},
{
"name": "Attack Haste",
"pos": "D2",
"type": "Stat",
"price": "100 LP",
"route": 0,
"path": ["W"]
},
{
"name": "Checkpoint",
"pos": "D3",
"type": "Checkpoint",
"price": "Link x5",
"path": ["W", "E"]
},
{
"name": "Defense Boost",
"pos": "D4",
"type": "Stat",
"price": "100 LP",
"path": ["W"]
},
{
"name": "Combo Plus",
"pos": "E3",
"type": "Support",
"price": "200 LP",
"path": ["W"]
}
]
}

View File

@ -0,0 +1,222 @@
spirit = "Pricklemane"
order = 5
[[routes]]
id = 0
name = "Intellectual"
color = "blue"
[[routes.tips]]
to = "Volcano"
tip = "Feet"
[[routes.tips]]
to = "Bouncer"
tip = "Face"
[[routes.tips]]
to = "Scrapper"
tip = "Feet"
[[routes]]
id = 1
name = "Volcano"
color = "purple"
[[routes.tips]]
to = "Intellectual"
tip = "Face"
[[routes.tips]]
to = "Bouncer"
tip = "Face"
[[routes.tips]]
to = "Scrapper"
tip = "Tail"
[[routes]]
id = 2
name = "Scrapper"
color = "yellow"
[[routes.tips]]
to = "Bouncer"
tip = "Tail"
[[routes.tips]]
to = "Volcano"
tip = "Face"
[[routes.tips]]
to = "Intellectual"
tip = "Feet"
[[routes]]
id = 3
name = "Bouncer"
color = "green"
[[routes.tips]]
to = "Scrapper"
tip = "Face"
[[routes.tips]]
to = "Volcano"
tip = "Face"
[[routes.tips]]
to = "Intellectual"
tip = "Tail"
[[routes]]
id = 100
name = "Secret Route 1"
color = "secret1"
tips = []
[[abilities]]
name = "HP Boost"
pos = "A3"
type = "Stat"
price = "30 LP"
path = ["E"]
[[abilities]]
name = "Attack Boost"
pos = "A5"
type = "Stat"
price = "100 LP"
path = ["E"]
[[abilities]]
name = "HP Boost"
pos = "A6"
type = "Stat"
price = "50 LP"
route = 100
path = ["E"]
[[abilities]]
name = "Start"
pos = "B1"
type = "Start"
price = ""
path = ["S"]
[[abilities]]
name = "Strike Raid"
pos = "B2"
type = "Attack"
price = "10 LP"
path = ["N", "S"]
[[abilities]]
name = "Item Boost"
pos = "B3"
type = "Stat"
price = "30 LP"
path = ["N", "S", "W", "E"]
[[abilities]]
name = "Time Bomb"
pos = "B4"
type = "Magic"
price = "100 LP"
path = ["N", "S", "E"]
[[abilities]]
name = "Attack Haste"
pos = "B5"
type = "Stat"
price = "30 LP"
path = ["N", "S", "W", "E"]
[[abilities]]
name = "Secret"
pos = "B6"
type = "Secret"
price = "10 LP"
path = ["N", "S", "W", "E"]
[[abilities]]
name = "Poison Block"
pos = "B7"
type = "Stat"
price = "30 LP"
route = 100
path = ["N", "S"]
[[abilities]]
name = "Circle Raid"
pos = "B8"
type = "Attack"
price = "100 LP"
route = 100
path = ["N"]
[[abilities]]
name = "Stop Block"
pos = "C2"
type = "Stat"
price = "30 LP"
route = 0
path = ["S", "E"]
[[abilities]]
name = "Sleep Block"
pos = "C3"
type = "Stat"
price = "30 LP"
path = ["W", "E", "N"]
[[abilities]]
name = "Checkpoint"
pos = "C4"
type = "Checkpoint"
price = "Level 10"
path = ["W", "E"]
[[abilities]]
name = "Fire Screen"
pos = "C5"
type = "Stat"
price = "20 LP"
path = ["W"]
[[abilities]]
name = "Attack Haste"
pos = "C6"
type = "Stat"
price = "50 LP"
route = 100
path = ["W"]
[[abilities]]
name = "Attack Haste"
pos = "D2"
type = "Stat"
price = "100 LP"
route = 0
path = ["W"]
[[abilities]]
name = "Checkpoint"
pos = "D3"
type = "Checkpoint"
price = "Link x5"
path = ["W", "E"]
[[abilities]]
name = "Defense Boost"
pos = "D4"
type = "Stat"
price = "100 LP"
path = ["W"]
[[abilities]]
name = "Combo Plus"
pos = "E3"
type = "Support"
price = "200 LP"
path = ["W"]

View File

@ -0,0 +1,207 @@
spirit = "Sir Kyroo"
order = 7
[[routes]]
id = 0
name = "Warrior"
color = "purple"
[[routes.tips]]
to = "Paladin"
tip = "Face"
[[routes.tips]]
to = "Guardian"
tip = "Face"
[[routes.tips]]
to = "Knight"
tip = "Shield"
[[routes]]
id = 1
name = "Paladin"
color = "blue"
[[routes.tips]]
to = "Warrior"
tip = "Shield"
[[routes.tips]]
to = "Guardian"
tip = "Face"
[[routes.tips]]
to = "Knight"
tip = "Wings"
[[routes]]
id = 2
name = "Knight"
color = "yellow"
[[routes.tips]]
to = "Guardian"
tip = "Shield"
[[routes.tips]]
to = "Warrior"
tip = "Face"
[[routes.tips]]
to = "Paladin"
tip = "Shield"
[[routes]]
id = 3
name = "Guardian"
color = "green"
[[routes.tips]]
to = "Knight"
tip = "Shield"
[[routes.tips]]
to = "Paladin"
tip = "Body"
[[routes.tips]]
to = "Warrior"
tip = "Shield"
[[abilities]]
name = "Start"
pos = "A2"
type = "Start"
price = ""
path = ["E"]
[[abilities]]
name = "Water Screen"
pos = "A6"
type = "Stat"
price = "60 LP"
route = 0
path = ["E"]
[[abilities]]
name = "Strike Raid"
pos = "B2"
type = "Attack"
price = "10 LP"
path = ["W", "E", "S"]
[[abilities]]
name = "Cure Boost"
pos = "B3"
type = "Stat"
price = "50 LP"
path = ["N", "S"]
[[abilities]]
name = "Water Boost"
pos = "B4"
type = "Stat"
price = "50 LP"
path = ["N", "S"]
[[abilities]]
name = "Attack Haste"
pos = "B5"
type = "Stat"
price = "30 LP"
path = ["N", "S"]
[[abilities]]
name = "Water Screen"
pos = "B6"
type = "Stat"
price = "40 LP"
path = ["N", "S", "W", "E"]
[[abilities]]
name = "Checkpoint"
pos = "B7"
type = "Checkpoint"
price = "Level 20"
path = ["N", "S"]
[[abilities]]
name = "Blitz"
pos = "B8"
type = "Attack"
price = "100 LP"
path = ["N"]
[[abilities]]
name = "Water Boost"
pos = "C2"
type = "Stat"
price = "30 LP"
path = ["W", "E"]
[[abilities]]
name = "HP Boost"
pos = "C6"
type = "Stat"
price = "30 LP"
route = 0
path = ["W"]
[[abilities]]
name = "Attack Boost"
pos = "D2"
type = "Stat"
price = "100 LP"
path = ["W", "E", "S"]
[[abilities]]
name = "Stop Block"
pos = "D3"
type = "Stat"
price = "30 LP"
route = 1
path = ["N", "S"]
[[abilities]]
name = "Cure Boost"
pos = "D4"
type = "Stat"
price = "100 LP"
route = 1
path = ["N"]
[[abilities]]
name = "Magic Boost"
pos = "E1"
type = "Stat"
price = "100 LP"
path = ["S"]
[[abilities]]
name = "Water Screen"
pos = "E2"
type = "Stat"
price = "20 LP"
path = ["W", "E", "N", "S"]
[[abilities]]
name = "Cure Boost"
pos = "E3"
type = "Stat"
price = "100 LP"
path = ["N"]
[[abilities]]
name = "Checkpoint"
pos = "F2"
type = "Checkpoint"
price = "Link x3"
path = ["W", "E"]
[[abilities]]
name = "Combo Plus"
pos = "G2"
type = "Support"
price = "200 LP"
path = ["W"]

View File

@ -1,237 +0,0 @@
{
"spirit": "Tama Sheep",
"order": 2,
"routes": [
{
"id": 0,
"name": "Mumbler",
"color": "blue",
"tips": [
{
"to": "Picker-Upper",
"tip": "Face"
},
{
"to": "Snooze Maker",
"tip": "Face"
},
{
"to": "Pillow Fluffer",
"tip": "Horn"
}
]
},
{
"id": 1,
"name": "Picker-Upper",
"color": "purple",
"tips": [
{
"to": "Mumbler",
"tip": "Face"
},
{
"to": "Pillow Fluffer",
"tip": "Face"
},
{
"to": "Snooze Maker",
"tip": "Horn"
}
]
},
{
"id": 2,
"name": "Snooze Maker",
"color": "yellow",
"tips": [
{
"to": "Pillow Fluffer",
"tip": "Feet"
},
{
"to": "Picker-Upper",
"tip": "Face"
},
{
"to": "Mumbler",
"tip": "Feet"
}
]
},
{
"id": 3,
"name": "Pillow Fluffer",
"color": "green",
"tips": [
{
"to": "Snooze Maker",
"tip": "Face"
},
{
"to": "Picker-Upper",
"tip": "Face"
},
{
"to": "Mumbler",
"tip": "Feet"
}
]
},
{
"id": 100,
"name": "Secret Route 1",
"color": "secret1",
"tips": []
}
],
"abilities": [
{
"name": "Start",
"pos": "A1",
"type": "Start",
"price": "",
"path": ["S"]
},
{
"name": "Sleep",
"pos": "A2",
"type": "Magic",
"price": "10 LP",
"path": ["N", "S", "E"]
},
{
"name": "Magic Boost",
"pos": "A3",
"type": "Stat",
"price": "100 LP",
"path": ["N", "S"]
},
{
"name": "Sleep Block",
"pos": "A4",
"type": "Stat",
"price": "30 LP",
"path": ["N", "E"]
},
{
"name": "Magic Haste",
"pos": "B2",
"type": "Stat",
"price": "30 LP",
"path": ["E", "W"]
},
{
"name": "Defense Boost",
"pos": "B4",
"type": "Stat",
"price": "100 LP",
"path": ["E", "W"]
},
{
"name": "Water Screen",
"pos": "C2",
"type": "Stat",
"price": "20 LP",
"path": ["E", "W"]
},
{
"name": "Slow Block",
"pos": "C4",
"type": "Stat",
"price": "30 LP",
"path": ["E", "W"]
},
{
"name": "Secret",
"pos": "D2",
"type": "Secret",
"price": "10 LP",
"path": ["W", "S"]
},
{
"name": "Balloon",
"pos": "D3",
"type": "Magic",
"price": "50 LP",
"route": 100,
"path": ["N", "E"]
},
{
"name": "Checkpoint",
"pos": "D4",
"type": "Checkpoint",
"price": "Link x1",
"path": ["E", "W"]
},
{
"name": "Stop Block",
"pos": "E2",
"type": "Stat",
"price": "30 LP",
"route": 100,
"path": ["S", "E"]
},
{
"name": "HP Boost",
"pos": "E3",
"type": "Stat",
"price": "30 LP",
"route": 100,
"path": ["W", "N"]
},
{
"name": "Sleepra",
"pos": "E4",
"type": "Magic",
"price": "100 LP",
"path": ["E", "W"]
},
{
"name": "Magic Haste",
"pos": "F2",
"type": "Stat",
"price": "50 LP",
"route": 100,
"path": ["E", "W", "S"]
},
{
"name": "Water Screen",
"pos": "F3",
"type": "Stat",
"price": "40 LP",
"route": 0,
"path": ["N", "E"]
},
{
"name": "Checkpoint",
"pos": "F4",
"type": "Checkpoint",
"price": "Link x2",
"path": ["E", "W"]
},
{
"name": "Magic Haste",
"pos": "G2",
"type": "Stat",
"price": "100 LP",
"route": 100,
"path": ["W"]
},
{
"name": "Support Boost",
"pos": "G3",
"type": "Support",
"price": "200 LP",
"route": 0,
"path": ["W"]
},
{
"name": "Sleepga",
"pos": "G4",
"type": "Magic",
"price": "150 LP",
"path": ["W"]
}
]
}

View File

@ -0,0 +1,223 @@
spirit = "Tama Sheep"
order = 2
[[routes]]
id = 0
name = "Mumbler"
color = "blue"
[[routes.tips]]
to = "Picker-Upper"
tip = "Face"
[[routes.tips]]
to = "Snooze Maker"
tip = "Face"
[[routes.tips]]
to = "Pillow Fluffer"
tip = "Horn"
[[routes]]
id = 1
name = "Picker-Upper"
color = "purple"
[[routes.tips]]
to = "Mumbler"
tip = "Face"
[[routes.tips]]
to = "Pillow Fluffer"
tip = "Face"
[[routes.tips]]
to = "Snooze Maker"
tip = "Horn"
[[routes]]
id = 2
name = "Snooze Maker"
color = "yellow"
[[routes.tips]]
to = "Pillow Fluffer"
tip = "Feet"
[[routes.tips]]
to = "Picker-Upper"
tip = "Face"
[[routes.tips]]
to = "Mumbler"
tip = "Feet"
[[routes]]
id = 3
name = "Pillow Fluffer"
color = "green"
[[routes.tips]]
to = "Snooze Maker"
tip = "Face"
[[routes.tips]]
to = "Picker-Upper"
tip = "Face"
[[routes.tips]]
to = "Mumbler"
tip = "Feet"
[[routes]]
id = 100
name = "Secret Route 1"
color = "secret1"
tips = []
[[abilities]]
name = "Start"
pos = "A1"
type = "Start"
price = ""
path = ["S"]
[[abilities]]
name = "Sleep"
pos = "A2"
type = "Magic"
price = "10 LP"
path = ["N", "S", "E"]
[[abilities]]
name = "Magic Boost"
pos = "A3"
type = "Stat"
price = "100 LP"
path = ["N", "S"]
[[abilities]]
name = "Sleep Block"
pos = "A4"
type = "Stat"
price = "30 LP"
path = ["N", "E"]
[[abilities]]
name = "Magic Haste"
pos = "B2"
type = "Stat"
price = "30 LP"
path = ["E", "W"]
[[abilities]]
name = "Defense Boost"
pos = "B4"
type = "Stat"
price = "100 LP"
path = ["E", "W"]
[[abilities]]
name = "Water Screen"
pos = "C2"
type = "Stat"
price = "20 LP"
path = ["E", "W"]
[[abilities]]
name = "Slow Block"
pos = "C4"
type = "Stat"
price = "30 LP"
path = ["E", "W"]
[[abilities]]
name = "Secret"
pos = "D2"
type = "Secret"
price = "10 LP"
path = ["W", "S"]
[[abilities]]
name = "Balloon"
pos = "D3"
type = "Magic"
price = "50 LP"
route = 100
path = ["N", "E"]
[[abilities]]
name = "Checkpoint"
pos = "D4"
type = "Checkpoint"
price = "Link x1"
path = ["E", "W"]
[[abilities]]
name = "Stop Block"
pos = "E2"
type = "Stat"
price = "30 LP"
route = 100
path = ["S", "E"]
[[abilities]]
name = "HP Boost"
pos = "E3"
type = "Stat"
price = "30 LP"
route = 100
path = ["W", "N"]
[[abilities]]
name = "Sleepra"
pos = "E4"
type = "Magic"
price = "100 LP"
path = ["E", "W"]
[[abilities]]
name = "Magic Haste"
pos = "F2"
type = "Stat"
price = "50 LP"
route = 100
path = ["E", "W", "S"]
[[abilities]]
name = "Water Screen"
pos = "F3"
type = "Stat"
price = "40 LP"
route = 0
path = ["N", "E"]
[[abilities]]
name = "Checkpoint"
pos = "F4"
type = "Checkpoint"
price = "Link x2"
path = ["E", "W"]
[[abilities]]
name = "Magic Haste"
pos = "G2"
type = "Stat"
price = "100 LP"
route = 100
path = ["W"]
[[abilities]]
name = "Support Boost"
pos = "G3"
type = "Support"
price = "200 LP"
route = 0
path = ["W"]
[[abilities]]
name = "Sleepga"
pos = "G4"
type = "Magic"
price = "150 LP"
path = ["W"]

View File

@ -0,0 +1,207 @@
spirit = "Toximander"
order = 8
[[routes]]
id = 0
name = "Hunter"
color = "purple"
[[routes.tips]]
to = "Basilisk"
tip = "Tail"
[[routes.tips]]
to = "Loose Cannon"
tip = "Face"
[[routes.tips]]
to = "Bane"
tip = "Tail"
[[routes]]
id = 1
name = "Basilisk"
color = "blue"
[[routes.tips]]
to = "Hunter"
tip = "Body"
[[routes.tips]]
to = "Bane"
tip = "Face"
[[routes.tips]]
to = "Loose Cannon"
tip = "Body"
[[routes]]
id = 2
name = "Loose Cannon"
color = "yellow"
[[routes.tips]]
to = "Bane"
tip = "Legs"
[[routes.tips]]
to = "Hunter"
tip = "Face"
[[routes.tips]]
to = "Basilisk"
tip = "Body"
[[routes]]
id = 3
name = "Bane"
color = "green"
[[routes.tips]]
to = "Loose Cannon"
tip = "Body"
[[routes.tips]]
to = "Basilisk"
tip = "Face"
[[routes.tips]]
to = "Hunter"
tip = "Body"
[[abilities]]
name = "Start"
pos = "A3"
type = "Start"
price = ""
path = ["E"]
[[abilities]]
name = "Bind Block"
pos = "B2"
type = "Stat"
price = "30 LP"
path = ["S"]
[[abilities]]
name = "Poison"
pos = "B3"
type = "Magic"
price = "10 LP"
path = ["W", "E", "N", "S"]
[[abilities]]
name = "Confusion Block"
pos = "B4"
type = "Stat"
price = "30 LP"
path = ["N"]
[[abilities]]
name = "Treasure Magnet"
pos = "C1"
type = "Support"
price = "50 LP"
path = ["S"]
[[abilities]]
name = "Checkpoint"
pos = "C2"
type = "Checkpoint"
price = "Link x2"
path = ["N", "S"]
[[abilities]]
name = "Blindness Block"
pos = "C3"
type = "Stat"
price = "30 LP"
path = ["W", "E", "N", "S"]
[[abilities]]
name = "Attack Haste"
pos = "C4"
type = "Stat"
price = "30 LP"
route = 0
path = ["N", "S"]
[[abilities]]
name = "Attack Boost"
pos = "C5"
type = "Stat"
price = "100 LP"
route = 0
path = ["N"]
[[abilities]]
name = "HP Boost"
pos = "D2"
type = "Stat"
price = "30 LP"
path = ["S", "E"]
[[abilities]]
name = "Poison Block"
pos = "D3"
type = "Stat"
price = "30 LP"
path = ["W", "N", "S"]
[[abilities]]
name = "Dark Screen"
pos = "D4"
type = "Stat"
price = "20 LP"
path = ["N", "E"]
[[abilities]]
name = "Dark Screen"
pos = "E2"
type = "Stat"
price = "40 LP"
path = ["W", "E"]
[[abilities]]
name = "Gravity Strike"
pos = "E4"
type = "Attack"
price = "100 LP"
path = ["W", "E"]
[[abilities]]
name = "Checkpoint"
pos = "F2"
type = "Checkpoint"
price = "Level 15"
path = ["W", "E"]
[[abilities]]
name = "Mini Block"
pos = "F4"
type = "Stat"
price = "30 LP"
path = ["W", "E"]
[[abilities]]
name = "Poison Dive"
pos = "G2"
type = "Attack"
price = "200 LP"
path = ["W"]
[[abilities]]
name = "Magic Haste"
pos = "G4"
type = "Stat"
price = "30 LP"
route = 1
path = ["W", "E"]
[[abilities]]
name = "HP Boost"
pos = "H4"
type = "Stat"
price = "50 LP"
route = 1
path = ["W"]

View File

@ -1,228 +0,0 @@
{
"spirit": "Yoggy Ram",
"order": 3,
"routes": [
{
"id": 0,
"name": "Trailblazer",
"color": "yellow",
"tips": [
{
"to": "Jumper",
"tip": "Face"
},
{
"to": "Leader",
"tip": "Face"
},
{
"to": "Powerhouse",
"tip": "Chest"
}
]
},
{
"id": 1,
"name": "Powerhouse",
"color": "purple",
"tips": [
{
"to": "Leader",
"tip": "Chest"
},
{
"to": "Trailblazer",
"tip": "Face"
},
{
"to": "Jumper",
"tip": "Chest"
}
]
},
{
"id": 2,
"name": "Leader",
"color": "blue",
"tips": [
{
"to": "Powerhouse",
"tip": "Hind Legs"
},
{
"to": "Jumper",
"tip": "Face"
},
{
"to": "Trailblazer",
"tip": "Hind Legs"
}
]
},
{
"id": 3,
"name": "Jumper",
"color": "green",
"tips": [
{
"to": "Trailblazer",
"tip": "Face"
},
{
"to": "Powerhouse",
"tip": "Face"
},
{
"to": "Leader",
"tip": "Tail"
}
]
}
],
"abilities": [
{
"name": "Fire Screen",
"pos": "A3",
"type": "Stat",
"price": "80 LP",
"route": 0,
"path": ["E", "S"]
},
{
"name": "Defense Boost",
"pos": "A4",
"type": "Stat",
"price": "200 LP",
"route": 0,
"path": ["N"]
},
{
"name": "Start",
"pos": "B2",
"type": "Start",
"price": "",
"path": ["S", "E"]
},
{
"name": "Esuna",
"pos": "B3",
"type": "Magic",
"price": "10 LP",
"path": ["N", "S", "E", "W"]
},
{
"name": "Fire Screen",
"pos": "B4",
"type": "Stat",
"price": "20 LP",
"path": ["N", "S"]
},
{
"name": "Bind Block",
"pos": "B5",
"type": "Stat",
"price": "30 LP",
"path": ["N", "S"]
},
{
"name": "Fire Screen",
"pos": "B6",
"type": "Stat",
"price": "40 LP",
"path": ["N", "S"]
},
{
"name": "Fire Screen",
"pos": "B7",
"type": "Stat",
"price": "60 LP",
"path": ["N", "S"]
},
{
"name": "Defense Boost",
"pos": "B8",
"type": "Stat",
"price": "100 LP",
"path": ["N"]
},
{
"name": "HP Boost",
"pos": "C1",
"type": "Stat",
"price": "30 LP",
"route": 1,
"path": ["S", "E"]
},
{
"name": "Fire",
"pos": "C2",
"type": "Magic",
"price": "10 LP",
"path": ["N", "S", "W", "E"]
},
{
"name": "Checkpoint",
"pos": "C3",
"type": "Checkpoint",
"price": "Link x4",
"path": ["N", "S", "W", "E"]
},
{
"name": "Treasure Magnet",
"pos": "C4",
"type": "Support",
"price": "50 LP",
"path": ["N"]
},
{
"name": "Fire Screen",
"pos": "D1",
"type": "Stat",
"price": "100 LP",
"route": 1,
"path": ["W"]
},
{
"name": "Fire Boost",
"pos": "D2",
"type": "Stat",
"price": "30 LP",
"path": ["W", "E"]
},
{
"name": "Fire Windmill",
"pos": "D3",
"type": "Attack",
"price": "150 LP",
"path": ["W"]
},
{
"name": "Checkpoint",
"pos": "E2",
"type": "Checkpoint",
"price": "Level 10",
"path": ["W", "E"]
},
{
"name": "Fira",
"pos": "F2",
"type": "Magic",
"price": "100 LP",
"path": ["W", "E"]
},
{
"name": "Checkpoint",
"pos": "G2",
"type": "Checkpoint",
"price": "Level 20",
"path": ["W", "E"]
},
{
"name": "Firaga",
"pos": "H2",
"type": "Magic",
"price": "150 LP",
"path": ["W"]
}
]
}

View File

@ -0,0 +1,214 @@
spirit = "Yoggy Ram"
order = 3
[[routes]]
id = 0
name = "Trailblazer"
color = "yellow"
[[routes.tips]]
to = "Jumper"
tip = "Face"
[[routes.tips]]
to = "Leader"
tip = "Face"
[[routes.tips]]
to = "Powerhouse"
tip = "Chest"
[[routes]]
id = 1
name = "Powerhouse"
color = "purple"
[[routes.tips]]
to = "Leader"
tip = "Chest"
[[routes.tips]]
to = "Trailblazer"
tip = "Face"
[[routes.tips]]
to = "Jumper"
tip = "Chest"
[[routes]]
id = 2
name = "Leader"
color = "blue"
[[routes.tips]]
to = "Powerhouse"
tip = "Hind Legs"
[[routes.tips]]
to = "Jumper"
tip = "Face"
[[routes.tips]]
to = "Trailblazer"
tip = "Hind Legs"
[[routes]]
id = 3
name = "Jumper"
color = "green"
[[routes.tips]]
to = "Trailblazer"
tip = "Face"
[[routes.tips]]
to = "Powerhouse"
tip = "Face"
[[routes.tips]]
to = "Leader"
tip = "Tail"
[[abilities]]
name = "Fire Screen"
pos = "A3"
type = "Stat"
price = "80 LP"
route = 0
path = ["E", "S"]
[[abilities]]
name = "Defense Boost"
pos = "A4"
type = "Stat"
price = "200 LP"
route = 0
path = ["N"]
[[abilities]]
name = "Start"
pos = "B2"
type = "Start"
price = ""
path = ["S", "E"]
[[abilities]]
name = "Esuna"
pos = "B3"
type = "Magic"
price = "10 LP"
path = ["N", "S", "E", "W"]
[[abilities]]
name = "Fire Screen"
pos = "B4"
type = "Stat"
price = "20 LP"
path = ["N", "S"]
[[abilities]]
name = "Bind Block"
pos = "B5"
type = "Stat"
price = "30 LP"
path = ["N", "S"]
[[abilities]]
name = "Fire Screen"
pos = "B6"
type = "Stat"
price = "40 LP"
path = ["N", "S"]
[[abilities]]
name = "Fire Screen"
pos = "B7"
type = "Stat"
price = "60 LP"
path = ["N", "S"]
[[abilities]]
name = "Defense Boost"
pos = "B8"
type = "Stat"
price = "100 LP"
path = ["N"]
[[abilities]]
name = "HP Boost"
pos = "C1"
type = "Stat"
price = "30 LP"
route = 1
path = ["S", "E"]
[[abilities]]
name = "Fire"
pos = "C2"
type = "Magic"
price = "10 LP"
path = ["N", "S", "W", "E"]
[[abilities]]
name = "Checkpoint"
pos = "C3"
type = "Checkpoint"
price = "Link x4"
path = ["N", "S", "W", "E"]
[[abilities]]
name = "Treasure Magnet"
pos = "C4"
type = "Support"
price = "50 LP"
path = ["N"]
[[abilities]]
name = "Fire Screen"
pos = "D1"
type = "Stat"
price = "100 LP"
route = 1
path = ["W"]
[[abilities]]
name = "Fire Boost"
pos = "D2"
type = "Stat"
price = "30 LP"
path = ["W", "E"]
[[abilities]]
name = "Fire Windmill"
pos = "D3"
type = "Attack"
price = "150 LP"
path = ["W"]
[[abilities]]
name = "Checkpoint"
pos = "E2"
type = "Checkpoint"
price = "Level 10"
path = ["W", "E"]
[[abilities]]
name = "Fira"
pos = "F2"
type = "Magic"
price = "100 LP"
path = ["W", "E"]
[[abilities]]
name = "Checkpoint"
pos = "G2"
type = "Checkpoint"
price = "Level 20"
path = ["W", "E"]
[[abilities]]
name = "Firaga"
pos = "H2"
type = "Magic"
price = "150 LP"
path = ["W"]

View File

@ -1,4 +1,4 @@
use std::{fmt::Display, panic}; use std::{fmt::Display, panic, path::PathBuf};
use askama::Template; use askama::Template;
use itertools::Itertools; use itertools::Itertools;
@ -28,9 +28,8 @@ impl Board {
Color::Purple => Interaction::Poke, Color::Purple => Interaction::Poke,
Color::Yellow => Interaction::Rub, Color::Yellow => Interaction::Rub,
Color::Green => Interaction::Rub, Color::Green => Interaction::Rub,
// Doesn't really matter but I didn't wanna turn this into an Option
Color::SecretGreen => Interaction::Poke, _ => Interaction::None,
Color::SecretRed => Interaction::Poke,
} }
}); });
@ -140,7 +139,8 @@ impl Board {
.filter(|&ability| { .filter(|&ability| {
ability.r#type == AbilityType::Magic ability.r#type == AbilityType::Magic
|| ability.r#type == AbilityType::Attack || ability.r#type == AbilityType::Attack
|| ability.r#type == AbilityType::Support || ability.r#type == AbilityType::Reprisal
|| ability.r#type == AbilityType::Defense
}) })
.collect_vec() .collect_vec()
} }
@ -307,6 +307,7 @@ enum Direction {
#[derive(Debug, Default, Deserialize, PartialEq, Eq, Clone)] #[derive(Debug, Default, Deserialize, PartialEq, Eq, Clone)]
enum Interaction { enum Interaction {
#[default] #[default]
None,
Poke, Poke,
Rub, Rub,
} }
@ -316,6 +317,7 @@ impl Display for Interaction {
match self { match self {
Interaction::Poke => f.write_str("Poke"), Interaction::Poke => f.write_str("Poke"),
Interaction::Rub => f.write_str("Rub"), Interaction::Rub => f.write_str("Rub"),
_ => f.write_str(""),
} }
} }
} }
@ -332,10 +334,18 @@ pub fn init() {
tracing::info!("Loading ability links json data from {}", ABILITIES_PATH); tracing::info!("Loading ability links json data from {}", ABILITIES_PATH);
let mut boards: Vec<Board> = vec![]; let mut boards: Vec<Board> = vec![];
// Loading multiple files into one vector due to the size of each board // Loading multiple files into one vector due to the size of each board
let paths = std::fs::read_dir(ABILITIES_PATH).unwrap(); let paths = std::fs::read_dir(ABILITIES_PATH)
for path in paths.flatten() { .unwrap()
let board_str = std::fs::read_to_string(path.path()).unwrap(); .filter_map(|f| f.ok())
let mut board = serde_json::from_str::<Board>(&board_str).unwrap(); .map(|f| f.path())
.filter_map(|p| match p.extension().map_or(false, |e| e == "toml") {
true => Some(p),
false => None,
})
.collect::<Vec<PathBuf>>();
for path in paths {
let board_str = std::fs::read_to_string(path).unwrap();
let mut board = toml::from_str::<Board>(&board_str).unwrap();
board.init_routes(); board.init_routes();
board.init_total_lp(); board.init_total_lp();