@@ -87,6 +87,7 @@ import Player from '@/services/enum/Player'
8787import getAllEnumValues from ' @brdgm/brdgm-commons/src/util/enum/getAllEnumValues'
8888import Flower from ' @/services/enum/Flower'
8989import getFloricultureTrack from ' @/util/getFloricultureTracks'
90+ import NavigationState from ' @/util/NavigationState'
9091
9192export default defineComponent ({
9293 name: ' FinalScoring' ,
@@ -102,6 +103,10 @@ export default defineComponent({
102103 amount: {
103104 type: Object as PropType <FinalScoringAmount >,
104105 required: true
106+ },
107+ navigationState: {
108+ type: NavigationState ,
109+ required: true
105110 }
106111 },
107112 computed: {
@@ -164,10 +169,11 @@ export default defineComponent({
164169 mounted() {
165170 // send anonymous game stats - max. once per game
166171 if (! this .state .gameStatsSend ) {
172+ const allTurns = this .state .rounds .flatMap (r => r .turns )
167173 const stats = {
168174 version ,
169175 difficultyLevel: - 1 ,
170- playerPower: ' TODO ' ,
176+ playerPower: this . state . setup . playerPower ?? ' none ' ,
171177 playerTotalVP: this .totalVPPlayer ,
172178 playerScoreTrackVP: toNumber (this .amount .scoreTrackVP [0 ]),
173179 playerMilestonesVP: toNumber (this .amount .milestonesVP [0 ]),
@@ -182,29 +188,37 @@ export default defineComponent({
182188 botFloricultureVP: this .getFloricultureVP (1 ),
183189 playerBillboardsWon: this .amount .billboardsWon .filter (p => p == Player .PLAYER ).length ,
184190 botBillboardsWon: this .amount .billboardsWon .filter (p => p == Player .BOT ).length ,
185- playerFloricultureSteps: 0 ,
186- botFloricultureSteps: 0 ,
191+ playerFloricultureSteps: getAllEnumValues ( Flower ). map ( flower => toNumber ( this . amount . floricultureSteps [ flower ][ 0 ])). reduce (( sum , steps ) => sum + steps , 0 ) ,
192+ botFloricultureSteps: getAllEnumValues ( Flower ). map ( flower => toNumber ( this . amount . floricultureSteps [ flower ][ 1 ])). reduce (( sum , steps ) => sum + steps , 0 ) ,
187193 playerExtensionSmall: toNumber (this .amount .playerGardenExtensionsSmall ),
188194 playerExtensionLarge: toNumber (this .amount .playerGardenExtensionsLarge ),
189- playerTurnsRound1: 0 ,
190- playerTurnsRound2: 0 ,
191- playerTurnsRound3: 0 ,
192- playerTurnsRound4: 0 ,
193- playerTurnsRound5: 0 ,
194- playerTurnsRound6: 0 ,
195- playerTurnsRound7: 0 ,
196- playerTurnsRound8: 0 ,
197- playerTurnsRound9: 0 ,
198- playerTurnsRound10: 0 ,
199- playerTurnsRound11: 0 ,
200- playerTurnsRound12: 0 ,
201- playerTurnsTotal: 0 ,
202- botTurnsTotal: 0
195+ playerTurnsRound1: allTurns .filter (t => t .round == 1 && t .player == Player .PLAYER && ! t .playerPass ).length ,
196+ playerTurnsRound2: allTurns .filter (t => t .round == 2 && t .player == Player .PLAYER && ! t .playerPass ).length ,
197+ playerTurnsRound3: allTurns .filter (t => t .round == 3 && t .player == Player .PLAYER && ! t .playerPass ).length ,
198+ playerTurnsRound4: allTurns .filter (t => t .round == 4 && t .player == Player .PLAYER && ! t .playerPass ).length ,
199+ playerTurnsRound5: allTurns .filter (t => t .round == 5 && t .player == Player .PLAYER && ! t .playerPass ).length ,
200+ playerTurnsRound6: allTurns .filter (t => t .round == 6 && t .player == Player .PLAYER && ! t .playerPass ).length ,
201+ playerTurnsRound7: allTurns .filter (t => t .round == 7 && t .player == Player .PLAYER && ! t .playerPass ).length ,
202+ playerTurnsRound8: allTurns .filter (t => t .round == 8 && t .player == Player .PLAYER && ! t .playerPass ).length ,
203+ playerTurnsRound9: allTurns .filter (t => t .round == 9 && t .player == Player .PLAYER && ! t .playerPass ).length ,
204+ playerTurnsRound10: allTurns .filter (t => t .round == 10 && t .player == Player .PLAYER && ! t .playerPass ).length ,
205+ playerTurnsRound11: allTurns .filter (t => t .round == 11 && t .player == Player .PLAYER && ! t .playerPass ).length ,
206+ playerTurnsRound12: allTurns .filter (t => t .round == 12 && t .player == Player .PLAYER && ! t .playerPass ).length ,
207+ playerTurnsTotal: allTurns .filter (t => t .player == Player .PLAYER && ! t .playerPass ).length ,
208+ botTurnsTotal: allTurns .filter (t => t .player == Player .BOT && ! t .botBonusTurn ).length ,
209+ playerDeliveryCount: this .navigationState .botPersistence .windowStates .getTotalDeliveriesByPlayer (Player .PLAYER ),
210+ botDeliveryCount: this .navigationState .botPersistence .windowStates .getTotalDeliveriesByPlayer (Player .BOT ),
211+ marketTotalPrice: this .navigationState .marketPrices .getTotalMarketPrice (),
212+ botPaidCardVP: allTurns .filter (t => t .player == Player .BOT ).reduce ((sum , t ) => sum + toNumber (t .botPaidCardVP ), 0 ),
213+ botSoloBoardVP: allTurns .filter (t => t .player == Player .BOT ).reduce ((sum , t ) => sum + toNumber (t .botSoloBoardVP ), 0 ),
214+ botDeliveryVP: allTurns .filter (t => t .player == Player .BOT ).reduce ((sum , t ) => sum + toNumber (t .botDeliveryVP ), 0 ),
215+ botFloricultureStarsVP: toNumber (this .amount .scoreTrackVP [1 ])
216+ - allTurns .filter (t => t .player == Player .BOT ).reduce ((sum , t ) => sum + toNumber (t .botDeliveryVP ) + toNumber (t .botSoloBoardVP ) + toNumber (t .botDeliveryVP ), 0 )
203217 }
204218 postGameStats (stats ,
205219 import .meta .env .VITE_STATS_FORM_URL ,
206220 import .meta .env .VITE_STATS_FIELD_MAPPING )
207- // TODO: this.state.gameStatsSend = true
221+ this .state .gameStatsSend = true
208222 }
209223 }
210224})
0 commit comments