Feat : better discard

Closes #27
This commit is contained in:
2024-05-14 20:17:30 +02:00
parent 583c5f56b6
commit 2cec8bf54c
2 changed files with 36 additions and 25 deletions
+33 -23
View File
@@ -17,14 +17,13 @@ import { CardEffects, type Effect } from "@/netcode/Effect";
export interface Props {
player: Player;
hide_stack_and_discard?: boolean;
discard_unwrapped?: boolean;
}
const props = withDefaults(defineProps<Props>(), {
hide_stack_and_discard: () => false,
discard_unwrapped: () => false,
})
const discard_unwrapped = ref(false)
const isPlayerTurn = computed(() => props.player.team === goStore.current_game?.current_turn);
const isSelf = computed(() => props.player.uuid === goStore.self?.uuid);
const isSelfTurn = computed(() => goStore.self?.team === goStore.current_game?.current_turn)
@@ -64,27 +63,32 @@ const prepare_champion = (target: Card) => run_effect(CardEffects.PREPARE, targe
</CardsGrouped>
<span>stack =</span>
</div>
<div :id="`discard_unwrapped_bg`" :class="`${discard_unwrapped ? 'unwrapped' : ''}`"></div>
<div :id="`discard_unwrapped_bg`" :class="`${discard_unwrapped ? 'unwrapped' : ''}`"
@click="() => discard_unwrapped = false"></div>
<div :class="`discard ${discard_unwrapped ? 'unwrapped' : ''}`">
<CardsGrouped :stack="props.player.discard_pile" v-if="!props.discard_unwrapped"> </CardsGrouped>
<CardPreview :tilted="false" v-if="props.discard_unwrapped" :card_id="c.card_id"
v-for="c in props.player.discard_pile">
<template v-if="goStore.self?.turn && c && isSelf && isPlayerTurn">
<div class="discard_container" @click="() => discard_unwrapped = true">
<CardsGrouped :stack="props.player.discard_pile" v-if="!discard_unwrapped"> </CardsGrouped>
<CardPreview :tilted="false" v-if="discard_unwrapped" :card_id="c.card_id"
v-for="c in props.player.discard_pile">
<template v-if="goStore.self?.turn && c && isSelf && isPlayerTurn">
<button v-if="goStore.self?.turn.find_effect(CardEffects.SACRIFICE)" @click.stop="sacrifice(c)">
SACRIFICE
</button>
<button v-if="goStore.self?.turn.find_effect(CardEffects.RESTACK_DISCARDED_CHAMPION)"
@click.stop="restack_discarded_champion(c)">
RESTACK_DISCARDED_CHAMPION
</button>
<button v-if="goStore.self?.turn.find_effect(CardEffects.RESTACK_DISCARDED_CARD)"
@click.stop="restack_discarded_card(c)">
RESTACK_DISCARDED_CARD
</button>
<button v-if="goStore.self?.turn.find_effect(CardEffects.SACRIFICE)"
@click.stop="sacrifice(c)">
SACRIFICE
</button>
<button v-if="goStore.self?.turn.find_effect(CardEffects.RESTACK_DISCARDED_CHAMPION)"
@click.stop="restack_discarded_champion(c)">
RESTACK_DISCARDED_CHAMPION
</button>
<button v-if="goStore.self?.turn.find_effect(CardEffects.RESTACK_DISCARDED_CARD)"
@click.stop="restack_discarded_card(c)">
RESTACK_DISCARDED_CARD
</button>
</template>
</CardPreview>
</div>
</template>
</CardPreview>
</div>
</template>
<div id="player_banner">
@@ -192,13 +196,21 @@ const prepare_champion = (target: Card) => run_effect(CardEffects.PREPARE, targe
margin-top: 50px;
grid-area: discard;
justify-content: start;
cursor: pointer;
pointer-events: none;
}
.discard.unwrapped {
z-index: 9;
cursor: default;
position: absolute;
}
.discard_container {
display: flex;
/* background: blue; */
pointer-events: all;
}
#discard_unwrapped_bg {
display: none;
@@ -216,8 +228,6 @@ const prepare_champion = (target: Card) => run_effect(CardEffects.PREPARE, targe
}
.player {
position: relative;
isolation: isolate;
display: grid;
grid-template-columns: min-content 1fr;
grid-template-rows: min-content min-content 1fr;