diff --git a/src/app/screenshots/screenshots.js b/src/app/screenshots/screenshots.js index 0fc1912..39fb0a9 100644 --- a/src/app/screenshots/screenshots.js +++ b/src/app/screenshots/screenshots.js @@ -57,7 +57,7 @@ async function captureScreenshot(options) { function captureScheduleScreenshot(now, splatfestBattle = false) { let hash = `/schedules/${now}`; - let viewport = (splatfestBattle) ? { height: 780 } : undefined; + let viewport = (splatfestBattle) ? { height: 800 } : undefined; return captureScreenshot({ hash, viewport }); } diff --git a/src/web/assets/css/main.scss b/src/web/assets/css/main.scss index a3734af..fe100d3 100644 --- a/src/web/assets/css/main.scss +++ b/src/web/assets/css/main.scss @@ -795,6 +795,21 @@ body.has-modal #main { } } +.shifty-box { + @extend .product-box; + @extend .bg-wavy; + @extend .text-shadow; + + max-width: 400px; + margin-left: auto; + margin-right: auto; + + background-color: #999; + + border-radius: 20px; + padding: 38px 10px 0 10px; +} + .hero-foot .dropdown-trigger .icon { margin-left: -5px; line-height: 0.45rem; diff --git a/src/web/components/Main.vue b/src/web/components/Main.vue index a9458cf..98897bc 100644 --- a/src/web/components/Main.vue +++ b/src/web/components/Main.vue @@ -94,6 +94,22 @@ +
+
+

+ Current Shifty Stations +

+
+
+ +
+
+ +
+
+
+
+
@@ -154,9 +170,10 @@ import ScheduleBox from './splatoon/ScheduleBox.vue'; import SalmonRunBox from './splatoon/SalmonRunBox.vue'; import SplatfestBox from './splatoon/SplatfestBox.vue'; import NewWeaponsContainer from './splatoon/NewWeaponsContainer.vue'; +import Stage from '@/web/components/splatoon/Stage.vue'; export default { - components: { Dropdown, ScheduleBox, SalmonRunBox, SplatfestBox, NewWeaponsContainer }, + components: { Dropdown, ScheduleBox, SalmonRunBox, SplatfestBox, NewWeaponsContainer, Stage }, computed: { ...mapGetters('splatoon/regions', ['selectedRegion']), ...mapGetters('splatoon/languages', ['selectedLanguage']), @@ -166,6 +183,7 @@ export default { 'selectedRegionHasActiveSplatfest', ]), ...mapGetters('splatoon/newWeapons', ['weapons']), + ...mapGetters('splatoon/finalFest', { shiftySchedule: 'activeSchedule' }), loading() { return !this.$store.state.splatoon.data.schedules }, diff --git a/src/web/components/screenshots/schedules/Schedules.vue b/src/web/components/screenshots/schedules/Schedules.vue index f8f2b67..4f69666 100644 --- a/src/web/components/screenshots/schedules/Schedules.vue +++ b/src/web/components/screenshots/schedules/Schedules.vue @@ -15,10 +15,28 @@
-
+
+ +
@@ -33,15 +51,17 @@ import { mapGetters } from 'vuex'; import Wrapper from '@/web/components/screenshots/Wrapper.vue'; import ScheduleBox from './ScheduleBox.vue'; import SplatfestBox from '@/web/components/splatoon/SplatfestBox.vue'; +import Stage from '@/web/components/splatoon/Stage.vue'; export default { - components: { Wrapper, ScheduleBox, SplatfestBox }, + components: { Wrapper, ScheduleBox, SplatfestBox, Stage }, computed: { ...mapGetters('splatoon/splatfests', { 'currentSplatfestNA': 'na/currentSplatfest', 'currentSplatfestEU': 'eu/currentSplatfest', 'currentSplatfestJP': 'jp/currentSplatfest', }), + ...mapGetters('splatoon/finalFest', { shiftySchedule: 'activeSchedule' }), globalSplatfestIsActiveInAllRegions() { // Do we have a Splatfest in each region? if (!this.currentSplatfestNA || !this.currentSplatfestEU || !this.currentSplatfestJP) diff --git a/src/web/components/splatoon/FinalFestDialog.vue b/src/web/components/splatoon/FinalFestDialog.vue index 85e6ea3..56b7ded 100644 --- a/src/web/components/splatoon/FinalFestDialog.vue +++ b/src/web/components/splatoon/FinalFestDialog.vue @@ -71,7 +71,7 @@ export default { props: ['region'], computed: { ...mapGetters('splatoon', ['now']), - ...mapGetters('splatoon/finalFest', ['schedules']), + ...mapGetters('splatoon/finalFest', { schedules: 'currentSchedules' }), allSchedules() { return this.schedules.map(schedule => ({ @@ -81,14 +81,9 @@ export default { })); }, - currentSchedules() { - if (this.now && this.allSchedules) - return this.allSchedules.filter(s => s.end_time > this.now); - }, - - first() { return this.currentSchedules && this.currentSchedules[0]; }, - second() { return this.currentSchedules && this.currentSchedules[1]; }, - others() { return this.currentSchedules && this.currentSchedules.slice(2); }, + first() { return this.allSchedules && this.allSchedules[0]; }, + second() { return this.allSchedules && this.allSchedules[1]; }, + others() { return this.allSchedules && this.allSchedules.slice(2); }, }, }; diff --git a/src/web/store/splatoon/finalFest.js b/src/web/store/splatoon/finalFest.js index 959a1a2..5929703 100644 --- a/src/web/store/splatoon/finalFest.js +++ b/src/web/store/splatoon/finalFest.js @@ -31,4 +31,17 @@ export const getters = { schedules(state) { return state.schedules; }, + currentSchedules(state, getters, { splatoon }) { + let now = splatoon.now + let schedules = state.schedules; + + if (now && schedules) + return schedules.filter(s => s.end_time > now); + }, + activeSchedule(state, getters, { splatoon }) { + let now = splatoon.now; + + if (now && getters.currentSchedules) + return getters.currentSchedules.find(s => s.start_time <= now); + }, }