public virtual void OnJoinedGame(ISpectatorControl control) { }
public override void OnJoinedGame(ISpectatorControl control) { Gdk.Threads.Enter(); parent.Update(); Gdk.Threads.Leave(); Animation anim = new Animation(parent); IGame game = control.Game; foreach(IPublicPlayerView player in game.Players) { int playerId = player.ID; anim.EndAllocManager.SetPlayerLifepoints(playerId, player.LifePoints); anim.GetPlayerCharacterAnimator(playerId).EndState.Type = player.CharacterType; anim.GetPlayerRoleAnimator(playerId).EndState.Role = player.Role; foreach(ICard card in player.Hand) { int cardId = card.ID; anim.EndAllocManager.AddPlayerHandCard(playerId, cardId); PlayingCardAnimator a = anim.GetPlayingCardAnimator(cardId); a.EndState.Type = card.Type; a.EndState.Rank = card.Rank; a.EndState.Suit = card.Suit; } foreach(ICard card in player.Table) { int cardId = card.ID; anim.EndAllocManager.AddPlayerTableCard(playerId, cardId); PlayingCardAnimator a = anim.GetPlayingCardAnimator(cardId); a.EndState.Type = card.Type; a.EndState.Rank = card.Rank; a.EndState.Suit = card.Suit; } } ICard graveyardTop = game.GraveyardTop; if(graveyardTop != null) { int cardId = graveyardTop.ID; anim.EndAllocManager.AddGraveyardCard(cardId); PlayingCardAnimator a = anim.GetPlayingCardAnimator(cardId); a.EndState.Type = graveyardTop.Type; a.EndState.Rank = graveyardTop.Rank; a.EndState.Suit = graveyardTop.Suit; } parent.EnqueueAnimation(anim); }
/// <summary> /// Disconnects from the currently connected session. /// </summary> public static void DisconnectFromSession() { lock(Lock) { if(!SessionConnected) return; try { if(playerSessionControl != null) playerSessionControl.Disconnect(); if(spectatorSessionControl != null) spectatorSessionControl.Disconnect(); } catch { } playerGameControl = null; spectatorGameControl = null; game = null; playerSessionControl = null; spectatorSessionControl = null; session = null; if(OnSessionDisconnected != null) OnSessionDisconnected(); } }
public override void OnJoinedGame(ISpectatorControl control) { lock(ConnectionManager.Lock) { ConnectionManager.spectatorGameControl = control; ConnectionManager.game = control.Game; if(OnGameConnected != null) OnGameConnected(); } }
public void OnJoinedGame(ISpectatorControl control) { foreach(ISpectatorSessionEventListener listener in spectatorListeners.ToArray()) listener.OnJoinedGame(control); }