Ian🎄🎅’s review published on Letterboxd:
There is no popular filmmaker I struggle more with than M. Night Shyamalan. Every time I watch one of his movies I don't respond to it the way everyone else does.
There may be no better concept guy in the last 20 years than M. Night. Every trailer from his work always feels like the best idea for a movie ever.
Trap is no different.
In the year after the Eras tour to get this kind of movie is cool. Dad takes his daughter to a big concert, and Dad realizes it's a trap for a killer. But spin zone, Dad is the killer.
That is great stuff, and early on in the movie as Josh Hartnett devolves from proud father to psychopath the movie is great too.
Sadly like other work of his for me, this movie wasted a slew of great performances and a killer idea. As the movie unfolds so much happens from the moment simply because they have to. if not there is no movie.
The script can be felt watching this and not in a good way.
The cast around Harnett was great so it made for some moments. But this largely fell flat for me.
' ].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_2e13a173-bfda-41e2-aee4-d50f84543671" }; 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-2e13a173-bfda-41e2-aee4-d50f84543671'; 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-2e13a173-bfda-41e2-aee4-d50f84543671'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-2e13a173-bfda-41e2-aee4-d50f84543671'));
' ].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_ffbf26be-842d-4209-863e-354bad58d3aa" }; 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-ffbf26be-842d-4209-863e-354bad58d3aa'; 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-ffbf26be-842d-4209-863e-354bad58d3aa'); }); }, { once: true }); } } tag.remove(); })(document.getElementById('script-ffbf26be-842d-4209-863e-354bad58d3aa'));