diff --git a/src/common/othello/maps.ts b/src/common/othello/maps.ts index e6f3f409e..e34e15bb5 100644 --- a/src/common/othello/maps.ts +++ b/src/common/othello/maps.ts @@ -10,12 +10,14 @@ export type Map = { name?: string; + category?: string; size: number; data: string; }; export const fourfour: Map = { name: '4x4', + category: '4x4', size: 4, data: '----' + @@ -26,6 +28,7 @@ export const fourfour: Map = { export const sixsix: Map = { name: '6x6', + category: '6x6', size: 6, data: '------' + @@ -36,8 +39,35 @@ export const sixsix: Map = { '------' }; +export const roundedSixsix: Map = { + name: '6x6 rounded', + category: '6x6', + size: 6, + data: + ' ---- ' + + '------' + + '--wb--' + + '--bw--' + + '------' + + ' ---- ' +}; + +export const roundedSixsix2: Map = { + name: '6x6 rounded 2', + category: '6x6', + size: 6, + data: + ' -- ' + + ' ---- ' + + '--wb--' + + '--bw--' + + ' -----' + + ' -- ' +}; + export const eighteight: Map = { name: '8x8', + category: '8x8', size: 8, data: '--------' + @@ -52,6 +82,7 @@ export const eighteight: Map = { export const roundedEighteight: Map = { name: '8x8 rounded', + category: '8x8', size: 8, data: ' ------ ' + @@ -66,6 +97,7 @@ export const roundedEighteight: Map = { export const roundedEighteight2: Map = { name: '8x8 rounded 2', + category: '8x8', size: 8, data: ' ---- ' + @@ -78,8 +110,24 @@ export const roundedEighteight2: Map = { ' ---- ' }; +export const roundedEighteight3: Map = { + name: '8x8 rounded 3', + category: '8x8', + size: 8, + data: + ' -- ' + + ' ---- ' + + ' ------ ' + + '---wb---' + + '---bw---' + + ' ------ ' + + ' ---- ' + + ' -- ' +}; + export const eighteightWithNotch: Map = { name: '8x8 with notch', + category: '8x8', size: 8, data: '--- ---' + @@ -94,6 +142,7 @@ export const eighteightWithNotch: Map = { export const eighteightWithSomeHoles: Map = { name: '8x8 with some holes', + category: '8x8', size: 8, data: '--- ----' + @@ -106,22 +155,69 @@ export const eighteightWithSomeHoles: Map = { '--------' }; -export const sixeight: Map = { - name: '6x8', +export const circle: Map = { + name: 'Circle', + category: '8x8', + size: 8, + data: + ' -- ' + + ' ------ ' + + ' ------ ' + + '---wb---' + + '---bw---' + + ' ------ ' + + ' ------ ' + + ' -- ' +}; + +export const dice: Map = { + name: 'Dice', + category: '8x8', + size: 8, + data: + '--------' + + '- -- -' + + '- -- -' + + '---wb---' + + '---bw---' + + '- -- -' + + '- -- -' + + '--------' +}; + +export const face: Map = { + name: 'Face', + category: '8x8', size: 8, data: ' ------ ' + - ' ------ ' + - ' ------ ' + - ' --wb-- ' + - ' --bw-- ' + - ' ------ ' + - ' ------ ' + + '--------' + + '-- -- --' + + '---wb---' + + '-- bw --' + + '--- ---' + + '--------' + ' ------ ' }; +export const window: Map = { + name: 'Window', + category: '8x8', + size: 8, + data: + '--------' + + '- -- -' + + '- -- -' + + '---wb---' + + '---bw---' + + '- -- -' + + '- -- -' + + '--------' +}; + export const tenthtenth: Map = { name: '10x10', + category: '10x10', size: 10, data: '----------' + @@ -137,7 +233,8 @@ export const tenthtenth: Map = { }; export const hole: Map = { - name: 'hole', + name: 'The Hole', + category: '10x10', size: 10, data: '----------' + @@ -152,8 +249,41 @@ export const hole: Map = { '----------' }; +export const grid: Map = { + name: 'Grid', + category: '10x10', + size: 10, + data: + '----------' + + '- - -- - -' + + '----------' + + '- - -- - -' + + '----wb----' + + '----bw----' + + '- - -- - -' + + '----------' + + '- - -- - -' + + '----------' +}; + +export const sixeight: Map = { + name: '6x8', + category: 'special', + size: 8, + data: + ' ------ ' + + ' ------ ' + + ' ------ ' + + ' --wb-- ' + + ' --bw-- ' + + ' ------ ' + + ' ------ ' + + ' ------ ' +}; + export const spark: Map = { - name: 'spark', + name: 'Spark', + category: 'special', size: 10, data: ' - - ' + @@ -169,7 +299,8 @@ export const spark: Map = { }; export const islands: Map = { - name: 'islands', + name: 'Islands', + category: 'special', size: 10, data: '-------- ' + @@ -184,34 +315,21 @@ export const islands: Map = { ' --------' }; -export const grid: Map = { - name: 'grid', - size: 10, - data: - '----------' + - '- - -- - -' + - '----------' + - '- - -- - -' + - '----wb----' + - '----bw----' + - '- - -- - -' + - '----------' + - '- - -- - -' + - '----------' -}; - export const iphonex: Map = { name: 'iPhone X', - size: 10, + category: 'special', + size: 12, data: - ' -- -- ' + - ' -------- ' + - ' -------- ' + - ' -------- ' + - ' ---wb--- ' + - ' ---bw--- ' + - ' -------- ' + - ' -------- ' + - ' -------- ' + - ' ------ ' + ' -- -- ' + + ' -------- ' + + ' -------- ' + + ' -------- ' + + ' -------- ' + + ' ---wb--- ' + + ' ---bw--- ' + + ' -------- ' + + ' -------- ' + + ' -------- ' + + ' -------- ' + + ' ------ ' }; diff --git a/src/web/app/common/views/components/othello.game.vue b/src/web/app/common/views/components/othello.game.vue index f0254a0b7..b50d709d4 100644 --- a/src/web/app/common/views/components/othello.game.vue +++ b/src/web/app/common/views/components/othello.game.vue @@ -12,7 +12,7 @@
@@ -200,13 +200,13 @@ export default Vue.extend({ user-select none &.empty - border solid 2px #f5f5f5 + border solid 2px #eee &.empty.can - background #f5f5f5 + background #eee &.empty.myTurn - border-color #eee + border-color #ddd &.can background #eee @@ -222,6 +222,9 @@ export default Vue.extend({ &.prev box-shadow 0 0 0 4px rgba($theme-color, 0.7) + &.isEnded + border-color #ddd + &.none border-color transparent !important diff --git a/src/web/app/common/views/components/othello.room.vue b/src/web/app/common/views/components/othello.room.vue index 445a0b45d..bcae37b22 100644 --- a/src/web/app/common/views/components/othello.room.vue +++ b/src/web/app/common/views/components/othello.room.vue @@ -5,7 +5,9 @@

ゲームの設定

- + + +
@@ -21,18 +23,20 @@
-

- - - - -

+
@@ -53,6 +57,10 @@ export default Vue.extend({ }, computed: { + mapCategories(): string[] { + const categories = Object.entries(maps).map(x => x[1].category); + return categories.filter((item, pos) => categories.indexOf(item) == pos); + }, isAccepted(): boolean { if (this.game.user1_id == (this as any).os.i.id && this.game.user1_accepted) return true; if (this.game.user2_id == (this as any).os.i.id && this.game.user2_accepted) return true; @@ -142,7 +150,7 @@ export default Vue.extend({ > div background transparent - border solid 2px #eee + border solid 2px #ddd border-radius 6px overflow hidden @@ -157,8 +165,15 @@ export default Vue.extend({ > .rules max-width 300px - margin 0 auto + margin 0 auto 32px auto - > .actions - margin-bottom 16px + > footer + position sticky + bottom 0 + padding 16px + background rgba(255, 255, 255, 0.9) + border-top solid 1px #c4cdd4 + + > .status + margin 0 0 16px 0