Example #1
0
        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);
        }
Example #2
0
 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;
 }
Example #3
0
        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);
        }
Example #4
0
 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;
 }
Example #5
0
 internal void CacheBrawlInfo() => _brawlInfo = HearthMirror.Reflection.GetBrawlInfo();