private void OnAvailableMoves(NetworkMessage msg) { Debug.Log("Available moves calculated"); AvailableMovesResponseMessage message = msg.ReadMessage <AvailableMovesResponseMessage>(); message.ActionNumber = AdjustActionNumber(message.ActionNumber); GameState.ConfirmAvailableActions(message.AvailableMoveNodeIds.ToList(), message.AvailableAttackNodeIds.ToList(), message.ActionNumber, message.SubActionNumber); }
private void OnAvailableMoves(NetworkMessage msg) { AvailableMovesResponseMessage message = msg.ReadMessage <AvailableMovesResponseMessage>(); if (message.ActionNumber != 1 && message.ActionNumber != 2) { return; } if (message.AvailableAttackNodeIds.Any()) { // pick first attack result since they are ordered by efficiency NetClient.Send(CustomMessageTypes.SelectActionRequest, new SelectActionRequestMessage { ActionNumber = message.ActionNumber, SubActionNumber = message.SubActionNumber, SelectedNodeId = message.AvailableAttackNodeIds.First() }); } else { if (message.AvailableMoveNodeIds.Any()) { // pick the first movement node NetClient.Send(CustomMessageTypes.SelectActionRequest, new SelectActionRequestMessage { ActionNumber = message.ActionNumber, SubActionNumber = message.SubActionNumber, SelectedNodeId = message.AvailableMoveNodeIds[0] }); } else { _monstersWithAvailableMoves.Remove(message.SelectedMonsterTypeId); //TODO: this would perhaps be better as a custom message type that triggers a pass NetClient.Send(CustomMessageTypes.SelectActionRequest, new SelectActionRequestMessage { ActionNumber = message.ActionNumber, SubActionNumber = message.SubActionNumber, SelectedNodeId = -1 }); } } }
private void OnAvailableMoves(NetworkMessage msg) { AvailableMovesResponseMessage message = msg.ReadMessage <AvailableMovesResponseMessage>(); if (message.ActionNumber != 1 && message.ActionNumber != 2) { return; } if (message.AvailableAttackNodeIds.Any()) { int randInt = _random.Next(0, message.AvailableAttackNodeIds.Length - 1); NetClient.Send(CustomMessageTypes.SelectActionRequest, new SelectActionRequestMessage { ActionNumber = message.ActionNumber, SubActionNumber = message.SubActionNumber, SelectedNodeId = message.AvailableAttackNodeIds[randInt] }); } else { if (message.AvailableMoveNodeIds.Any()) { int randInt = _random.Next(0, message.AvailableMoveNodeIds.Length - 1); NetClient.Send(CustomMessageTypes.SelectActionRequest, new SelectActionRequestMessage { ActionNumber = message.ActionNumber, SubActionNumber = message.SubActionNumber, SelectedNodeId = message.AvailableMoveNodeIds[randInt] }); } else { _monstersWithAvailableMoves.Remove(message.SelectedMonsterTypeId); //TODO: this would perhaps be better as a custom message type that triggers a pass NetClient.Send(CustomMessageTypes.SelectActionRequest, new SelectActionRequestMessage { ActionNumber = message.ActionNumber, SubActionNumber = message.SubActionNumber, SelectedNodeId = -1 }); } } }