Add version to battlesuits

This commit is contained in:
Sakura Knoll
2021-12-30 14:18:29 +09:00 Unverified
parent f604dad3e7
commit f3a2347d48
52 changed files with 114 additions and 169 deletions
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "6s", "id": "6s",
"version": "2.5",
"name": "Sixth Serenade", "name": "Sixth Serenade",
"type": "psychic", "type": "psychic",
"valkyrie": "kallen", "valkyrie": "kallen",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "ae", "id": "ae",
"version": "3.7",
"name": "Azure Empyrea", "name": "Azure Empyrea",
"type": "psychic", "type": "psychic",
"valkyrie": "fuhua", "valkyrie": "fuhua",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "aka", "id": "aka",
"version": "2.9",
"name": "Argent Knight: Artemis", "name": "Argent Knight: Artemis",
"type": "biologic", "type": "biologic",
"valkyrie": "rita", "valkyrie": "rita",
+3 -5
View File
@@ -1,12 +1,10 @@
{ {
"id": "bb", "id": "bb",
"version": "3.1",
"name": "Blueberry Blitz", "name": "Blueberry Blitz",
"type": "mecha", "type": "mecha",
"valkyrie": "olenyevas", "valkyrie": "olenyevas",
"strengths": [ "strengths": ["physical", "freeze"],
"physical",
"freeze"
],
"leader": { "leader": {
"core": { "core": {
"name": "Vstavai!", "name": "Vstavai!",
@@ -108,4 +106,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "bh", "id": "bh",
"version": "4.5",
"name": "Blazing Hope", "name": "Blazing Hope",
"type": "biologic", "type": "biologic",
"valkyrie": "asuka", "valkyrie": "asuka",
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "bke", "id": "bke",
"version": "3.9",
"name": "Bright Knight: Excelsis", "name": "Bright Knight: Excelsis",
"type": "mecha", "type": "mecha",
"valkyrie": "durandal", "valkyrie": "durandal",
"strengths": [ "strengths": ["physical", "burst", "time mastery", "heavy atk"],
"physical",
"burst",
"time mastery",
"heavy atk"
],
"leader": { "leader": {
"core": { "core": {
"name": "Horns of Jericho", "name": "Horns of Jericho",
@@ -126,4 +122,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "bn", "id": "bn",
"version": "2.1",
"name": "Black Nucleus", "name": "Black Nucleus",
"type": "biologic", "type": "biologic",
"valkyrie": "bronya", "valkyrie": "bronya",
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "ch", "id": "ch",
"version": "2.2",
"name": "Celestial Hymn", "name": "Celestial Hymn",
"type": "biologic", "type": "biologic",
"valkyrie": "theresa", "valkyrie": "theresa",
"strengths": [ "strengths": ["physical", "impair", "gather", "fast atk"],
"physical",
"impair",
"gather",
"fast atk"
],
"leader": { "leader": {
"core": { "core": {
"name": "Sacred Arias", "name": "Sacred Arias",
@@ -131,4 +127,4 @@
} }
] ]
} }
} }
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "da", "id": "da",
"version": "4.4",
"name": "Dea Anchora", "name": "Dea Anchora",
"type": "biologic", "type": "biologic",
"valkyrie": "durandal", "valkyrie": "durandal",
"strengths": [ "strengths": ["fire dmg", "time mastery", "gather", "ignite"],
"fire dmg",
"time mastery",
"gather",
"ignite"
],
"leader": { "leader": {
"core": { "core": {
"name": "Crux Galactica", "name": "Crux Galactica",
@@ -116,4 +112,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "dk", "id": "dk",
"version": "3.0",
"name": "Drive Kometa", "name": "Drive Kometa",
"type": "psychic", "type": "psychic",
"valkyrie": "bronya", "valkyrie": "bronya",
+2 -1
View File
@@ -1,5 +1,6 @@
{ {
"id": "ds", "id": "ds",
"version": "4.2",
"name": "Danzai Spectramancer", "name": "Danzai Spectramancer",
"type": "mecha", "type": "mecha",
"valkyrie": "mei", "valkyrie": "mei",
@@ -122,4 +123,4 @@
} }
] ]
} }
} }
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "fr", "id": "fr",
"version": "4.2",
"name": "Fallen Rosemary", "name": "Fallen Rosemary",
"type": "quantum", "type": "quantum",
"valkyrie": "rita", "valkyrie": "rita",
"strengths": [ "strengths": ["lightning dmg", "time mastery", "gather", "paralyze"],
"lightning dmg",
"time mastery",
"gather",
"paralyze"
],
"leader": { "leader": {
"core": { "core": {
"name": "Tonight or Never", "name": "Tonight or Never",
@@ -131,4 +127,4 @@
} }
] ]
} }
} }
+2 -1
View File
@@ -1,5 +1,6 @@
{ {
"id": "ft", "id": "ft",
"version": "4.3",
"name": "Fervent Tempo Δ", "name": "Fervent Tempo Δ",
"type": "psychic", "type": "psychic",
"valkyrie": "olenyevas", "valkyrie": "olenyevas",
@@ -115,4 +116,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "hb", "id": "hb",
"version": "4.7",
"name": "Haxxor Bunny", "name": "Haxxor Bunny",
"type": "psychic", "type": "psychic",
"valkyrie": "bronya", "valkyrie": "bronya",
"strengths": [ "strengths": ["ice dmg", "time mastery", "fast atk"],
"ice dmg",
"time mastery",
"fast atk"
],
"leader": { "leader": {
"core": { "core": {
"name": "H-T-T-P-S", "name": "H-T-T-P-S",
@@ -131,4 +128,4 @@
} }
] ]
} }
} }
+2 -1
View File
@@ -1,5 +1,6 @@
{ {
"id": "hf", "id": "hf",
"version": "3.5",
"name": "Hawk of the Fog", "name": "Hawk of the Fog",
"type": "psychic", "type": "psychic",
"valkyrie": "fuhua", "valkyrie": "fuhua",
@@ -126,4 +127,4 @@
} }
] ]
} }
} }
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "hfs", "id": "hfs",
"version": "5.0",
"name": "Herrscher of Flamescion", "name": "Herrscher of Flamescion",
"type": "psychic", "type": "psychic",
"valkyrie": "kiana", "valkyrie": "kiana",
"strengths": [ "strengths": ["fire dmg", "heal", "time mastery", "gather"],
"fire dmg",
"heal",
"time mastery",
"gather"
],
"leader": { "leader": {
"core": { "core": {
"name": "Nameless Knight-Errant's Path", "name": "Nameless Knight-Errant's Path",
@@ -125,4 +121,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "hor", "id": "hor",
"version": "3.3",
"name": "Herrscher of Reason", "name": "Herrscher of Reason",
"type": "mecha", "type": "mecha",
"valkyrie": "bronya", "valkyrie": "bronya",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "hos", "id": "hos",
"version": "4.6",
"name": "Herrscher of Sentience", "name": "Herrscher of Sentience",
"type": "biologic", "type": "biologic",
"valkyrie": "fuhua", "valkyrie": "fuhua",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "hot", "id": "hot",
"version": "4.1",
"name": "Herrscher of Thunder", "name": "Herrscher of Thunder",
"type": "psychic", "type": "psychic",
"valkyrie": "mei", "valkyrie": "mei",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "hov", "id": "hov",
"version": "2.6",
"name": "Herrscher of the Void", "name": "Herrscher of the Void",
"type": "biologic", "type": "biologic",
"valkyrie": "kiana", "valkyrie": "kiana",
+3 -5
View File
@@ -1,12 +1,10 @@
{ {
"id": "io", "id": "io",
"version": "5.2",
"name": "Infinite Ouroboros", "name": "Infinite Ouroboros",
"type": "mecha", "type": "mecha",
"valkyrie": "mobius", "valkyrie": "mobius",
"strengths": [ "strengths": ["lightning dmg", "time mastery"],
"lightning dmg",
"time mastery"
],
"leader": { "leader": {
"core": { "core": {
"name": "Infinite Fate", "name": "Infinite Fate",
@@ -119,4 +117,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "kasumi", "id": "kasumi",
"version": "3.6",
"name": "Darkbolt Jonin", "name": "Darkbolt Jonin",
"type": "biologic", "type": "biologic",
"valkyrie": "sakura", "valkyrie": "sakura",
"strengths": [ "strengths": ["lightning dmg", "time mastery", "paralyze"],
"lightning dmg",
"time mastery",
"paralyze"
],
"leader": { "leader": {
"core": { "core": {
"name": "The Sahā World", "name": "The Sahā World",
@@ -141,4 +138,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "kriegs", "id": "kriegs",
"version": "2.6",
"name": "Kriegsmesser", "name": "Kriegsmesser",
"type": "psychic", "type": "psychic",
"valkyrie": "himeko", "valkyrie": "himeko",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "lk", "id": "lk",
"version": "2.4",
"name": "Luna Kindred", "name": "Luna Kindred",
"type": "biologic", "type": "biologic",
"valkyrie": "theresa", "valkyrie": "theresa",
+3 -5
View File
@@ -1,12 +1,10 @@
{ {
"id": "ma", "id": "ma",
"version": "5.2",
"name": "Midnight Absinthe", "name": "Midnight Absinthe",
"type": "imaginary", "type": "imaginary",
"valkyrie": "raven", "valkyrie": "raven",
"strengths": [ "strengths": ["fire dmg", "time mastery"],
"fire dmg",
"time mastery"
],
"leader": { "leader": {
"core": { "core": {
"name": "Midnight Gathering", "name": "Midnight Gathering",
@@ -127,4 +125,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "mc", "id": "mc",
"version": "3.1",
"name": "Molotov Cherry", "name": "Molotov Cherry",
"type": "psychic", "type": "psychic",
"valkyrie": "olenyevas", "valkyrie": "olenyevas",
"strengths": [ "strengths": ["physical", "time mastery", "gather"],
"physical",
"time mastery",
"gather"
],
"leader": { "leader": {
"core": { "core": {
"name": "SHOWTIME!", "name": "SHOWTIME!",
@@ -113,4 +110,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "mpe", "id": "mpe",
"version": "5.1",
"name": "Miss Pink Elf♪", "name": "Miss Pink Elf♪",
"type": "psychic", "type": "psychic",
"valkyrie": "elysia", "valkyrie": "elysia",
"strengths": [ "strengths": ["physical", "time mastery", "fast atk"],
"physical",
"time mastery",
"fast atk"
],
"leader": { "leader": {
"core": { "core": {
"name": "An Ode to Love and Compassion", "name": "An Ode to Love and Compassion",
@@ -125,4 +122,4 @@
} }
] ]
} }
} }
+3 -8
View File
@@ -1,15 +1,10 @@
{ {
"id": "ns", "id": "ns",
"version": "2.5",
"name": "Night Squire", "name": "Night Squire",
"type": "biologic", "type": "biologic",
"valkyrie": "fuhua", "valkyrie": "fuhua",
"strengths": [ "strengths": ["physical", "burst", "time mastery", "fast atk", "bleed"],
"physical",
"burst",
"time mastery",
"fast atk",
"bleed"
],
"leader": { "leader": {
"core": { "core": {
"name": "Night Squire", "name": "Night Squire",
@@ -128,4 +123,4 @@
} }
] ]
} }
} }
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "nyx", "id": "nyx",
"version": "4.8",
"name": "Starchasm Nyx", "name": "Starchasm Nyx",
"type": "quantum", "type": "quantum",
"valkyrie": "seele", "valkyrie": "seele",
"strengths": [ "strengths": ["ice dmg", "burst", "time mastery", "freeze"],
"ice dmg",
"burst",
"time mastery",
"freeze"
],
"leader": { "leader": {
"core": { "core": {
"name": "A Torn Heart", "name": "A Torn Heart",
@@ -121,4 +117,4 @@
} }
] ]
} }
} }
+3 -5
View File
@@ -1,12 +1,10 @@
{ {
"id": "pi", "id": "pi",
"version": "2.8",
"name": "Phantom Iron", "name": "Phantom Iron",
"type": "mecha", "type": "mecha",
"valkyrie": "rita", "valkyrie": "rita",
"strengths": [ "strengths": ["lightning dmg", "paralyze"],
"lightning dmg",
"paralyze"
],
"leader": { "leader": {
"core": { "core": {
"name": "Ex Machina", "name": "Ex Machina",
@@ -123,4 +121,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "pv", "id": "pv",
"version": "4.9",
"name": "Prinzessin der Verurteilung!", "name": "Prinzessin der Verurteilung!",
"type": "biologic", "type": "biologic",
"valkyrie": "fischl", "valkyrie": "fischl",
"strengths": [ "strengths": ["lightning dmg", "time mastery", "fast atk"],
"lightning dmg",
"time mastery",
"fast atk"
],
"leader": { "leader": {
"core": { "core": {
"name": "Evernight Suite", "name": "Evernight Suite",
@@ -127,4 +124,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "px", "id": "px",
"version": "2.4",
"name": "Phoenix", "name": "Phoenix",
"type": "psychic", "type": "psychic",
"valkyrie": "fuhua", "valkyrie": "fuhua",
"strengths": [ "strengths": ["fire dmg", "time mastery", "weaken"],
"fire dmg",
"time mastery",
"weaken"
],
"leader": { "leader": {
"core": { "core": {
"name": "Flaming Heart", "name": "Flaming Heart",
@@ -120,4 +117,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "ri", "id": "ri",
"version": "2.2",
"name": "Ritual Imayoh", "name": "Ritual Imayoh",
"type": "mecha", "type": "mecha",
"valkyrie": "kallen", "valkyrie": "kallen",
+3 -8
View File
@@ -1,15 +1,10 @@
{ {
"id": "sa", "id": "sa",
"version": "4.0",
"name": "Starlit Astrologos", "name": "Starlit Astrologos",
"type": "biologic", "type": "biologic",
"valkyrie": "theresa", "valkyrie": "theresa",
"strengths": [ "strengths": ["physical", "heal", "time mastery", "stun", "gather"],
"physical",
"heal",
"time mastery",
"stun",
"gather"
],
"leader": { "leader": {
"core": { "core": {
"name": "Nine Palaces", "name": "Nine Palaces",
@@ -145,4 +140,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "sj", "id": "sj",
"version": "2.7",
"name": "Sündenjäger", "name": "Sündenjäger",
"type": "mecha", "type": "mecha",
"valkyrie": "kallen", "valkyrie": "kallen",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "sk", "id": "sk",
"version": "2.3",
"name": "Shadow Knight", "name": "Shadow Knight",
"type": "mecha", "type": "mecha",
"valkyrie": "fuhua", "valkyrie": "fuhua",
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "sn", "id": "sn",
"version": "3.5",
"name": "Stygian Nymph", "name": "Stygian Nymph",
"type": "quantum", "type": "quantum",
"valkyrie": "seele", "valkyrie": "seele",
"strengths": [ "strengths": ["physical", "time mastery", "heavy atk"],
"physical",
"time mastery",
"heavy atk"
],
"leader": { "leader": {
"core": { "core": {
"name": "Cursed Blessing", "name": "Cursed Blessing",
@@ -126,4 +123,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "sns", "id": "sns",
"version": "5.3",
"name": "Sweet 'n' Spicy", "name": "Sweet 'n' Spicy",
"type": "mecha", "type": "mecha",
"valkyrie": "carole", "valkyrie": "carole",
+3 -5
View File
@@ -1,12 +1,10 @@
{ {
"id": "sp", "id": "sp",
"version": "3.2",
"name": "Swallowtail Phantasm", "name": "Swallowtail Phantasm",
"type": "quantum", "type": "quantum",
"valkyrie": "seele", "valkyrie": "seele",
"strengths": [ "strengths": ["physical", "burst"],
"physical",
"burst"
],
"leader": { "leader": {
"core": { "core": {
"name": "Azure Nymph", "name": "Azure Nymph",
@@ -121,4 +119,4 @@
} }
] ]
} }
} }
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "sr", "id": "sr",
"version": "2.1",
"name": "Sakuno Rondo", "name": "Sakuno Rondo",
"type": "psychic", "type": "psychic",
"valkyrie": "theresa", "valkyrie": "theresa",
"strengths": [ "strengths": ["fire dmg", "burst", "fast atk", "ignite"],
"fire dmg",
"burst",
"fast atk",
"ignite"
],
"leader": { "leader": {
"core": { "core": {
"name": "Ritual Dance", "name": "Ritual Dance",
@@ -125,4 +121,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "stfu", "id": "stfu",
"version": "2.9",
"name": "Striker Fulminata", "name": "Striker Fulminata",
"type": "biologic", "type": "biologic",
"valkyrie": "mei", "valkyrie": "mei",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "sw", "id": "sw",
"version": "5.4",
"name": "Silverwing:N-EX", "name": "Silverwing:N-EX",
"type": "biologic", "type": "biologic",
"valkyrie": "bronya", "valkyrie": "bronya",
+2 -1
View File
@@ -1,5 +1,6 @@
{ {
"id": "tp", "id": "tp",
"version": "3.4",
"name": "Twilight Paladin", "name": "Twilight Paladin",
"type": "mecha", "type": "mecha",
"valkyrie": "theresa", "valkyrie": "theresa",
@@ -104,4 +105,4 @@
} }
] ]
} }
} }
+3 -5
View File
@@ -1,12 +1,10 @@
{ {
"id": "ur", "id": "ur",
"version": "2.7",
"name": "Umbral Rose", "name": "Umbral Rose",
"type": "psychic", "type": "psychic",
"valkyrie": "rita", "valkyrie": "rita",
"strengths": [ "strengths": ["physical", "time mastery"],
"physical",
"time mastery"
],
"leader": { "leader": {
"core": { "core": {
"name": "Rosette Runners", "name": "Rosette Runners",
@@ -120,4 +118,4 @@
} }
] ]
} }
} }
+3 -7
View File
@@ -1,14 +1,10 @@
{ {
"id": "va", "id": "va",
"version": "2.3",
"name": "Valkyrie Accipiter", "name": "Valkyrie Accipiter",
"type": "psychic", "type": "psychic",
"valkyrie": "fuhua", "valkyrie": "fuhua",
"strengths": [ "strengths": ["physical", "heal", "time mastery", "stun"],
"physical",
"heal",
"time mastery",
"stun"
],
"leader": { "leader": {
"core": { "core": {
"name": "Chelonic Unity", "name": "Chelonic Unity",
@@ -126,4 +122,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "vd", "id": "vd",
"version": "3.3",
"name": "Void Drifter", "name": "Void Drifter",
"type": "mecha", "type": "mecha",
"valkyrie": "kiana", "valkyrie": "kiana",
"strengths": [ "strengths": ["physical", "gather", "bleed"],
"physical",
"gather",
"bleed"
],
"leader": { "leader": {
"core": { "core": {
"name": "Flying Comet", "name": "Flying Comet",
@@ -116,4 +113,4 @@
} }
] ]
} }
} }
+3 -8
View File
@@ -1,15 +1,10 @@
{ {
"id": "ve", "id": "ve",
"version": "2.0",
"name": "Violet Executer", "name": "Violet Executer",
"type": "mecha", "type": "mecha",
"valkyrie": "theresa", "valkyrie": "theresa",
"strengths": [ "strengths": ["physical", "burst", "fast atk", "bleed", "heavy atk"],
"physical",
"burst",
"fast atk",
"bleed",
"heavy atk"
],
"leader": { "leader": {
"core": { "core": {
"name": "Execution Time", "name": "Execution Time",
@@ -126,4 +121,4 @@
} }
] ]
} }
} }
+3 -6
View File
@@ -1,13 +1,10 @@
{ {
"id": "vg", "id": "vg",
"version": "3.8",
"name": "Valkyrie Gloria", "name": "Valkyrie Gloria",
"type": "quantum", "type": "quantum",
"valkyrie": "durandal", "valkyrie": "durandal",
"strengths": [ "strengths": ["fire dmg", "time mastery", "ignite"],
"fire dmg",
"time mastery",
"ignite"
],
"leader": { "leader": {
"core": { "core": {
"name": "Praefect Equites", "name": "Praefect Equites",
@@ -122,4 +119,4 @@
} }
] ]
} }
} }
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "vke", "id": "vke",
"version": "2.7",
"name": "Vermilion Knight: Eclipse", "name": "Vermilion Knight: Eclipse",
"type": "mecha", "type": "mecha",
"valkyrie": "himeko", "valkyrie": "himeko",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "vp", "id": "vp",
"version": "2.0",
"name": "Valkyrie Pledge", "name": "Valkyrie Pledge",
"type": "psychic", "type": "psychic",
"valkyrie": "theresa", "valkyrie": "theresa",
+1
View File
@@ -1,5 +1,6 @@
{ {
"id": "wd", "id": "wd",
"version": "2.1",
"name": "Wolf's Dawn", "name": "Wolf's Dawn",
"type": "psychic", "type": "psychic",
"valkyrie": "bronya", "valkyrie": "bronya",
+7 -1
View File
@@ -1,4 +1,5 @@
import { readdirSync, readJsonFileSync } from '../../lib/data' import { readdirSync, readJsonFileSync } from '../../lib/data'
import { compareVersion } from '../../lib/string'
export interface BattlesuitSkill { export interface BattlesuitSkill {
name: string name: string
@@ -12,6 +13,7 @@ export interface BattlesuitSkillGroup {
export interface BattlesuitData { export interface BattlesuitData {
id: string id: string
version?: string
name: string name: string
type: string type: string
valkyrie: string valkyrie: string
@@ -34,7 +36,11 @@ const battlesuitDataList = battlesuitsFileNameList
return data return data
}) })
.sort((a, b) => { .sort((a, b) => {
let compareResult = a.name let compareResult = compareVersion(b.version || '0.0', a.version || '0.0')
if (compareResult !== 0) {
return compareResult
}
compareResult = a.name
.replace(/ \(.\)/, '') .replace(/ \(.\)/, '')
.localeCompare(b.name.replace(/ \(.\)/, '')) .localeCompare(b.name.replace(/ \(.\)/, ''))