change brightness of unusable cards
This commit is contained in:
parent
8261112b52
commit
ed14d34f4b
@ -339,6 +339,7 @@ class Mancato(Card):
|
|||||||
def play_card(self, player, against, _with=None):
|
def play_card(self, player, against, _with=None):
|
||||||
import bang.characters as chars
|
import bang.characters as chars
|
||||||
if against != None and player.character.check(player.game, chars.CalamityJanet):
|
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)):
|
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
|
return False
|
||||||
import bang.expansions.high_noon.card_events as ceh
|
import bang.expansions.high_noon.card_events as ceh
|
||||||
|
@ -979,6 +979,7 @@ class Player:
|
|||||||
self.play_turn(can_play_vendetta=False)
|
self.play_turn(can_play_vendetta=False)
|
||||||
return
|
return
|
||||||
self.is_my_turn = False
|
self.is_my_turn = False
|
||||||
|
self.has_played_bang = False
|
||||||
for i in range(len(self.equipment)):
|
for i in range(len(self.equipment)):
|
||||||
if self.equipment[i].usable_next_turn and not self.equipment[i].can_be_used_now:
|
if self.equipment[i].usable_next_turn and not self.equipment[i].can_be_used_now:
|
||||||
self.equipment[i].can_be_used_now = True
|
self.equipment[i].can_be_used_now = True
|
||||||
|
@ -36,6 +36,7 @@ export default {
|
|||||||
data: () => ({
|
data: () => ({
|
||||||
isConnected: false,
|
isConnected: false,
|
||||||
c: false,
|
c: false,
|
||||||
|
showUpdateUI: false,
|
||||||
}),
|
}),
|
||||||
computed: {
|
computed: {
|
||||||
},
|
},
|
||||||
|
@ -134,6 +134,9 @@ export default {
|
|||||||
bottom: 20pt;
|
bottom: 20pt;
|
||||||
left: 3pt;
|
left: 3pt;
|
||||||
}
|
}
|
||||||
|
.cant-play {
|
||||||
|
filter: brightness(0.5);
|
||||||
|
}
|
||||||
@media (prefers-color-scheme: dark) {
|
@media (prefers-color-scheme: dark) {
|
||||||
:root, #app {
|
:root, #app {
|
||||||
background-color: #181a1b;
|
background-color: #181a1b;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="chat">
|
<div class="chat">
|
||||||
<h3>{{$t("chat.chat")}}</h3>
|
<h3>{{$t("chat.chat")}}</h3>
|
||||||
<div id="chatbox">
|
<div id="chatbox">
|
||||||
<p style="margin:1pt;" class="chat-message" v-for="msg in messages" v-bind:key="msg" :style="`color:${msg.color}`">{{msg.text}}</p>
|
<p style="margin:1pt;" class="chat-message" v-for="(msg, i) in messages" v-bind:key="`${i}-c`" :style="`color:${msg.color}`">{{msg.text}}</p>
|
||||||
<p class="end">.</p>
|
<p class="end">.</p>
|
||||||
</div>
|
</div>
|
||||||
<form @submit="sendChatMessage" id="msg-form">
|
<form @submit="sendChatMessage" id="msg-form">
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div id="overlay" class="center-stuff">
|
<div id="overlay" class="center-stuff">
|
||||||
<h1>{{text}}</h1>
|
<h1>{{text}}</h1>
|
||||||
<div>
|
<div>
|
||||||
<Card v-for="c in cards" v-bind:key="c" :card="c" @click.native="select(c)" @pointerenter.native="showDesc(c)" @pointerleave.native="desc=''"/>
|
<Card v-for="(c, i) in cards" v-bind:key="i" :card="c" @click.native="select(c)" @pointerenter.native="showDesc(c)" @pointerleave.native="desc=''"/>
|
||||||
</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>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<div v-if="eventCard" style="position:relative">
|
<div v-if="eventCard" style="position:relative">
|
||||||
<div class="card fistful-of-cards" style="position:relative; bottom:-3pt;right:-3pt;"/>
|
<div class="card fistful-of-cards" style="position:relative; bottom:-3pt;right:-3pt;"/>
|
||||||
<div class="card fistful-of-cards" style="position:absolute; bottom:-1.5pt;right:-1.5pt;"/>
|
<div class="card fistful-of-cards" style="position:absolute; bottom:-1.5pt;right:-1.5pt;"/>
|
||||||
<card :card="eventCard" :key="eventCard" :class="eventClasses" @click.native="event"/>
|
<card :card="eventCard" :key="eventCard.name" :class="eventClasses" @click.native="event"/>
|
||||||
</div>
|
</div>
|
||||||
<div style="position:relative">
|
<div style="position:relative">
|
||||||
<div class="card back" style="position:absolute; bottom:-3pt;right:-3pt;"/>
|
<div class="card back" style="position:absolute; bottom:-3pt;right:-3pt;"/>
|
||||||
@ -15,12 +15,14 @@
|
|||||||
<div style="position:relative;">
|
<div style="position:relative;">
|
||||||
<card v-if="previousScrap" :card="previousScrap" style="top: 1.5pt;right: -1.5pt;"/>
|
<card v-if="previousScrap" :card="previousScrap" style="top: 1.5pt;right: -1.5pt;"/>
|
||||||
<card v-else :card="card" class="back" style="opacity:0"/>
|
<card v-else :card="card" class="back" style="opacity:0"/>
|
||||||
<card v-if="lastScrap" :card="lastScrap" :key="lastScrap" class="last-scrap" @click.native="action('scrap')"
|
<card v-if="lastScrap" :card="lastScrap" :key="lastScrap.name+lastScrap.number" class="last-scrap" @click.native="action('scrap')"
|
||||||
@pointerenter.native="desc=($i18n.locale=='it'?lastScrap.desc:lastScrap.desc_eng)" @pointerleave.native="desc=''" />
|
@pointerenter.native="desc=($i18n.locale=='it'?lastScrap.desc:lastScrap.desc_eng)" @pointerleave.native="desc=''" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<transition name="list">
|
<transition name="list">
|
||||||
<p v-if="eventCard" class="center-stuff"><i>{{($i18n.locale=='it'?eventCard.desc:eventCard.desc_eng)}}</i></p>
|
<p v-if="eventCard" class="center-stuff"><i>{{($i18n.locale=='it'?eventCard.desc:eventCard.desc_eng)}}</i></p>
|
||||||
|
</transition>
|
||||||
|
<transition name="list">
|
||||||
<p v-if="desc" class="center-stuff"><i>{{desc}}</i></p>
|
<p v-if="desc" class="center-stuff"><i>{{desc}}</i></p>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
|
@ -17,11 +17,11 @@
|
|||||||
<!-- <div style="position: relative;width:260pt;height:400pt;"> -->
|
<!-- <div style="position: relative;width:260pt;height:400pt;"> -->
|
||||||
<div v-for="p in playersTable" v-bind:key="p.card.name" style="position:relative;">
|
<div v-for="p in playersTable" v-bind:key="p.card.name" style="position:relative;">
|
||||||
<transition-group v-if="p.max_lives && !p.is_ghost" name="list" tag="div" class="tiny-health">
|
<transition-group v-if="p.max_lives && !p.is_ghost" name="list" tag="div" class="tiny-health">
|
||||||
<span v-for="(n, i) in p.lives" v-bind:key="n" :alt="i">❤️</span>
|
<span v-for="(n, i) in p.lives" v-bind:key="i" :alt="i">❤️</span>
|
||||||
<span v-for="(n, i) in (p.max_lives-p.lives)" v-bind:key="n" :alt="i">💀</span>
|
<span v-for="(n, i) in (p.max_lives-p.lives)" v-bind:key="`${i}-sk`" :alt="i">💀</span>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
<div v-else-if="p.is_ghost" class="tiny-health">
|
<div v-else-if="p.is_ghost" class="tiny-health">
|
||||||
<span :alt="i">👻</span>
|
<span>👻</span>
|
||||||
</div>
|
</div>
|
||||||
<Card :card="p.card" :class="{is_my_turn:p.is_my_turn}"/>
|
<Card :card="p.card" :class="{is_my_turn:p.is_my_turn}"/>
|
||||||
<Card v-if="p.character" :card="p.character" class="character tiny-character" @click.native="selectedInfo = [p.character]"/>
|
<Card v-if="p.character" :card="p.character" class="character tiny-character" @click.native="selectedInfo = [p.character]"/>
|
||||||
@ -32,7 +32,7 @@
|
|||||||
<Card v-for="card in p.equipment" v-bind:key="card.name+card.number" :card="card" @click.native="selectedInfo = p.equipment"/>
|
<Card v-for="card in p.equipment" v-bind:key="card.name+card.number" :card="card" @click.native="selectedInfo = p.equipment"/>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="p.is_bot" style="position:absolute;top:32%;left:50%;right:50%" class="tiny-health">
|
<div v-if="p.is_bot" style="position:absolute;top:32%;left:50%;right:50%" class="tiny-health">
|
||||||
<span :alt="i">🤖</span>
|
<span>🤖</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- :style="p.style"/> -->
|
<!-- :style="p.style"/> -->
|
||||||
|
@ -8,13 +8,13 @@
|
|||||||
<Card v-if="character" :card="character" style="margin-left: -30pt;margin-right: 0pt;"
|
<Card v-if="character" :card="character" style="margin-left: -30pt;margin-right: 0pt;"
|
||||||
@pointerenter.native="desc=($i18n.locale=='it'?character.desc:character.desc_eng)" @pointerleave.native="desc=''"/>
|
@pointerenter.native="desc=($i18n.locale=='it'?character.desc:character.desc_eng)" @pointerleave.native="desc=''"/>
|
||||||
<transition-group name="list" tag="div" style="display: flex;flex-direction:column; justify-content: space-evenly; margin-left: 12pt;margin-right:-10pt;">
|
<transition-group name="list" tag="div" style="display: flex;flex-direction:column; justify-content: space-evenly; margin-left: 12pt;margin-right:-10pt;">
|
||||||
<span v-for="(n, i) in lives" v-bind:key="n" :alt="i">❤️</span>
|
<span v-for="(n, i) in lives" v-bind:key="i" :alt="i">❤️</span>
|
||||||
<span v-for="(n, i) in (max_lives-lives)" v-bind:key="n" :alt="i">💀</span>
|
<span v-for="(n, i) in (max_lives-lives)" v-bind:key="`${i}-sk`" :alt="i">💀</span>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
<transition-group v-if="lives > 0 || is_ghost" name="list" tag="div" style="margin: 0 0 0 10pt; display:flex;">
|
<transition-group v-if="lives > 0 || is_ghost" name="list" tag="div" style="margin: 0 0 0 10pt; display:flex;">
|
||||||
<Card v-for="card in equipment" v-bind:key="card.name+card.number" :card="card"
|
<Card v-for="card in equipment" v-bind:key="card.name+card.number" :card="card"
|
||||||
@pointerenter.native="desc=($i18n.locale=='it'?card.desc:card.desc_eng)" @pointerleave.native="desc=''"
|
@pointerenter.native="desc=($i18n.locale=='it'?card.desc:card.desc_eng)" @pointerleave.native="desc=''"
|
||||||
@click.native="play_card(card, true)" />
|
@click.native="play_card(card, true)" :class="{'cant-play':(eventCard && eventCard.name == 'Lazo')}"/>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</div>
|
</div>
|
||||||
<transition name="list">
|
<transition name="list">
|
||||||
@ -27,9 +27,10 @@
|
|||||||
<div v-if="lives > 0 || is_ghost" style="position:relative">
|
<div v-if="lives > 0 || is_ghost" style="position:relative">
|
||||||
<span id="hand_text">{{$t('hand')}}</span>
|
<span id="hand_text">{{$t('hand')}}</span>
|
||||||
<transition-group name="list" tag="div" class="hand">
|
<transition-group name="list" tag="div" class="hand">
|
||||||
<Card v-for="card in hand" v-bind:key="card.name+card.number" :card="card"
|
<Card v-for="(card, i) in handComputed" v-bind:key="i+card.name+card.number" :card="card"
|
||||||
@click.native="play_card(card, false)"
|
@click.native="play_card(card, false)"
|
||||||
@pointerenter.native="hint=($i18n.locale=='it'?card.desc:card.desc_eng)" @pointerleave.native="hint=''"/>
|
@pointerenter.native="hint=($i18n.locale=='it'?card.desc:card.desc_eng)" @pointerleave.native="hint=''"
|
||||||
|
:class="{'cant-play':card.cantBePlayed}"/>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</div>
|
</div>
|
||||||
<transition name="list">
|
<transition name="list">
|
||||||
@ -109,6 +110,7 @@ export default {
|
|||||||
mancato_needed: 0,
|
mancato_needed: 0,
|
||||||
is_ghost: false,
|
is_ghost: false,
|
||||||
name: '',
|
name: '',
|
||||||
|
eventCard: false,
|
||||||
}),
|
}),
|
||||||
sockets: {
|
sockets: {
|
||||||
role(role) {
|
role(role) {
|
||||||
@ -163,7 +165,10 @@ export default {
|
|||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
this.notifycard = null
|
this.notifycard = null
|
||||||
}.bind(this), 4000)
|
}.bind(this), 4000)
|
||||||
}
|
},
|
||||||
|
event_card(card) {
|
||||||
|
this.eventCard = card
|
||||||
|
},
|
||||||
},
|
},
|
||||||
computed:{
|
computed:{
|
||||||
respondText() {
|
respondText() {
|
||||||
@ -237,6 +242,20 @@ export default {
|
|||||||
cc.push(x)
|
cc.push(x)
|
||||||
})
|
})
|
||||||
return cc
|
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: {
|
methods: {
|
||||||
@ -331,7 +350,7 @@ export default {
|
|||||||
this.card_with = null
|
this.card_with = null
|
||||||
},
|
},
|
||||||
really_play_card(card, against) {
|
really_play_card(card, against) {
|
||||||
let res = this.hand.indexOf(card)
|
let res = this.handComputed.indexOf(card)
|
||||||
if (res === -1) {
|
if (res === -1) {
|
||||||
res = this.equipment.indexOf(card)
|
res = this.equipment.indexOf(card)
|
||||||
if (res !== -1) res += this.hand.length
|
if (res !== -1) res += this.hand.length
|
||||||
|
Loading…
Reference in New Issue
Block a user