add train robbery cards to help

This commit is contained in:
Alberto Xamin 2024-06-10 14:25:05 +01:00
parent b72319f335
commit beff8151c2
No known key found for this signature in database
GPG Key ID: 5ABFCD8A22EA6F5D
4 changed files with 51 additions and 3 deletions

View File

@ -104,7 +104,7 @@ class CrownsHole(StationCard):
"""Discard a beer to rob the train"""
def __init__(self):
super().__init__("Crown's Hole")
super().__init__("Crowns Hole")
self.price = [cs.Birra(0, 0).__dict__]
def check_price(self, player: "Player"):
@ -204,7 +204,7 @@ class MinersOath(StationCard):
"""Discard a card of diamonds to rob the train"""
def __init__(self):
super().__init__("Miner's Oath")
super().__init__("Miners Oath")
self.price = [{"icon": "♦️"}]
def check_price(self, player: "Player"):

View File

@ -231,9 +231,11 @@ class ObservationCar(TrainCard):
def __init__(self):
super().__init__("Observation Car")
self.icon = "🚋👀"
self.sight_mod = 1
self.vis_mod = 1
def play_card(self, player, against=None, _with=None) -> bool:
return True
return False
class PassengerCar(TrainCard):

View File

@ -1306,6 +1306,24 @@ def get_wildwestshowcards(sid):
"wwscards_info", room=sid, data=json.dumps(chs, default=lambda o: o.__dict__)
)
@sio.event
@bang_handler
def get_trainrobberycards(sid):
print("get_trainrobberycards")
import bang.expansions.train_robbery.cards as trc
import bang.expansions.train_robbery.stations as trs
import bang.expansions.train_robbery.trains as trt
chs = []
chs.extend(trs.get_all_stations())
chs.extend(trt.get_locomotives())
chs.extend(trt.get_all_cards())
sio.emit(
"trainrobberycards_info", room=sid, data=json.dumps({
"cards": chs,
"stations": trs.get_all_stations()
}, default=lambda o: o.__dict__)
)
@sio.event
@bang_handler

View File

@ -127,15 +127,32 @@
</div>
</div>
</div>
<h2 id="trainrobberycards">{{$t('help.trainrobberycards')}}</h2>
<div class="flexy-cards-wrapper">
<div v-for="(c, i) in trainrobberycards" v-bind:key="c.name ? (c.name+c.number) : i" class="flexy-cards">
<Card :card="c" class="train-robbery" @pointerenter.native="''" @pointerleave.native="''"/>
<div style="margin-left:6pt;">
<p>{{$t(`cards.${c.name}.desc`)}}</p>
</div>
</div>
<div v-for="(c, i) in trainrobberystations" v-bind:key="c.name ? (c.name+c.number) : i" class="flexy-cards">
<StationCard :card="c" class="train-robbery" @pointerenter.native="''" @pointerleave.native="''" :price="c.price"/>
<div style="margin-left:6pt;">
<p>{{$t(`cards.${c.name}.desc`)}}</p>
</div>
</div>
</div>
</div>
</template>
<script>
import Card from '@/components/Card.vue'
import StationCard from './StationCard.vue'
export default {
name: 'Help',
components: {
Card,
StationCard,
},
props: {
inGame: Boolean
@ -152,6 +169,8 @@ export default {
goldrushcards: [],
valleyofshadowscards: [],
wildwestshowcards: [],
trainrobberycards: [],
trainrobberystations: [],
}),
computed: {
endTurnCard() {
@ -196,6 +215,14 @@ export default {
...x,
}))
},
trainrobberycards_info(cardsJson) {
this.trainrobberycards = JSON.parse(cardsJson).cards.map(x=>({
...x,
}))
this.trainrobberystations = JSON.parse(cardsJson).stations.map(x=>({
...x,
}))
},
},
mounted() {
this.$socket.emit('get_cards')
@ -205,6 +232,7 @@ export default {
this.$socket.emit('get_goldrushcards')
this.$socket.emit('get_valleyofshadowscards')
this.$socket.emit('get_wildwestshowcards')
this.$socket.emit('get_trainrobberycards')
document.getElementById('help').scrollIntoView();
}
}