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

Trump says there may be ‘hope’ for CBS News after new ownership deal

Trump says there may be ‘hope’ for CBS News after new ownership deal

October 9, 2025
Trump to undergo ‘routine’ yearly medical exam at Walter Reed while visiting troops in Maryland

Trump to undergo ‘routine’ yearly medical exam at Walter Reed while visiting troops in Maryland

October 9, 2025
Texas Road Rage Rampage Ends In Tragedy: 4 Dead In Shooting Spree

Texas Road Rage Rampage Ends In Tragedy: 4 Dead In Shooting Spree

October 9, 2025
Darius Rucker engaged after fiancée admits she hid relationship to protect it

Darius Rucker engaged after fiancée admits she hid relationship to protect it

October 8, 2025
She helped North Korea infiltrate American tech companies

She helped North Korea infiltrate American tech companies

October 8, 2025
Who is Jonathan Rinderknecht, Palisades Fire suspect accused of sparking deadly blaze?

Who is Jonathan Rinderknecht, Palisades Fire suspect accused of sparking deadly blaze?

October 8, 2025
Fever’s Sophie Cunningham says she hasn’t watched ‘a lick’ of WNBA Finals amid drama with commissioner

Fever’s Sophie Cunningham says she hasn’t watched ‘a lick’ of WNBA Finals amid drama with commissioner

October 8, 2025
Top GOP group drops big money into Virginia showdown after Dem AG nominee’s violent texts go viral

Top GOP group drops big money into Virginia showdown after Dem AG nominee’s violent texts go viral

October 8, 2025
Anti-Hamas Gaza militias reject terror group, declare support for Trump’s peace plan

Anti-Hamas Gaza militias reject terror group, declare support for Trump’s peace plan

October 8, 2025
Don't Miss
More Democrats dodge Virginia candidate’s ‘2 bullets’ scandal

More Democrats dodge Virginia candidate’s ‘2 bullets’ scandal

Trump says there may be ‘hope’ for CBS News after new ownership deal

Trump says there may be ‘hope’ for CBS News after new ownership deal

TOP 5 BEST BOLT ACTION RIFLES REVIEWS

TOP 5 BEST BOLT ACTION RIFLES REVIEWS

City Harvest feeds 1.5M New Yorkers as celebrities, chefs rally for hunger relief

City Harvest feeds 1.5M New Yorkers as celebrities, chefs rally for hunger relief

Latest News
Trump to undergo ‘routine’ yearly medical exam at Walter Reed while visiting troops in Maryland

Trump to undergo ‘routine’ yearly medical exam at Walter Reed while visiting troops in Maryland

October 9, 2025
Top 10 Best Survival & Bushcraft Saws for Camping, Bug Out

Top 10 Best Survival & Bushcraft Saws for Camping, Bug Out

October 9, 2025
Texas Road Rage Rampage Ends In Tragedy: 4 Dead In Shooting Spree

Texas Road Rage Rampage Ends In Tragedy: 4 Dead In Shooting Spree

October 9, 2025
Government shutdown drives staffing flight delays from 5% to 53% as air traffic controllers call out

Government shutdown drives staffing flight delays from 5% to 53% as air traffic controllers call out

October 9, 2025
Mask mandates return in wealthy blue state county, leaders cite ‘risk of COVID’ and up vaccine recommendations

Mask mandates return in wealthy blue state county, leaders cite ‘risk of COVID’ and up vaccine recommendations

October 9, 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.