diff --git a/src/assets/i18n/de-DE.json b/src/assets/i18n/de-DE.json
index e710239..89e6669 100644
--- a/src/assets/i18n/de-DE.json
+++ b/src/assets/i18n/de-DE.json
@@ -26,7 +26,9 @@
"open": "Offen",
"regular": "Standardkampf",
"anarchy": "Anarchie-Kampf",
- "splatfest": "Splatfest-Kampf"
+ "splatfest": "Splatfest-Kampf",
+ "xmatch": "X-Kampf",
+ "league": "Ligakampf"
},
"all-upcoming": "Alle bevorstehenden Arenen"
},
diff --git a/src/assets/i18n/en-GB.json b/src/assets/i18n/en-GB.json
index 5b042db..b54b0bd 100644
--- a/src/assets/i18n/en-GB.json
+++ b/src/assets/i18n/en-GB.json
@@ -25,7 +25,9 @@
"open": "Open",
"regular": "Regular Battle",
"anarchy": "Anarchy Battle",
- "splatfest": "Splatfest Battle"
+ "splatfest": "Splatfest Battle",
+ "xmatch": "X Battle",
+ "league": "League Battle"
},
"all-upcoming": "All Upcoming Stages"
},
diff --git a/src/assets/i18n/en-US.json b/src/assets/i18n/en-US.json
index f440a16..71630b8 100644
--- a/src/assets/i18n/en-US.json
+++ b/src/assets/i18n/en-US.json
@@ -26,7 +26,9 @@
"open": "Open",
"regular": "Regular Battle",
"anarchy": "Anarchy Battle",
- "splatfest": "Splatfest Battle"
+ "splatfest": "Splatfest Battle",
+ "xmatch": "X Battle",
+ "league": "League Battle"
},
"all-upcoming": "All Upcoming Stages"
},
diff --git a/src/assets/i18n/es-ES.json b/src/assets/i18n/es-ES.json
index c2f41e0..55ba073 100644
--- a/src/assets/i18n/es-ES.json
+++ b/src/assets/i18n/es-ES.json
@@ -25,7 +25,9 @@
"open": "Informal",
"regular": "Combate amistoso",
"anarchy": "Combate caótico",
- "splatfest": "Combate temático"
+ "splatfest": "Combate temático",
+ "xmatch": "Combate X",
+ "league": "Combate del torneo"
}
},
"salmonrun": {
diff --git a/src/assets/i18n/es-MX.json b/src/assets/i18n/es-MX.json
index 8e8b2cf..f36004a 100644
--- a/src/assets/i18n/es-MX.json
+++ b/src/assets/i18n/es-MX.json
@@ -25,7 +25,9 @@
"open": "Informal",
"regular": "Combate amistoso",
"anarchy": "Combate caótico",
- "splatfest": "Combate temático"
+ "splatfest": "Combate temático",
+ "xmatch": "Combate X",
+ "league": "Combate de liga"
}
},
"salmonrun": {
diff --git a/src/assets/i18n/fr-CA.json b/src/assets/i18n/fr-CA.json
index 003e309..accb5af 100644
--- a/src/assets/i18n/fr-CA.json
+++ b/src/assets/i18n/fr-CA.json
@@ -25,7 +25,9 @@
"open": "Ouvert",
"regular": "Match classique",
"anarchy": "Match anarchie",
- "splatfest": "Festimatch"
+ "splatfest": "Festimatch",
+ "xmatch": "Match X",
+ "league": "Match de ligue"
},
"all-upcoming": "Les stages à venir"
},
diff --git a/src/assets/i18n/fr-FR.json b/src/assets/i18n/fr-FR.json
index 03e0f36..350c13f 100644
--- a/src/assets/i18n/fr-FR.json
+++ b/src/assets/i18n/fr-FR.json
@@ -26,7 +26,9 @@
"open": "Ouvert",
"regular": "Match classique",
"anarchy": "Match anarchie",
- "splatfest": "Festimatch"
+ "splatfest": "Festimatch",
+ "xmatch": "Match X",
+ "league": "Match de ligue"
},
"all-upcoming": "Les stages à venir"
},
diff --git a/src/assets/i18n/it-IT.json b/src/assets/i18n/it-IT.json
index d8d1a63..6b92c86 100644
--- a/src/assets/i18n/it-IT.json
+++ b/src/assets/i18n/it-IT.json
@@ -25,7 +25,9 @@
"open": "Aperta",
"regular": "Partita amichevole",
"anarchy": "Partita anarchica",
- "splatfest": "Partita tematica"
+ "splatfest": "Partita tematica",
+ "xmatch": "Partita X",
+ "league": "Partita di lega"
}
},
"salmonrun": {
diff --git a/src/assets/i18n/ja-JP.json b/src/assets/i18n/ja-JP.json
index 744148d..1bf91b8 100644
--- a/src/assets/i18n/ja-JP.json
+++ b/src/assets/i18n/ja-JP.json
@@ -25,7 +25,9 @@
"open": "オープン",
"regular": "レギュラーマッチ",
"anarchy": "バンカラマッチ",
- "splatfest": "フェスマッチ"
+ "splatfest": "フェスマッチ",
+ "xmatch": "Xマッチ",
+ "league": "リーグマッチ"
}
},
"salmonrun": {
diff --git a/src/assets/i18n/ko-KR.json b/src/assets/i18n/ko-KR.json
index 4685a91..c56291b 100644
--- a/src/assets/i18n/ko-KR.json
+++ b/src/assets/i18n/ko-KR.json
@@ -25,7 +25,9 @@
"open": "오픈",
"regular": "레귤러 매치",
"anarchy": "카오폴리스 매치",
- "splatfest": "페스티벌 매치"
+ "splatfest": "페스티벌 매치",
+ "xmatch": "X 매치",
+ "league": "리그 매치"
}
},
"salmonrun": {
diff --git a/src/assets/i18n/nl-NL.json b/src/assets/i18n/nl-NL.json
index b563475..970486c 100644
--- a/src/assets/i18n/nl-NL.json
+++ b/src/assets/i18n/nl-NL.json
@@ -25,7 +25,9 @@
"open": "Open",
"regular": "Standaardgevecht",
"anarchy": "Chaosgevecht",
- "splatfest": "Splatfest-gevecht"
+ "splatfest": "Splatfest-gevecht",
+ "xmatch": "X-gevecht",
+ "league": "Toernooigevecht"
}
},
"salmonrun": {
diff --git a/src/assets/i18n/ru-RU.json b/src/assets/i18n/ru-RU.json
index f377eea..d4d6f4a 100644
--- a/src/assets/i18n/ru-RU.json
+++ b/src/assets/i18n/ru-RU.json
@@ -25,7 +25,9 @@
"open": "Открытый",
"regular": "Бой салаг",
"anarchy": "Стихийный бой",
- "splatfest": "Сплатфест-бой"
+ "splatfest": "Сплатфест-бой",
+ "xmatch": "Бой X",
+ "league": "Бой лиги"
}
},
"salmonrun": {
diff --git a/src/assets/i18n/zh-CN.json b/src/assets/i18n/zh-CN.json
index fa40e3d..ebcef79 100644
--- a/src/assets/i18n/zh-CN.json
+++ b/src/assets/i18n/zh-CN.json
@@ -25,7 +25,9 @@
"open": "开放",
"regular": "一般比赛",
"anarchy": "蛮颓比赛",
- "splatfest": "祭典比赛"
+ "splatfest": "祭典比赛",
+ "xmatch": "X比赛",
+ "league": "联盟比赛"
},
"all-upcoming": "接下来的对战场地"
},
diff --git a/src/assets/i18n/zh-TW.json b/src/assets/i18n/zh-TW.json
index f7586b6..c40a146 100644
--- a/src/assets/i18n/zh-TW.json
+++ b/src/assets/i18n/zh-TW.json
@@ -25,7 +25,9 @@
"open": "開放",
"regular": "一般比賽",
"anarchy": "蠻頹比賽",
- "splatfest": "祭典比賽"
+ "splatfest": "祭典比賽",
+ "xmatch": "X比賽",
+ "league": "聯盟比賽"
}
},
"salmonrun": {
diff --git a/src/assets/img/modes/x.svg b/src/assets/img/modes/x.svg
index 0436f01..dca5001 100644
--- a/src/assets/img/modes/x.svg
+++ b/src/assets/img/modes/x.svg
@@ -1,7 +1,7 @@
diff --git a/src/components/concerns/scheduleTypes.mjs b/src/components/concerns/scheduleTypes.mjs
index 68d4bce..cc7a39e 100644
--- a/src/components/concerns/scheduleTypes.mjs
+++ b/src/components/concerns/scheduleTypes.mjs
@@ -1,6 +1,9 @@
import { useAnarchyOpenSchedulesStore, useAnarchySeriesSchedulesStore, useRegularSchedulesStore, useSplatfestSchedulesStore } from '@/stores/schedules';
import battleRegularSvg from '@/assets/img/modes/regular.svg';
import battleBankaraSvg from '@/assets/img/modes/bankara.svg';
+import battleXSvg from '@/assets/img/modes/x.svg';
+import battleLeagueSvg from '@/assets/img/modes/league.svg';
+import { useLeagueSchedulesStore, useXSchedulesStore } from '../../stores/schedules.mjs';
export function useScheduleTypes() {
const types = {
@@ -25,6 +28,20 @@ export function useScheduleTypes() {
img: battleBankaraSvg,
bg: 'bg-splatoon-battle-ranked bg-tapes',
},
+ xMatch: {
+ name: 'schedule.types.xmatch',
+ badge: null,
+ store: useXSchedulesStore(),
+ img: battleXSvg,
+ bg: 'bg-splatoon-battle-xmatch bg-tapes',
+ },
+ league: {
+ name: 'schedule.types.league',
+ badge: null,
+ store: useLeagueSchedulesStore(),
+ img: battleLeagueSvg,
+ bg: 'bg-splatoon-battle-league bg-tapes',
+ },
splatfest: {
name: 'schedule.types.splatfest',
badge: null,
diff --git a/src/stores/schedules.mjs b/src/stores/schedules.mjs
index 1ad8bfc..ad2baab 100644
--- a/src/stores/schedules.mjs
+++ b/src/stores/schedules.mjs
@@ -56,6 +56,18 @@ export const useAnarchyOpenSchedulesStore = defineScheduleStore('anarchy/open',
settings: node => node.bankaraMatchSettings?.find(s => s.mode === 'OPEN'),
});
+// X Battle
+export const useXSchedulesStore = defineScheduleStore('xmatch', {
+ nodes: () => useSchedulesDataStore().data?.xSchedules.nodes,
+ settings: node => node.xMatchSetting,
+});
+
+// League Battle
+export const useLeagueSchedulesStore = defineScheduleStore('league', {
+ nodes: () => useSchedulesDataStore().data?.leagueSchedules.nodes,
+ settings: node => node.leagueMatchSetting,
+});
+
// Splatfest Battle
export const useSplatfestSchedulesStore = defineScheduleStore('splatfest', {
nodes: () => useSchedulesDataStore().data?.festSchedules.nodes,
@@ -72,6 +84,8 @@ if (import.meta.hot) {
import.meta.hot.accept(acceptHMRUpdate(useRegularSchedulesStore, import.meta.hot));
import.meta.hot.accept(acceptHMRUpdate(useAnarchySeriesSchedulesStore, import.meta.hot));
import.meta.hot.accept(acceptHMRUpdate(useAnarchyOpenSchedulesStore, import.meta.hot));
+ import.meta.hot.accept(acceptHMRUpdate(useXSchedulesStore, import.meta.hot));
+ import.meta.hot.accept(acceptHMRUpdate(useLeagueSchedulesStore, import.meta.hot));
import.meta.hot.accept(acceptHMRUpdate(useSplatfestSchedulesStore, import.meta.hot));
import.meta.hot.accept(acceptHMRUpdate(useSalmonRunSchedulesStore, import.meta.hot));
}
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 98af025..f0e9a47 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -8,12 +8,16 @@