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); } }
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); } }
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)); } }