Initial commit: Safety Game
This commit is contained in:
+373
@@ -0,0 +1,373 @@
|
||||
/**
|
||||
* 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."
|
||||
}
|
||||
}
|
||||
];
|
||||
Reference in New Issue
Block a user