tutti vedono emporio

This commit is contained in:
Alberto Xamin 2021-01-22 14:12:45 +01:00
parent f628ab75dc
commit cd9d422f44
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
5 changed files with 17 additions and 2 deletions

View File

@ -1,4 +1,5 @@
import json
from typing import List, Set, Dict, Tuple, Optional
import random
import socketio
@ -208,6 +209,8 @@ class Game:
self.players[self.turn].pending_action = pl.PendingAction.CHOOSE
self.players[self.turn].choose_text = 'choose_card_to_get'
self.players[self.turn].available_cards = self.available_cards
self.sio.emit('emporio', room=self.name, data=json.dumps(
{'name':self.players[self.turn].name,'cards': self.available_cards}, default=lambda o: o.__dict__))
self.players[self.turn].notify_self()
def respond_emporio(self, player, i):
@ -218,12 +221,15 @@ class Game:
pls = self.get_alive_players()
nextPlayer = pls[(pls.index(self.players[self.turn])+(len(pls)-len(self.available_cards))) % len(pls)]
if nextPlayer == self.players[self.turn]:
self.sio.emit('emporio', room=self.name, data='{"name":"","cards":[]}')
self.players[self.turn].pending_action = pl.PendingAction.PLAY
self.players[self.turn].notify_self()
else:
nextPlayer.pending_action = pl.PendingAction.CHOOSE
nextPlayer.choose_text = 'choose_card_to_get'
nextPlayer.available_cards = self.available_cards
self.sio.emit('emporio', room=self.name, data=json.dumps(
{'name':nextPlayer.name,'cards': self.available_cards}, default=lambda o: o.__dict__))
nextPlayer.notify_self()
def get_player_named(self, name:str):

View File

@ -2,7 +2,9 @@
<div id="overlay" class="center-stuff">
<h1>{{text}}</h1>
<div>
<Card v-for="(c, i) in cards" v-bind:key="i" :card="c" @click.native="select(c)" @pointerenter.native="showDesc(c)" @pointerleave.native="desc=''"/>
<transition-group name="list" tag="div">
<Card v-for="(c, i) in cards" v-bind:key="c.name+c.number" :alt="i" :card="c" @click.native="select(c)" @pointerenter.native="showDesc(c)" @pointerleave.native="desc=''"/>
</transition-group>
</div>
<p v-if="hintText">{{hintText}}</p>
<div style="margin-top:6pt;" class="button center-stuff" v-if="showCancelBtn" @click="cancel"><span>{{realCancelText}}</span></div>

View File

@ -36,7 +36,7 @@
<transition name="list">
<p v-if="hint"><i>{{hint}}</i></p>
</transition>
<Chooser v-if="is_my_turn && pending_action == 4 && (lives > 0 || is_ghost)" :text="$t('wait')" :cards="[]"/>
<Chooser v-if="is_my_turn && pending_action == 4 && (lives > 0 || is_ghost) && !(emporioCards && emporioCards.cards && emporioCards.cards.length > 0)" :text="$t('wait')" :cards="[]"/>
<Chooser v-if="card_against" :text="$t('card_against')" :hint-text="visiblePlayers.length === 0 ? $t('no_players_in_range'):''" :cards="visiblePlayers" :select="selectAgainst" :cancel="cancelCardAgainst"/>
<Chooser v-if="pending_action == 3" :text="respondText" :cards="respondCards" :select="respond"/>
<Chooser v-if="shouldChooseCard" :text="$t(choose_text)" :cards="available_cards" :select="choose"/>
@ -56,6 +56,7 @@
<Chooser v-if="holydayScrap && scrapHand.length < 2" :text="`${$t('discard')} ${2 - scrapHand.length}`"
:cards="notScrappedHand" :select="holydayScrapAdd" :cancel="() => {holydayScrap = false;scrapHand=[]}"/>
<Chooser v-if="holydayScrap && scrapHand.length == 2" :text="$t('card_against')" :cards="visiblePlayers" :select="holydayScrapBang" :cancel="() => {holydayScrap = false;scrapHand=[]}"/>
<Chooser style="filter: grayscale(1);" v-if="emporioCards && emporioCards.cards && emporioCards.cards.length > 0 && pending_action === 4" :text="$t('emporio_others', [emporioCards.name])" :cards="emporioCards.cards"/>
</div>
</template>
@ -111,6 +112,7 @@ export default {
is_ghost: false,
name: '',
eventCard: false,
emporioCards: {},
}),
sockets: {
role(role) {
@ -121,6 +123,9 @@ export default {
characters(data) {
this.availableCharacters = JSON.parse(data)
},
emporio(cards) {
this.emporioCards = JSON.parse(cards)
},
self(self) {
self = JSON.parse(self)
this.name = self.name

View File

@ -45,6 +45,7 @@
"choose_cecchino": "Choose who to shoot",
"choose_rimbalzo_player": "Choose the target of the bang",
"choose_rimbalzo_card": "Choose the card to discard the bang to",
"emporio_others": "{0} is choosing which card to get from the General Store",
"you_died":"YOU DIED",
"spectate":"SPECTATE",
"you_win":"YOU WON",

View File

@ -45,6 +45,7 @@
"choose_cecchino": "Scegli contro chi sparare",
"choose_rimbalzo_player": "Scegli contro chi scartare il bang",
"choose_rimbalzo_card": "Scegli contro che carta scartare il bang",
"emporio_others": "{0} sta scegliendo che carta prendere dall'emporio",
"you_died": "SEI MORTO",
"spectate": "SPETTATORE",
"you_win": "HAI VINTO",