if (!AIRoad.AreRoadTilesConnected(prev_tile, new_tile)) { cost += self._cost_no_existing_road * 2; if (AIRoad.IsRoadTile(new_tile) || AIBridge.IsBridgeTile(new_tile) || AITunnel.IsTunnelTile(new_tile) || (AIRoad.IsRoadStationTile(new_tile) || AIRoad.IsRoadDepotTile(new_tile)) && AITile.GetOwner(new_tile) == AICompany.ResolveCompanyID(AICompany.COMPANY_SELF)) { cost -= self._cost_no_existing_road; } }