Close Menu
Gun Day Fun DayGun Day Fun Day
  • Home
  • Latest News
  • Firearms
  • Tactical
  • Videos
Facebook X (Twitter) Instagram
Gun Day Fun DayGun Day Fun Day
  • Home
  • Latest News
  • Firearms
  • Tactical
  • Videos
Gun Day Fun DayGun Day Fun Day
Home»Latest News»Draw Or Holster? Test Your Split-Second Decision Skills
Latest News

Draw Or Holster? Test Your Split-Second Decision Skills

Sam DanielsBy Sam DanielsAugust 15, 20254 Mins Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
Draw Or Holster? Test Your Split-Second Decision Skills
Share
Facebook Twitter LinkedIn Pinterest Email

Published August 15, 2025

Think you can spot a threat before it’s too late?

In real life, concealed carriers have only seconds to decide whether to draw their firearm or keep it holstered. This interactive game puts you in realistic, fast-paced scenarios to test your judgment under pressure.

Make the right calls, keep your score high, and see if you can climb the leaderboard. But be careful, because every wrong decision could cost you a life.

Ready? Let’s find out if you’ve got what it takes.

QR code

Scan this with your phone camera


Draw or Holster — Concealed Nation

${cfg.lives} Lives

${secs(cfg.round_time_ms)} / round

`),
section(`

React to real-world style scenarios. Choose Draw only for imminent deadly threats; choose Holster otherwise. Fast, correct answers earn bonuses.

  • Correct: +${cfg.correct_base} • Under ${secs(cfg.speed_bonus_ms)} +${cfg.speed_bonus_points}
  • Wrong: ${cfg.wrong} (${cfg.wrong_obvious} if you mishandle an obvious threat)
  • Timeout: ${cfg.timeout}


`),
section(`

Local Leaderboard

Loading…

`)
);
$(‘#playBtn’).onclick = startGame;
$(‘#howBtn’).onclick = viewHow;
renderLocalLeaderboard();
}

function viewHow(){
screen(
band(`

Train your decision-making

`),
section(`

  1. You have ${secs(cfg.round_time_ms)} per scenario.
  2. Tap Draw for imminent deadly threats.
  3. Tap Holster if force is not justified.
  4. Use cover, assess, and avoid unnecessary escalation.


`)
);
$(‘#backBtn’).onclick = viewHome;
$(‘#playBtn’).onclick = startGame;
}

function startGame(){ score=0; lives=cfg.lives; streak=0; idx=0; list=[…DATA.scenarios].sort(()=>Math.random()-0.5); nextRound(); }

function nextRound(){
if (lives=list.length) return gameOver();
const s = list[idx]; handled=false;

screen(
band(`

Round ${idx+1} / ${list.length}

Score: ${score}

Lives: ${“❤️”.repeat(lives)} (${lives})

Streak: ${streak}

`),
section(`

${s.text}


Difficulty: ${s.difficulty}

⏱ ${secs(cfg.round_time_ms)}

`)
);

$(‘#drawBtn’).onclick = ()=>answer(“draw”);
$(‘#holsterBtn’).onclick = ()=>answer(“holster”);

const total = cfg.round_time_ms;
const start = Date.now(); roundStart=start;
clearInterval(timer);
timer = setInterval(()=>{
if (handled){ clearInterval(timer); return; }
const elapsed = Date.now()-start;
const remain = Math.max(0, total-elapsed);
const bar = $(‘#bar’); if (bar) bar.style.width = (remain/total*100)+”%”;
if (remain===0){ clearInterval(timer); onTimeout(); }
}, 50);
}

function disableButtons(){ const d=$(‘#drawBtn’), h=$(‘#holsterBtn’); if(d) d.disabled=true; if(h) h.disabled=true; }
function onTimeout(){
if (handled) return; handled=true; disableButtons();
const s = list[idx]; score += cfg.timeout; lives=Math.max(0,lives-1); streak=0;
feedback(false, `⏳ Time’s up! ${cfg.timeout} pts. ${s.explanation}`);
}

function answer(choice){
if (handled) return; handled=true; clearInterval(timer); disableButtons();
const s = list[idx]; const ms = Date.now()-roundStart; const correct = (choice===s.correctAction);
let delta=0;
if (correct){ delta+=cfg.correct_base; if (msCorrect ${msWrong • ${delta} pts. ${s.explanation}`;
feedback(correct, msg);
}

function feedback(_ok, msg){
const over = lives

`;
$(‘#nextBtn’).onclick = ()=>{ over ? gameOver() : (idx++, nextRound()); };
}

/* ====== Local leaderboard ====== */
function localKey(){ return “doh_local_leaderboard”; }
function renderLocalLeaderboard(){
const lb = JSON.parse(localStorage.getItem(localKey()) || “[]”).slice(0,10);
const elb = $(‘#lb’);
elb.innerHTML = lb.length
? `

    ${lb.map((r,i)=>`

  1. ${i+1}. ${r.name||”Anon”}${r.score}
  2. `).join(“”)}

`
: “No scores yet. Play a round!”;
}
function postLocalScore(){
const nameKey = “doh_name”;
if (!name){
name = localStorage.getItem(nameKey) || prompt(“Enter a display name for the leaderboard (or leave blank):”) || “Anon”;
localStorage.setItem(nameKey, name);
}
const lb = JSON.parse(localStorage.getItem(localKey()) || “[]”);
lb.push({ name, score, ts: Date.now() });
lb.sort((a,b)=>b.score-a.score);
localStorage.setItem(localKey(), JSON.stringify(lb.slice(0,50)));
const ps = $(‘#postStatus’); if (ps) ps.textContent = “Score saved locally.”;
}

/* ====== Game Over + Sharing (toast + QR modal image) ====== */
function gameOver(){
screen(
band(`
`),
section(`

Local leaderboard (device-wide only).


Challenge your friends to beat your score!






`),
section(`

Local Leaderboard

Loading…

`)
);
$(‘#playBtn’).onclick = startGame;
$(‘#homeBtn’).onclick = viewHome;

postLocalScore();
renderLocalLeaderboard();

const url = pageUrlWithScore(score, name);
const shareText = `I scored ${score} in Concealed Nation’s “Draw or Holster” — can you beat me?`;

$(‘#shareNativeBtn’).onclick = async ()=>{
if (navigator.share) {
try { await navigator.share({ title:”Draw or Holster”, text:shareText, url }); toast(“Shared!”); }
catch(e){}
} else {
await copyToClipboard(url);
}
};
$(‘#copyLinkBtn’).onclick = ()=> copyToClipboard(url);
$(‘#tweetBtn’).onclick = ()=>{ openShare(“https://twitter.com/intent/tweet?text=”+encodeURIComponent(shareText)+”&url=”+encodeURIComponent(url)); toast(“Opening Twitter…”); };
$(‘#fbBtn’).onclick = ()=>{ openShare(“https://www.facebook.com/sharer/sharer.php?u=”+encodeURIComponent(url)); toast(“Opening Facebook…”); };
$(‘#emailBtn’).onclick = ()=>{ location.href = “https://concealednation.org/2025/08/draw-or-holster-test-your-split-second-decision-skills/mailto:?subject=”+encodeURIComponent(“My Draw or Holster score”)+”&body=”+encodeURIComponent(shareText+”nn”+url); };

// QR modal using a hosted generator image (no JS lib)
$(‘#qrBtn’).onclick = ()=>{
const img = $(‘#doh-qr-img’);
img.src = “https://api.qrserver.com/v1/create-qr-code/?size=240×240&data=” + encodeURIComponent(url);
qrModal.classList.add(‘open’);
};
}

/* ====== Helpers to render band/section ====== */
function band(html){ return `

${html}

`; }
function section(html){ return `

${html}

`; }

/* ====== Modal wiring ====== */
$(‘#doh-qr-close’).onclick = ()=> qrModal.classList.remove(‘open’);
qrModal.addEventListener(‘click’, (e)=> { if (e.target === qrModal) qrModal.classList.remove(‘open’); });
$(‘#doh-qr-copy’).onclick = ()=> copyToClipboard(pageUrlWithScore(score, name));
$(‘#doh-qr-share’).onclick = async ()=>{
const url = pageUrlWithScore(score, name);
if (navigator.share) {
try { await navigator.share({ title:”Draw or Holster”, text:`I scored ${score}!`, url }); toast(“Shared!”); }
catch(e){}
} else {
await copyToClipboard(url);
}
};

/* ====== Boot with safety net ====== */
try { viewHome(); }
catch (e) { console.error(e); showError(“Game failed to load: ” + (e && e.message ? e.message : e)); }
})();



Read the full article here

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email

Related Posts

Mamdani calls on DA to not prosecute mentally ill man shot by police during alleged knife attack

February 4, 2026

Authorities ‘aware’ of reports of possible ransom note in Nancy Guthrie disappearance

February 4, 2026

Four defendants, including 2 Venezuelans, allegedly used 115 stolen identities in massive food stamp fraud

February 4, 2026

Subscribe to Updates

Get the latest firearm news and updates directly to your inbox.

Editor's Picks

Authorities ‘aware’ of reports of possible ransom note in Nancy Guthrie disappearance

February 4, 2026

Four defendants, including 2 Venezuelans, allegedly used 115 stolen identities in massive food stamp fraud

February 4, 2026

Iran bleeds $1.56M every hour from internet blackout restrictions amid economic crisis: analyst

February 4, 2026

NBC confirms Savannah Guthrie will not attend Winter Olympics as search for her mother intensifies

February 4, 2026
  • Home
  • Privacy Policy
  • Contact
© 2026 Gun Day Fun Day. All Rights Reserved.

Type above and press Enter to search. Press Esc to cancel.