By using this site, you agree to the Privacy Policy and Terms of Use.
Accept
Gun GravyGun GravyGun Gravy
Notification Show More
Font ResizerAa
  • Home
  • Latest News
  • Firearms
  • Tactical
  • Videos
Reading: Draw Or Holster? Test Your Split-Second Decision Skills
Share
Font ResizerAa
Gun GravyGun Gravy
  • Latest News
  • Firearms
  • Tactical
  • Videos
Search
  • Home
  • Latest News
  • Firearms
  • Tactical
  • Videos
Have an existing account? Sign In
Follow US
Gun Gravy > Latest News > Draw Or Holster? Test Your Split-Second Decision Skills
Draw Or Holster? Test Your Split-Second Decision Skills
Latest News

Draw Or Holster? Test Your Split-Second Decision Skills

Jim Flanders
Last updated: August 15, 2025 10:52 pm
Jim Flanders Published August 15, 2025
Share
SHARE

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

You Might Also Like

Chattanooga Man Claims Self-Defense In Fatal Double Shooting At Home

Manhattan high-rise shooting victims: NYPD officer, Blackstone executive and security guard among those killed

Florida college student who allegedly shipped 1,500 rounds of ammo to dorm had AR-15 under bed

FBI arrests suspect in DC pipe bomb case after 5-year investigation

Mail Call: New Guns, Gear, and Dry Fire Tools Just Landed

Share This Article
Facebook Twitter Email Print
Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

We Recommend
DC police chief resigns amid Trump pressure and crime data manipulation probe
Latest News

DC police chief resigns amid Trump pressure and crime data manipulation probe

Jim Flanders Jim Flanders December 8, 2025
Glock Gen6 Is Here! First Look at the Next Evolution of the Glock Platform
Ceasefire Violated: Thailand Struck Cambodia After Border Clashes
ICE warns Illinois is releasing violent criminal illegal aliens despite detainers, risking public safety
Europe’s Innovation Is Drowned in a Sea of Government Intervention
Crime rings, hackers join forces to hijack trucks nationwide, fueling major holiday shipping security fears
Calm Before in Markets, Zylenskyy Locked?  85″ Updates
Tactical

Calm Before in Markets, Zylenskyy Locked? 85″ Updates

Jim Flanders Jim Flanders December 8, 2025
WAR, A History Still in the Making
Videos

WAR, A History Still in the Making

JackCarrUSA JackCarrUSA December 8, 2025
Lenient judges ignore red flags, cave to soft-on-crime pressures as they release repeat offenders: attorney
Latest News

Lenient judges ignore red flags, cave to soft-on-crime pressures as they release repeat offenders: attorney

Jim Flanders Jim Flanders December 8, 2025
  • Latest News
  • Videos
  • Tactical
  • Firearms
2024 © Gun Gravy. All Rights Reserved.
Welcome Back!

Sign in to your account

Username or Email Address
Password

Lost your password?