tutti vedono emporio
This commit is contained in:
parent
f628ab75dc
commit
cd9d422f44
@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
|
import json
|
||||||
from typing import List, Set, Dict, Tuple, Optional
|
from typing import List, Set, Dict, Tuple, Optional
|
||||||
import random
|
import random
|
||||||
import socketio
|
import socketio
|
||||||
@ -208,6 +209,8 @@ class Game:
|
|||||||
self.players[self.turn].pending_action = pl.PendingAction.CHOOSE
|
self.players[self.turn].pending_action = pl.PendingAction.CHOOSE
|
||||||
self.players[self.turn].choose_text = 'choose_card_to_get'
|
self.players[self.turn].choose_text = 'choose_card_to_get'
|
||||||
self.players[self.turn].available_cards = self.available_cards
|
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()
|
self.players[self.turn].notify_self()
|
||||||
|
|
||||||
def respond_emporio(self, player, i):
|
def respond_emporio(self, player, i):
|
||||||
@ -218,12 +221,15 @@ class Game:
|
|||||||
pls = self.get_alive_players()
|
pls = self.get_alive_players()
|
||||||
nextPlayer = pls[(pls.index(self.players[self.turn])+(len(pls)-len(self.available_cards))) % len(pls)]
|
nextPlayer = pls[(pls.index(self.players[self.turn])+(len(pls)-len(self.available_cards))) % len(pls)]
|
||||||
if nextPlayer == self.players[self.turn]:
|
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].pending_action = pl.PendingAction.PLAY
|
||||||
self.players[self.turn].notify_self()
|
self.players[self.turn].notify_self()
|
||||||
else:
|
else:
|
||||||
nextPlayer.pending_action = pl.PendingAction.CHOOSE
|
nextPlayer.pending_action = pl.PendingAction.CHOOSE
|
||||||
nextPlayer.choose_text = 'choose_card_to_get'
|
nextPlayer.choose_text = 'choose_card_to_get'
|
||||||
nextPlayer.available_cards = self.available_cards
|
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()
|
nextPlayer.notify_self()
|
||||||
|
|
||||||
def get_player_named(self, name:str):
|
def get_player_named(self, name:str):
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
<div id="overlay" class="center-stuff">
|
<div id="overlay" class="center-stuff">
|
||||||
<h1>{{text}}</h1>
|
<h1>{{text}}</h1>
|
||||||
<div>
|
<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>
|
</div>
|
||||||
<p v-if="hintText">{{hintText}}</p>
|
<p v-if="hintText">{{hintText}}</p>
|
||||||
<div style="margin-top:6pt;" class="button center-stuff" v-if="showCancelBtn" @click="cancel"><span>{{realCancelText}}</span></div>
|
<div style="margin-top:6pt;" class="button center-stuff" v-if="showCancelBtn" @click="cancel"><span>{{realCancelText}}</span></div>
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
<transition name="list">
|
<transition name="list">
|
||||||
<p v-if="hint"><i>{{hint}}</i></p>
|
<p v-if="hint"><i>{{hint}}</i></p>
|
||||||
</transition>
|
</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="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="pending_action == 3" :text="respondText" :cards="respondCards" :select="respond"/>
|
||||||
<Chooser v-if="shouldChooseCard" :text="$t(choose_text)" :cards="available_cards" :select="choose"/>
|
<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}`"
|
<Chooser v-if="holydayScrap && scrapHand.length < 2" :text="`${$t('discard')} ${2 - scrapHand.length}`"
|
||||||
:cards="notScrappedHand" :select="holydayScrapAdd" :cancel="() => {holydayScrap = false;scrapHand=[]}"/>
|
: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 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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -111,6 +112,7 @@ export default {
|
|||||||
is_ghost: false,
|
is_ghost: false,
|
||||||
name: '',
|
name: '',
|
||||||
eventCard: false,
|
eventCard: false,
|
||||||
|
emporioCards: {},
|
||||||
}),
|
}),
|
||||||
sockets: {
|
sockets: {
|
||||||
role(role) {
|
role(role) {
|
||||||
@ -121,6 +123,9 @@ export default {
|
|||||||
characters(data) {
|
characters(data) {
|
||||||
this.availableCharacters = JSON.parse(data)
|
this.availableCharacters = JSON.parse(data)
|
||||||
},
|
},
|
||||||
|
emporio(cards) {
|
||||||
|
this.emporioCards = JSON.parse(cards)
|
||||||
|
},
|
||||||
self(self) {
|
self(self) {
|
||||||
self = JSON.parse(self)
|
self = JSON.parse(self)
|
||||||
this.name = self.name
|
this.name = self.name
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
"choose_cecchino": "Choose who to shoot",
|
"choose_cecchino": "Choose who to shoot",
|
||||||
"choose_rimbalzo_player": "Choose the target of the bang",
|
"choose_rimbalzo_player": "Choose the target of the bang",
|
||||||
"choose_rimbalzo_card": "Choose the card to discard the bang to",
|
"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",
|
"you_died":"YOU DIED",
|
||||||
"spectate":"SPECTATE",
|
"spectate":"SPECTATE",
|
||||||
"you_win":"YOU WON",
|
"you_win":"YOU WON",
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
"choose_cecchino": "Scegli contro chi sparare",
|
"choose_cecchino": "Scegli contro chi sparare",
|
||||||
"choose_rimbalzo_player": "Scegli contro chi scartare il bang",
|
"choose_rimbalzo_player": "Scegli contro chi scartare il bang",
|
||||||
"choose_rimbalzo_card": "Scegli contro che carta 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",
|
"you_died": "SEI MORTO",
|
||||||
"spectate": "SPETTATORE",
|
"spectate": "SPETTATORE",
|
||||||
"you_win": "HAI VINTO",
|
"you_win": "HAI VINTO",
|
||||||
|
Loading…
Reference in New Issue
Block a user