From b302796e703ace3b174a666060c5694801c5aa67 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 5 Feb 2024 21:07:44 +0900 Subject: [PATCH] wip --- packages/backend/src/core/MahjongService.ts | 10 +- packages/frontend/assets/mahjong/99.png | Bin 0 -> 53522 bytes .../frontend/assets/mahjong/ryuukyoku.png | Bin 0 -> 73221 bytes .../frontend/src/pages/mahjong/room.game.vue | 76 ++++++++++---- packages/misskey-mahjong/src/engine.master.ts | 96 ++++++++++-------- packages/misskey-mahjong/src/engine.player.ts | 32 +++--- 6 files changed, 132 insertions(+), 82 deletions(-) create mode 100644 packages/frontend/assets/mahjong/99.png create mode 100644 packages/frontend/assets/mahjong/ryuukyoku.png diff --git a/packages/backend/src/core/MahjongService.ts b/packages/backend/src/core/MahjongService.ts index 498563ac6b..a10720bf79 100644 --- a/packages/backend/src/core/MahjongService.ts +++ b/packages/backend/src/core/MahjongService.ts @@ -345,8 +345,8 @@ export class MahjongService implements OnApplicationShutdown, OnModuleInit { }); this.endKyoku(room, mj); break; - case 'ryukyoku': - this.globalEventService.publishMahjongRoomStream(room.id, 'ryukyoku', { + case 'ryuukyoku': + this.globalEventService.publishMahjongRoomStream(room.id, 'ryuukyoku', { }); this.endKyoku(room, mj); break; @@ -387,7 +387,11 @@ export class MahjongService implements OnApplicationShutdown, OnModuleInit { const aiHouses = [[1, room.user1Ai], [2, room.user2Ai], [3, room.user3Ai], [4, room.user4Ai]].filter(([id, ai]) => ai).map(([id, ai]) => mj.getHouse(id)); - if (res.asking) { + if (res.ryuukyoku) { + this.endKyoku(room, mj); + this.globalEventService.publishMahjongRoomStream(room.id, 'ryuukyoku', { + }); + } else if (res.asking) { const answers: CallingAnswers = { pon: null, cii: null, diff --git a/packages/frontend/assets/mahjong/99.png b/packages/frontend/assets/mahjong/99.png new file mode 100644 index 0000000000000000000000000000000000000000..2e72339a657929d33b4d552df922fecfc11ed420 GIT binary patch literal 53522 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 literal 0 HcmV?d00001 diff --git a/packages/frontend/assets/mahjong/ryuukyoku.png b/packages/frontend/assets/mahjong/ryuukyoku.png new file mode 100644 index 0000000000000000000000000000000000000000..1cdc4cce67a1dd2d34e769f1320f70a17ada4f72 GIT binary patch literal 73221 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%0Ag}HH)fH25# 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 UE}z>0EdT%j07*qoM6N<$f_AREs{jB1 literal 0 HcmV?d00001 diff --git a/packages/frontend/src/pages/mahjong/room.game.vue b/packages/frontend/src/pages/mahjong/room.game.vue index 8b8883756d..2f8b7af8cb 100644 --- a/packages/frontend/src/pages/mahjong/room.game.vue +++ b/packages/frontend/src/pages/mahjong/room.game.vue @@ -168,6 +168,17 @@ SPDX-License-Identifier: AGPL-3.0-only +

+ + + +
+
Ron Pon @@ -259,6 +270,22 @@ const ponSerifHouses = reactive>({ e: false, s: false const kanSerifHouses = reactive>({ e: false, s: false, w: false, n: false }); const tsumoSerifHouses = reactive>({ e: false, s: false, w: false, n: false }); const riichiSerifHouses = reactive>({ e: false, s: false, w: false, n: false }); +const iTsumoed = ref(false); +const showKyokuResults = ref(false); +const kyokuResults = ref; +} | null>>({ + e: null, + s: null, + w: null, + n: null, +}); +const ryuukyokued = ref(false); /* if (room.value.isStarted && !room.value.isEnded) { @@ -387,7 +414,7 @@ function cii(ev: MouseEvent) { os.popupMenu(patterns.map(pattern => ({ text: pattern.join(' '), action: () => { - const index = Mmj.sortTileTypes(pattern).indexOf(targetTile); + const index = Mmj.sortTileTypes(pattern).indexOf(mj$type(targetTile)); props.connection!.send('cii', { pattern: index === 0 ? 'x__' : index === 1 ? '_x_' : '__x', }); @@ -407,26 +434,6 @@ function skip() { props.connection!.send('nop', {}); } -const iTsumoed = ref(false); -const showKyokuResults = ref(false); -const kyokuResults = ref; -} | null>>({ - e: null, - s: null, - w: null, - n: null, -}); - -function kyokuEnd() { - showKyokuResults.value = true; -} - function onStreamDahai(log) { console.log('onStreamDahai', log); @@ -617,6 +624,16 @@ function onStreamTsumoHora(log) { console.log('tsumohora', res); } +function onStreamRyuukyoku(log) { + console.log('onStreamRyuukyoku', log); + + ryuukyokued.value = true; + + window.setTimeout(() => { + showKyokuResults.value = true; + }, 1500); +} + function restoreRoom(_room) { room.value = deepClone(_room); @@ -635,6 +652,7 @@ onMounted(() => { props.connection.on('ciied', onStreamCiied); props.connection.on('ronned', onStreamRonned); props.connection.on('tsumoHora', onStreamTsumoHora); + props.connection.on('ryuukyoku', onStreamRyuukyoku); } }); @@ -650,6 +668,7 @@ onActivated(() => { props.connection.on('ciied', onStreamCiied); props.connection.on('ronned', onStreamRonned); props.connection.on('tsumoHora', onStreamTsumoHora); + props.connection.on('ryuukyoku', onStreamRyuukyoku); } }); @@ -665,6 +684,7 @@ onDeactivated(() => { props.connection.off('ciied', onStreamCiied); props.connection.off('ronned', onStreamRonned); props.connection.off('tsumoHora', onStreamTsumoHora); + props.connection.off('ryuukyoku', onStreamRyuukyoku); } }); @@ -680,6 +700,7 @@ onUnmounted(() => { props.connection.off('ciied', onStreamCiied); props.connection.off('ronned', onStreamRonned); props.connection.off('tsumoHora', onStreamTsumoHora); + props.connection.off('ryuukyoku', onStreamRyuukyoku); } }); @@ -969,6 +990,19 @@ onUnmounted(() => { height: min-content; } +.ryuukyokuContainer { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 200px; + height: min-content; + margin: auto; + z-index: 100; + pointer-events: none; +} + .sideTile { margin-bottom: -26px; } diff --git a/packages/misskey-mahjong/src/engine.master.ts b/packages/misskey-mahjong/src/engine.master.ts index 64a87d6cc0..8361aaf34f 100644 --- a/packages/misskey-mahjong/src/engine.master.ts +++ b/packages/misskey-mahjong/src/engine.master.ts @@ -253,12 +253,12 @@ export class MasterGameEngine { return tile; } - private canRon(house: House, tile: TileId): boolean { + private canRon(house: House, tileId: TileId): boolean { // フリテン // TODO: ポンされるなどして自分の河にない場合の考慮 - if (this.hoTileTypes[house].includes($type(tile))) return false; + if (this.hoTileTypes[house].includes($type(tileId))) return false; - const horaSets = Common.getHoraSets(this.handTileTypes[house].concat($type(tile))); + const horaSets = Common.getHoraSets(this.handTileTypes[house].concat($type(tileId))); if (horaSets.length === 0) return false; // 完成形じゃない // TODO @@ -268,15 +268,15 @@ export class MasterGameEngine { return true; } - private canPon(house: House, tile: TileId): boolean { - return this.handTileTypes[house].filter(t => t === $type(tile)).length === 2; + private canPon(house: House, tileId: TileId): boolean { + return this.handTileTypes[house].filter(t => t === $type(tileId)).length === 2; } - private canCii(caller: House, callee: House, tile: TileId): boolean { + private canCii(caller: House, callee: House, tileId: TileId): boolean { if (callee !== Common.prevHouse(caller)) return false; const hand = this.handTileTypes[caller]; return Common.SHUNTU_PATTERNS.some(pattern => - pattern.includes($type(tile)) && + pattern.includes($type(tileId)) && pattern.filter(t => hand.includes(t)).length >= 2); } @@ -325,20 +325,20 @@ export class MasterGameEngine { this.endKyoku(); } - public commit_dahai(house: House, tile: TileId, riichi = false) { + public commit_dahai(house: House, tileId: TileId, riichi = false) { if (this.state.turn !== house) throw new Error('Not your turn'); if (riichi) { const tempHandTiles = [...this.handTileTypes[house]]; - tempHandTiles.splice(tempHandTiles.indexOf($type(tile)), 1); + tempHandTiles.splice(tempHandTiles.indexOf($type(tileId)), 1); if (Common.getHoraTiles(tempHandTiles).length === 0) throw new Error('Not tenpai'); if (this.state.points[house] < 1000) throw new Error('Not enough points'); } const handTiles = this.state.handTiles[house]; - if (!handTiles.includes(tile)) throw new Error('No such tile in your hand'); - handTiles.splice(handTiles.indexOf(tile), 1); - this.state.hoTiles[house].push(tile); + if (!handTiles.includes(tileId)) throw new Error('No such tile in your hand'); + handTiles.splice(handTiles.indexOf(tileId), 1); + this.state.hoTiles[house].push(tileId); if (riichi) { this.state.riichis[house] = true; @@ -347,24 +347,24 @@ export class MasterGameEngine { const canRonHouses: House[] = []; switch (house) { case 'e': - if (this.canRon('s', tile)) canRonHouses.push('s'); - if (this.canRon('w', tile)) canRonHouses.push('w'); - if (this.canRon('n', tile)) canRonHouses.push('n'); + if (this.canRon('s', tileId)) canRonHouses.push('s'); + if (this.canRon('w', tileId)) canRonHouses.push('w'); + if (this.canRon('n', tileId)) canRonHouses.push('n'); break; case 's': - if (this.canRon('e', tile)) canRonHouses.push('e'); - if (this.canRon('w', tile)) canRonHouses.push('w'); - if (this.canRon('n', tile)) canRonHouses.push('n'); + if (this.canRon('e', tileId)) canRonHouses.push('e'); + if (this.canRon('w', tileId)) canRonHouses.push('w'); + if (this.canRon('n', tileId)) canRonHouses.push('n'); break; case 'w': - if (this.canRon('e', tile)) canRonHouses.push('e'); - if (this.canRon('s', tile)) canRonHouses.push('s'); - if (this.canRon('n', tile)) canRonHouses.push('n'); + if (this.canRon('e', tileId)) canRonHouses.push('e'); + if (this.canRon('s', tileId)) canRonHouses.push('s'); + if (this.canRon('n', tileId)) canRonHouses.push('n'); break; case 'n': - if (this.canRon('e', tile)) canRonHouses.push('e'); - if (this.canRon('s', tile)) canRonHouses.push('s'); - if (this.canRon('w', tile)) canRonHouses.push('w'); + if (this.canRon('e', tileId)) canRonHouses.push('e'); + if (this.canRon('s', tileId)) canRonHouses.push('s'); + if (this.canRon('w', tileId)) canRonHouses.push('w'); break; } @@ -372,18 +372,18 @@ export class MasterGameEngine { let canPonHouse: House | null = null; switch (house) { - case 'e': canPonHouse = this.canPon('s', tile) ? 's' : this.canPon('w', tile) ? 'w' : this.canPon('n', tile) ? 'n' : null; break; - case 's': canPonHouse = this.canPon('e', tile) ? 'e' : this.canPon('w', tile) ? 'w' : this.canPon('n', tile) ? 'n' : null; break; - case 'w': canPonHouse = this.canPon('e', tile) ? 'e' : this.canPon('s', tile) ? 's' : this.canPon('n', tile) ? 'n' : null; break; - case 'n': canPonHouse = this.canPon('e', tile) ? 'e' : this.canPon('s', tile) ? 's' : this.canPon('w', tile) ? 'w' : null; break; + case 'e': canPonHouse = this.canPon('s', tileId) ? 's' : this.canPon('w', tileId) ? 'w' : this.canPon('n', tileId) ? 'n' : null; break; + case 's': canPonHouse = this.canPon('e', tileId) ? 'e' : this.canPon('w', tileId) ? 'w' : this.canPon('n', tileId) ? 'n' : null; break; + case 'w': canPonHouse = this.canPon('e', tileId) ? 'e' : this.canPon('s', tileId) ? 's' : this.canPon('n', tileId) ? 'n' : null; break; + case 'n': canPonHouse = this.canPon('e', tileId) ? 'e' : this.canPon('s', tileId) ? 's' : this.canPon('w', tileId) ? 'w' : null; break; } let canCiiHouse: House | null = null; switch (house) { - case 'e': canCiiHouse = this.canCii('s', house, tile) ? 's' : this.canCii('w', house, tile) ? 'w' : this.canCii('n', house, tile) ? 'n' : null; break; - case 's': canCiiHouse = this.canCii('e', house, tile) ? 'e' : this.canCii('w', house, tile) ? 'w' : this.canCii('n', house, tile) ? 'n' : null; break; - case 'w': canCiiHouse = this.canCii('e', house, tile) ? 'e' : this.canCii('s', house, tile) ? 's' : this.canCii('n', house, tile) ? 'n' : null; break; - case 'n': canCiiHouse = this.canCii('e', house, tile) ? 'e' : this.canCii('s', house, tile) ? 's' : this.canCii('w', house, tile) ? 'w' : null; break; + case 'e': canCiiHouse = this.canCii('s', house, tileId) ? 's' : this.canCii('w', house, tileId) ? 'w' : this.canCii('n', house, tileId) ? 'n' : null; break; + case 's': canCiiHouse = this.canCii('e', house, tileId) ? 'e' : this.canCii('w', house, tileId) ? 'w' : this.canCii('n', house, tileId) ? 'n' : null; break; + case 'w': canCiiHouse = this.canCii('e', house, tileId) ? 'e' : this.canCii('s', house, tileId) ? 's' : this.canCii('n', house, tileId) ? 'n' : null; break; + case 'n': canCiiHouse = this.canCii('e', house, tileId) ? 'e' : this.canCii('s', house, tileId) ? 's' : this.canCii('w', house, tileId) ? 'w' : null; break; } if (canRonHouses.length > 0 || canPonHouse != null || canCiiHouse != null) { @@ -422,6 +422,18 @@ export class MasterGameEngine { }; } + // 流局 + if (this.state.tiles.length === 0) { + this.state.turn = null; + + this.endKyoku(); + + return { + asking: false as const, + ryuukyoku: true as const, + }; + } + this.state.turn = Common.nextHouse(house); const tsumoTile = this.tsumo(); @@ -433,11 +445,11 @@ export class MasterGameEngine { }; } - public commit_kakan(house: House, tile: TileId) { - const pon = this.state.huros[house].find(h => h.type === 'pon' && $type(h.tiles[0]) === $type(tile)); + public commit_kakan(house: House, tileId: TileId) { + const pon = this.state.huros[house].find(h => h.type === 'pon' && $type(h.tiles[0]) === $type(tileId)); if (pon == null) throw new Error('No such pon'); - this.state.handTiles[house].splice(this.state.handTiles[house].indexOf(tile), 1); - const tiles = [tile, ...pon.tiles]; + this.state.handTiles[house].splice(this.state.handTiles[house].indexOf(tileId), 1); + const tiles = [tileId, ...pon.tiles]; this.state.huros[house].push({ type: 'minkan', tiles: tiles, from: pon.from }); this.state.activatedDorasCount++; @@ -451,14 +463,14 @@ export class MasterGameEngine { }; } - public commit_ankan(house: House, tile: TileId) { - const t1 = this.state.handTiles[house].filter(t => $type(t) === $type(tile)).at(0); + public commit_ankan(house: House, tileId: TileId) { + const t1 = this.state.handTiles[house].filter(t => $type(t) === $type(tileId)).at(0); if (t1 == null) throw new Error('No such tile'); - const t2 = this.state.handTiles[house].filter(t => $type(t) === $type(tile)).at(1); + const t2 = this.state.handTiles[house].filter(t => $type(t) === $type(tileId)).at(1); if (t2 == null) throw new Error('No such tile'); - const t3 = this.state.handTiles[house].filter(t => $type(t) === $type(tile)).at(2); + const t3 = this.state.handTiles[house].filter(t => $type(t) === $type(tileId)).at(2); if (t3 == null) throw new Error('No such tile'); - const t4 = this.state.handTiles[house].filter(t => $type(t) === $type(tile)).at(3); + const t4 = this.state.handTiles[house].filter(t => $type(t) === $type(tileId)).at(3); if (t4 == null) throw new Error('No such tile'); this.state.handTiles[house].splice(this.state.handTiles[house].indexOf(t1), 1); this.state.handTiles[house].splice(this.state.handTiles[house].indexOf(t2), 1); @@ -660,7 +672,7 @@ export class MasterGameEngine { this.endKyoku(); return { - type: 'ryukyoku' as const, + type: 'ryuukyoku' as const, }; } else { this.state.turn = this.state.nextTurnAfterAsking!; diff --git a/packages/misskey-mahjong/src/engine.player.ts b/packages/misskey-mahjong/src/engine.player.ts index 4d571be782..f2ba137eff 100644 --- a/packages/misskey-mahjong/src/engine.player.ts +++ b/packages/misskey-mahjong/src/engine.player.ts @@ -152,19 +152,19 @@ export class PlayerGameEngine { return this.state.riichis[this.myHouse]; } - public commit_tsumo(house: House, tile: TileId) { - console.log('commit_tsumo', this.state.turn, house, tile); + public commit_tsumo(house: House, tileId: TileId) { + console.log('commit_tsumo', this.state.turn, house, tileId); this.state.tilesCount--; this.state.turn = house; if (house === this.myHouse) { - this.myHandTiles.push(tile); + this.myHandTiles.push(tileId); } else { this.state.handTiles[house].push(0); } } - public commit_dahai(house: House, tile: TileId, riichi = false) { - console.log('commit_dahai', this.state.turn, house, tile, riichi); + public commit_dahai(house: House, tileId: TileId, riichi = false) { + console.log('commit_dahai', this.state.turn, house, tileId, riichi); if (this.state.turn !== house) throw new PlayerGameEngine.InvalidOperationError(); if (riichi) { @@ -172,29 +172,29 @@ export class PlayerGameEngine { } if (house === this.myHouse) { - this.myHandTiles.splice(this.myHandTiles.indexOf(tile), 1); - this.state.hoTiles[this.myHouse].push(tile); + this.myHandTiles.splice(this.myHandTiles.indexOf(tileId), 1); + this.state.hoTiles[this.myHouse].push(tileId); } else { this.state.handTiles[house].pop(); - this.state.hoTiles[house].push(tile); + this.state.hoTiles[house].push(tileId); } this.state.turn = null; if (house === this.myHouse) { } else { - const canRon = Common.getHoraSets(this.myHandTiles.concat(tile).map(id => $type(id))).length > 0; - const canPon = !this.isMeRiichi && this.myHandTiles.filter(t => t === tile).length === 2; - const canKan = !this.isMeRiichi && this.myHandTiles.filter(t => t === tile).length === 3; + const canRon = Common.getHoraSets(this.myHandTiles.concat(tileId).map(id => $type(id))).length > 0; + const canPon = !this.isMeRiichi && this.myHandTileTypes.filter(t => t === $type(tileId)).length === 2; + const canKan = !this.isMeRiichi && this.myHandTileTypes.filter(t => t === $type(tileId)).length === 3; const canCii = !this.isMeRiichi && house === Common.prevHouse(this.myHouse) && Common.SHUNTU_PATTERNS.some(pattern => - pattern.includes($type(tile)) && + pattern.includes($type(tileId)) && pattern.filter(t => this.myHandTileTypes.includes(t)).length >= 2); - if (canRon) this.state.canRon = { callee: house }; - if (canPon) this.state.canPon = { callee: house }; - if (canKan) this.state.canKan = { callee: house }; - if (canCii) this.state.canCii = { callee: house }; + this.state.canRon = canRon ? { callee: house } : null; + this.state.canPon = canPon ? { callee: house } : null; + this.state.canKan = canKan ? { callee: house } : null; + this.state.canCii = canCii ? { callee: house } : null; } }