fix : sacrifice tokens on opponent discard

This commit is contained in:
2024-12-21 11:21:46 +01:00
parent f0387cebc8
commit d0ebd3746e
+29 -43
View File
@@ -20,15 +20,21 @@ const props = defineProps<Props>();
const isVisible = ref(false); const isVisible = ref(false);
const discardTokens = computed(() => const discardTokens = computed(() => {
props.game.currentTurn.tokens.filter((t) => // Only check for tokens if it's current player's turn
[ const team = props.game.teams.find((t) => t._id == props.game.currentTurn.currentTeam);
CardEffects.RESTACK_DISCARDED_ACTION, if (team?.players.some(p => p._id == props.player._id)) {
CardEffects.RESTACK_DISCARDED_CARD, return props.game.currentTurn.tokens.filter((t) =>
CardEffects.RESTACK_DISCARDED_CHAMPION, [
CardEffects.SACRIFICE, CardEffects.RESTACK_DISCARDED_ACTION,
].includes(t.effect) CardEffects.RESTACK_DISCARDED_CARD,
) CardEffects.RESTACK_DISCARDED_CHAMPION,
CardEffects.SACRIFICE,
].includes(t.effect)
)
}
}
); );
function tokenClick({ card, token }: { card: Card; token: Effect }) { function tokenClick({ card, token }: { card: Card; token: Effect }) {
@@ -45,43 +51,21 @@ function openDiscard() {
<template> <template>
<div id="discard"> <div id="discard">
<GameCardGrouped <GameCardGrouped @cardClick="openDiscard" :container="player.discard" :wrapped="true" :no-effects="true">
@cardClick="openDiscard"
:container="player.discard"
:wrapped="true"
:no-effects="true"
>
</GameCardGrouped> </GameCardGrouped>
</div> </div>
<div <div class="discard-animations discard-background"
class="discard-animations discard-background" :class="{ visible: isVisible, fullscreen: settingsStore.discardFullscreen }" @click.stop="isVisible = false"></div>
:class="{ visible: isVisible, fullscreen: settingsStore.discardFullscreen }" <div class="discard-animations discard-menu"
@click.stop="isVisible = false" :class="{ visible: isVisible, fullscreen: settingsStore.discardFullscreen }" @click.stop="isVisible = false">
></div>
<div
class="discard-animations discard-menu"
:class="{ visible: isVisible, fullscreen: settingsStore.discardFullscreen }"
@click.stop="isVisible = false"
>
<span>Discard of {{ player.user.username }}</span> <span>Discard of {{ player.user.username }}</span>
<button <button class="discard-fullscreen-btn" @click.stop="
class="discard-fullscreen-btn" settingsStore.discardFullscreen = !settingsStore.discardFullscreen
@click.stop=" ">
settingsStore.discardFullscreen = !settingsStore.discardFullscreen
"
>
TOGGLE FULLSCREEN TOGGLE FULLSCREEN
</button> </button>
<GameCardGrouped <GameCardGrouped :container="player.discard" :wrapped="false" :hidden="false" :tokens="discardTokens"
:container="player.discard" :noEffects="true" :playingTurn="game.currentTurn" :locked="true" @tokenClick="tokenClick"></GameCardGrouped>
:wrapped="false"
:hidden="false"
:tokens="discardTokens"
:noEffects="true"
:playingTurn="game.currentTurn"
:locked="true"
@tokenClick="tokenClick"
></GameCardGrouped>
</div> </div>
</template> </template>
@@ -89,6 +73,7 @@ function openDiscard() {
span { span {
background: white; background: white;
} }
.discard-fullscreen-btn { .discard-fullscreen-btn {
pointer-events: all; pointer-events: all;
} }
@@ -96,6 +81,7 @@ span {
.discard-animations { .discard-animations {
transition: 0.3s all var(--animation-curve); transition: 0.3s all var(--animation-curve);
} }
.discard-background { .discard-background {
transition: 0.3s all linear; transition: 0.3s all linear;
position: fixed; position: fixed;
@@ -145,7 +131,7 @@ span {
left: 0%; left: 0%;
} }
.discard-menu > .cards_container { .discard-menu>.cards_container {
pointer-events: all; pointer-events: all;
overflow: auto; overflow: auto;
padding: 30px; padding: 30px;
@@ -154,7 +140,7 @@ span {
justify-content: center; justify-content: center;
} }
.discard-menu.fullscreen > .cards_container { .discard-menu.fullscreen>.cards_container {
max-width: 50%; max-width: 50%;
} }
</style> </style>