private static BrawlInfo GetBrawlInfoInternal() { var mission = GetCurrentBrawlMission(); if (mission == null) { return(null); } var brawlInfo = new BrawlInfo { MaxWins = mission["tavernBrawlSpec"]?["_MaxWins"], MaxLosses = mission["tavernBrawlSpec"]?["_MaxLosses"] }; var records = Mirror.Root["TavernBrawlManager"]["s_instance"]?["m_playerRecords"]; if (records == null) { return(null); } dynamic record = null; foreach (var r in records) { if (r?.Class.Name != "TavernBrawlPlayerRecord") { continue; } record = r; } if (record == null) { return(null); } brawlInfo.GamesPlayed = record["_GamesPlayed"]; brawlInfo.WinStreak = record["_WinStreak"]; if (brawlInfo.IsSessionBased) { if (!(bool)record["HasSession"]) { return(brawlInfo); } var session = record["_Session"]; brawlInfo.Wins = session["<Wins>k__BackingField"]; brawlInfo.Losses = session["<Losses>k__BackingField"]; } else { brawlInfo.Wins = record["<GamesWon>k__BackingField"]; brawlInfo.Losses = brawlInfo.GamesPlayed - brawlInfo.Wins; } return(brawlInfo); }
internal void Update(BrawlInfo info) { Wins = info.Wins; Losses = info.Losses; MaxWins = info.MaxWins; MaxLosses = info.MaxLosses; WinStreak = info.WinStreak; GamesPlayed = info.GamesPlayed; IsSessionBased = info.IsSessionBased; }
private static BrawlInfo GetBrawlInfoInternal() { var brawlManager = Mirror.Root?["TavernBrawlManager"]?["s_instance"]; if (brawlManager == null) { return(null); } var brawlInfo = new BrawlInfo(); var mission = brawlManager["m_currentMission"]; brawlInfo.MaxWins = mission?["maxWins"]; brawlInfo.MaxLosses = mission?["maxLosses"]; dynamic record = null; var netCacheValues = Mirror.Root["NetCache"]["s_instance"]["m_netCache"]["valueSlots"]; foreach (var netCache in netCacheValues) { if (netCache?.Class.Name != "NetCacheTavernBrawlRecord") { continue; } record = netCache["<Record>k__BackingField"]; } if (record == null) { return(null); } brawlInfo.GamesPlayed = record["_GamesPlayed"]; brawlInfo.WinStreak = record["_WinStreak"]; if (brawlInfo.IsSessionBased) { if (!(bool)record["HasSession"]) { return(brawlInfo); } var session = record["_Session"]; brawlInfo.Wins = session["<Wins>k__BackingField"]; brawlInfo.Losses = session["<Losses>k__BackingField"]; } else { brawlInfo.Wins = record["<GamesWon>k__BackingField"]; brawlInfo.Losses = brawlInfo.GamesPlayed - brawlInfo.Wins; } return(brawlInfo); }
public MockGameData(MatchInfo matchinfo = null, GameServerInfo serverInfo = null, AccountId accountId = null, ArenaInfo arenaInfo = null, BattleTag battleTag = null, BrawlInfo brawlInfo = null, Collection collection = null, Card[] draftChoices = null, List <Card> packCards = null, int packId = 0, DungeonInfo[] dungeonInfo = null, bool friendlyChallengeDialogVisible = false) { _matchinfo = matchinfo; _serverInfo = serverInfo; _accountId = accountId; _arenaInfo = arenaInfo; _battleTag = battleTag; _brawlInfo = brawlInfo; _collection = collection; _draftChoices = draftChoices; _packCards = packCards; _packId = packId; _dungeonInfo = dungeonInfo; _friendlyChallengeDialogVisible = friendlyChallengeDialogVisible; }
internal void CacheBrawlInfo() => _brawlInfo = HearthMirror.Reflection.GetBrawlInfo();