private void ProcessOpponentHostShipAction(string shipId, string shipyardId, CardCodename cardCodename) { // ship will be an unknown card at this point so needs to be instantiated Ship ship = (Ship)CardFactory.CreateCard(cardCodename, shipId); Shipyard shipyard = _game.Opponent.Shipyards.Find(x => x.CardId == shipyardId); shipyard.HostCard(ship); ship.StartConstruction(); if (ship.OnPlay != null) { ship.OnPlay(_game, _game.Opponent); } _game.Opponent.ChangeClicks(-1); _game.Opponent.ChangeCredits(-ship.BaseCost); _game.Opponent.Hand.RemoveAt(0); GameViewController.HostShip(ship, shipyard, false); GameViewController.AddGameLogMessage(string.Format("<b>{0}</b> hosts {1} on {2}", _game.Opponent.Name, ship.CardName, shipyard.CardName)); }