Files
game_development_workshop/js/scenarios.js
T
2026-09-25 18:18:21 +05:30

374 lines
13 KiB
JavaScript

/**
* PPE SAFETY CHALLENGE - SCENARIO DEFINITIONS & SAFETY DATABASE
* Implements: SEE THE SITUATION -> IDENTIFY HAZARDS -> SELECT PPE -> CONSEQUENCES -> CORRECT
*/
const SCENARIO_DATA = [
{
id: "grinding",
index: 1,
title: "Metal Grinding Operation",
taskName: "ANGLE GRINDER WELD SMOOTHING",
sceneClass: "stage-grinding",
environmentDesc: "An industrial worker is preparing to grind rough weld seams on heavy structural steel using a high-speed angle grinder (11,000 RPM).",
audioCaption: "Workshop Ambience: Machinery hum & distant fabrication noise",
guideTip: "High-speed spinning discs eject fiery sparks and shrapnel at over 100 m/s with extreme noise (95+ dB).",
hazards: [
{
id: "flying_sparks",
label: "Flying hot metal sparks & abrasive wheel particles (11,000 RPM)",
criticalSlot: "eyes"
},
{
id: "high_noise",
label: "Continuous high decibel motor and grinding noise (95-105 dB)",
criticalSlot: "ears"
},
{
id: "sharp_burrs",
label: "Sharp metal burrs, intense friction heat & wheel kickback hazard",
criticalSlot: "hands"
},
{
id: "falling_debris",
label: "Heavy steel drop hazard & structural workshop overhead risks",
criticalSlot: "feet"
}
],
// Required protective gear items
requiredPpe: [
"faceshield_glasses",
"leather_grinding_gloves",
"earmuffs_heavy",
"hard_hat_cap",
"heavy_leather_jacket",
"steel_toe_boots"
],
// Critical slots for safety check evaluation
criticalChecks: [
{
slot: "eyes",
requiredItem: "faceshield_glasses",
consequenceTitle: "Flying Particle Hazard",
consequenceDesc: "Without full face & eye impact protection, flying abrasive particles at 11,000 RPM can cause catastrophic corneal penetration or severe facial lacerations.",
missingLabel: "Full Face Shield + Safety Glasses (ANSI Z87+)"
},
{
slot: "ears",
requiredItem: "earmuffs_heavy",
consequenceTitle: "Noise-Induced Hearing Damage",
consequenceDesc: "Angle grinding routinely generates 100+ dB. Operating without rated hearing protection causes irreversible inner-ear acoustic trauma.",
missingLabel: "Heavy Duty Hearing Protection (Earmuffs / Plugs)"
},
{
slot: "hands",
requiredItem: "leather_grinding_gloves",
consequenceTitle: "Thermal Burn & Abrasion Danger",
consequenceDesc: "Thin latex or bare hands offer zero protection against glowing 800°C sparks and jagged steel edges. Heavy-duty leather gloves are required.",
missingLabel: "Heavy-Duty Split Cowhide Leather Grinding Gloves"
},
{
slot: "feet",
requiredItem: "steel_toe_boots",
consequenceTitle: "Crush & Penetration Hazard",
consequenceDesc: "Standard footwear cannot protect against dropped structural steel sections or sharp discarded metal shards on workshop floors.",
missingLabel: "Steel-Toe Safety Boots with Puncture Resistant Sole"
},
{
slot: "head",
requiredItem: "hard_hat_cap",
consequenceTitle: "Overhead Impact & Debris Risk",
consequenceDesc: "In fabrication bays, overhead cranes and moving metal fixtures require impact-certified head protection.",
missingLabel: "Industrial Hard Hat (Type 1, Class E)"
},
{
slot: "body",
requiredItem: "heavy_leather_jacket",
consequenceTitle: "Clothing Ignition / Hot Spark Burn",
consequenceDesc: "Synthetic regular clothing easily melts or ignites from dense grinder spark streams. Heavy flame-resistant leather/cotton protective wear is essential.",
missingLabel: "Flame-Resistant Heavy Leather Welder/Grinder Jacket"
}
],
// Locker items available for selection (including distractors)
lockerItems: [
{
id: "faceshield_glasses",
name: "Face Shield + Safety Glasses",
slot: "eyes",
icon: "🛡️",
spec: "ANSI Z87+ Impact Dual Protection",
isCorrect: true
},
{
id: "regular_sunglasses",
name: "Standard Tinted Sunglasses",
slot: "eyes",
icon: "🕶️",
spec: "Non-impact rated tinted plastic",
isCorrect: false,
rejectReason: "Standard sunglasses shatter upon impact and leave the face exposed to flying debris."
},
{
id: "leather_grinding_gloves",
name: "Leather Grinding Gloves",
slot: "hands",
icon: "🧤",
spec: "Heavy split cowhide heat/spark resistant",
isCorrect: true
},
{
id: "thin_latex_gloves",
name: "Thin Disposable Latex Gloves",
slot: "hands",
icon: "🧤",
spec: "Medical grade 4mil rubber (Flaggable)",
isCorrect: false,
rejectReason: "Thin latex immediately melts onto skin when hit by 800°C grinder sparks."
},
{
id: "earmuffs_heavy",
name: "Industrial Ear Muffs (NRR 30)",
slot: "ears",
icon: "🎧",
spec: "High noise reduction acoustic seal",
isCorrect: true
},
{
id: "wireless_earbuds",
name: "Consumer Music Earbuds",
slot: "ears",
icon: "🎵",
spec: "Audio playback (Non-certified)",
isCorrect: false,
rejectReason: "Music earphones are not certified PPE and distract the operator from machine warnings."
},
{
id: "hard_hat_cap",
name: "Industrial Hard Hat",
slot: "head",
icon: "⛑️",
spec: "ANSI Z89.1 Type 1 Class E",
isCorrect: true
},
{
id: "heavy_leather_jacket",
name: "Flame-Resistant Work Jacket",
slot: "body",
icon: "🦺",
spec: "Heavy-duty spark-resistant leather/cotton",
isCorrect: true
},
{
id: "steel_toe_boots",
name: "Steel-Toe Safety Boots",
slot: "feet",
icon: "🥾",
spec: "ASTM F2413 Impact & Puncture Rated",
isCorrect: true
},
{
id: "regular_sneakers",
name: "Canvas Running Sneakers",
slot: "feet",
icon: "👟",
spec: "Fabric sports shoe (Zero drop rating)",
isCorrect: false,
rejectReason: "Fabric sneakers ignite from sparks and offer zero crush protection from dropped metal."
}
],
successMessage: {
title: "SAFE TO START",
headline: "Correct PPE selected.",
body: "Your eyes, face, hands, hearing and feet are protected from the main hazards of this task."
}
},
{
id: "chemical",
index: 2,
title: "Chemical Handling & Dispensing",
taskName: "CORROSIVE SOLVENT TRANSFER",
sceneClass: "stage-chemical",
environmentDesc: "An employee is preparing to transfer an industrial corrosive solvent between approved containment drums inside a ventilated chemical dispensing station.",
audioCaption: "Ventilation Ambience: Fume extraction hood airflow & quiet laboratory background",
guideTip: "Corrosive chemicals cause irreversible chemical burns upon skin contact and severe vapor irritation.",
hazards: [
{
id: "chemical_splash",
label: "Corrosive liquid splash risk during pouring & transfer",
criticalSlot: "eyes"
},
{
id: "skin_absorption",
label: "Acute dermal chemical burn and toxic absorption",
criticalSlot: "hands"
},
{
id: "body_soak",
label: "Direct container overflow or accidental splash onto torso & legs",
criticalSlot: "body"
},
{
id: "foot_contact",
label: "Chemical pooling on floor and footwear degradation",
criticalSlot: "feet"
}
],
// Required protective gear items
requiredPpe: [
"chemical_splash_goggles",
"nitrile_gauntlet_gloves",
"chemical_resistant_apron",
"chemical_rubber_boots",
"hard_hat_chemical",
"organic_vapor_respirator"
],
// Critical slots evaluation
criticalChecks: [
{
slot: "eyes",
requiredItem: "chemical_splash_goggles",
consequenceTitle: "Chemical Splash to Eyes",
consequenceDesc: "Standard safety glasses with open side vents allow hazardous liquid droplets to roll directly into the eyes, causing permanent corneal scarring.",
missingLabel: "Indirectly Vented Chemical Splash Goggles (ANSI Z87.1 D3)"
},
{
slot: "hands",
requiredItem: "nitrile_gauntlet_gloves",
consequenceTitle: "Dermal Chemical Permeation",
consequenceDesc: "Porous leather or basic household gloves rapidly absorb harsh solvents, causing chemical burns and systemic toxicity through the skin.",
missingLabel: "Heavy-Duty Chemical-Resistant Nitrile/Neoprene Gauntlets"
},
{
slot: "body",
requiredItem: "chemical_resistant_apron",
consequenceTitle: "Body Splash & Acid Soak Hazard",
consequenceDesc: "Standard porous fabric clothing absorbs chemical splashes immediately, holding corrosive liquids against the skin.",
missingLabel: "Chemical-Resistant Impervious PVC/Neoprene Apron"
},
{
slot: "feet",
requiredItem: "chemical_rubber_boots",
consequenceTitle: "Corrosive Liquid Footwear Infiltration",
consequenceDesc: "Standard leather safety boots dissolve and degrade when exposed to pooled industrial acids and solvents.",
missingLabel: "Chemical-Resistant Neoprene/Rubber Boots"
},
{
slot: "ears",
requiredItem: "organic_vapor_respirator", // Uses respiratory/head slot
consequenceTitle: "Hazardous Vapor Inhalation",
consequenceDesc: "Concentrated chemical vapors overcome unprotected workers quickly. Half-mask respirator with chemical cartridges is required.",
missingLabel: "Half-Mask Respirator with Organic Vapor/Acid Gas Cartridges"
},
{
slot: "head",
requiredItem: "hard_hat_chemical",
consequenceTitle: "Overhead Chemical Piping Hazard",
consequenceDesc: "Chemical distribution zones require head protection against overhead pipe drips and valve maintenance risks.",
missingLabel: "Chemical-Resistant Industrial Hard Hat"
}
],
lockerItems: [
{
id: "chemical_splash_goggles",
name: "Chemical Splash Goggles",
slot: "eyes",
icon: "🥽",
spec: "ANSI Z87.1 D3 Sealed Splash Protection",
isCorrect: true
},
{
id: "standard_safety_glasses",
name: "Open Safety Glasses",
slot: "eyes",
icon: "👓",
spec: "Impact rated with open side vents (Non-liquid)",
isCorrect: false,
rejectReason: "Open side vents allow liquid splashes and corrosive droplets to enter the eye."
},
{
id: "nitrile_gauntlet_gloves",
name: "Nitrile Gauntlet Gloves",
slot: "hands",
icon: "🧤",
spec: "15-mil Heavy Nitrile Chemical Gauntlets",
isCorrect: true
},
{
id: "leather_work_gloves",
name: "Standard Leather Work Gloves",
slot: "hands",
icon: "🧤",
spec: "Porous split cowhide (Absorbent)",
isCorrect: false,
rejectReason: "Leather absorbs corrosive chemicals like a sponge, causing deep chemical burns."
},
{
id: "chemical_resistant_apron",
name: "Chemical-Resistant Apron",
slot: "body",
icon: "🦺",
spec: "Impermeable Heavy PVC / Neoprene Apron",
isCorrect: true
},
{
id: "cotton_lab_coat",
name: "Standard Cotton Coat",
slot: "body",
icon: "🥼",
spec: "Porous woven cotton (Non-impervious)",
isCorrect: false,
rejectReason: "Cotton absorbs acids and solvents directly into underclothes."
},
{
id: "chemical_rubber_boots",
name: "Chemical Rubber Boots",
slot: "feet",
icon: "🥾",
spec: "Seamless Neoprene Acid-Resistant Boots",
isCorrect: true
},
{
id: "organic_vapor_respirator",
name: "Organic Vapor Respirator",
slot: "ears", // Grouped in face/respiratory slot
icon: "😷",
spec: "Half-Face Mask with Dual Acid/Vapor Cartridges",
isCorrect: true
},
{
id: "hard_hat_chemical",
name: "Safety Hard Hat",
slot: "head",
icon: "⛑️",
spec: "Chemical-Resistant High Density Polyethylene",
isCorrect: true
},
{
id: "cloth_dust_mask",
name: "Simple Cloth Dust Mask",
slot: "ears",
icon: "😷",
spec: "Particulate only (No gas/vapor barrier)",
isCorrect: false,
rejectReason: "Cloth dust masks offer ZERO filtration against toxic chemical fumes and organic solvent vapors."
}
],
successMessage: {
title: "SAFE TO PROCEED",
headline: "Correct chemical protection selected.",
body: "Your PPE helps protect the eyes, respiratory system and skin against accidental chemical splashes."
}
}
];