Skip to content

Commit

Permalink
store
Browse files Browse the repository at this point in the history
  • Loading branch information
hsyhhssyy committed Jun 22, 2024
1 parent 5ae7e3a commit 5504e96
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 59 deletions.
8 changes: 8 additions & 0 deletions src/desktop/views/room/WaitingRoomBase.vue
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,10 @@ async function gameStartedListener(response: SignalrResponse) {
return
}
await jumpToGameRoom()
}
async function jumpToGameRoom(){
if (gameRoomData.value?.gameType) {
const gameData = gameTypeMap.value[gameRoomData.value?.gameType]
await router.push(gameData.route + "game/" + roomId)
Expand Down Expand Up @@ -258,7 +262,11 @@ watch(
)
onMounted(async () => {
gameRoomData.value = await getGame(roomId)
if(gameRoomData.value?.isStarted) {
await jumpToGameRoom()
}
})
onUnmounted(async () => {
Expand Down
4 changes: 3 additions & 1 deletion src/mobile/components/ChatBoard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,9 @@ async function sendMessage() {
inputMessage.value = ''
}
async function chatListener(response: SignalrResponse) {
async function chatListener(response: SignalrResponse) {
if (response.GameId != props.roomId) return //多标签页环境可能出现多个房间同开的情况
const player = props.players.find((p) => p.id === response.UserId)
if (player) {
Expand Down
3 changes: 3 additions & 0 deletions src/mobile/views/GameBase.vue
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ async function endGame(){
}
function gameCompletedListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
isCompleted.value = true
}
Expand All @@ -87,6 +88,8 @@ async function gameClosedListener(response: SignalrResponse) {
}
function gameInfoListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
gameInfoData.value = response;
if (isGameInfoReceiving.value == true) {
isGameInfoReceiving.value = false
Expand Down
85 changes: 35 additions & 50 deletions src/mobile/views/game/CypherChallenge.vue
Original file line number Diff line number Diff line change
@@ -1,42 +1,40 @@
<template>
<game-base ref="base" :room-id="roomId" :input-handler="sendMove" :players="players" @on-loaded="load">
<div style="height: 100%" class="game-card">
<n-modal v-model:show="settlementDialogShown" :mask-closable="false">
<div class="overlay-card">
<n-flex justify="center">
<div class="correct-answer">
正确答案:{{ lastQuestion?.CharacterName }}
</div>
</n-flex>
<result-table :currentQuestion="lastQuestion" :playersMap="playersMap" :headers="headers"
:showAnswer="true"></result-table>
<next-question :room-id="roomId" :active="settlementCountdownActive"
@on-next-question="moveToNextQuestion" :show-close="true"
@on-close-result-popup="closeResultPopup" :game="game" :players="players"></next-question>

</div>
</n-modal>
<div>
<div class="game-panel">
<hit-effect ref="hit"></hit-effect>
<div class="game-body">
<div :bordered="false" size="small" class="answer-list">
<!-- <icon-button :icon="SendOne" type="success" @click="test">test</icon-button> -->
<div class="property-revealed">
<div v-for="header in headers" class="property-header">
<div class="property-value">
{{ header + ":" }} {{ currentQuestion.CharacterProperties[header] || '???' }}
</div>
<hit-effect ref="hit"></hit-effect>
<div class="game-panel" :style="{ 'display': settlementDialogShown ? 'flex' : 'none' }">
<n-flex justify="center">
<div class="correct-answer">
正确答案:{{ lastQuestion?.CharacterName }}
</div>
</n-flex>
<result-table :currentQuestion="lastQuestion" :playersMap="playersMap" :headers="headers"
:showAnswer="true"></result-table>
<next-question :room-id="roomId" :active="settlementCountdownActive"
@on-next-question="moveToNextQuestion" :show-close="false"
:game="game" :players="players"></next-question>
</div>
<div class="game-panel" :style="{ 'display': !settlementDialogShown ? 'flex' : 'none' }">
<div class="game-body">
<div :bordered="false" size="small" class="answer-list">
<!-- <icon-button :icon="SendOne" type="success" @click="test">test</icon-button> -->
<div class="property-revealed">
<div v-for="header in headers" class="property-header">
<div class="property-value" v-if="header!=='未知线索'">
{{ currentQuestion.CharacterProperties[header] || '???' }}
</div>
<div class="property-value" v-if="header==='未知线索'">
{{ header }} : ???
</div>
</div>
</div>
<result-table :currentQuestion="currentQuestion" :playersMap="playersMap" :headers="headers"
:showAnswer="false"></result-table>

</div>
<result-table :currentQuestion="currentQuestion" :playersMap="playersMap" :headers="headers"
:showAnswer="false"></result-table>

</div>
</div>
<div style="display: hidden;">
<div style="display: none;">
<amiya-face @on-hit="onFaceHit"></amiya-face>
</div>
</div>
Expand Down Expand Up @@ -181,6 +179,8 @@ function sendMove(content: string) {
}
function receiveMoveListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
const player = players.value.find((p) => p.id === response.Payload.PlayerId)
if (response.Game) {
Expand Down Expand Up @@ -214,6 +214,8 @@ function receiveMoveListener(response: SignalrResponse) {
}
function gameInfoListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
if (response.Game) {
game.value = response.Game
}
Expand All @@ -229,6 +231,8 @@ function gameInfoListener(response: SignalrResponse) {
}
function gameCompletedListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
game.value = response.Game
prepareNextQuestion()
}
Expand All @@ -254,14 +258,13 @@ onUnmounted(() => {
</script>

<style lang="scss" scoped>
$guideHeight: 160px;
.game-card {
position: relative;
overflow: hidden;
.game-panel {
height: calc(100% - $guideHeight);
height: 100%;
background: url(@/assets/images/cypherChallenge/loading.jpg) center / cover no-repeat;
border-radius: 4px;
padding: 5px 5px;
Expand Down Expand Up @@ -321,24 +324,6 @@ $guideHeight: 160px;
}
}
.game-guide {
height: $guideHeight;
display: flex;
align-items: flex-end;
padding-bottom: 30px;
.amiya-face {
width: 120px;
height: 100%;
background: center bottom / 100% no-repeat;
margin-right: 10px;
}
.amiya-chat {
height: fit-content;
}
}
}
.overlay-card {
Expand Down
6 changes: 6 additions & 0 deletions src/mobile/views/game/SchulteGrid.vue
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ async function sendMove(content: string) {
}
function receiveMoveListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
const player = players.value.find((p) => p.id === response.Payload.PlayerId)
const result = response.Payload.Result
const characterName = response.Payload.CharacterName
Expand Down Expand Up @@ -171,6 +173,8 @@ function receiveMoveListener(response: SignalrResponse) {
function gameCompletedListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
const answers = response.Payload.RemainingAnswers
if (isCompleted.value === false) {
isCompleted.value = true
Expand Down Expand Up @@ -212,6 +216,8 @@ function pushRemainingAnswers(answers: any) {
}
async function gameInfoListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
if (expandedData.value.length == 0) {
const grid = response.Payload.Grid
if (grid.length > 0) {
Expand Down
10 changes: 10 additions & 0 deletions src/mobile/views/game/SkinGuess.vue
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,8 @@ function sendMove(content: string) {
}
const hintListener = (response: any) => {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
questionList.value[response.Payload.CurrentQuestionIndex].HintLevel = response.Payload.HintLevel;
updateImage();
Expand All @@ -385,6 +387,8 @@ const hintListener = (response: any) => {
}
const giveUpListener = (response: any) => {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
base.value.pushMessage({
userId: response.Payload.PlayerId,
content: '房主选择放弃本题',
Expand All @@ -400,6 +404,8 @@ const giveUpListener = (response: any) => {
}
function receiveMoveListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
const player = players.value.find((p) => p.id === response.Payload.PlayerId)
if (response.Game) {
Expand All @@ -425,6 +431,8 @@ function receiveMoveListener(response: SignalrResponse) {
}
function gameInfoListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
if (response.Game) {
game.value = response.Game
}
Expand All @@ -440,6 +448,8 @@ function gameInfoListener(response: SignalrResponse) {
}
function gameCompletedListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
game.value = response.Game
prepareNextQuestion()
}
Expand Down
34 changes: 26 additions & 8 deletions src/mobile/views/room/WaitingRoomBase.vue
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,16 @@ watch( computed(() => props.settings), (value:any) => {
let getGameInterval: any = null
async function jumpToGameRoom(){
if (gameRoomData.value?.gameType) {
const gameData = gameTypeMap.value[gameRoomData.value?.gameType]
await router.push(gameData.route + "game/" + roomId)
}
}
async function gameInfoListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
const playerList = response.PlayerList
isHost.value = response.Game.CreatorId == userId
Expand All @@ -126,7 +135,7 @@ async function gameInfoListener(response: SignalrResponse) {
})
if (response.Game.IsStarted) {
await gameStartedListener()
await jumpToGameRoom()
}
}
Expand All @@ -135,6 +144,8 @@ async function playerJoinedListener() {
}
async function playerLeftListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
const playerId = response.LeavingPlayerId
const method = response.LeavingMethod
Expand All @@ -147,19 +158,22 @@ async function playerLeftListener(response: SignalrResponse) {
}
async function gameSettingsChangedListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
const settings = response.Settings
emits('onSettingsLoaded', settings)
}
async function gameStartedListener() {
if (gameRoomData.value?.gameType) {
const gameData = gameTypeMap.value[gameRoomData.value?.gameType]
await router.push(gameData.route + "game/" + roomId)
}
async function gameStartedListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
await jumpToGameRoom()
}
async function gameClosedListener() {
await toast('房间已关闭', 'warning')
async function gameClosedListener(response: SignalrResponse) {
if (response.Game.Id != roomId) return //多标签页环境可能出现多个房间同开的情况
await toast('房间已被关闭', 'warning')
await router.push('/regular-home')
}
Expand Down Expand Up @@ -214,6 +228,10 @@ watch(
onMounted(async () => {
gameRoomData.value = await getGame(roomId)
if(gameRoomData.value?.isStarted) {
await jumpToGameRoom()
}
})
onUnmounted(async () => {
Expand Down

0 comments on commit 5504e96

Please sign in to comment.