private void SendActionsToPlayer(string actionData, Player player)
    {
        var actionMsg = new MessageTypes.ActionsMessage();

        actionMsg.actionData = actionData;
        NetworkServer.SendToClient(player.ConnectionId, (short)MessageTypes.MessageType.ACTIONS, actionMsg);
    }
    public void SubmitActions()
    {
        MessageTypes.ActionsMessage msg = new MessageTypes.ActionsMessage();

        if (_game.GamePhase == GamePhase.COMBAT_PLANNING)
        {
            // cycle through the weapons and add target actions
            // we defer to now rather than have to handle changing targets
            foreach (Ship ship in _game.Player.Ships)
            {
                for (int weaponIndex = 0; weaponIndex < ship.Weapons.Count; weaponIndex++)
                {
                    Weapon weapon = ship.Weapons[weaponIndex];
                    if (weapon.Target != null)
                    {
                        _actions.Add(new WeaponTargetAction(ship, weaponIndex, weapon.Target));
                    }
                }
            }
        }

        // serialize actions
        StringBuilder data = new StringBuilder();

        foreach (PlayerAction action in _actions)
        {
            data.Append(action.ToString() + '#');
        }
        msg.actionData = data.ToString().TrimEnd('#');

        // TODO - we may need to split this into chunks
        NetworkManager.singleton.client.Send((short)MessageTypes.MessageType.ACTIONS, msg);

        _actions.Clear();
        _game.AwaitOpponent();
        EnableDisableControls();
    }