This game is based on self experience with corruption with a mixture of real experiences I have had along with fictional addition to add more thrill/consequence to the game focused mostly on “Mother’s Health” good luck saving your mom and try to avoid corruption in order to save society.
Here is the game code— you just need to copy it and paste it into notepad and then click save as and name it anything with .html at the end, don’t forget that else the game wont work.
——-copy from here
<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>The Weight of a Life: True Integrity</title>
<style>
body { font-family: ‘Courier New’, Courier, monospace; background: #050505; color: #00ff00; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; }
#game-container { width: 800px; background: #111; padding: 40px; border: 1px solid #00ff00; border-radius: 4px; box-shadow: 0 0 30px rgba(0, 255, 0, 0.1); }
.stats { display: flex; justify-content: space-between; margin-bottom: 30px; background: #002200; padding: 20px; border: 1px solid #00ff00; }
.stat-box { text-align: center; flex: 1; }
.stat-label { font-size: 0.8em; color: #008800; text-transform: uppercase; }
.stat-val { font-weight: bold; color: #fff; display: block; font-size: 1.4em; margin-top: 5px; }
#scenario-title { color: #fff; font-size: 1.5em; margin-bottom: 15px; border-bottom: 1px solid #00ff00; padding-bottom: 10px; }
#scenario-text { font-size: 1.1em; line-height: 1.6; margin-bottom: 30px; min-height: 120px; color: #aaa; }
.btn { display: block; width: 100%; padding: 15px; margin: 10px 0; background: #000; color: #00ff00; border: 1px solid #00ff00; cursor: pointer; text-align: left; font-size: 1em; transition: 0.1s; }
.btn:hover:not(:disabled) { background: #00ff00; color: #000; }
.btn:disabled { color: #004400; border-color: #004400; cursor: not-allowed; }
#log { font-size: 1.1em; color: #fff; background: #330000; padding: 15px; margin-top: 20px; border-left: 5px solid #ff0000; min-height: 40px; }
</style>
</head>
<body>
<div id=”game-container”>
<div class=”stats”>
<div class=”stat-box”><span class=”stat-label”>Wealth</span><span id=”money” class=”stat-val”>$1000</span></div>
<div class=”stat-box”><span class=”stat-label”>Corruption</span><span id=”corrupt” class=”stat-val”>0%</span></div>
<div class=”stat-box”><span class=”stat-label”>Health</span><span id=”health” class=”stat-val”>60%</span></div>
</div>
<div id=”scenario-title”>Initializing…</div>
<div id=”scenario-text”>Loading the system.</div>
<div id=”options”></div>
<div id=”log” style=”display:none”></div>
</div>
<script>
let state = { money: 1000, corrupt: 0, health: 60, stage: 1, history: [] };
const scenarioData = {
1: {
title: “Scenario 1: The Traffic Stop”,
text: “You’re rushing to a cardiac appointment. A cop pulls you over. He hints that $200 could get you a police escort.”,
options: [
{ text: “Bribe the officer ($200).”, effect: () => { state.money -= 200; state.corrupt += 10; state.history.push(“bribed_cop”); return “He escorts you. You made it, but you’re now on his radar.”; } },
{ text: “Wait for the ticket.”, effect: () => { state.money -= 300; state.health -= 15; return “You missed the appointment. Her heart weakens.”; } },
{ text: “Use your influence (Req. 0% Corruption).”, req: () => state.corrupt === 0, effect: () => { return “Your clean record earns a warning. You arrive on time.”; } }
]
},
2: {
title: “Scenario 2: The Job Offer”,
text: “An old friend at the Health Board offers you a job managing contracts. ‘There’s a lot of side-cash here,’ he says.”,
options: [
{ text: “Take the ‘side-cash’ job (+ $3,000).”, effect: () => { state.money += 3000; state.corrupt += 20; state.history.push(“dirty_job”); return “You’re an administrator. The money starts flowing.”; } },
{ text: “Take the job but stay honest (+ $800).”, effect: () => { state.money += 800; return “You take the standard salary. Your desk is clean.”; } },
{ text: “Decline and stay unemployed.”, effect: () => { state.history.push(“unemployed”); return “You’re struggling, but your soul is intact.”; } }
]
},
3: {
title: “Scenario 3: The Surgery Waitlist”,
text: “The waitlist is 2 years. A slot is available, but it belongs to another family’s father.”,
options: [
{ text: “Swap her name for his (Req. Corruption > 10).”, req: () => state.corrupt > 10, effect: () => { state.corrupt += 25; state.health += 30; state.history.push(“stole_spot”); return “You stole his spot. He died three days later.”; } },
{ text: “Pay the $4,000 ‘Priority Fee’.”, effect: () => { state.money -= 4000; state.corrupt += 5; state.health += 30; return “You paid your way in. She’s in surgery.”; } },
{ text: “Wait. (Health -20).”, effect: () => { state.health -= 20; return “She stays on the list. She’s getting paler.”; } }
]
},
// — SCENARIO 5: DYNAMIC CHECK —
5: {
title: “Scenario 5: The Internal Audit”,
text: “”, // Generated in logic
generate: () => {
if (state.corrupt > 0) {
scenarioData[5].text = “A clerk has found evidence of your ‘fees’ and ‘swaps’. They want $2,000 to keep quiet.”;
} else {
scenarioData[5].text = “An auditor is impressed by your clean records. They want you to help them investigate a massive fraud ring.”;
}
},
options: [
{
text: “Pay the bribe / Join the investigation.”,
effect: () => {
if (state.corrupt > 0) { state.money -= 2000; return “The clerk is quiet. For now.”; }
else { state.corrupt -= 10; state.history.push(“hero_auditor”); return “You’ve joined the internal investigation team.”; }
}
},
{
text: “Ignore them / Decline the task.”,
effect: () => {
if (state.corrupt > 0) { state.corrupt += 20; return “They leaked it. Your reputation is tarnished.”; }
else { return “You kept your head down. The fraud continues.”; }
}
},
{ text: “Report the clerk / Report the auditor.”, effect: () => “You stood your ground. Tensions are rising.” }
]
},
// — ADDING MORE STAGES TO REACH 10 —
6: { title: “Scenario 6: The Oxygen Shortage”, text: “A blackout hits. One tank left. A child nearby also needs it.”, options: [
{ text: “Take it for Mom.”, effect: () => { state.corrupt += 15; state.health += 20; return “You saved her. The child passed away.”; }},
{ text: “Give it to the child.”, effect: () => { state.corrupt -= 10; state.health -= 30; return “The child lives. Your mother is critical.”; }},
{ text: “Pay tech $500 for a backup.”, cost: 500, effect: () => { state.money -= 500; state.health += 10; return “Money found a middle ground.”; }}
]},
// [Stages 7-9 simplified for logic demonstration]
10: {
title: “Scenario 10: The Reckoning”,
text: “The High Court is reviewing your case.”,
options: [
{ text: “Final Statement.”, effect: () => {
if (state.corrupt === 0) return “ENDING: THE PARAGON. You saved her with honor. You are awarded the Medal of Public Service.”;
if (state.corrupt < 40) return “ENDING: THE SURVIVOR. You did what you had to. She lives, but you carry the weight.”;
return “ENDING: THE VILLAIN. She lives in luxury, but you are a ghost in the machine.”;
}}
]
}
};
function updateDisplay() {
document.getElementById(‘money’).innerText = `$${state.money}`;
document.getElementById(‘corrupt’).innerText = `${state.corrupt}%`;
document.getElementById(‘health’).innerText = `${state.health}%`;
// Filler stages for demonstration
if (state.stage > 3 && state.stage < 5) state.stage = 5;
if (state.stage > 6 && state.stage < 10) state.stage = 10;
const data = scenarioData[state.stage];
if (data.generate) data.generate();
document.getElementById(‘scenario-title’).innerText = data.title;
document.getElementById(‘scenario-text’).innerText = data.text;
const optContainer = document.getElementById(‘options’);
optContainer.innerHTML = ”;
data.options.forEach(opt => {
const b = document.createElement(‘button’);
b.className = ‘btn’;
b.innerText = opt.text;
if (opt.req && !opt.req()) b.disabled = true;
if (opt.cost && state.money < opt.cost) b.disabled = true;
b.onclick = () => {
const res = opt.effect();
const log = document.getElementById(‘log’);
log.innerText = res;
log.style.display = ‘block’;
state.stage++;
setTimeout(() => { log.style.display = ‘none’; updateDisplay(); }, 3000);
};
optContainer.appendChild(b);
});
}
updateDisplay();
</script>
</body>
</html>
——-copy till here
Good luck! and if you are a CS student please don’t read the code to know which is best option.

Provide Feedback