public PlayerDefeatedPacket MakePlayerDefeatedPacket(string laserID, string playerID, int collidedPlayerNewScore) { PlayerDefeatedPacket packet = new PlayerDefeatedPacket { CollidedLaserID = laserID, CollidedPlayerID = playerID, CollidedPlayerNewScore = collidedPlayerNewScore }; return(packet); }
private void ClientMessenger_OnPlayerDefeatedPacket(BasePacket packet) { PlayerDefeatedPacket playerDefeatedPacket = (PlayerDefeatedPacket)packet; _GUI.UpdatePlayerScore(playerDefeatedPacket.CollidedPlayerID, playerDefeatedPacket.CollidedPlayerNewScore); _laserManager.DeactivateLaser(playerDefeatedPacket.CollidedLaserID); var player = _players[playerDefeatedPacket.CollidedPlayerID]; _explosionManager.AddExplosion(player.Position); }
private void CheckCollisions() { var collisions = _collisionManager.CheckCollision(_players.Values.ToList(), _enemyManager.Enemies, GetActiveLasers()); if (collisions.Count > 0) { for (int iCollision = 0; iCollision < collisions.Count; iCollision++) { _playerLasers[collisions[iCollision].AttackingPlayerID].DeactivateLaser(collisions[iCollision].LaserID); // Deactivate collided laser if (collisions[iCollision].CollisionType == CollisionManager.CollisionType.LaserToEnemy) { _enemyManager.DeactivateEnemy(collisions[iCollision].DefeatedEnemyID); // Deactivate collided enemy // INCREMENT PLAYER SCORE HERE _playerScores[collisions[iCollision].AttackingPlayerID]++; // Create packet to send to clients EnemyDefeatedPacket packet = NetworkPacketFactory.Instance.MakeEnemyDefeatedPacket(collisions[iCollision].LaserID, collisions[iCollision].DefeatedEnemyID, collisions[iCollision].AttackingPlayerID, _playerScores[collisions[iCollision].AttackingPlayerID]); for (int iClient = 0; iClient < ComponentClients.Count; iClient++) { ComponentClients[iClient].SendPacketToClient(packet, MessageType.GI_ServerSend_EnemyDefeated); } } else { // DECCREMENT PLAYER SCORE HERE if (_playerScores[collisions[iCollision].DefeatedPlayerID] > 0) { _playerScores[collisions[iCollision].DefeatedPlayerID]--; } // Create packet to send to clients // TODO: In future move player to a random spot on the map and send that data with this packet PlayerDefeatedPacket packet = NetworkPacketFactory.Instance.MakePlayerDefeatedPacket(collisions[iCollision].LaserID, collisions[iCollision].DefeatedPlayerID, _playerScores[collisions[iCollision].DefeatedPlayerID]); for (int iClient = 0; iClient < ComponentClients.Count; iClient++) { ComponentClients[iClient].SendPacketToClient(packet, MessageType.GI_ServerSend_PlayerDefeated); } } } CheckGameOver(); } }