From 266999b4892b47c5c93366376689c460e1ecb729 Mon Sep 17 00:00:00 2001 From: stanolacko Date: Mon, 14 Jun 2021 21:07:22 +0200 Subject: [PATCH] Bards of Carcassonne --- src/renderer/assets/figures/bards_note.png | Bin 0 -> 18396 bytes src/renderer/components/game/ActionPanel.vue | 3 +- .../components/game/ExpressionItem.vue | 1 + src/renderer/components/game/TokenImage.vue | 5 +- .../game/actions/ActionPhaseAction.vue | 11 +++- .../game/actions/items/BardsLuteItem.vue | 49 ++++++++++++++++++ .../components/game/layers/TokenLayer.vue | 7 +++ .../game/play-events/TokenPlacedEvent.vue | 2 +- 8 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 src/renderer/assets/figures/bards_note.png create mode 100644 src/renderer/components/game/actions/items/BardsLuteItem.vue diff --git a/src/renderer/assets/figures/bards_note.png b/src/renderer/assets/figures/bards_note.png new file mode 100644 index 0000000000000000000000000000000000000000..fdea623fb1218267f72d75c179f38bf4b491fec6 GIT binary patch literal 18396 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 JPDHLkV1fZbh1~!E literal 0 HcmV?d00001 diff --git a/src/renderer/components/game/ActionPanel.vue b/src/renderer/components/game/ActionPanel.vue index 2684ac4c..a4b7d01d 100644 --- a/src/renderer/components/game/ActionPanel.vue +++ b/src/renderer/components/game/ActionPanel.vue @@ -100,7 +100,8 @@ const MAPPING = { PlaceFerryPhase: FerryPhaseAction, PhantomPhase: ActionPhaseAction, TunnelPhase: ActionPhaseAction, - WagonPhase: ActionPhaseAction + WagonPhase: ActionPhaseAction, + BardsLutePhase: ActionPhaseAction } export default { diff --git a/src/renderer/components/game/ExpressionItem.vue b/src/renderer/components/game/ExpressionItem.vue index e9db00da..f258ddbf 100644 --- a/src/renderer/components/game/ExpressionItem.vue +++ b/src/renderer/components/game/ExpressionItem.vue @@ -45,6 +45,7 @@ +
{{ points }}
diff --git a/src/renderer/components/game/TokenImage.vue b/src/renderer/components/game/TokenImage.vue index 4481bc97..d685123d 100644 --- a/src/renderer/components/game/TokenImage.vue +++ b/src/renderer/components/game/TokenImage.vue @@ -36,7 +36,8 @@ const TOKENS = { GOLD: { tag: 'img', src: require('~/assets/figures/gold.png') }, LB_HOUSE: { tag: 'img', src: require('~/assets/figures/lb_house.png') }, LB_SHED: { tag: 'img', src: require('~/assets/figures/lb_shed.png') }, - LB_TOWER: { tag: 'img', src: require('~/assets/figures/lb_tower.png') } + LB_TOWER: { tag: 'img', src: require('~/assets/figures/lb_tower.png') }, + BARDS_NOTE: { tag: 'img', src: require('~/assets/figures/bards_note.png') }, } export default { @@ -44,7 +45,7 @@ export default { StandaloneTileImage }, - props: { + props: { token: { type: String, required: true }, height: { type: Number, default: null }, player: { type: Number, default: null }, diff --git a/src/renderer/components/game/actions/ActionPhaseAction.vue b/src/renderer/components/game/actions/ActionPhaseAction.vue index aca6d8b2..b3c8939c 100644 --- a/src/renderer/components/game/actions/ActionPhaseAction.vue +++ b/src/renderer/components/game/actions/ActionPhaseAction.vue @@ -96,6 +96,13 @@ :position="item.position" :active="idx === selected" /> +
{{ item.type }}
@@ -116,6 +123,7 @@ import NeutralFigureItem from '@/components/game/actions/items/NeutralFigureItem import ReturnMeepleItem from '@/components/game/actions/items/ReturnMeepleItem.vue' import TowerPieceItem from '@/components/game/actions/items/TowerPieceItem.vue' import TunnelItem from '@/components/game/actions/items/TunnelItem.vue' +import BardsLuteItem from '@/components/game/actions/items/BardsLuteItem.vue' export default { components: { @@ -128,7 +136,8 @@ export default { NeutralFigureItem, ReturnMeepleItem, TowerPieceItem, - TunnelItem + TunnelItem, + BardsLuteItem }, props: { diff --git a/src/renderer/components/game/actions/items/BardsLuteItem.vue b/src/renderer/components/game/actions/items/BardsLuteItem.vue new file mode 100644 index 00000000..f61e56ff --- /dev/null +++ b/src/renderer/components/game/actions/items/BardsLuteItem.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/renderer/components/game/layers/TokenLayer.vue b/src/renderer/components/game/layers/TokenLayer.vue index d7c73040..a9d69d28 100644 --- a/src/renderer/components/game/layers/TokenLayer.vue +++ b/src/renderer/components/game/layers/TokenLayer.vue @@ -72,6 +72,13 @@ > + + + diff --git a/src/renderer/components/game/play-events/TokenPlacedEvent.vue b/src/renderer/components/game/play-events/TokenPlacedEvent.vue index f429f0ff..19064f94 100644 --- a/src/renderer/components/game/play-events/TokenPlacedEvent.vue +++ b/src/renderer/components/game/play-events/TokenPlacedEvent.vue @@ -12,7 +12,7 @@