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