fix : sacrifice tokens on opponent discard
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user