flag_enflag_fricon_affiliationicon_cardsicon_charactersicon_chequeicon_coeuricon_compteicon_diceicon_discordicon_discounticon_facebookicon_figurineicon_filtericon_gifticon_helmeticon_instagramicon_lightningicon_meeple_circleicon_meepleicon_meeplesicon_megaphoneicon_opinion-bubbleicon_pandaicon_paniericon_pen-brushicon_percenticon_playicon_postmanicon_ribbonicon_rocketicon_rssicon_sherifficon_smiley-negativeicon_smiley-positiveicon_sorticon_staricon_swordsicon_tankicon_threadsicon_thumbsicon_tiktokicon_top-gamesicon_towericon_twitchicon_twittericon_videoicon_wishlisticon_blueskyicon_youtubeillus_bankwireillus_bubbleillus_cashondeliveryillus_cb_paypalillus_CBillus_chequeillus_rating-starslogo_paypallogo_philibert_noel_bonnetlogo_philibert_noel_tabletlogo_philibert_noellogo_philibertlogo_ukoo

Découvrez les nouveautés de la semaine et les jeux bientôt disponibles !

Before the Stroke of Midnight

MNT-BSM

Red price
Before the Stroke of Midnight is a Dungeons & Dragons 5th edition adventure by Midnight Tower.
  • English

39,90 €

Available

Shipping from 1.95€ - Free from 60€ (metropolitan France)

Add to a list:

Wishlists

Before the Stroke of Midnight is a Dungeons & Dragons 5th edition adventure

It is designed for a group of three to five 9th-level characters, but can be scaled up or down by adjusting the encounters.

This adventure is a murder mystery adventure inspired by Edgar Allan Poe and can be used in any campaign or as a side-quest adventure.

Some towns and events used in this adventure mean that it works particularly well if played after the Rise of the Ice Dragons Trilogy adventures, but it can easily be adapted to suit other settings.

The Duchess Rose Blackraven of Shieldsborg Castle is dead. However, her last will is missing, and it is unclear who will inherit from her. You must find the will before midnight and identify the true heir to Shieldsborg Castle. Search the old castle for clues, interview the secretive residents, and investigate the mysterious surrounding areas. But be careful – more blood will be spilled, and a new murder will occur before midnight.

Eerie ghosts, mysterious intrigues, and dark secrets await you at the castle. Look for clues. Sharpen your wits. Search the castle. Can you solve the murder before it is too late?

*See our Shipping Conditions

Disponible en occasion à partir de ' + data.occasion_from_price + '

'); } } else { console.error('ukoosummary : ' + data.message); } } }); } // START - Chargement différés "à la demande" de certains blocs module (ayant la classe ajax_module_block) function checkAjaxLoadRequired() { $(document).find('.ajax_module_block').each(function() { if ($(this).hasClass('ajax_module_block') && elementInView(this)) { $(this).removeClass('ajax_module_block'); var params = []; params.module = $(this).data('module'); params.id = $(this).attr('id'); if (typeof $(this).data('id_product') !== undefined) { params.id_product = $(this).data('id_product'); } loadDeferedHomeBlock(params); } }); // Pour optim : si tous les blocs sont chargés, on désactive le listener // sur le scroll pour l'event "checkAjaxLoadRequired" if (!$(document).find('.ajax_module_block').length) { $(window).off('scroll', checkAjaxLoadRequired); } } function loadDeferedHomeBlock(params) { var url_parameters = ''; if (typeof params.id_product !== 'undefined') { url_parameters = '?id_product=' + parseInt(params.id_product); } $.ajax({ type: 'GET', url: baseDir + 'modules/' + params.module + '/ajax_delayed.php' + url_parameters, dataType: 'json', contentType: 'json', success: function(data) { if (data.status === 'ok') { var content = data.content; if (params.module === 'blockviewed' || params.module === 'antadisblog') { $('#' + params.id).html(content); } else if (params.module === 'ukooreviews') { $('#' + params.id + ' .ajax_block_loader').first().replaceWith($(content).find('.uk-reviews-home__products-container')[0]); $('#' + params.id + ' .ajax_block_loader').last().replaceWith($(content).find('.uk-reviews-home__products-container')[1]); } else if (params.module === 'youtubewall') { $('#' + params.id + ' .title_block').append($(content).find('#youtuwall-subscribe-custom')); $('#' + params.id + ' .ajax_block_loader').replaceWith($(content).find('#youtuwall')); } else { // [ukoo_gilles] [2019-12-19 10:55] -> bugfix - on cible le 1er élément ul uniquement sinon la // structure HTML injectée n'est plus bonne content = $(content).find('ul').first(); $('#' + params.id + ' .ajax_block_loader').replaceWith(content); if (!$('#' + params.id).find('.ajax_block_product').length) { $('#' + params.id).find('.view-more').remove(); } } // l'id contenu dans params.id n'existe maintenant plus dans le DOM if (params.module === 'blockviewed') { if (typeof ajaxCart !== 'undefined') { ajaxCart.overrideButtonsInThePage(); } $("#product #viewed-products_block_left .owl-carousel").owlCarousel({ responsive: { 0: { items: 1 }, 1024: { items: 2 }, 1380: { items: 3 } }, margin: 15, autoplay: false, autoplayTimeout: 3000, autoplayHoverPause: true, nav: true, rewind: true, lazyLoad: true }); } } else if (data.status === 'error') { console.log(data.message); } }, error: function(jqXHR, textStatus, errorThrown) { alert(textStatus); }, }); } function elementInView(elem) { var elementTop = $(elem).offset().top; var elementBottom = elementTop + $(elem).outerHeight(); var viewportTop = $(window).scrollTop(); var viewportBottom = viewportTop + $(window).innerHeight(); return elementBottom > viewportTop && elementTop < viewportBottom; } // END - Chargement différés "à la demande" de certains blocs module (ayant la classe ajax_module_block) $(document).ready(function() { // START - Chargement différés "à la demande" de certains blocs module (ayant la classe ajax_module_block) // on lance une première fois le chargement différé des blocs qui sont déjà dans le champ de vision // au chargement de la page if ($(document).find('.ajax_module_block').length) { checkAjaxLoadRequired(); // lors du scroll, on relance le chargement des blocs différés $(window).scroll(checkAjaxLoadRequired); } // END - Chargement différés "à la demande" de certains blocs module (ayant la classe ajax_module_block) }); $(document).on('click', '.dfd-icon-xl', function(event){ let doofinderInput = $('.dfd-searchbox-main input'); $('#search_query_top').val(doofinderInput.val()); $('#searchbox').submit(); event.stopPropagation(); }); $(document).on('keypress', '.dfd-searchbox-main input', function(event){ let keycode = (event.keyCode ? event.keyCode : event.which); if (keycode == '13') { let doofinderInput = $('.dfd-searchbox-main input'); $('#search_query_top').val(doofinderInput.val()); $('#searchbox').submit(); event.stopPropagation(); } }); -->