/// <summary> /// Handle a new player joining the session. /// </summary> void networkSession_GamerJoined(object sender, GamerJoinedEventArgs e) { // make sure the data exists for the new gamer for (int i = 0; i < networkSession.AllGamers.Count; i++) { if (networkSession.AllGamers[i] == e.Gamer) { PlayerData playerData = new PlayerData(); e.Gamer.Tag = playerData; playerData.ShipVariation = (byte)(i % 4); playerData.ShipColor = (byte)i; } } // send my own data to the new gamer if ((networkSession.LocalGamers.Count > 0) && !e.Gamer.IsLocal) { PlayerData playerData = networkSession.LocalGamers[0].Tag as PlayerData; if (playerData != null) { packetWriter.Write((int)World.PacketTypes.PlayerData); playerData.Serialize(packetWriter); networkSession.LocalGamers[0].SendData(packetWriter, SendDataOptions.ReliableInOrder, e.Gamer); } } }
void session_GamerJoined(object sender, GamerJoinedEventArgs e) { Screen playerList = allScreens["playerList"]; Texture2D newGamerImage = new TextureFactory(GraphicsDevice).CreateSquare(64, Color.Red); try { newGamerImage = Texture2D.FromStream(GraphicsDevice, e.Gamer.GetProfile().GetGamerPicture()); } catch { }; Vector2 pos = new Vector2(100, 50); foreach (Sprite s in playerList.Sprites) { pos.Y += s.Height + 5; } Sprite gamerIcon = new Sprite(newGamerImage, pos, spriteBatch); playerList.Sprites.Add(gamerIcon); TextSprite gamerName = new TextSprite(spriteBatch, new Vector2(pos.X + gamerIcon.Width + 5, pos.Y), font, e.Gamer.Gamertag); allScreens["playerList"].AdditionalSprites.Add(gamerName); if (session.AllGamers.Count >= 2 && session.IsHost) { //TODO session.StartGame(); } }
private void netSession_GamerJoined(object sender, GamerJoinedEventArgs e) { SpaceMarine playerCharacter = new SpaceMarine(_assetManager); playerCharacter.PlayerName = e.Gamer.Gamertag; if (!e.Gamer.IsLocal) { playerCharacter.isRemote = true; e.Gamer.Tag = playerCharacter; } else { playerCharacter = GetPlayer(e.Gamer.Gamertag); playerCharacter.isLocal = true; e.Gamer.Tag = playerCharacter; } if ((_isHost) && _currWorldState != null) { WriteMapData(_currWorldState); WriteMatchData(_gameManager); WriteLocalItems(_currWorldState); } else if (_isClient) { _packetReader.BaseStream.Flush(); if (doClientConnection() == false) { _failure = true; } } }
/// <summary> /// Raised when a player joins the session /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnLivePlayerJoined(object sender, GamerJoinedEventArgs e) { IdentifiedPlayer identifiedPlayer = null; if (e.Gamer.IsLocal) { var localNetworkGamer = (LocalNetworkGamer)e.Gamer; IdentifiedPlayer[] localPlayersArray = new IdentifiedPlayer[SessionManager.LocalPlayers.Count]; SessionManager.LocalPlayers.Values.CopyTo(localPlayersArray, 0); for (int i = 0; i < localPlayersArray.Length; i++) { var localPlayer = localPlayersArray[i]; if (localPlayer.UniqueId == e.Gamer.Gamertag) { identifiedPlayer = new LiveIdentifiedPlayer(localPlayer.Input, localNetworkGamer); _localPlayers.Add(identifiedPlayer); _allPlayers.Add(identifiedPlayer); break; } } } else { NetworkGamer networkGamer = e.Gamer; identifiedPlayer = new LiveIdentifiedPlayer(networkGamer); _remotePlayers.Add(identifiedPlayer); _allPlayers.Add(identifiedPlayer); } OnPlayerJoined(identifiedPlayer); }
void Session_GamerJoined(object sender, GamerJoinedEventArgs e) { if (!gamerList.Text.Contains(e.Gamer.Gamertag + Environment.NewLine)) { gamerList.Text += e.Gamer.Gamertag + Environment.NewLine; gamerList.Position = gamerList.GetCenterPosition(Graphics.Viewport); } }
/// <summary> /// Event handler called when a gamer joins the session. /// Displays a notification message. /// </summary> void GamerJoined(object sender, GamerJoinedEventArgs e) { if (notifyWhenPlayersJoinOrLeave) { messageDisplay.ShowMessage(Resources.MessageGamerJoined, e.Gamer.Gamertag); } }
void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { if (!e.Gamer.IsLocal) { e.Gamer.Tag = new RemotePlayer(new Vector3(-5000, -5000, -5000), e.Gamer); Global.remotePlayers.Add((RemotePlayer)e.Gamer.Tag); } }
void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { int gamerIndex = networkSession.AllGamers.IndexOf(e.Gamer); GamerGetTag(e.Gamer); ReturnOrbsToAI(); game.OrbsPlaying = Math.Max(game.OrbsPlaying, networkSession.AllGamers.Count); }
/// <summary> /// Event handler called when a gamer joins the session. /// Displays a notification message. /// </summary> void GamerJoined(object sender, GamerJoinedEventArgs e) { if (e.Gamer != networkSession.LocalGamers[0]) { networkHelper.ClientPacketWriter.Write('T'); networkHelper.ClientPacketWriter.Write(localPlayer.TeamID); networkHelper.SendToAll(networkSession, networkHelper.ClientPacketWriter, SendDataOptions.ReliableInOrder); } }
private void value_GamerJoined(object sender, GamerJoinedEventArgs e) { if (e.Gamer.IsLocal) { _dataWriters.Remove(e.Gamer.Id); _dataReaders.Remove(e.Gamer.Id); _dataWriters.Add(e.Gamer.Id, new PacketWriter()); _dataReaders.Add(e.Gamer.Id, new PacketReader()); } }
void Host_GamerJoined(object sender, GamerJoinedEventArgs e) { /*if (GameMain.CurrentState == GameState.WaitingPlayers && * _session.RemoteGamers.Count == GameMain.PlayerCount)*/ if (_session.RemoteGamers.Count >= 1) { GameMain.ChangeState(GameState.PlayingHost); _session.StartGame(); } }
internal void Session_GamerJoined(object sender, GamerJoinedEventArgs e) { // If we invited this friend to our session, this is where we detect them arriving while we're at the share hub. UIGridShareFriendElement elem = FindFriendElement(e.Gamer.Gamertag); if (elem != null) { elem.Friend.IsJoining = false; elem.Friend.IsJoined = true; } }
void GamerJoined(object sender, GamerJoinedEventArgs e) { if (e.Gamer.IsHost) { e.Gamer.Tag = CreateChasingSprite(); } else { e.Gamer.Tag = CreateChasedSprite(); } }
/// <summary> /// This event handler will be called whenever a new gamer joins the session. /// We use it to allocate a Ship object, and associate it with the new gamer. /// </summary> void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { //int gamerIndex = networkSession.AllGamers.IndexOf(e.Gamer); RacerType pType = RacerType.Remote; if (e.Gamer.IsLocal) { pType = RacerType.LocalHuman; } //TODO: uncomment this code and make it work//e.Gamer.Tag = Race.addPlayer(pType); }
/// <summary> /// Event handler called when a gamer joins the session. /// Displays a notification message. /// </summary> void GamerJoined(object sender, GamerJoinedEventArgs e) { int gamerIndex = networkSession.AllGamers.IndexOf(e.Gamer); e.Gamer.Tag = new Player(Game.Content, 0); if (notifyWhenPlayersJoinOrLeave) { messageDisplay.ShowMessage(Resources.MessageGamerJoined, e.Gamer.Gamertag); } }
void session_GamerJoined(object sender, GamerJoinedEventArgs e) { if (e.Gamer.IsHost) { message = "The Host started the session!"; } else { message = "Gamer " + e.Gamer.Tag + " joined the session!"; // Other played joined, start the game! session.StartGame(); } }
/// <summary> /// Handles a player joining the game. The new gamer should be sent /// all the entity components it will need to synchonize with this /// peer (i.e. all the components this peer has authority over) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { // We only need to update remote gamers - local ones will share // our local game state if (!e.Gamer.IsLocal) { // Send components for all entitys that we have authority over // (i.e. those with a local component) foreach (Local local in game.LocalComponent.All) { // Send position if (game.PositionComponent.Contains(local.EntityID)) { Position position = game.PositionComponent[local.EntityID]; packetWriter.Write(position.EntityID); packetWriter.Write((short)PacketTypes.Position); packetWriter.Write(position.Center); packetWriter.Write(position.Radius); } // Send sprite if (game.SpriteComponent.Contains(local.EntityID)) { Sprite sprite = game.SpriteComponent[local.EntityID]; packetWriter.Write(sprite.EntityID); packetWriter.Write((short)PacketTypes.Sprite); packetWriter.Write(sprite.SpriteSheet.Name); packetWriter.Write(sprite.SpriteBounds.X); packetWriter.Write(sprite.SpriteBounds.Y); packetWriter.Write(sprite.SpriteBounds.Width); packetWriter.Write(sprite.SpriteBounds.Height); } // Send movement sprite if (game.MovementSpriteComponent.Contains(local.EntityID)) { MovementSprite sprite = game.MovementSpriteComponent[local.EntityID]; packetWriter.Write(sprite.EntityID); packetWriter.Write((short)PacketTypes.MovementSprite); packetWriter.Write(sprite.SpriteSheet.Name); packetWriter.Write(sprite.SpriteBounds.X); packetWriter.Write(sprite.SpriteBounds.Y); packetWriter.Write(sprite.SpriteBounds.Width); packetWriter.Write(sprite.SpriteBounds.Height); } // Send the data session.LocalGamers[0].SendData(packetWriter, SendDataOptions.InOrder, e.Gamer); } } }
/// <summary> /// This event handler will be called whenever a new gamer joins the session. /// We use it to allocate a Tank object, and associate it with the new gamer. /// </summary> void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { int gamerIndex = networkSession.AllGamers.IndexOf(e.Gamer); Debug.WriteLine(" gamer join: {0} \n", gamerIndex); e.Gamer.Tag = new Ship(gamerIndex); InputQueue.pShip[gamerIndex] = e.Gamer.Tag as Ship; //if(e.Gamer.IsHost) //{ // Ship thisShip = e.Gamer.Tag as Ship; // //this.tankTextureCurrent = thisTank.tankTextureGreen; //} }
/// <summary> /// This event handler will be called whenever a new gamer joins the session. /// We use it to allocate a Tank object, and associate it with the new gamer. /// </summary> void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { int gamerIndex = networkSession.AllGamers.IndexOf(e.Gamer); if (Host == true && gamerIndex == 0) { e.Gamer.Tag = PlayerManager.getPlayer(PlayerID.one); } else if (Host == true && gamerIndex == 1) { e.Gamer.Tag = PlayerManager.getPlayer(PlayerID.two); } else if (Host == false && gamerIndex == 0) { e.Gamer.Tag = PlayerManager.getPlayer(PlayerID.two); } else if (Host == false && gamerIndex == 1) { e.Gamer.Tag = PlayerManager.getPlayer(PlayerID.one); } }
/* Event handler for gamer joined; forward to the game if it's listening. */ void session_GamerJoined(object sender, GamerJoinedEventArgs e) { Trace.WriteLine(String.Format("Gamer joined: {0}", e.Gamer.Gamertag)); if (e.Gamer.IsLocal) { return; } if (session != null) { UpdateVoice(); if (sessionType == SessionType.HighscoresOnly) { // stay open for five minutes, or until the host kills it sessionCloseTime = Timing.NowTicks + 300 * 10000000L; } if (toSend.Count == 0 && storage.HasLoaded) { LoadHighscores(); } } if (sessionType == SessionType.HighscoresAndGame || sessionType == SessionType.HighscoresOnly) { if (e.Gamer is NetworkGamer) { NetworkGamer ng = e.Gamer as NetworkGamer; if (!ng.IsLocal) { joinedGamers.Add(e.Gamer, new JoinedGamer(ng)); } } } if (GamerJoined != null) { gea.Gamer = e.Gamer; gea.Joined = true; GamerJoined(this, gea); } }
private static void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { NetworkGamer networkGamer = e.Gamer; if (Main.netMode == 0) { for (int i = 0; i < 4; i++) { UI uI = Main.ui[i]; if (uI.wasRemovedFromSessionWithoutOurConsent) { SignedInGamer signedInGamer = uI.signedInGamer; if (signedInGamer != null && signedInGamer.Gamertag == networkGamer.Gamertag) { networkGamer.Tag = uI.player; return; } } } } else if (!networkGamer.IsLocal) { Main.checkUserGeneratedContent = true; } int j = 0; Player player = null; if (Main.netMode != 1) { for (; playerSlots[j]; j++) { } playerSlots[j] = true; } if (networkGamer.IsLocal) { LocalNetworkGamer localNetworkGamer = (LocalNetworkGamer)networkGamer; SignedInGamer signedInGamer2 = localNetworkGamer.SignedInGamer; UI uI2 = Main.ui[(int)signedInGamer2.PlayerIndex]; uI2.localGamer = localNetworkGamer; if (Main.netMode != 1) { uI2.JoinSession(j); player = (Player)(networkGamer.Tag = Main.player[j]); player.client = null; if (networkGamer.IsHost) { sessionReadyEvent.Set(); } else { Main.JoinGame(uI2); } } else { gamersWaitingForPlayerId.Add(uI2); } if (gamer == null) { gamer = localNetworkGamer; } } else if (Main.netMode == 2) { SetAsRemotePlayerSlot(j); NetClient netClient = null; for (int num = clients.Count - 1; num >= 0; num--) { if (clients[num].machine == networkGamer.Machine) { netClient = clients[num]; break; } } if (netClient == null) { netClient = new NetClient(networkGamer); clients.Add(netClient); NetMessage.syncPlayers(); } player = Main.player[j]; netClient.GamerJoined(player); networkGamer.Tag = player; NetMessage.SendPlayerId(networkGamer, j); } else if (Main.netMode == 1 && gamer != null) { NetMessage.CreateMessage0(11); NetMessage.SendMessage(); } }
/// <summary> /// This event handler will be called whenever a new gamer joins the session. /// We use it to allocate a Tank object, and associate it with the new gamer. /// </summary> void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { int gamerIndex = networkSession.AllGamers.IndexOf(e.Gamer); e.Gamer.Tag = new Tank(gamerIndex, Content, screenWidth, screenHeight); }
/// <summary> /// Adds the assosciated network stream with the new gamer that joined the network session. /// </summary> /// <param name="sender">The network.</param> /// <param name="e">Event arguments.</param> protected virtual void GamerJoined(object sender, GamerJoinedEventArgs e) { }
void SessionGamerJoinedHandler(object sender, GamerJoinedEventArgs e) { //throw new NotImplementedException(); }
public void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { OnNewGamer(e.Gamer, GetGamerIndex(e.Gamer)); //int gamerIndex = networkSession.AllGamers.IndexOf(e.Gamer); //e.Gamer.Tag = new Player(); }
static void networkSession_GamerJoined(object sender, GamerJoinedEventArgs e) { GamerJoined(sender, e); }
void _networkSession_GamerJoined(object sender, GamerJoinedEventArgs e) { throw new NotImplementedException(); }
void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { log.Add(e.Gamer.Gamertag + " joined the current session"); }
private static void GamerJoinedEventHandler(object sender, GamerJoinedEventArgs e) { }
void session_GamerJoined(object sender, GamerJoinedEventArgs e) { throw new Exception("The method or operation is not implemented."); }