/* Auto-probing for chapter2.html logs a 404 in the console on every playthrough where it does not exist, so detection is opt-in. Flip this to true (or add ?next=1 to the URL) if chapter2.html is sitting next to this file. */ const AUTO_DETECT_CHAPTER2 = (typeof location!=='undefined' && /[?&]next=1/.test(location.search)); const CHAPTER2_URL='chapter2.html'; function buildEndStats(){ const st=G.stats; const secs=Math.max(0,Math.floor(G.time-(st.started||0))); const mm=String(Math.floor(secs/60)).padStart(2,'0'), ss=String(secs%60).padStart(2,'0'); const acc=st.shots?Math.round(st.hits/st.shots*100):0; const total=NOTES.length, got=G.notesFound||0; const rows=[ ['TIME',mm+':'+ss], ['EVIDENCE',got+' / '+(total+TAPES.length)+(got>=total+TAPES.length?' COMPLETE FILE':'')], ['ROUNDS FIRED',String(st.shots)], ['ACCURACY',acc+'%'], ['PUT DOWN',String(st.kills)], ['DEATHS',String(st.deaths)] ]; const wrap=document.createElement('div'); wrap.id='statBlock'; rows.forEach(([k,v])=>{ const r=document.createElement('div'); r.className='statRow'; r.innerHTML=''+k+''+v+''; wrap.appendChild(r); }); return wrap; } function checkChapterTwo(){ const tbc=$('toBeContinued'), ldn=$('loadingNext'); ldn.style.display='none'; tbc.style.display='block'; if(!$('statBlock'))tbc.appendChild(buildEndStats()); const goLoad=()=>{ tbc.style.display='none'; ldn.style.display='block'; setTimeout(()=>{ try{ window.location.href=CHAPTER2_URL; }catch(e){} },2000); }; // an explicit way through that never touches the network until you ask if(!$('ch2Btn')){ const b=document.createElement('button'); b.id='ch2Btn'; b.textContent='CONTINUE TO CHAPTER 2'; b.addEventListener('click',goLoad); tbc.appendChild(b); } if(!AUTO_DETECT_CHAPTER2||location.protocol==='file:')return; let settled=false; const timer=setTimeout(()=>{settled=true;},5000); try{ const req=fetch(CHAPTER2_URL,{method:'GET',cache:'no-store'}); if(!req||typeof req.then!=='function'){clearTimeout(timer);return;} req.then(r=>{ if(settled||!r||!r.ok)return; return r.text().then(txt=>{ if(settled)return; clearTimeout(timer); settled=true; if(txt&&txt.length>400&&/{}); }).catch(()=>{}); }catch(e){ clearTimeout(timer); } }
RETURNING TO LAST CHECKPOINT…
DISTRESS SIGNAL — CHAPTER 2
CREATED BY JEREMY K.M
LOADING CHAPTER 2
DO NOT CLOSE THE WINDOW