Kierre Stowes’s review published on Letterboxd:
Trap is the latest film from Director M. Night Shyamalan, and stars Josh Hartnett, as Cooper, a father who is taking his daughter to a Pop concert of one of her favorite artists, named Lady Raven (played by Saleka Shyamalan). However, once they get to the concert Cooper soon learns that the whole concert is a trap to catch a serial killer who is also attending the performance.
Trying to be as spoiler-free as possible, there are a lot of minor twists and turns within this film. This film, like many of Shyamalan's films, is a bit uneven. The story isn't bad but there are some obvious flaws and very little to no actual blood and gore for a horror film. Hartnett is great in this role, but Saleka Shyamalan's acting was very subpar and almost comical in parts. Overall, the film isn't as bad as most of the reviews it received but it isn't great either.
For a longer discussion, please visit my YouTube Channel, SacTown Movie Buffs, and I've included a link to the full review below.
youtu.be/_4_nuK93h90
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_ff4345f1-60e5-4fa5-af7e-3e58a3a16f6d" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-ff4345f1-60e5-4fa5-af7e-3e58a3a16f6d'; adUnit.className = 'pw-div -tile300x250 -alignleft -bottommargin'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'med_rect_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-ff4345f1-60e5-4fa5-af7e-3e58a3a16f6d'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-ff4345f1-60e5-4fa5-af7e-3e58a3a16f6d'));
' ].join(''); if ( adsScript && adsScript === 'bandsintown' && adsPlatforms && ((window.isIOS && adsPlatforms.indexOf("iOS") >= 0) || (window.isAndroid && adsPlatforms.indexOf("Android") >= 0)) && adsLocations && adsMode && ( (adsMode === 'include' && adsLocations.indexOf(window.adsLocation) >= 0) || (adsMode === 'exclude' && adsLocations.indexOf(window.adsLocation) == -1) ) ) { var opts = { artist: "", song: "", adunit_id: 100005950, div_id: "cf_async_4a1c6cc9-d494-49ee-8794-e534d3e321ba" }; adUnit.id = opts.div_id; if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } var c=function(){cf.showAsyncAd(opts)};if(typeof window.cf !== 'undefined')c();else{cf_async=!0;var r=document.createElement("script"),s=document.getElementsByTagName("script")[0];r.async=!0;r.src="//srv.tunefindforfans.com/fruits/apricots.js";r.readyState?r.onreadystatechange=function(){if("loaded"==r.readyState||"complete"==r.readyState)r.onreadystatechange=null,c()}:r.onload=c;s.parentNode.insertBefore(r,s)}; } else { adUnit.id = 'pw-4a1c6cc9-d494-49ee-8794-e534d3e321ba'; adUnit.className = 'pw-div'; adUnit.setAttribute('data-pw-' + (renderMobile ? 'mobi' : 'desk'), 'sky_btf'); if (target) { target.insertAdjacentElement('beforeend', adUnit); } else { tag.insertAdjacentElement('afterend', adUnit); } window.addEventListener('DOMContentLoaded', (event) => { adUnit.insertAdjacentHTML('afterend', kicker); window.ramp.que.push(function () { window.ramp.addTag('pw-4a1c6cc9-d494-49ee-8794-e534d3e321ba'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-4a1c6cc9-d494-49ee-8794-e534d3e321ba'));