/* 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); } } DISTRESS SIGNAL — Chapter 1
9MM SIDEARM
12 / 36
OBJECTIVE
DO NOT STOP
FLARES 0 G
BANDAGES 0 H
TAB — CASE FILE
SAVE CODE
Copy this and keep it. Paste it on the title screen to resume.
P — CLOSE
EVIDENCE 0/8

E / ESC — PUT IT DOWN
F  TOGGLE FLASHLIGHT
ENTER — SKIP
CHAPTER ONE
THE CALL

DISTRESS SIGNAL

CHAPTER ONE — THE CALL

A GAME CREATED BY JEREMY K.M
WASD — MOVE  ·  MOUSE — LOOK  ·  LMB — FIRE  ·  R — RELOAD
E — INTERACT  ·  F — FLASHLIGHT  ·  SHIFT — RUN
HEADPHONES RECOMMENDED

YOU DIED

RETURNING TO LAST CHECKPOINT…

TO BE CONTINUED…

DISTRESS SIGNAL — CHAPTER 2

CREATED BY JEREMY K.M

LOADING CHAPTER 2

DO NOT CLOSE THE WINDOW