private void ProcessOpponentOperationAction(string operationId, CardCodename cardCodename)
    {
        // instantiate
        Operation operation = (Operation)CardFactory.CreateCard(cardCodename, operationId);

        _game.Opponent.ChangeClicks(-1);
        _game.Opponent.ChangeCredits(-operation.BaseCost);
        _game.Opponent.Hand.RemoveAt(0);
        if (operation.OnPlay != null)
        {
            operation.OnPlay(_game, _game.Opponent);
        }

        if (operation.OperationType == OperationType.ONESHOT)
        {
            _game.Opponent.Discard.Add(operation);
        }
        else
        {
            _game.Opponent.OngoingOperations.Add(operation);
            GameViewController.AddOperation(operation, false);
        }

        // log
        GameViewController.AddGameLogMessage(string.Format("<b>{0}</b> plays {1}", _game.Opponent.Name, operation.CardName));
    }