Skip to main content Skip to navigation
Mr. Lawson

MR. LAWSON:

"Professional drivers never skip this part. Neither should you."

${achievement.name}
`; document.body.appendChild(popup); setTimeout(() => { popup.classList.add('animate-slide-out-right'); setTimeout(() => popup.remove(), 500); }, 3000); }, playSound(type) { if (!this.soundEnabled) return; const audio = new Audio(); const sounds = { success: 'data:audio/wav;base64,UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1fdJivrJBhNjVgodDbq2EcBj+a2/LDciUFLIHO8tiJNwgZaLvt559NEAxQp+PwtmMcBjiR1/LMeSwFJHfH8N2QQAoUXrTp66hVFApGn+DyvmwhBjiS2Oy9diMFl2z', error: 'data:audio/wav;base64,UklGRl4GAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAAB/hIiCbF1fdJSqrIVi', achievement: 'data:audio/wav;base64,UklGRpQGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBg4aObF1fdJipqpJsRjlii9vjoGMfCEig7OmWhDEOMJTh76d0IwkkjuHrsGkZBji' }; audio.src = sounds[type] || sounds.success; audio.play().catch(() => {}); }, nextSimulatorPhase() { // Track interaction this.trackInteraction('next-phase'); const phases = ['simulator', 'priority', 'scenario', 'quiz']; const currentIndex = phases.indexOf(this.roundaboutPhase); if (currentIndex < phases.length - 1) { this.roundaboutPhase = phases[currentIndex + 1]; if (this.roundaboutPhase === 'scenario') { this.startScenario('morning_bell'); } } else { this.completeChallenge(); } }, startScenario(scenarioId) { // Track interaction this.trackInteraction(`start-scenario-${scenarioId}`); const scenario = this.scenarios.find(s => s.id === scenarioId); this.currentScenario = scenario; this.roundaboutPhase = 'scenario'; this.timer = 45; this.timerInterval = setInterval(() => { this.timer--; if (this.timer <= 10) { this.playSound('tick'); } if (this.timer <= 0) { clearInterval(this.timerInterval); this.makeDecision(null); } }, 1000); }, makeDecision(optionIndex) { // Track interaction if (optionIndex !== null && this.currentScenario) { this.trackInteraction(`scenario-${this.currentScenario.id}-option-${optionIndex}`); } clearInterval(this.timerInterval); this.totalAttempts++; if (optionIndex !== null && this.currentScenario) { const option = this.currentScenario.options[optionIndex]; this.decisions.push({ scenario: this.currentScenario.id, choice: option.text, correct: option.correct, feedback: option.feedback, timeRemaining: this.timer }); if (option.correct) { this.score += 100; this.streak++; this.playSound('success'); if (this.timer >= 35) { this.score += 20; this.showFeedback('Quick decision bonus! +20', 'success'); } if (this.streak >= 2) { this.unlockAchievement('perfect_yielder'); } } else { this.streak = 0; this.playSound('error'); } } this.roundaboutPhase = 'feedback'; }, nextScenario() { const currentIndex = this.scenarios.findIndex(s => s.id === this.currentScenario.id); if (currentIndex < this.scenarios.length - 1) { this.startScenario(this.scenarios[currentIndex + 1].id); } else { this.roundaboutPhase = 'quiz'; } }, submitQuiz(answer) { this.quizAnswer = answer; this.showQuizFeedback = true; if (answer === 'B') { this.score += 50; this.playSound('success'); } else { this.playSound('error'); } }, completeChallenge() { this.roundaboutPhase = 'results'; const accuracy = (this.decisions.filter(d => d.correct).length / this.decisions.length) * 100; if (accuracy === 100) { this.perfectRuns++; this.unlockAchievement('perfect_scanner'); } if (this.score >= 350) { this.unlockAchievement('priority_master'); } }, init() { setTimeout(() => this.showContent = true, 300); // Store reference to this component window.slide12Component = this; // Get the parent Alpine data from the body element const parentData = Alpine.$data(document.body); console.log('Slide 12 init - parent time:', parentData.time, 'parent limit:', parentData.limit); // Check initial timer state (for review mode) if (parentData.time >= parentData.limit) { this.timerComplete = true; console.log('Timer already complete on init'); this.checkRequirements(); } // Watch for timer completion on parent scope Alpine.effect(() => { const parentData = Alpine.$data(document.body); const timeLeft = parentData.limit - parentData.time; console.log('Timer update - time:', parentData.time, 'limit:', parentData.limit, 'timeLeft:', timeLeft); if (parentData.time >= parentData.limit && !this.timerComplete) { this.timerComplete = true; console.log('Timer completed!'); this.checkRequirements(); } }); }, trackInteraction(interactionId) { if (!this.trackedInteractions.includes(interactionId)) { this.trackedInteractions.push(interactionId); console.log('Tracked interaction:', interactionId, 'Total:', this.trackedInteractions.length); this.checkRequirements(); } }, checkRequirements() { // Update the interaction status this.allInteractionsComplete = this.trackedInteractions.length >= this.requiredInteractionCount; // Debug logging console.log('Slide 12 Requirements Check:'); console.log('- Timer complete:', this.timerComplete); console.log('- Interactions complete:', this.allInteractionsComplete, `(${this.trackedInteractions.length}/${this.requiredInteractionCount})`); // Check if both requirements are met if (this.timerComplete && this.allInteractionsComplete) { console.log('Both requirements met! Unlocking...'); // Set directly on parent Alpine scope const parentData = Alpine.$data(document.body); if (parentData) { parentData.slideRequirementsMet = true; console.log('Set slideRequirementsMet on parent scope'); } // Also dispatch event with explicit bubbling const event = new CustomEvent('slide-requirements-met', { detail: { slide: 12, canProceed: true }, bubbles: true, composed: true }); window.dispatchEvent(event); console.log('Event dispatched to window'); } } }">
⚠️

EHS Roundabout Crisis Semanski & Warner Avenue

🔄

🚨 CRITICAL SAFETY ALERT: EHS Roundabout at Corner of School

Major Problems Observed Daily:

  • ⚠️ Students NOT yielding when entering
  • 💥 Drivers entering at 25-30 mph (should be 15)
  • 🔄 Confusion about who has right-of-way
  • 🏃 Students crossing without looking
  • 👨 Parents unfamiliar with roundabout rules
  • 🚜 Farm vehicles taking wide turns

Peak Danger Times at EHS:

  • 🔔 7:20-7:25 AM: Racing to beat bell
  • 🌮 11:30 AM: Lunch rush to Taco Time
  • ⚽ 2:30 PM: Athletes late to practice
  • 🚌 3:00 PM: Bus/parent pickup chaos
  • 🏈 Friday nights: Game traffic congestion

🚨 Recent EHS Roundabout Incidents:

  • • October: T-bone crash - student failed to yield to left
  • • September: Pedestrian near-miss during lunch rush
  • • August: Parent wrong-way entry caused 3-car backup

🎮 Interactive Roundabout Simulator - EHS at Semanski & Warner

SCORE
STREAK
🔥
🌳
YOU
To Warner Ave
From Semanski St
To School
From Parking

🚗 SPEED CONTROL

5
MPH ⚠️
35

YIELD DECISION

👁️ BLIND SPOT CHECK

📋 Instructions:

  • • Click on hazards to identify them
  • • Adjust speed to safe 15-20 mph
  • • Make correct yield decisions
  • • Check blind spots before proceeding
  • • Watch for pedestrians at crosswalks

🎯 Drag & Drop Priority Order Training

Arrange these vehicles in order of who has priority (highest to lowest):

Click or drag vehicles to priority order →

Priority Order (Highest → Lowest)

💡 Remember the Golden Rule:

Traffic already IN the roundabout ALWAYS has right of way! You must yield to vehicles approaching from your left that will enter before you.

🔄 Roundabout Rules - MEMORIZE THESE!

⬅️

YIELD TO LEFT

Traffic already IN the roundabout has right-of-way (RCW 46.61.202)

🐌

15-20 MPH MAX

SLOW DOWN before entering - speed kills in roundabouts

🚶

CHECK CROSSWALKS

Students cross without looking - YOU must watch for them

📋 Step-by-Step EHS Roundabout Navigation:

  1. 1. SLOW to 15-20 mph as you approach
  2. 2. CHECK left for circulating traffic
  3. 3. SCAN both crosswalks for pedestrians
  4. 4. YIELD to ALL traffic already in roundabout
  5. 5. ENTER when safe gap appears
  6. 6. SIGNAL right when exiting
  7. 7. WATCH for pedestrians at exit crosswalk
⏱️ DECISION TIME: s

🚨 EHS Roundabout -

✅ Correct Decision! ❌ Dangerous Choice!

Your Choice:

Explanation:

📝 Final Quiz: EHS Roundabout at Semanski & Warner

According to Washington State law (RCW 46.61.202), when approaching the EHS roundabout during morning rush, who has the right-of-way?

✅ CORRECT! Traffic in the roundabout ALWAYS has right-of-way. ❌ WRONG! The correct answer is B - traffic already in the roundabout has right-of-way per RCW 46.61.202.

🌟 LEGENDARY Roundabout Expert! 🏆 Roundabout Master! ⚠️ Good Progress - Review the Rules ❌ Need More Practice - Lives Depend on This!

Final Score: points

🏅 Achievements Unlocked

🚨 Remember at EHS Roundabout:

  • • ALWAYS yield to traffic already circulating
  • • Maximum speed: 15-20 mph
  • • Check ALL crosswalks for students
  • • Signal right when exiting
  • • Never stop IN the roundabout

📊 Your Performance:

  • • Morning Bell:
  • • Lunch Rush:
  • • After School:
  • • Legal Knowledge:

💡 Real Student Experience:

"I used to race through the roundabout trying to beat the bell. Then I saw a crash happen right in front of me - two students both thought they had right-of-way. Now I always slow down, yield to the left, and arrive alive. Being 30 seconds late is better than never making it at all." - Sarah, EHS Junior

🎮 Activity: In Progress Complete ✅
⏱️ Timer: Running Complete ✅