import { BgsFaceOff } from '@firestone-hs/hs-replay-xml-parser/dist/lib/model/bgs-face-off' ; import { BooleanTurnInfo } from '@firestone-hs/hs-replay-xml-parser/dist/lib/model/boolean-turn-info' ; import { ComplexTurnInfo } from '@firestone-hs/hs-replay-xml-parser/dist/lib/model/complex-turn-info' ; import { NumericTurnInfo } from '@firestone-hs/hs-replay-xml-parser/dist/lib/model/numeric-turn-info' ; import { ValueHeroInfo } from '@firestone-hs/hs-replay-xml-parser/dist/lib/model/value-hero-info' ; import { BattleResultHistory , BgsComposition , BgsPostMatchStats as IBgsPostMatchStats , } from '@firestone-hs/hs-replay-xml-parser/dist/public-api' ; import { GameType } from '@firestone-hs/reference-data' ; import { BgsBoard } from '../../../../models/battlegrounds/in-game/bgs-board' ; import { BgsTavernUpgrade } from '../../../../models/battlegrounds/in-game/bgs-tavern-upgrade' ; import { BgsTriple } from '../../../../models/battlegrounds/in-game/bgs-triple' ; export class RealTimeStatsState implements IBgsPostMatchStats { readonly reconnectOngoing : boolean ; readonly gameType : GameType ; readonly currentTurn : number ; readonly gameOver : boolean ; readonly replayLink : string ; readonly resourcesAvailableThisTurn : number = 0 ; readonly resourcesUsedThisTurn : number = 0 ; readonly coinsWastedOverTurn : readonly NumericTurnInfo [ ] = [ ] ; readonly mainPlayerHeroPowersOverTurn : readonly NumericTurnInfo [ ] = [ ] ; readonly hpOverTurn : { [ playerCardId ] : readonly HpTurnInfo [ ] ; } = { } ; readonly totalStatsOverTurn : readonly NumericTurnInfo [ ] = [ ] ; readonly damageToEnemyHeroOverTurn : readonly ComplexTurnInfo < ValueHeroInfo > [ ] = [ ] ; readonly totalMinionsDamageDealt : { [ cardId ] : number ; } = { } ; readonly totalMinionsDamageTaken : { [ cardId ] : number ; } = { } ; readonly totalEnemyMinionsKilled : number = 0 ; readonly totalEnemyHeroesKilled : number = 0 ; readonly tavernTimings : readonly BgsTavernUpgrade [ ] = [ ] ; readonly boardHistory : readonly BgsBoard [ ] = [ ] ; readonly compositionsOverTurn : readonly BgsComposition [ ] = [ ] ; readonly rerollsOverTurn : readonly NumericTurnInfo [ ] = [ ] ; readonly freezesOverTurn : readonly NumericTurnInfo [ ] = [ ] ; readonly leaderboardPositionOverTurn : { [ playerCardId ] : readonly NumericTurnInfo [ ] ; } = { } ; readonly wentFirstInBattleOverTurn : readonly BooleanTurnInfo [ ] = [ ] ; readonly minionsBoughtOverTurn : readonly NumericTurnInfo [ ] = [ ] ; readonly minionsSoldOverTurn : readonly NumericTurnInfo [ ] = [ ] ; readonly luckFactor : number = 0 ; readonly battleResultHistory : readonly BattleResultHistory [ ] = [ ] ; readonly faceOffs : readonly BgsFaceOff [ ] = [ ] ; readonly currentWinStreak : number = 0 ; readonly highestWinStreak : number = 0 ; readonly triplesPerHero : { [ heroCardId ] : number ; } = { } ; readonly tripleTimings : readonly BgsTriple [ ] = [ ] ; deprecated readonly rerolls : number = 0 ; public static create ( base ) { return Object . assign ( new RealTimeStatsState ( ) , base ) ; } public update ( base ) { return Object . assign ( new RealTimeStatsState ( ) , this , base ) ; } } export interface HpTurnInfo extends NumericTurnInfo { readonly armor : number ; }