public bool CanChallenge(BnetPlayer player) { if (player == null) { return(false); } BnetPlayer myPlayer = BnetPresenceMgr.Get().GetMyPlayer(); if (player == myPlayer) { return(false); } if (!this.AmIAvailable()) { return(false); } if ((TavernBrawlManager.Get().ShouldNewFriendlyChallengeBeTavernBrawl() && TavernBrawlManager.Get().CurrentMission().canCreateDeck) && !TavernBrawlManager.Get().HasValidDeck()) { return(false); } BnetGameAccount hearthstoneGameAccount = player.GetHearthstoneGameAccount(); if (hearthstoneGameAccount == null) { return(false); } if (!hearthstoneGameAccount.IsOnline()) { return(false); } if (!hearthstoneGameAccount.CanBeInvitedToGame()) { return(false); } if (ApplicationMgr.IsPublic()) { BnetGameAccount account2 = myPlayer.GetHearthstoneGameAccount(); if (string.Compare(hearthstoneGameAccount.GetClientVersion(), account2.GetClientVersion()) != 0) { return(false); } if (string.Compare(hearthstoneGameAccount.GetClientEnv(), account2.GetClientEnv()) != 0) { return(false); } } return(true); }
public bool AmIAvailable() { if (!this.m_netCacheReady) { return(false); } if (!this.m_myPlayerReady) { return(false); } if (SpectatorManager.Get().IsInSpectatorMode()) { return(false); } BnetGameAccount hearthstoneGameAccount = BnetPresenceMgr.Get().GetMyPlayer().GetHearthstoneGameAccount(); if (hearthstoneGameAccount == null) { return(false); } return(hearthstoneGameAccount.CanBeInvitedToGame()); }