Close Menu
Truth Republican
  • Home
  • News
  • Politics
  • Business
  • Guns & Gear
  • Healthy Tips
  • Prepping & Survival
  • Videos
Facebook X (Twitter) Instagram
Truth Republican
  • Home
  • News
  • Politics
  • Business
  • Guns & Gear
  • Healthy Tips
  • Prepping & Survival
  • Videos
Newsletter
Truth Republican
You are at:Home»News»Draw Or Holster? Test Your Split-Second Decision Skills
News

Draw Or Holster? Test Your Split-Second Decision Skills

Buddy DoyleBy Buddy DoyleAugust 15, 2025No Comments4 Mins Read
Facebook Twitter Pinterest LinkedIn Tumblr WhatsApp
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
Previous ArticleBlue states plan new tax hikes on wealthy residents in response to Trump’s federal tax legislation
Next Article Tariffs Won’t Spawn Good Trade Deals

Related Articles

Stepdad’s unusual discipline for son’s ‘ok chill’ remark sparks viral debate

Stepdad’s unusual discipline for son’s ‘ok chill’ remark sparks viral debate

August 16, 2025
ROBERT MAGINNIS: What comes next for US, Russia and Ukraine after Alaska summit

ROBERT MAGINNIS: What comes next for US, Russia and Ukraine after Alaska summit

August 16, 2025
Newsom’s office continues to mock Trump using his social media writing style: ‘TINY HANDS’

Newsom’s office continues to mock Trump using his social media writing style: ‘TINY HANDS’

August 16, 2025
Zelenskyy to meet with Trump in Washington, DC following US-Russia talks

Zelenskyy to meet with Trump in Washington, DC following US-Russia talks

August 16, 2025
Bill Maher slams ‘zombie lie’ that Trump is Putin’s ‘bi–h’ hours after summit in Alaska

Bill Maher slams ‘zombie lie’ that Trump is Putin’s ‘bi–h’ hours after summit in Alaska

August 16, 2025
Little League World Series ace’s lightning-fast pitches overpower hitters

Little League World Series ace’s lightning-fast pitches overpower hitters

August 16, 2025
Trump rates Putin summit a ’10 out of 10′ and touts ‘very good progress’ toward peace

Trump rates Putin summit a ’10 out of 10′ and touts ‘very good progress’ toward peace

August 16, 2025
California high school girls volleyball team forfeits against opponent with trans athlete

California high school girls volleyball team forfeits against opponent with trans athlete

August 16, 2025
ROBERT MAGINNIS: What comes next for US, Russia and Ukraine after Alaska summit

Trump reveals 10 striking takeaways from Putin summit in Hannity interview

August 16, 2025
Don't Miss
8 Forgotten Firearms That Made A Shocking Comeback!

8 Forgotten Firearms That Made A Shocking Comeback!

Sylvester Stallone gives an inside look at his Florida home after leaving LA behind

Sylvester Stallone gives an inside look at his Florida home after leaving LA behind

Stepdad’s unusual discipline for son’s ‘ok chill’ remark sparks viral debate

Stepdad’s unusual discipline for son’s ‘ok chill’ remark sparks viral debate

From lunchbox staple to freezer icon: The rise of Tyson and the great American nugget takeover

From lunchbox staple to freezer icon: The rise of Tyson and the great American nugget takeover

Latest News
Newsom’s office continues to mock Trump using his social media writing style: ‘TINY HANDS’

Newsom’s office continues to mock Trump using his social media writing style: ‘TINY HANDS’

August 16, 2025
Bondi puts sanctuary cities nationwide on notice after DC police federal takeover

Bondi puts sanctuary cities nationwide on notice after DC police federal takeover

August 16, 2025
Zelenskyy to meet with Trump in Washington, DC following US-Russia talks

Zelenskyy to meet with Trump in Washington, DC following US-Russia talks

August 16, 2025
SEAL Team 6 Operator & Podcaster | Andy Stumpf (throwback episode)

SEAL Team 6 Operator & Podcaster | Andy Stumpf (throwback episode)

August 16, 2025
More than 30K wireless power banks recalled after reports of fires, explosions

More than 30K wireless power banks recalled after reports of fires, explosions

August 16, 2025
Copyright © 2025. Truth Republican. All rights reserved.
  • Privacy Policy
  • Terms of use
  • Contact

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