diff --git a/backend/bang/cards.py b/backend/bang/cards.py
index cd52f2c..94d8ba9 100644
--- a/backend/bang/cards.py
+++ b/backend/bang/cards.py
@@ -339,6 +339,7 @@ class Mancato(Card):
def play_card(self, player, against, _with=None):
import bang.characters as chars
if against != None and player.character.check(player.game, chars.CalamityJanet):
+ import bang.expansions.fistful_of_cards.card_events as ce
if player.has_played_bang and (not any([isinstance(c, Volcanic) for c in player.equipment]) or player.game.check_event(ce.Lazo)):
return False
import bang.expansions.high_noon.card_events as ceh
diff --git a/backend/bang/players.py b/backend/bang/players.py
index df0d903..e81387a 100644
--- a/backend/bang/players.py
+++ b/backend/bang/players.py
@@ -979,6 +979,7 @@ class Player:
self.play_turn(can_play_vendetta=False)
return
self.is_my_turn = False
+ self.has_played_bang = False
for i in range(len(self.equipment)):
if self.equipment[i].usable_next_turn and not self.equipment[i].can_be_used_now:
self.equipment[i].can_be_used_now = True
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index dce6cda..2ff8f5b 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -36,6 +36,7 @@ export default {
data: () => ({
isConnected: false,
c: false,
+ showUpdateUI: false,
}),
computed: {
},
diff --git a/frontend/src/components/Card.vue b/frontend/src/components/Card.vue
index b541e76..07184a7 100644
--- a/frontend/src/components/Card.vue
+++ b/frontend/src/components/Card.vue
@@ -134,6 +134,9 @@ export default {
bottom: 20pt;
left: 3pt;
}
+.cant-play {
+ filter: brightness(0.5);
+}
@media (prefers-color-scheme: dark) {
:root, #app {
background-color: #181a1b;
diff --git a/frontend/src/components/Chat.vue b/frontend/src/components/Chat.vue
index d73cc08..eba8765 100644
--- a/frontend/src/components/Chat.vue
+++ b/frontend/src/components/Chat.vue
@@ -2,7 +2,7 @@
{{$t("chat.chat")}}
-
{{msg.text}}
+
{{msg.text}}
.
diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue
index 621045b..542f914 100644
--- a/frontend/src/components/Player.vue
+++ b/frontend/src/components/Player.vue
@@ -8,13 +8,13 @@
- ❤️
- 💀
+ ❤️
+ 💀
+ @click.native="play_card(card, true)" :class="{'cant-play':(eventCard && eventCard.name == 'Lazo')}"/>
@@ -27,9 +27,10 @@
{{$t('hand')}}
-
+ @pointerenter.native="hint=($i18n.locale=='it'?card.desc:card.desc_eng)" @pointerleave.native="hint=''"
+ :class="{'cant-play':card.cantBePlayed}"/>
@@ -109,6 +110,7 @@ export default {
mancato_needed: 0,
is_ghost: false,
name: '',
+ eventCard: false,
}),
sockets: {
role(role) {
@@ -163,7 +165,10 @@ export default {
setTimeout(function(){
this.notifycard = null
}.bind(this), 4000)
- }
+ },
+ event_card(card) {
+ this.eventCard = card
+ },
},
computed:{
respondText() {
@@ -237,6 +242,20 @@ export default {
cc.push(x)
})
return cc
+ },
+ handComputed() {
+ return this.hand.map(x=> {
+ let cantBePlayed = false
+ let calamity_special = (x.name === 'Mancato!' && this.character.name === 'Calamity Janet')
+ let cant_play_bang = (this.has_played_bang && this.equipment.filter(x => x.name == 'Volcanic').length == 0)
+ if ((x.name == 'Bang!' || (calamity_special && x.name=='Mancato!')) && (cant_play_bang || (this.eventCard && this.eventCard.name == "Sermone"))) cantBePlayed = true;
+ else if (this.eventCard && this.eventCard.name == "Il Giudice" && (x.is_equipment || !x.can_be_used_now)) cantBePlayed = true;
+ else if (this.eventCard && this.eventCard.name == "Il Reverendo" && (x.name == "Birra")) cantBePlayed = true;
+ return {
+ ...x,
+ cantBePlayed: cantBePlayed
+ }
+ })
}
},
methods: {
@@ -331,7 +350,7 @@ export default {
this.card_with = null
},
really_play_card(card, against) {
- let res = this.hand.indexOf(card)
+ let res = this.handComputed.indexOf(card)
if (res === -1) {
res = this.equipment.indexOf(card)
if (res !== -1) res += this.hand.length