import React, { useState, useEffect } from 'react';
import { Heart, Zap, AlertTriangle, CheckCircle, XCircle, RotateCcw } from 'lucide-react';
const PendulumGame = () => {
const [gameState, setGameState] = useState('menu');
const [energy, setEnergy] = useState(100);
const [awareness, setAwareness] = useState(50);
const [score, setScore] = useState(0);
const [currentScenario, setCurrentScenario] = useState(0);
const [pendulumStrength, setPendulumStrength] = useState({});
const [feedback, setFeedback] = useState('');
const [showTutorial, setShowTutorial] = useState(false);
const scenarios = [
{
id: 1,
type: 'social',
title: 'Débat sur les réseaux sociaux',
description: 'Vous voyez un post controversé sur les réseaux sociaux qui vous énerve. Plusieurs personnes débattent avec véhémence.',
pendulum: 'Controverse sociale',
options: [
{ text: 'Répondre avec colère pour défendre votre point de vue', energy: -20, awareness: -10, pendulumBoost: 15, explanation: 'Vous nourrissez le pendulum avec votre énergie émotionnelle négative. L\'opposition frontale renforce toujours le pendulum.' },
{ text: 'Adopter l\'indifférence consciente - observer sans réagir', energy: +10, awareness: +20, pendulumBoost: -10, explanation: 'Parfait ! L\'indifférence consciente est le moyen le plus efficace selon Zeland. Vous observez comme un film sans engagement personnel.' },
{ text: 'Réduire l\'importance : "Est-ce vraiment si important ?"', energy: +15, awareness: +25, pendulumBoost: -15, explanation: 'Excellent ! Vous baissez l\'enjeu émotionnel. Les pendulums s\'alimentent du sentiment d\'importance excessive.' },
{ text: 'Changer de fréquence : répondre avec humour léger', energy: +5, awareness: +15, pendulumBoost: -20, explanation: 'Brillant ! Cette dissonance émotionnelle trouble le pendulum qui cherchait de la colère.' }
]
},
{
id: 2,
type: 'work',
title: 'Conflit au travail',
description: 'Votre collègue critique constamment vos idées en réunion. L\'atmosphère devient tendue.',
pendulum: 'Conflit professionnel',
options: [
{ text: 'Contre-attaquer publiquement ses arguments', energy: -25, awareness: -15, pendulumBoost: 25, explanation: 'Vous alimentez le pendulum du conflit qui va s\'amplifier. L\'affrontement direct renforce toujours le pendulum.' },
{ text: 'Adopter la posture d\'observateur extérieur', energy: +15, awareness: +25, pendulumBoost: -20, explanation: 'Excellent ! Vous observez la situation comme un spectateur sans engagement personnel émotionnel.' },
{ text: 'Relativiser : "Quelle importance réelle a ce conflit ?"', energy: +10, awareness: +20, pendulumBoost: -15, explanation: 'Parfait ! Vous réduisez l\'importance accordée à la situation, privant le pendulum de sa source d\'énergie.' },
{ text: 'Rediriger l\'énergie vers vos propres objectifs', energy: +20, awareness: +15, pendulumBoost: -25, explanation: 'Brillant ! Vous canalisez votre énergie vers la création de votre réalité personnelle au lieu de la gaspiller.' }
]
},
{
id: 3,
type: 'politics',
title: 'Débat politique familial',
description: 'Lors d\'un repas de famille, une discussion politique s\'envenime. Chacun défend ses convictions avec passion.',
pendulum: 'Polarisation politique',
options: [
{ text: 'Défendre vos idées avec conviction', energy: -30, awareness: -20, pendulumBoost: 30, explanation: 'Vous nourrissez massivement le pendulum. Même l\'adhésion passionnée alimente sa force destructrice.' },
{ text: 'Pratiquer le lâcher-prise : "Not my monkeys, not my circus"', energy: +20, awareness: +30, pendulumBoost: -25, explanation: 'Parfait ! Vous appliquez le détachement conscient de Zeland. Vous vous recentrez sur vos propres priorités.' },
{ text: 'Observer et sourire intérieurement sans s\'impliquer', energy: +15, awareness: +25, pendulumBoost: -20, explanation: 'Excellent ! Vous maintenez une distance émotionnelle tout en restant bienveillant.' },
{ text: 'Changer de fréquence : répondre avec compassion', energy: +10, awareness: +20, pendulumBoost: -30, explanation: 'Brillant ! Cette dissonance émotionnelle désarme complètement le pendulum de polarisation.' }
]
},
{
id: 4,
type: 'consumer',
title: 'Pression consumériste',
description: 'Vous voyez partout des publicités pour le dernier smartphone. Vos amis parlent de l\'acheter.',
pendulum: 'Consumérisme',
options: [
{ text: 'L\'acheter immédiatement par peur d\'être en retard', energy: -20, awareness: -25, pendulumBoost: 30, explanation: 'Vous cédez à l\'importance excessive. Le pendulum se nourrit de votre peur et de votre besoin de conformité.' },
{ text: 'Adopter l\'indifférence consciente face à la mode', energy: +15, awareness: +25, pendulumBoost: -20, explanation: 'Excellent ! Vous ne prêtez pas attention au pendulum consumériste, ni positivement ni négativement.' },
{ text: 'Relativiser : "Ai-je vraiment besoin de cet objet ?"', energy: +20, awareness: +30, pendulumBoost: -25, explanation: 'Parfait ! Vous réduisez l\'importance accordée et questionnez le besoin artificiel créé par le pendulum.' },
{ text: 'Canaliser l\'énergie vers vos vrais objectifs personnels', energy: +25, awareness: +20, pendulumBoost: -30, explanation: 'Brillant ! Vous redirigez intentionnellement votre énergie vers vos valeurs authentiques.' }
]
},
{
id: 5,
type: 'health',
title: 'Panique sanitaire',
description: 'Une nouvelle "maladie dangereuse" fait la une. Tout le monde en parle avec peur ou déni.',
pendulum: 'Panique collective',
options: [
{ text: 'Paniquer et accumuler des informations alarmantes', energy: -35, awareness: -30, pendulumBoost: 35, explanation: 'Vous alimentez massivement le pendulum de la peur.' },
{ text: 'Nier complètement et critiquer les "moutons"', energy: -20, awareness: -15, pendulumBoost: 25, explanation: 'Le déni et la critique nourrissent aussi le pendulum.' },
{ text: 'S\'informer calmement auprès de sources fiables', energy: +15, awareness: +25, pendulumBoost: -20, explanation: 'Excellent ! Vous gardez votre discernement sans tomber dans l\'émotionnel.' },
{ text: 'Prendre des précautions raisonnables sans stress', energy: +10, awareness: +20, pendulumBoost: -15, explanation: 'Parfait ! Vous agissez avec sagesse sans nourrir la panique.' }
]
}
];
const getPendulumLevel = (strength) => {
if (strength < 20) return { level: 'Faible', color: 'text-green-500', bg: 'bg-green-100' };
if (strength < 50) return { level: 'Modéré', color: 'text-yellow-500', bg: 'bg-yellow-100' };
if (strength < 80) return { level: 'Fort', color: 'text-orange-500', bg: 'bg-orange-100' };
return { level: 'Très Fort', color: 'text-red-500', bg: 'bg-red-100' };
};
const startGame = () => {
setGameState('playing');
setEnergy(100);
setAwareness(50);
setScore(0);
setCurrentScenario(0);
setPendulumStrength({});
setFeedback('');
};
const handleChoice = (choice) => {
const scenario = scenarios[currentScenario];
const newEnergy = Math.max(0, Math.min(100, energy + choice.energy));
const newAwareness = Math.max(0, Math.min(100, awareness + choice.awareness));
// Update pendulum strength
const currentStrength = pendulumStrength[scenario.pendulum] || 0;
const newStrength = Math.max(0, Math.min(100, currentStrength + choice.pendulumBoost));
setPendulumStrength(prev => ({
...prev,
[scenario.pendulum]: newStrength
}));
setEnergy(newEnergy);
setAwareness(newAwareness);
setFeedback(choice.explanation);
// Calculate score based on energy preservation and awareness gain
const choiceScore = Math.max(0, choice.energy + choice.awareness - choice.pendulumBoost);
setScore(prev => prev + choiceScore);
// Check game over conditions
if (newEnergy <= 0) {
setGameState('gameOver');
return;
}
// Next scenario or end game
setTimeout(() => {
if (currentScenario < scenarios.length - 1) {
setCurrentScenario(prev => prev + 1);
setFeedback('');
} else {
setGameState('victory');
}
}, 3000);
};
const resetGame = () => {
setGameState('menu');
};
const getTutorial = () => (
Comment jouer ?
Objectif : Naviguer dans différentes situations sans nourrir les pendulums avec votre énergie.
Énergie : Votre force vitale. Si elle tombe à 0, vous perdez.
Conscience : Plus elle est haute, mieux vous comprenez les mécanismes des pendulums.
Pendulums : Structures énergétiques qui se nourrissent de vos réactions émotionnelles.
Stratégie : Restez détaché, observez sans juger, et ne donnez pas d'importance excessive aux situations.
);
if (gameState === 'menu') {
return (
Jeu des Pendulums
Basé sur les concepts de Vadim Zeland
Apprenez à naviguer dans la réalité sans nourrir les pendulums énergétiques
{showTutorial && getTutorial()}
);
}
if (gameState === 'playing') {
const scenario = scenarios[currentScenario];
return (
{/* Stats */}
{/* Pendulum Status */}
État des Pendulums
{Object.entries(pendulumStrength).map(([name, strength]) => {
const level = getPendulumLevel(strength);
return (
);
})}
{/* Scenario */}
Scénario {currentScenario + 1}: {scenario.title}
{scenario.description}
Pendulum actif: {scenario.pendulum}
{/* Feedback */}
{feedback && (
)}
{/* Options */}
{!feedback && (
Que faites-vous ?
{scenario.options.map((option, index) => (
))}
)}
{/* Progress */}
Scénario {currentScenario + 1} sur {scenarios.length}
);
}
if (gameState === 'gameOver') {
return (
Épuisement énergétique
Vous avez perdu toute votre énergie en nourrissant les pendulums.
Rappelez-vous : les pendulums se nourrissent de vos réactions émotionnelles, qu'elles soient positives ou négatives.
);
}
if (gameState === 'victory') {
const totalPendulumStrength = Object.values(pendulumStrength).reduce((a, b) => a + b, 0);
let performance = 'Excellent';
if (totalPendulumStrength > 100) performance = 'Bon';
if (totalPendulumStrength > 200) performance = 'Moyen';
if (totalPendulumStrength > 300) performance = 'Faible';
return (
Félicitations !
Vous avez terminé tous les scénarios avec succès.
Performance
{performance}
Leçons apprises :
- • Le détachement émotionnel préserve votre énergie
- • Observer sans juger développe la conscience
- • Les pendulums se nourrissent de toute réaction intense
- • La neutralité bienveillante est votre meilleure stratégie
);
}
};
export default PendulumGame;