public PlayerTurnData(PutPlayRequestData lastPutPlay, ClientController.PlayerState role) { this.lastPlay = lastPutPlay; this.playedThisTurn = false; this.role = role; playingRole = role; int colorToGet = nextUiColor; IncrementeNextUIColor(); _uiColor = (UIColors)colorToGet; }
protected override void PutPlayCommand(UdpNetworkDriver driver, NetworkConnection connection, DataStreamReader strm) { PutPlayRequestData requestReceived = new PutPlayRequestData(strm); TimeLogger.Log("SERVER - {0}[{1}] request - PutPlay (({2:00},{3:00}) ({4:00},{5:00}) ({6}))", requestReceived.playerId, connection.InternalId, requestReceived.movementTo.x, requestReceived.movementTo.y, requestReceived.sound.x, requestReceived.sound.y, requestReceived.PlayerAttacked); PutPlayEvent?.Invoke(requestReceived); PutPlayResponseData response = new PutPlayResponseData(requestReceived.playerId); IJob job = DataPackageWrapper.CreateSendDataJob(driver, connection, response.DataToArray()); jobHandler.QueueJob(job); }
public void InsertNewPlayTurnData(PutPlayRequestData putPlayData) { int playerId = putPlayData.playerId; PlayerTurnData turnData; if (playerTurnDict.TryGetValue(playerId, out turnData)) { turnData.InputNewPutPlay(putPlayData); } else { throw new System.Exception(string.Format("SERVER - client {0} should have a play entry already", putPlayData.playerId)); } }
public void SchedulePutPlayRequest(Vector2Int movementTo, Vector2Int sound, bool attacked) { int id = ClientId; int movX = movementTo.x; int movY = movementTo.y; int sndX = sound.x; int sndY = sound.y; bool atk = attacked; PutPlayRequestData request = new PutPlayRequestData(id, movX, movY, sndX, sndY, atk); TimeLogger.Log("CLIENT {0} - schedule request - PutPlay (({1:00},{2:00}) ({3:00},{4:00}) ({5}))", id, movX, movY, sndX, sndY, atk); IJob job = DataPackageWrapper.CreateSendDataJob(m_ClientDriver, m_clientToServerConnection[0], request.DataToArray()); jobHandler.QueueJob(job); }
List <int> ProcessAttacks() { List <Color> attackingColors = new List <Color>(); // Get attacks positions List <Vector2Int> attackList = new List <Vector2Int>(); foreach (int key in serverController.PlayerTurnDict.Keys) { PlayerTurnData data; serverController.PlayerTurnDict.TryGetValue(key, out data); PutPlayRequestData lastPlay = data.lastPlay; if (lastPlay.PlayerAttacked) { attackList.Add(lastPlay.movementTo); attackingColors.Add(data.GetUIColorMaterial().color); } } uiController.SetAlienFeedback(attackingColors); // Check if players was in attack positions List <int> playersAttacked = new List <int>(); foreach (int key in serverController.PlayerTurnDict.Keys) { PlayerTurnData data; serverController.PlayerTurnDict.TryGetValue(key, out data); PutPlayRequestData lastPlay = data.lastPlay; foreach (Vector2Int attackPosition in attackList) { if (!lastPlay.PlayerAttacked && lastPlay.movementTo == attackPosition) { playersAttacked.Add(lastPlay.playerId); serverController.State.IncreaseDead(); TimeLogger.Log("SERVER - player {0} attacked!", lastPlay.playerId); break; } } } return(playersAttacked); }
List <int> ProcessHumanEscapees() { List <int> playersEscapees = new List <int>(); foreach (int key in serverController.PlayerTurnDict.Keys) { PlayerTurnData data; serverController.PlayerTurnDict.TryGetValue(key, out data); PutPlayRequestData lastPlay = data.lastPlay; if (data.role == ClientController.PlayerState.Human && serverController.GetTileType(BoardManager.TranslateTilePositionToCode(lastPlay.movementTo)) == BoardManager.PossibleTypes.EscapePod) { playersEscapees.Add(lastPlay.playerId); TimeLogger.Log("SERVER - player {0} escaped!", lastPlay.playerId); serverController.State.IncreaseEscapees(); break; } } return(playersEscapees); }
void PutPlayEventCallback(PutPlayRequestData requestReceived) { PutPlayEvent?.Invoke(requestReceived); }
void PutPlayEvent(PutPlayRequestData requestReceived) { this.InsertNewPlayTurnData(requestReceived); }
public void InsertNewPlayTurnData(int playerId, Vector2Int movementTo, Vector2Int soundIn, bool attacked) { PutPlayRequestData playerData = new PutPlayRequestData(playerId, movementTo.x, movementTo.y, soundIn.x, soundIn.y, attacked); InsertNewPlayTurnData(playerData); }
public void InputNewPutPlay(PutPlayRequestData newPutPlay) { this.lastPlay = newPutPlay; this.playedThisTurn = true; }