private void ClientMessenger_OnEnemyDefeatedPacket(EnemyDefeatedPacket packet) { EnemyDefeatedPacket enemyDefeatedPacket = packet; _GUI.UpdatePlayerScore(enemyDefeatedPacket.AttackingPlayerID, enemyDefeatedPacket.AttackingPlayerNewScore); _laserManager.DeactivateLaser(enemyDefeatedPacket.CollidedLaserID); var enemy = _enemyManager.DeactivateAndReturnEnemy(enemyDefeatedPacket.CollidedEnemyID); _explosionManager.AddExplosion(enemy.Position); }
public EnemyDefeatedPacket MakeEnemyDefeatedPacket(string laserID, string enemyID, string attackingPlayerID, int attackingPlayerNewScore) { EnemyDefeatedPacket packet = new EnemyDefeatedPacket { CollidedLaserID = laserID, CollidedEnemyID = enemyID, AttackingPlayerID = attackingPlayerID, AttackingPlayerNewScore = attackingPlayerNewScore }; return(packet); }
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(); } }