Beispiel #1
0
 private void BnetParty_OnJoined(OnlineEventType evt, PartyInfo party, LeaveReason?reason)
 {
     if ((party.Type == PartyType.FRIENDLY_CHALLENGE) && (evt == OnlineEventType.ADDED))
     {
         long?partyAttributeLong = BnetParty.GetPartyAttributeLong(party.Id, "WTCG.Game.ScenarioId");
         if (partyAttributeLong.HasValue)
         {
             this.m_scenarioId = (int)partyAttributeLong.Value;
             TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();
             this.m_isChallengeTavernBrawl = (mission != null) && (this.m_scenarioId == mission.missionId);
         }
     }
 }
    public void EnablePlayButton()
    {
        TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();

        if ((mission == null) || mission.canCreateDeck)
        {
            this.ValidateDeck();
        }
        else
        {
            this.m_playButton.Enable();
        }
    }
    private void RefreshTavernBrawlInfo(float animDelay)
    {
        this.UpdateEditOrCreate();
        TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();

        if ((mission == null) || (mission.missionId < 0))
        {
            AlertPopup.PopupInfo info = new AlertPopup.PopupInfo {
                m_headerText       = GameStrings.Get("GLUE_TAVERN_BRAWL_HAS_ENDED_HEADER"),
                m_text             = GameStrings.Get("GLUE_TAVERN_BRAWL_HAS_ENDED_TEXT"),
                m_responseDisplay  = AlertPopup.ResponseDisplay.OK,
                m_responseCallback = new AlertPopup.ResponseCallback(this.RefreshTavernBrawlInfo_ConfirmEnded),
                m_offset           = new Vector3(0f, 104f, 0f)
            };
            DialogManager.Get().ShowPopup(info);
        }
        else
        {
            DbfRecord record = GameDbf.Scenario.GetRecord(mission.missionId);
            this.m_chalkboardHeader.Text = record.GetLocString("NAME");
            this.m_chalkboardInfo.Text   = record.GetLocString("DESCRIPTION");
            base.CancelInvoke("UpdateTimeText");
            base.InvokeRepeating("UpdateTimeText", 0.1f, 0.1f);
            this.UpdateTimeText();
            if (((this.m_chalkboard != null) && (this.m_chalkboard.GetComponent <MeshRenderer>() != null)) && (this.m_chalkboard.GetComponent <MeshRenderer>().material != null))
            {
                Material            material = this.m_chalkboard.GetComponent <MeshRenderer>().material;
                string              name     = record.GetString("TB_TEXTURE");
                UnityEngine.Vector2 zero     = UnityEngine.Vector2.zero;
                if (PlatformSettings.Screen == ScreenCategory.Phone)
                {
                    name   = record.GetString("TB_TEXTURE_PHONE");
                    zero.y = record.GetFloat("TB_TEXTURE_PHONE_OFFSET_Y");
                }
                Texture texture = (name != null) ? AssetLoader.Get().LoadTexture(name, false) : null;
                if (texture == null)
                {
                    bool canCreateDeck = TavernBrawlManager.Get().CurrentMission().canCreateDeck;
                    name    = !canCreateDeck ? ((string)DEFAULT_CHALKBOARD_TEXTURE_NAME_NO_DECK) : ((string)DEFAULT_CHALKBOARD_TEXTURE_NAME_WITH_DECK);
                    zero    = !canCreateDeck ? ((UnityEngine.Vector2)DEFAULT_CHALKBOARD_TEXTURE_OFFSET_NO_DECK) : ((UnityEngine.Vector2)DEFAULT_CHALKBOARD_TEXTURE_OFFSET_WITH_DECK);
                    texture = AssetLoader.Get().LoadTexture(name, false);
                }
                if (texture != null)
                {
                    material.SetTexture("_TopTex", texture);
                    material.SetTextureOffset("_MainTex", zero);
                }
                base.StartCoroutine(this.WaitThenPlayWipeAnim(!this.m_doWipeAnimation ? 0f : animDelay));
            }
        }
    }
    private void StartGame(UIEvent e)
    {
        TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();

        if (mission == null)
        {
            this.RefreshDataBasedUI(0f);
        }
        else
        {
            if (TavernBrawlManager.Get().SelectHeroBeforeMission())
            {
                if (HeroPickerDisplay.Get() != null)
                {
                    Log.JMac.PrintWarning("Attempting to load HeroPickerDisplay a second time!", new object[0]);
                    return;
                }
                AssetLoader.Get().LoadActor("HeroPicker", false, false);
            }
            else if (mission.canCreateDeck)
            {
                if (!TavernBrawlManager.Get().HasValidDeck())
                {
                    UnityEngine.Debug.LogError("Attempting to start a Tavern Brawl game without having a valid deck!");
                    return;
                }
                CollectionDeck deck = TavernBrawlManager.Get().CurrentDeck();
                if (FriendChallengeMgr.Get().IsChallengeTavernBrawl())
                {
                    FriendChallengeMgr.Get().SelectDeck(deck.ID);
                    FriendlyChallengeHelper.Get().StartChallengeOrWaitForOpponent("GLOBAL_FRIEND_CHALLENGE_TAVERN_BRAWL_OPPONENT_WAITING_READY", new AlertPopup.ResponseCallback(this.OnFriendChallengeWaitingForOpponentDialogResponse));
                }
                else
                {
                    TavernBrawlManager.Get().StartGame(deck.ID);
                }
            }
            else if (FriendChallengeMgr.Get().IsChallengeTavernBrawl())
            {
                FriendChallengeMgr.Get().SkipDeckSelection();
                FriendlyChallengeHelper.Get().StartChallengeOrWaitForOpponent("GLOBAL_FRIEND_CHALLENGE_TAVERN_BRAWL_OPPONENT_WAITING_READY", new AlertPopup.ResponseCallback(this.OnFriendChallengeWaitingForOpponentDialogResponse));
            }
            else
            {
                TavernBrawlManager.Get().StartGame(0L);
            }
            this.m_playButton.SetEnabled(false);
        }
    }
Beispiel #5
0
    private void TavernBrawl_ReceivedChallenge_OnEnsureServerDataReady()
    {
        TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();

        if ((mission != null) && mission.canCreateDeck)
        {
            CollectionDeck deck = TavernBrawlManager.Get().CurrentDeck();
            if ((deck != null) && !deck.NetworkContentsLoaded())
            {
                CollectionManager.Get().RegisterDeckContentsListener(new CollectionManager.DelOnDeckContents(this.TavernBrawl_ReceivedChallenge_OnEnsureServerDataReady_OnDeckContentsReady));
                CollectionManager.Get().RequestDeckContents(deck.ID);
                return;
            }
        }
        this.TavernBrawl_ReceivedChallenge_OnEnsureServerDataReady_OnDeckContentsReady(0L);
    }
 public void Cheat_SetScenario(int scenarioId)
 {
     if (!ApplicationMgr.IsPublic())
     {
         if (this.m_currentMission == null)
         {
             this.m_currentMission = new TavernBrawlMission();
         }
         this.m_currentMission.missionId = scenarioId;
         this.m_scenarioAssetPendingLoad = true;
         if (this.OnTavernBrawlUpdated != null)
         {
             this.OnTavernBrawlUpdated();
         }
         LoadCachedAsset(true, AssetType.ASSET_TYPE_SCENARIO, scenarioId, 0, null, new LoadCachedAssetCallback(this.OnTavernBrawlScenarioLoaded));
     }
 }
    private void UpdateEditOrCreate()
    {
        TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();
        bool flag  = (mission != null) && mission.canCreateDeck;
        bool flag2 = (mission != null) && mission.canEditDeck;
        bool flag3 = TavernBrawlManager.Get().HasCreatedDeck();
        bool flag4 = flag && !flag3;
        bool flag5 = (flag2 && flag) && flag3;

        if (this.m_editDeckButton != null)
        {
            this.m_editDeckButton.gameObject.SetActive(flag5);
            if (this.m_editIcon != null)
            {
                this.m_editIcon.SetActive(true);
            }
        }
        if (UniversalInputManager.UsePhoneUI != null)
        {
            if (this.m_createDeckButton != null)
            {
                this.m_createDeckButton.gameObject.SetActive(flag4);
            }
        }
        else
        {
            if (this.m_panelWithCreateDeck != null)
            {
                this.m_panelWithCreateDeck.SetActive(flag4);
            }
            if (this.m_fullPanel != null)
            {
                this.m_fullPanel.SetActive(!flag4);
            }
        }
        if (this.m_createDeckHighlight != null)
        {
            if (!this.m_createDeckHighlight.gameObject.activeInHierarchy && flag4)
            {
                UnityEngine.Debug.LogWarning("Attempting to activate m_createDeckHighlight, but it is inactive! This will not behave correctly!");
            }
            this.m_createDeckHighlight.ChangeState(!flag4 ? ActorStateType.HIGHLIGHT_OFF : ActorStateType.HIGHLIGHT_PRIMARY_ACTIVE);
        }
    }
Beispiel #8
0
    private void TavernBrawl_ReceivedChallenge_OnEnsureServerDataReady_OnDeckContentsReady(long deckId)
    {
        CollectionManager.Get().RemoveDeckContentsListener(new CollectionManager.DelOnDeckContents(this.TavernBrawl_ReceivedChallenge_OnEnsureServerDataReady_OnDeckContentsReady));
        TavernBrawlMission mission  = TavernBrawlManager.Get().CurrentMission();
        string             key      = null;
        DeclineReason?     nullable = null;

        if (mission == null)
        {
            nullable = 0;
        }
        if (((mission != null) && mission.canCreateDeck) && !TavernBrawlManager.Get().HasValidDeck())
        {
            nullable = 2;
            key      = "GLOBAL_FRIEND_CHALLENGE_TAVERN_BRAWL_RECIPIENT_NO_VALID_DECK_RECIPIENT";
        }
        if (key != null)
        {
            AlertPopup.PopupInfo info = new AlertPopup.PopupInfo {
                m_headerText = GameStrings.Get("GLOBAL_FRIEND_CHALLENGE_TAVERN_BRAWL_HEADER")
            };
            object[] args = new object[] { FriendUtils.GetUniqueName(this.m_challenger) };
            info.m_text            = GameStrings.Format(key, args);
            info.m_responseDisplay = AlertPopup.ResponseDisplay.OK;
            DialogManager.Get().ShowPopup(info);
        }
        if (nullable.HasValue)
        {
            BnetParty.SetPartyAttributeLong(this.m_partyId, "WTCG.Friendly.DeclineReason", (long)nullable.Value);
            this.DeclineChallenge();
        }
        else
        {
            if (this.IsChallengeTavernBrawl())
            {
                Enum[] enumArray1 = new Enum[] { PresenceStatus.TAVERN_BRAWL_FRIENDLY_WAITING };
                PresenceMgr.Get().SetStatus(enumArray1);
            }
            this.ShowIReceivedChallengeDialog(this.m_challenger);
        }
    }
    public void ValidateDeck()
    {
        TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();

        if (mission == null)
        {
            this.m_playButton.Disable();
        }
        else if (mission.canCreateDeck)
        {
            if (TavernBrawlManager.Get().HasValidDeck())
            {
                this.m_playButton.Enable();
                this.m_editDeckHighlight.ChangeState(ActorStateType.HIGHLIGHT_OFF);
            }
            else
            {
                this.m_playButton.Disable();
                this.m_editDeckHighlight.ChangeState(ActorStateType.HIGHLIGHT_PRIMARY_ACTIVE);
            }
        }
    }
    private void ShowTooltip()
    {
        string            str;
        string            str2;
        BnetGameAccountId hearthstoneGameAccountId = this.m_player.GetHearthstoneGameAccountId();
        SpectatorManager  manager = SpectatorManager.Get();

        if (manager.HasInvitedMeToSpectate(hearthstoneGameAccountId))
        {
            str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_AVAILABLE_HEADER";
            str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_RECEIVED_INVITE_TEXT";
        }
        else if (manager.CanSpectate(this.m_player))
        {
            str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_AVAILABLE_HEADER";
            str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_AVAILABLE_TEXT";
        }
        else if (manager.IsSpectatingMe(hearthstoneGameAccountId))
        {
            str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_KICK_HEADER";
            str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_KICK_TEXT";
        }
        else if (manager.CanInviteToSpectateMyGame(hearthstoneGameAccountId))
        {
            if (manager.IsPlayerSpectatingMyGamesOpposingSide(hearthstoneGameAccountId))
            {
                str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_INVITE_OTHER_SIDE_HEADER";
                str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_INVITE_OTHER_SIDE_TEXT";
            }
            else
            {
                str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_INVITE_HEADER";
                str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_INVITE_TEXT";
            }
        }
        else if (manager.IsInvitedToSpectateMyGame(hearthstoneGameAccountId))
        {
            str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_INVITED_HEADER";
            str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_INVITED_TEXT";
        }
        else if (manager.IsSpectatingPlayer(hearthstoneGameAccountId))
        {
            str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_SPECTATING_HEADER";
            str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_SPECTATING_TEXT";
        }
        else if (manager.HasPreviouslyKickedMeFromGame(hearthstoneGameAccountId))
        {
            str  = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_PREVIOUSLY_KICKED_HEADER";
            str2 = "GLOBAL_FRIENDLIST_SPECTATE_TOOLTIP_PREVIOUSLY_KICKED_TEXT";
        }
        else
        {
            bool flag = TavernBrawlManager.Get().ShouldNewFriendlyChallengeBeTavernBrawl();
            if (flag)
            {
                str = "GLOBAL_FRIENDLIST_TAVERN_BRAWL_CHALLENGE_BUTTON_HEADER";
            }
            else
            {
                str = "GLOBAL_FRIENDLIST_CHALLENGE_BUTTON_HEADER";
            }
            if (!FriendChallengeMgr.Get().AmIAvailable())
            {
                str2 = "GLOBAL_FRIENDLIST_CHALLENGE_BUTTON_IM_UNAVAILABLE";
            }
            else if (!FriendChallengeMgr.Get().CanChallenge(this.m_player))
            {
                str2 = null;
                TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();
                if ((flag && mission.canCreateDeck) && !TavernBrawlManager.Get().HasValidDeck())
                {
                    str2 = "GLOBAL_FRIENDLIST_CHALLENGE_BUTTON_TAVERN_BRAWL_MUST_CREATE_DECK";
                }
                if (str2 == null)
                {
                    str2 = "GLOBAL_FRIENDLIST_CHALLENGE_BUTTON_THEYRE_UNAVAILABLE";
                }
            }
            else if (flag)
            {
                str2 = "GLOBAL_FRIENDLIST_TAVERN_BRAWL_CHALLENGE_BUTTON_AVAILABLE";
            }
            else
            {
                str2 = "GLOBAL_FRIENDLIST_CHALLENGE_BUTTON_AVAILABLE";
            }
        }
        if (UniversalInputManager.Get().IsTouchMode())
        {
            if (GameStrings.HasKey(str + "_TOUCH"))
            {
                str = str + "_TOUCH";
            }
            if (GameStrings.HasKey(str2 + "_TOUCH"))
            {
                str2 = str2 + "_TOUCH";
            }
        }
        string headline = GameStrings.Get(str);

        object[] args     = new object[] { this.m_player.GetBestName() };
        string   bodytext = GameStrings.Format(str2, args);

        this.m_TooltipZone.ShowSocialTooltip(this, headline, bodytext, 75f, GameLayer.BattleNetDialog);
    }
    private void UpdateDeckPanels(bool animate = true)
    {
        TavernBrawlMission mission = TavernBrawlManager.Get().CurrentMission();

        this.UpdateDeckPanels(((mission != null) && mission.canCreateDeck) && TavernBrawlManager.Get().HasCreatedDeck(), animate);
    }
    private void Awake()
    {
        RewardTrigger rewardTrigger;

        s_instance = this;
        base.gameObject.transform.position   = Vector3.zero;
        base.gameObject.transform.localScale = Vector3.one;
        TavernBrawlMission mission    = TavernBrawlManager.Get().CurrentMission();
        RewardType         rewardType = mission.rewardType;

        if ((rewardType != RewardType.REWARD_BOOSTER_PACKS) && (rewardType == RewardType.REWARD_CARD_BACK))
        {
            rewardTrigger = mission.rewardTrigger;
            if ((rewardTrigger != RewardTrigger.REWARD_TRIGGER_WIN_GAME) && (rewardTrigger == RewardTrigger.REWARD_TRIGGER_FINISH_GAME))
            {
                this.m_rewardsText.Text = GameStrings.Get("GLUE_TAVERN_BRAWL_REWARD_DESC_FINISH_CARDBACK");
            }
            else
            {
                this.m_rewardsText.Text = GameStrings.Get("GLUE_TAVERN_BRAWL_REWARD_DESC_CARDBACK");
            }
        }
        else
        {
            rewardTrigger = mission.rewardTrigger;
            if ((rewardTrigger != RewardTrigger.REWARD_TRIGGER_WIN_GAME) && (rewardTrigger == RewardTrigger.REWARD_TRIGGER_FINISH_GAME))
            {
                this.m_rewardsText.Text = GameStrings.Get("GLUE_TAVERN_BRAWL_REWARD_DESC_FINISH");
            }
            else
            {
                this.m_rewardsText.Text = GameStrings.Get("GLUE_TAVERN_BRAWL_REWARD_DESC");
            }
        }
        this.m_rewardsScale = this.m_rewardsPreview.transform.localScale;
        this.m_rewardsPreview.transform.localScale = (Vector3)(Vector3.one * 0.01f);
        if (this.m_editDeckButton != null)
        {
            this.m_editDeckButton.AddEventListener(UIEventType.RELEASE, new UIEvent.Handler(this.EditOrDeleteDeck));
        }
        if (this.m_createDeckButton != null)
        {
            this.m_createDeckButton.AddEventListener(UIEventType.RELEASE, e => this.CreateDeck());
        }
        if (this.m_rewardOffClickCatcher != null)
        {
            this.m_rewardChest.AddEventListener(UIEventType.PRESS, new UIEvent.Handler(this.ShowReward));
            this.m_rewardOffClickCatcher.AddEventListener(UIEventType.PRESS, new UIEvent.Handler(this.HideReward));
        }
        else
        {
            this.m_rewardChest.AddEventListener(UIEventType.ROLLOVER, new UIEvent.Handler(this.ShowReward));
            this.m_rewardChest.AddEventListener(UIEventType.ROLLOUT, new UIEvent.Handler(this.HideReward));
        }
        this.m_playButton.AddEventListener(UIEventType.RELEASE, new UIEvent.Handler(this.StartGame));
        CollectionManager.Get().RegisterDeckCreatedListener(new CollectionManager.DelOnDeckCreated(this.OnDeckCreated));
        CollectionManager.Get().RegisterDeckDeletedListener(new CollectionManager.DelOnDeckDeleted(this.OnDeckDeleted));
        CollectionManager.Get().RegisterDeckContentsListener(new CollectionManager.DelOnDeckContents(this.OnDeckContents));
        FriendChallengeMgr.Get().AddChangedListener(new FriendChallengeMgr.ChangedCallback(this.OnFriendChallengeChanged));
        NetCache.Get().RegisterUpdatedListener(typeof(NetCache.NetCacheTavernBrawlRecord), new System.Action(this.NetCache_OnTavernBrawlRecord));
        GameMgr.Get().RegisterFindGameEvent(new GameMgr.FindGameCallback(this.OnFindGameEvent));
        this.SetUIForFriendlyChallenge(FriendChallengeMgr.Get().IsChallengeTavernBrawl());
        if (this.m_backButton != null)
        {
            this.m_backButton.AddEventListener(UIEventType.RELEASE, e => this.OnBackButton());
        }
        if ((mission == null) || !mission.canEditDeck)
        {
            Navigation.Push(new Navigation.NavigateBackHandler(this.OnNavigateBack));
        }
    }