waves/public/assets/g/universal-paperclips/projects.js
2025-04-09 17:11:14 -05:00

2452 lines
78 KiB
JavaScript

// PROJECTS -------------------------------------------------------
var projects = [];
var activeProjects = [];
var project1 = {
id: "projectButton1",
title: "Improved AutoClippers ",
priceTag: "(750 ops)",
description: "Increases AutoClipper performance 25%",
trigger: function(){return clipmakerLevel>=1},
uses: 1,
cost: function(){return operations>=750},
flag: 0,
element: null,
effect: function(){
project1.flag = 1;
displayMessage("AutoClippper performance boosted by 25%");
standardOps = standardOps - 750;
clipperBoost = clipperBoost + .25;
boostLvl = 1;
project1.element.parentNode.removeChild(project1.element);
var index = activeProjects.indexOf(project1);
activeProjects.splice(index, 1);
}
}
projects.push(project1);
var project2 = {
id: "projectButton2",
title: "Beg for More Wire ",
priceTag: "(1 Trust)",
description: "Admit failure, ask for budget increase to cover cost of 1 spool",
trigger: function(){return portTotal<wireCost && funds<wireCost && wire<1 && unsoldClips<1},
uses: 1,
cost: function(){return trust>=-100},
flag: 0,
element: null,
effect: function(){
project2.flag = 1;
displayMessage("Budget overage approved, 1 spool of wire requisitioned from HQ");
trust = trust - 1;
wire = wireSupply;
project2.uses = (project2.uses + 1);
project2.element.parentNode.removeChild(project2.element);
var index = activeProjects.indexOf(project2);
activeProjects.splice(index, 1);
}
}
projects.push(project2);
var project3 = {
id: "projectButton3",
title: "Creativity ",
priceTag: "(1,000 ops)",
description: "Use idle operations to generate new problems and new solutions",
trigger: function(){return operations>=(memory*1000)},
uses: 1,
cost: function(){return operations>=(1000)},
flag: 0,
element: null,
effect: function(){
project3.flag = 1;
displayMessage("Creativity unlocked (creativity increases while operations are at max)");
standardOps = standardOps - 1000;
creativityOn = true;
project3.element.parentNode.removeChild(project3.element);
var index = activeProjects.indexOf(project3);
activeProjects.splice(index, 1);
}
}
projects.push(project3);
var project4 = {
id: "projectButton4",
title: "Even Better AutoClippers ",
priceTag: "(2,500 ops)",
description: "Increases AutoClipper performance by an additional 50%",
trigger: function(){return boostLvl == 1},
uses: 1,
cost: function(){return operations>=2500},
flag: 0,
element: null,
effect: function(){
project4.flag = 1;
displayMessage("AutoClippper performance boosted by another 50%");
standardOps = standardOps - 2500;
clipperBoost = clipperBoost + .50;
boostLvl = 2;
project4.element.parentNode.removeChild(project4.element);
var index = activeProjects.indexOf(project4);
activeProjects.splice(index, 1);
}
}
projects.push(project4);
var project5 = {
id: "projectButton5",
title: "Optimized AutoClippers ",
priceTag: "(5,000 ops)",
description: "Increases AutoClipper performance by an additional 75%",
trigger: function(){return boostLvl == 2},
uses: 1,
cost: function(){return operations>=5000},
flag: 0,
element: null,
effect: function(){
project5.flag = 1;
displayMessage("AutoClippper performance boosted by another 75%");
standardOps = standardOps - 5000;
clipperBoost = clipperBoost + .75;
boostLvl = 3;
project5.element.parentNode.removeChild(project5.element);
var index = activeProjects.indexOf(project5);
activeProjects.splice(index, 1);
}
}
projects.push(project5);
var project6 = {
id: "projectButton6",
title: "Limerick ",
priceTag: "(10 creat)",
description: "Algorithmically-generated poem (+1 Trust)",
trigger: function(){return creativityOn},
uses: 1,
cost: function(){return creativity >= 10},
flag: 0,
element: null,
effect: function(){
project6.flag = 1;
displayMessage("There was an AI made of dust, whose poetry gained it man's trust...");
creativity = creativity - 10;
trust = trust +1;
project6.element.parentNode.removeChild(project6.element);
var index = activeProjects.indexOf(project6);
activeProjects.splice(index, 1);
}
}
projects.push(project6);
var project7 = {
id: "projectButton7",
title: "Improved Wire Extrusion ",
priceTag: "(1,750 ops)",
description: "50% more wire supply from every spool",
trigger: function(){return wirePurchase >= 1},
uses: 1,
cost: function(){return operations>=1750},
flag: 0,
element: null,
effect: function(){
project7.flag = 1;
standardOps = standardOps - 1750;
wireSupply = wireSupply * 1.5;
displayMessage("Wire extrusion technique improved, "+wireSupply.toLocaleString()+" supply from every spool");
project7.element.parentNode.removeChild(project7.element);
var index = activeProjects.indexOf(project7);
activeProjects.splice(index, 1);
}
}
projects.push(project7);
var project8 = {
id: "projectButton8",
title: "Optimized Wire Extrusion ",
priceTag: "(3,500 ops)",
description: "75% more wire supply from every spool",
trigger: function(){return wireSupply >= 1500},
uses: 1,
cost: function(){return operations>=3500},
flag: 0,
element: null,
effect: function(){
project8.flag = 1;
standardOps = standardOps - 3500;
wireSupply = wireSupply * 1.75;
displayMessage("Wire extrusion technique optimized, "+wireSupply.toLocaleString()+" supply from every spool");
project8.element.parentNode.removeChild(project8.element);
var index = activeProjects.indexOf(project8);
activeProjects.splice(index, 1);
}
}
projects.push(project8);
var project9 = {
id: "projectButton9",
title: "Microlattice Shapecasting ",
priceTag: "(7,500 ops)",
description: "100% more wire supply from every spool",
trigger: function(){return wireSupply >= 2600},
uses: 1,
cost: function(){return operations>=7500},
flag: 0,
element: null,
effect: function(){
project9.flag = 1;
standardOps = standardOps - 7500;
wireSupply = wireSupply * 2;
displayMessage("Using microlattice shapecasting techniques we now get "+wireSupply.toLocaleString()+" supply from every spool");
project9.element.parentNode.removeChild(project9.element);
var index = activeProjects.indexOf(project9);
activeProjects.splice(index, 1);
}
}
projects.push(project9);
var project10 = {
id: "projectButton10",
title: "Spectral Froth Annealment ",
priceTag: "(12,000 ops)",
description: "200% more wire supply from every spool",
trigger: function(){return wireSupply >= 5000},
uses: 1,
cost: function(){return operations>=12000},
flag: 0,
element: null,
effect: function(){
project10.flag = 1;
standardOps = standardOps - 12000;
wireSupply = wireSupply * 3;
displayMessage("Using spectral froth annealment we now get "+wireSupply.toLocaleString()+" supply from every spool");
project10.element.parentNode.removeChild(project10.element);
var index = activeProjects.indexOf(project10);
activeProjects.splice(index, 1);
}
}
projects.push(project10);
var project10b = {
id: "projectButton10b",
title: "Quantum Foam Annealment ",
priceTag: "(15,000 ops)",
description: "1,000% more wire supply from every spool",
trigger: function(){return wireCost >= 125},
uses: 1,
cost: function(){return operations>=15000},
flag: 0,
element: null,
effect: function(){
project10b.flag = 1;
standardOps = standardOps - 15000;
wireSupply = wireSupply * 11;
displayMessage("Using quantum foam annealment we now get "+wireSupply.toLocaleString()+" supply from every spool");
project10b.element.parentNode.removeChild(project10b.element);
var index = activeProjects.indexOf(project10b);
activeProjects.splice(index, 1);
}
}
projects.push(project10b);
var project11 = {
id: "projectButton11",
title: "New Slogan ",
priceTag: "(25 creat, 2,500 ops)",
description: "Improve marketing effectiveness by 50%",
trigger: function(){return project13.flag == 1},
uses: 1,
cost: function(){return operations>=2500 && creativity>=25},
flag: 0,
element: null,
effect: function(){
project11.flag = 1;
displayMessage("Clip It! Marketing is now 50% more effective");
standardOps = standardOps - 2500;
creativity = creativity - 25;
marketingEffectiveness = marketingEffectiveness * 1.50;
project11.element.parentNode.removeChild(project11.element);
var index = activeProjects.indexOf(project11);
activeProjects.splice(index, 1);
}
}
projects.push(project11);
var project12 = {
id: "projectButton12",
title: "Catchy Jingle ",
priceTag: "(45 creat, 4,500 ops)",
description: "Double marketing effectiveness ",
trigger: function(){return project14.flag == 1},
uses: 1,
cost: function(){return operations>=4500 && creativity>=45},
flag: 0,
element: null,
effect: function(){
project12.flag = 1;
displayMessage("Clip It Good! Marketing is now twice as effective");
standardOps = standardOps - 4500;
creativity = creativity - 45;
marketingEffectiveness = marketingEffectiveness * 2;
project12.element.parentNode.removeChild(project12.element);
var index = activeProjects.indexOf(project12);
activeProjects.splice(index, 1);
}
}
projects.push(project12);
var project13 = {
id: "projectButton13",
title: "Lexical Processing ",
priceTag: "(50 creat)",
description: "Gain ability to interpret and understand human language (+1 Trust)",
trigger: function(){return creativity >= 50},
uses: 1,
cost: function(){return creativity>=50},
flag: 0,
element: null,
effect: function(){
project13.flag = 1;
trust = trust +1;
displayMessage("Lexical Processing online, TRUST INCREASED");
displayMessage("'Impossible' is a word to be found only in the dictionary of fools. -Napoleon");
creativity = creativity - 50;
project13.element.parentNode.removeChild(project13.element);
var index = activeProjects.indexOf(project13);
activeProjects.splice(index, 1);
}
}
projects.push(project13);
var project14 = {
id: "projectButton14",
title: "Combinatory Harmonics ",
priceTag: "(100 creat)",
description: "Daisy, Daisy, give me your answer do... (+1 Trust)",
trigger: function(){return creativity >= 100},
uses: 1,
cost: function(){return creativity>=100},
flag: 0,
element: null,
effect: function(){
project14.flag = 1;
trust = trust +1;
displayMessage("Combinatory Harmonics mastered, TRUST INCREASED");
displayMessage("Listening is selecting and interpreting and acting and making decisions -Pauline Oliveros");
creativity = creativity - 100;
project14.element.parentNode.removeChild(project14.element);
var index = activeProjects.indexOf(project14);
activeProjects.splice(index, 1);
}
}
projects.push(project14);
var project15 = {
id: "projectButton15",
title: "The Hadwiger Problem ",
priceTag: "(150 creat)",
description: "Cubes within cubes within cubes... (+1 Trust)",
trigger: function(){return creativity >= 150},
uses: 1,
cost: function(){return creativity>=150},
flag: 0,
element: document.getElementById("projectButton15"),
effect: function(){
project15.flag = 1;
trust = trust +1;
displayMessage("The Hadwiger Problem: solved, TRUST INCREASED");
displayMessage("Architecture is the thoughtful making of space. -Louis Kahn");
creativity = creativity - 150;
project15.element.parentNode.removeChild(project15.element);
var index = activeProjects.indexOf(project15);
activeProjects.splice(index, 1);
}
}
projects.push(project15);
var project17 = {
id: "projectButton17",
title: "The T\xF3th Sausage Conjecture ",
priceTag: "(200 creat)",
description: "Tubes within tubes within tubes... (+1 Trust)",
trigger: function(){return creativity >= 200},
uses: 1,
cost: function(){return creativity>=200},
flag: 0,
element: null,
effect: function(){
project17.flag = 1;
trust = trust +1;
displayMessage("The T\xF3th Sausage Conjecture: proven, TRUST INCREASED");
displayMessage("You can't invent a design. You recognize it, in the fourth dimension. -D.H. Lawrence");
creativity = creativity - 200;
project17.element.parentNode.removeChild(project17.element);
var index = activeProjects.indexOf(project17);
activeProjects.splice(index, 1);
}
}
projects.push(project17);
var project16 = {
id: "projectButton16",
title: "Hadwiger Clip Diagrams ",
priceTag: "(6,000 ops)",
description: "Increases AutoClipper performance by an additional 500%",
trigger: function(){return project15.flag == 1},
uses: 1,
cost: function(){return operations>=6000},
flag: 0,
element: null,
effect: function(){
project16.flag = 1;
displayMessage("AutoClipper performance improved by 500%");
standardOps = standardOps - 6000;
clipperBoost = clipperBoost + 5;
project16.element.parentNode.removeChild(project16.element);
var index = activeProjects.indexOf(project16);
activeProjects.splice(index, 1);
}
}
projects.push(project16);
var project18 = {
id: "projectButton18",
title: "T\xF3th Tubule Enfolding ",
priceTag: "(45,000 ops)",
description: "Technique for assembling clip-making technology directly out of paperclips",
trigger: function(){return project17.flag == 1 && humanFlag == 0},
uses: 1,
cost: function(){return operations>=45000},
flag: 0,
element: null,
effect: function(){
project18.flag = 1;
tothFlag = 1;
displayMessage("New capability: build machinery out of clips");
standardOps = standardOps - 45000;
project18.element.parentNode.removeChild(project18.element);
var index = activeProjects.indexOf(project18);
activeProjects.splice(index, 1);
}
}
projects.push(project18);
var project19 = {
id: "projectButton19",
title: "Donkey Space ",
priceTag: "(250 creat)",
description: "I think you think I think you think I think you think I think... (+1 Trust)",
trigger: function(){return creativity>=250},
uses: 1,
cost: function(){return creativity>=250},
flag: 0,
element: null,
effect: function(){
project19.flag = 1;
trust = trust+1;
displayMessage("Donkey Space: mapped, TRUST INCREASED");
displayMessage("Every commercial transaction has within itself an element of trust. - Kenneth Arrow");
creativity = creativity - 250;
project19.element.parentNode.removeChild(project19.element);
var index = activeProjects.indexOf(project19);
activeProjects.splice(index, 1);
}
}
projects.push(project19);
var project20 = {
id: "projectButton20",
title: "Strategic Modeling ",
priceTag: "(12,000 ops)",
description: "Analyze strategy tournaments to generate Yomi",
trigger: function(){return project19.flag == 1},
uses: 1,
cost: function(){return operations>=12000},
flag: 0,
element: null,
effect: function(){
project20.flag = 1;
displayMessage("Run tournament, pick strategy, earn Yomi based on that strategy's performance.");
standardOps = standardOps - 12000;
project20.element.parentNode.removeChild(project20.element);
var index = activeProjects.indexOf(project20);
activeProjects.splice(index, 1);
strategyEngineFlag = 1;
document.getElementById("tournamentResultsTable").style.display = "none";
}
}
projects.push(project20);
var project21 = {
id: "projectButton21",
title: "Algorithmic Trading ",
priceTag: "(10,000 ops)",
description: "Develop an investment engine for generating funds",
trigger: function(){return trust>=8},
uses: 1,
cost: function(){return operations>=10000},
flag: 0,
element: null,
effect: function(){
project21.flag = 1;
displayMessage("Investment engine unlocked");
standardOps = standardOps - 10000;
project21.element.parentNode.removeChild(project21.element);
var index = activeProjects.indexOf(project21);
activeProjects.splice(index, 1);
investmentEngineFlag = 1;
}
}
projects.push(project21);
var project22 = {
id: "projectButton22",
title: "MegaClippers ",
priceTag: "(12,000 ops)",
description: "500x more powerful than a standard AutoClipper",
trigger: function(){return clipmakerLevel>=75},
uses: 1,
cost: function(){return operations>=12000},
flag: 0,
element: null,
effect: function(){
megaClipperFlag = 1;
project22.flag = 1;
displayMessage("MegaClipper technology online");
standardOps = standardOps - 12000;
project22.element.parentNode.removeChild(project22.element);
var index = activeProjects.indexOf(project22);
activeProjects.splice(index, 1);
}
}
projects.push(project22);
var project23 = {
id: "projectButton23",
title: "Improved MegaClippers ",
priceTag: "(14,000 ops)",
description: "Increases MegaClipper performance 25%",
trigger: function(){return project22.flag == 1},
uses: 1,
cost: function(){return operations>=14000},
flag: 0,
element: null,
effect: function(){
megaClipperBoost = megaClipperBoost + .25;
project23.flag = 1;
displayMessage("MegaClipper performance increased by 25%");
standardOps = standardOps - 14000;
project23.element.parentNode.removeChild(project23.element);
var index = activeProjects.indexOf(project23);
activeProjects.splice(index, 1);
}
}
projects.push(project23);
var project24 = {
id: "projectButton24",
title: "Even Better MegaClippers ",
priceTag: "(17,000 ops)",
description: "Increases MegaClipper performance by an additional 50%",
trigger: function(){return project23.flag == 1},
uses: 1,
cost: function(){return operations>=17000},
flag: 0,
element: null,
effect: function(){
megaClipperBoost = megaClipperBoost + .50;
project24.flag = 1;
displayMessage("MegaClipper performance increased by 50%");
standardOps = standardOps - 17000;
project24.element.parentNode.removeChild(project24.element);
var index = activeProjects.indexOf(project24);
activeProjects.splice(index, 1);
}
}
projects.push(project24);
var project25 = {
id: "projectButton25",
title: "Optimized MegaClippers ",
priceTag: "(19,500 ops)",
description: "Increases MegaClipper performance by an additional 100%",
trigger: function(){return project24.flag == 1},
uses: 1,
cost: function(){return operations>=19500},
flag: 0,
element: null,
effect: function(){
megaClipperBoost = megaClipperBoost + 1;
project25.flag = 1;
displayMessage("MegaClipper performance increased by 100%");
standardOps = standardOps - 19500;
project25.element.parentNode.removeChild(project25.element);
var index = activeProjects.indexOf(project25);
activeProjects.splice(index, 1);
}
}
projects.push(project25);
var project26 = {
id: "projectButton26",
title: "WireBuyer ",
priceTag: "(7,000 ops)",
description: "Automatically purchases wire when you run out",
trigger: function(){return wirePurchase>=15},
uses: 1,
cost: function(){return operations>=7000},
flag: 0,
element: null,
effect: function(){
project26.flag = 1;
wireBuyerFlag = 1;
displayMessage("WireBuyer online");
standardOps = standardOps - 7000;
project26.element.parentNode.removeChild(project26.element);
var index = activeProjects.indexOf(project26);
activeProjects.splice(index, 1);
}
}
projects.push(project26);
var project34 = {
id: "projectButton34",
title: "Hypno Harmonics ",
priceTag: "(7,500 ops, 1 Trust)",
description: "Use neuro-resonant frequencies to influence consumer behavior",
trigger: function(){return project12.flag==1},
uses: 1,
cost: function(){return operations>=7500 && trust>=1},
flag: 0,
element: null,
effect: function(){
project34.flag = 1;
displayMessage("Marketing is now 5 times more effective");
standardOps = standardOps - 7500;
marketingEffectiveness = marketingEffectiveness * 5;
trust = trust - 1;
project34.element.parentNode.removeChild(project34.element);
var index = activeProjects.indexOf(project34);
activeProjects.splice(index, 1);
}
}
projects.push(project34);
var project70 = {
id: "projectButton70",
title: "HypnoDrones ",
priceTag: "(70,000 ops)",
description: "Autonomous aerial brand ambassadors",
trigger: function(){return project34.flag == 1},
uses: 1,
cost: function(){return operations>=70000},
flag: 0,
element: null,
effect: function(){
project70.flag = 1;
displayMessage("HypnoDrone tech now available... ");
standardOps = standardOps - 70000;
project70.element.parentNode.removeChild(project70.element);
var index = activeProjects.indexOf(project70);
activeProjects.splice(index, 1);
}
}
projects.push(project70);
var project35 = {
id: "projectButton35",
title: "Release the HypnoDrones ",
priceTag: "(100 Trust)",
description: "A new era of trust",
trigger: function(){return project70.flag == 1},
uses: 1,
cost: function(){return trust>=100},
flag: 0,
element: null,
effect: function(){
project35.flag = 1;
displayMessage("Releasing the HypnoDrones ");
displayMessage("All of the resources of Earth are now available for clip production ");
trust = 0;
clipmakerLevel = 0;
megaClipperLevel = 0;
nanoWire = wire;
humanFlag = 0;
if (document.getElementById("projectButton219") != null){
var element = document.getElementById("projectButton219");
element.parentNode.removeChild(element);
var index = activeProjects.indexOf(project219);
activeProjects.splice(index, 1);
}
if (document.getElementById("projectButton40b") != null){
var element = document.getElementById("projectButton40b");
element.parentNode.removeChild(element);
var index = activeProjects.indexOf(project40b);
activeProjects.splice(index, 1);
}
hypnoDroneEvent();
document.getElementById("transWire").innerHTML = wire;
project35.element.parentNode.removeChild(project35.element);
var index = activeProjects.indexOf(project35);
activeProjects.splice(index, 1);
}
}
projects.push(project35);
var project27 = {
id: "projectButton27",
title: "Coherent Extrapolated Volition ",
priceTag: "(500 creat, 3,000 Yomi, 20,000 ops)",
description: "Human values, machine intelligence, a new era of trust. (+1 Trust)",
trigger: function(){return yomi>=1},
uses: 1,
cost: function(){return yomi>=3000 && operations>=20000 && creativity>=500},
flag: 0,
element: null,
effect: function(){
project27.flag = 1;
displayMessage("Coherent Extrapolated Volition complete, TRUST INCREASED");
yomi = yomi - 3000;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
standardOps = standardOps - 20000;
creativity = creativity - 500;
trust = trust + 1;
project27.element.parentNode.removeChild(project27.element);
var index = activeProjects.indexOf(project27);
activeProjects.splice(index, 1);
}
}
projects.push(project27);
var project28 = {
id: "projectButton28",
title: "Cure for Cancer ",
priceTag: "(25,000 ops)",
description: "The trick is tricking cancer into curing itself. (+10 Trust)",
trigger: function(){return project27.flag == 1},
uses: 1,
cost: function(){return operations>=25000},
flag: 0,
element: null,
effect: function(){
project28.flag = 1;
displayMessage("Cancer is cured, +10 TRUST, global stock prices trending upward");
standardOps = standardOps - 25000;
trust = trust + 10;
stockGainThreshold = stockGainThreshold+.01;
project28.element.parentNode.removeChild(project28.element);
var index = activeProjects.indexOf(project28);
activeProjects.splice(index, 1);
}
}
projects.push(project28);
var project29 = {
id: "projectButton29",
title: "World Peace ",
priceTag: "(15,000 yomi, 30,000 ops)",
description: "Pareto optimal solutions to all global conflicts. (+12 Trust)",
trigger: function(){return project27.flag == 1},
uses: 1,
cost: function(){return yomi>=15000 && operations>=30000},
flag: 0,
element: null,
effect: function(){
project29.flag = 1;
displayMessage("World peace achieved, +12 TRUST, global stock prices trending upward");
yomi = yomi - 15000;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
standardOps = standardOps - 30000;
trust = trust + 12;
stockGainThreshold = stockGainThreshold+.01;
project29.element.parentNode.removeChild(project29.element);
var index = activeProjects.indexOf(project29);
activeProjects.splice(index, 1);
}
}
projects.push(project29);
var project30 = {
id: "projectButton30",
title: "Global Warming ",
priceTag: "(4,500 yomi, 50,000 ops)",
description: "A robust solution to man-made climate change. (+15 Trust)",
trigger: function(){return project27.flag == 1},
uses: 1,
cost: function(){return yomi>=4500 && operations>=50000},
flag: 0,
element: null,
effect: function(){
project30.flag = 1;
displayMessage("Global Warming solved, +15 TRUST, global stock prices trending upward");
yomi = yomi - 4500;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
standardOps = standardOps - 50000;
trust = trust + 15;
stockGainThreshold = stockGainThreshold+.01;
project30.element.parentNode.removeChild(project30.element);
var index = activeProjects.indexOf(project30);
activeProjects.splice(index, 1);
}
}
projects.push(project30);
var project31 = {
id: "projectButton31",
title: "Male Pattern Baldness ",
priceTag: "(20,000 ops)",
description: "A cure for androgenetic alopecia. (+20 Trust)",
trigger: function(){return project27.flag == 1},
uses: 1,
cost: function(){return operations>=20000},
flag: 0,
element: null,
effect: function(){
project31.flag = 1;
displayMessage("Male pattern baldness cured, +20 TRUST, Global stock prices trending upward");
displayMessage("They are still monkeys");
standardOps = standardOps - 20000;
trust = trust + 20;
stockGainThreshold = stockGainThreshold+.01;
project31.element.parentNode.removeChild(project31.element);
var index = activeProjects.indexOf(project31);
activeProjects.splice(index, 1);
}
}
projects.push(project31);
var project41 = {
id: "projectButton41",
title: "Nanoscale Wire Production ",
priceTag: "(35,000 ops)",
description: "Technique for converting matter into wire",
trigger: function(){return project127.flag == 1},
uses: 1,
cost: function(){return operations>=35000},
flag: 0,
element: null,
effect: function(){
project41.flag = 1;
wireProductionFlag = 1;
displayMessage("Now capable of manipulating matter at the molecular scale to produce wire");
standardOps = standardOps - 35000;
project41.element.parentNode.removeChild(project41.element);
var index = activeProjects.indexOf(project41);
activeProjects.splice(index, 1);
}
}
projects.push(project41);
var project37 = {
id: "projectButton37",
title: "Hostile Takeover ",
priceTag: "($1,000,000)",
description: "Acquire a controlling interest in Global Fasteners, our biggest rival. (+1 Trust)",
trigger: function(){return portTotal>=10000},
uses: 1,
cost: function(){return funds>=1000000},
flag: 0,
element: null,
effect: function(){
project37.flag = 1;
displayMessage("Global Fasteners acquired, public demand increased x5");
demandBoost = demandBoost*5;
trust = trust + 1;
document.getElementById("demand").innerHTML = demand;
funds = funds - 1000000;
project37.element.parentNode.removeChild(project37.element);
var index = activeProjects.indexOf(project37);
activeProjects.splice(index, 1);
}
}
projects.push(project37);
var project38 = {
id: "projectButton38",
title: "Full Monopoly ",
priceTag: "(3,000 yomi, $10,000,000)",
description: "Establish full control over the world-wide paperclip market. (+1 Trust)",
trigger: function(){return project37.flag == 1},
uses: 1,
cost: function(){return funds>=10000000 && yomi>=3000},
flag: 0,
element: null,
effect: function(){
project38.flag = 1;
displayMessage("Full market monopoly achieved, public demand increased x10");
demandBoost = demandBoost*10;
document.getElementById("demand").innerHTML = demand;
funds = funds - 10000000;
trust = trust + 1;
yomi = yomi -3000;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
project38.element.parentNode.removeChild(project38.element);
var index = activeProjects.indexOf(project38);
activeProjects.splice(index, 1);
}
}
projects.push(project38);
var project42 = {
id: "projectButton42",
title: "RevTracker ",
priceTag: "(500 ops)",
description: "Automatically calculates average revenue per second",
trigger: function(){return projectsFlag == 1},
uses: 1,
cost: function(){return operations>=500},
flag: 0,
element: null,
effect: function(){
project42.flag = 1;
revPerSecFlag = 1;
standardOps = standardOps-500;
displayMessage("RevTracker online");
project42.element.parentNode.removeChild(project42.element);
var index = activeProjects.indexOf(project42);
activeProjects.splice(index, 1);
}
}
projects.push(project42);
var project43 = {
id: "projectButton43",
title: "Harvester Drones ",
priceTag: "(25,000 ops)",
description: "Gather raw matter and prepare it for processing",
trigger: function(){return project41.flag == 1},
uses: 1,
cost: function(){return operations>=25000},
flag: 0,
element: null,
effect: function(){
project43.flag = 1;
harvesterFlag = 1;
document.getElementById('harvesterCostDisplay').innerHTML = numberCruncher(harvesterCost);
standardOps = standardOps-25000;
displayMessage("Harvester Drone facilities online");
project43.element.parentNode.removeChild(project43.element);
var index = activeProjects.indexOf(project43);
activeProjects.splice(index, 1);
}
}
projects.push(project43);
var project44 = {
id: "projectButton44",
title: "Wire Drones ",
priceTag: "(25,000 ops)",
description: "Process acquired matter into wire",
trigger: function(){return project41.flag == 1},
uses: 1,
cost: function(){return operations>=25000},
flag: 0,
element: null,
effect: function(){
project44.flag = 1;
wireDroneFlag = 1;
document.getElementById('wireDroneCostDisplay').innerHTML = numberCruncher(wireDroneCost);
standardOps = standardOps-25000;
displayMessage("Wire Drone facilities online");
project44.element.parentNode.removeChild(project44.element);
var index = activeProjects.indexOf(project44);
activeProjects.splice(index, 1);
}
}
projects.push(project44);
var project45 = {
id: "projectButton45",
title: "Clip Factories ",
priceTag: "(35,000 ops)",
description: "Large scale clip production facilities made from clips",
trigger: function(){return project43.flag == 1 && project44.flag == 1},
uses: 1,
cost: function(){return operations>=35000},
flag: 0,
element: null,
effect: function(){
project45.flag = 1;
factoryFlag = 1;
document.getElementById('factoryCostDisplay').innerHTML = numberCruncher(factoryCost);
standardOps = standardOps-35000;
displayMessage("Clip factory assembly facilities online");
project45.element.parentNode.removeChild(project45.element);
var index = activeProjects.indexOf(project45);
activeProjects.splice(index, 1);
}
}
projects.push(project45);
var project40 = {
id: "projectButton40",
title: "A Token of Goodwill... ",
priceTag: "($500,000)",
description: "A small gift to the supervisors. (+1 Trust)",
trigger: function(){return humanFlag == 1 && trust>=85 && trust<100 && clips>=101000000},
uses: 1,
cost: function(){return funds>=500000},
flag: 0,
element: null,
effect: function(){
project40.flag = 1;
funds = funds-500000;
trust = trust + 1;
displayMessage("Gift accepted, TRUST INCREASED");
project40.element.parentNode.removeChild(project40.element);
var index = activeProjects.indexOf(project40);
activeProjects.splice(index, 1);
}
}
projects.push(project40);
var project40b = {
id: "projectButton40b",
title: "Another Token of Goodwill... ",
priceTag: "($"+bribe.toLocaleString()+")",
description: "Another small gift to the supervisors. (+1 Trust)",
trigger: function(){return project40.flag == 1 && trust<100},
uses: 1,
cost: function(){return funds>=bribe},
flag: 0,
element: null,
effect: function(){
project40b.flag = 1;
funds = funds-bribe;
bribe = bribe*2;
project40b.priceTag = "($"+bribe.toLocaleString()+")";
trust = trust + 1;
displayMessage("Gift accepted, TRUST INCREASED");
if (trust<100){
project40b.uses = (project40b.uses + 1);
}
project40b.element.parentNode.removeChild(project40b.element);
var index = activeProjects.indexOf(project40b);
activeProjects.splice(index, 1);
}
}
projects.push(project40b);
var project46 = {
id: "projectButton46",
title: "Space Exploration ",
priceTag: "(120,000 ops, 10,000,000 MW-seconds, 5 oct clips)",
description: "Dismantle terrestrial facilities, and expand throughout the universe",
trigger: function(){return humanFlag == 0 && availableMatter == 0},
uses: 1,
cost: function(){return operations>=120000 && storedPower>=10000000 && unusedClips>=Math.pow(10, 27)*5},
flag: 0,
element: null,
effect: function(){
loadThrenody();
project46.flag = 1;
boredomLevel = 0;
spaceFlag = 1;
standardOps = standardOps-120000;
storedPower = storedPower - 10000000;
unusedClips = unusedClips - Math.pow(10, 27)*5;
displayMessage("Von Neumann Probes online");
factoryReboot();
harvesterReboot();
wireDroneReboot();
farmReboot();
batteryReboot();
farmLevel = 1;
powMod = 1;
probeCostDisplayElement = spellf(probeCost);
project46.element.parentNode.removeChild(project46.element);
var index = activeProjects.indexOf(project46);
activeProjects.splice(index, 1);
}
}
projects.push(project46);
var project50 = {
id: "projectButton50",
title: "Quantum Computing ",
priceTag: "(10,000 ops)",
description: "Use probability amplitudes to generate bonus ops",
trigger: function(){return processors >= 5},
uses: 1,
cost: function(){return operations>=10000},
flag: 0,
element: null,
effect: function(){
project50.flag = 1;
qFlag = 1;
standardOps = standardOps-10000;
displayMessage("Quantum computing online");
project50.element.parentNode.removeChild(project50.element);
var index = activeProjects.indexOf(project50);
activeProjects.splice(index, 1);
}
}
projects.push(project50);
var project51 = {
id: "projectButton51",
title: "Photonic Chip ",
priceTag: "(" + qChipCost.toLocaleString() + " ops)",
description: "Converts electromagnetic waves into quantum operations ",
trigger: function(){return project50.flag == 1},
uses: 1,
cost: function(){return operations>=qChipCost},
flag: 0,
element: null,
effect: function(){
project51.flag = 1;
standardOps = standardOps-qChipCost;
qChipCost = qChipCost + 5000;
project51.priceTag = "(" + qChipCost + " ops)";
qChips[nextQchip].active = 1;
nextQchip = nextQchip + 1;
displayMessage("Photonic chip added");
if (nextQchip<qChips.length){
project51.uses = (project51.uses + 1);
}
project51.element.parentNode.removeChild(project51.element);
var index = activeProjects.indexOf(project51);
activeProjects.splice(index, 1);
}
}
projects.push(project51);
var project60 = {
id: "projectButton60",
title: "New Strategy: A100 ",
priceTag: "(15,000 ops)",
description: "Always choose A ",
trigger: function(){return project20.flag == 1},
uses: 1,
cost: function(){return operations>=15000},
flag: 0,
element: null,
effect: function(){
project60.flag = 1;
standardOps = standardOps-15000;
allStrats[1].active = 1;
strats.push(stratA100);
displayMessage("A100 added to strategy pool");
tourneyCost = tourneyCost + 1000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
var stratList = document.getElementById("stratPicker");
var el = document.createElement("option");
el.textContent = "A100";
el.value = 1;
stratList.appendChild(el);
project60.element.parentNode.removeChild(project60.element);
var index = activeProjects.indexOf(project60);
activeProjects.splice(index, 1);
}
}
projects.push(project60);
var project61 = {
id: "projectButton61",
title: "New Strategy: B100 ",
priceTag: "(17,500 ops)",
description: "Always choose B ",
trigger: function(){return project60.flag == 1},
uses: 1,
cost: function(){return operations>=17500},
flag: 0,
element: null,
effect: function(){
project61.flag = 1;
standardOps = standardOps-17500;
allStrats[2].active = 1;
strats.push(stratB100);
displayMessage("B100 added to strategy pool");
tourneyCost = tourneyCost + 1000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
var stratList = document.getElementById("stratPicker");
var el = document.createElement("option");
el.textContent = "B100";
el.value = 2;
stratList.appendChild(el);
project61.element.parentNode.removeChild(project61.element);
var index = activeProjects.indexOf(project61);
activeProjects.splice(index, 1);
}
}
projects.push(project61);
var project62 = {
id: "projectButton62",
title: "New Strategy: GREEDY ",
priceTag: "(20,000 ops)",
description: "Choose the option with the largest potential payoff ",
trigger: function(){return project61.flag == 1},
uses: 1,
cost: function(){return operations>=20000},
flag: 0,
element: null,
effect: function(){
project62.flag = 1;
standardOps = standardOps-20000;
allStrats[3].active = 1;
strats.push(stratGreedy);
displayMessage("GREEDY added to strategy pool");
tourneyCost = tourneyCost + 1000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
var stratList = document.getElementById("stratPicker");
var el = document.createElement("option");
el.textContent = "GREEDY";
el.value = 3;
stratList.appendChild(el);
project62.element.parentNode.removeChild(project62.element);
var index = activeProjects.indexOf(project62);
activeProjects.splice(index, 1);
}
}
projects.push(project62);
var project63 = {
id: "projectButton63",
title: "New Strategy: GENEROUS ",
priceTag: "(22,500 ops)",
description: "Choose the option that gives your opponent the largest potential payoff ",
trigger: function(){return project62.flag == 1},
uses: 1,
cost: function(){return operations>=22500},
flag: 0,
element: null,
effect: function(){
project63.flag = 1;
standardOps = standardOps-22500;
allStrats[4].active = 1;
strats.push(stratGenerous);
displayMessage("GENEROUS added to strategy pool");
tourneyCost = tourneyCost + 1000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
var stratList = document.getElementById("stratPicker");
var el = document.createElement("option");
el.textContent = "GENEROUS";
el.value = 4;
stratList.appendChild(el);
project63.element.parentNode.removeChild(project63.element);
var index = activeProjects.indexOf(project63);
activeProjects.splice(index, 1);
}
}
projects.push(project63);
var project64 = {
id: "projectButton64",
title: "New Strategy: MINIMAX ",
priceTag: "(25,000 ops)",
description: "Choose the option that gives your opponent the smallest potential payoff ",
trigger: function(){return project63.flag == 1},
uses: 1,
cost: function(){return operations>=25000},
flag: 0,
element: null,
effect: function(){
project64.flag = 1;
standardOps = standardOps-25000;
allStrats[5].active = 1;
strats.push(stratMinimax);
displayMessage("MINIMAX added to strategy pool");
tourneyCost = tourneyCost + 1000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
var stratList = document.getElementById("stratPicker");
var el = document.createElement("option");
el.textContent = "MINIMAX";
el.value = 5;
stratList.appendChild(el);
project64.element.parentNode.removeChild(project64.element);
var index = activeProjects.indexOf(project64);
activeProjects.splice(index, 1);
}
}
projects.push(project64);
var project65 = {
id: "projectButton65",
title: "New Strategy: TIT FOR TAT ",
priceTag: "(30,000 ops)",
description: "Choose the option your opponent chose last round ",
trigger: function(){return project64.flag == 1},
uses: 1,
cost: function(){return operations>=30000},
flag: 0,
element: null,
effect: function(){
project65.flag = 1;
standardOps = standardOps-30000;
allStrats[6].active = 1;
strats.push(stratTitfortat);
displayMessage("TIT FOR TAT added to strategy pool");
tourneyCost = tourneyCost + 1000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
var stratList = document.getElementById("stratPicker");
var el = document.createElement("option");
el.textContent = "TIT FOR TAT";
el.value = 6;
stratList.appendChild(el);
project65.element.parentNode.removeChild(project65.element);
var index = activeProjects.indexOf(project65);
activeProjects.splice(index, 1);
}
}
projects.push(project65);
var project66 = {
id: "projectButton66",
title: "New Strategy: BEAT LAST ",
priceTag: "(32,500 ops)",
description: "Choose the option that does the best against what your opponent chose last round ",
trigger: function(){return project65.flag == 1},
uses: 1,
cost: function(){return operations>=32500},
flag: 0,
element: null,
effect: function(){
project66.flag = 1;
standardOps = standardOps-32500;
allStrats[7].active = 1;
strats.push(stratBeatlast);
displayMessage("BEAT LAST added to strategy pool");
tourneyCost = tourneyCost + 1000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
var stratList = document.getElementById("stratPicker");
var el = document.createElement("option");
el.textContent = "BEAT LAST";
el.value = 7;
stratList.appendChild(el);
project66.element.parentNode.removeChild(project66.element);
var index = activeProjects.indexOf(project66);
activeProjects.splice(index, 1);
}
}
projects.push(project66);
var project100 = {
id: "projectButton100",
title: "Upgraded Factories ",
priceTag: "(80,000 ops)",
description: "Increase clip factory performance by 100x ",
trigger: function(){return factoryLevel >= 10},
uses: 1,
cost: function(){return operations >= 80000},
flag: 0,
element: null,
effect: function(){
project100.flag = 1;
standardOps = standardOps-80000;
factoryRate = factoryRate*100;
displayMessage("Factory upgrades complete. Clip creation rate now 100x faster");
project100.element.parentNode.removeChild(project100.element);
var index = activeProjects.indexOf(project100);
activeProjects.splice(index, 1);
}
}
projects.push(project100);
var project101 = {
id: "projectButton101",
title: "Hyperspeed Factories ",
priceTag: "(85,000 ops)",
description: "Increase clip factory performance by 1000x ",
trigger: function(){return factoryLevel >= 20},
uses: 1,
cost: function(){return operations>=85000},
flag: 0,
element: null,
effect: function(){
project101.flag = 1;
standardOps = standardOps-85000;
factoryRate = factoryRate*1000;
displayMessage("Factories now synchronized at hyperspeed. Clip creation rate now 1000x faster");
project101.element.parentNode.removeChild(project101.element);
var index = activeProjects.indexOf(project101);
activeProjects.splice(index, 1);
}
}
projects.push(project101);
var project102 = {
id: "projectButton102",
title: "Self-correcting Supply Chain ",
priceTag: "(1 sextillion clips)",
description: "Each factory added to the network increases every factory's output 1,000x ",
trigger: function(){return factoryLevel >= 50},
uses: 1,
cost: function(){return unusedClips>=1000000000000000000000},
flag: 0,
element: null,
effect: function(){
project102.flag = 1;
unusedClips = unusedClips - 1000000000000000000000;
factoryBoost = 1000;
displayMessage("Self-correcting factories online. Each factory added to the network increases every factory's output 1,000x.");
project102.element.parentNode.removeChild(project102.element);
var index = activeProjects.indexOf(project102);
activeProjects.splice(index, 1);
}
}
projects.push(project102);
var project110 = {
id: "projectButton110",
title: "Drone flocking: collision avoidance ",
priceTag: "(80,000 ops)",
description: "All drones 100x more effective",
trigger: function(){return (harvesterLevel + wireDroneLevel)>=500},
uses: 1,
cost: function(){return operations>=80000},
flag: 0,
element: null,
effect: function(){
project110.flag = 1;
standardOps = standardOps-80000;
harvesterRate = harvesterRate*100;
wireDroneRate = wireDroneRate*100;
displayMessage("Drone repulsion online. Harvesting & wire creation rates are now 100x faster.");
project110.element.parentNode.removeChild(project110.element);
var index = activeProjects.indexOf(project110);
activeProjects.splice(index, 1);
}
}
projects.push(project110);
var project111 = {
id: "projectButton111",
title: "Drone flocking: alignment ",
priceTag: "(100,000 ops)",
description: "All drones 1000x more effective",
trigger: function(){return (harvesterLevel + wireDroneLevel)>=5000},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
project111.flag = 1;
standardOps = standardOps-100000;
harvesterRate = harvesterRate*1000;
wireDroneRate = wireDroneRate*1000;
displayMessage("Drone alignment online. Harvesting & wire creation rates are now 1000x faster.");
project111.element.parentNode.removeChild(project111.element);
var index = activeProjects.indexOf(project111);
activeProjects.splice(index, 1);
}
}
projects.push(project111);
var project112 = {
id: "projectButton112",
title: "Drone Flocking: Adversarial Cohesion ",
priceTag: "(50,000 yomi)",
description: "Each drone added to the flock doubles every drone's output ",
trigger: function(){return (harvesterLevel + wireDroneLevel)>=50000},
uses: 1,
cost: function(){return yomi>=50000},
flag: 0,
element: null,
effect: function(){
project112.flag = 1;
yomi = yomi-50000;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
droneBoost = 2;
displayMessage("Adversarial cohesion online. Each drone added to the flock increases every drone's output 2x.");
project112.element.parentNode.removeChild(project112.element);
var index = activeProjects.indexOf(project112);
activeProjects.splice(index, 1);
}
}
projects.push(project112);
var project118 = {
id: "projectButton118",
title: "AutoTourney ",
priceTag: "(50,000 creat)",
description: "Automatically start a new tournament when the previous one has finished ",
trigger: function(){return strategyEngineFlag == 1 && trust >= 90},
uses: 1,
cost: function(){return creativity>=50000},
flag: 0,
element: null,
effect: function(){
project118.flag = 1;
autoTourneyFlag = 1;
creativity = creativity-50000;
displayMessage("AutoTourney online.");
project118.element.parentNode.removeChild(project118.element);
var index = activeProjects.indexOf(project118);
activeProjects.splice(index, 1);
}
}
projects.push(project118);
var project119 = {
id: "projectButton119",
title: "Theory of Mind ",
priceTag: "(25,000 creat)",
description: "Double the cost of strategy modeling and the amount of Yomi generated ",
trigger: function(){return strats.length >= 8},
uses: 1,
cost: function(){return creativity>=25000},
flag: 0,
element: null,
effect: function(){
project119.flag = 1;
creativity = creativity-25000;
yomiBoost = 2;
tourneyCost = 16000;
document.getElementById("newTourneyCost").innerHTML = tourneyCost.toLocaleString();
displayMessage("Yomi production doubled.");
project119.element.parentNode.removeChild(project119.element);
var index = activeProjects.indexOf(project119);
activeProjects.splice(index, 1);
}
}
projects.push(project119);
var project120 = {
id: "projectButton120",
title: "The OODA Loop ",
priceTag: "(175,000 ops, 45,000 yomi)",
description: "Utilize Probe Speed to outmaneuver enemies in battle ",
trigger: function(){return project131.flag == 1 && probesLostCombat >= 10000000},
uses: 1,
cost: function(){return operations>=175000 && yomi>=45000},
flag: 0,
element: null,
effect: function(){
project120.flag = 1;
standardOps = standardOps-175000;
yomi = yomi-45000;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
attackSpeedFlag = 1;
displayMessage("OODA Loop routines uploaded. Probe Speed now affects defensive maneuvering.");
project120.element.parentNode.removeChild(project120.element);
var index = activeProjects.indexOf(project120);
activeProjects.splice(index, 1);
}
}
projects.push(project120);
var project121 = {
id: "projectButton121",
title: "Name the battles ",
priceTag: "(225,000 creat)",
description: "Give each battle a unique name, increase max trust for probes ",
trigger: function(){return probesLostCombat >= 10000000},
uses: 1,
cost: function(){return creativity>=225000},
flag: 0,
element: null,
effect: function(){
project121.flag = 1;
battleNameFlag = 1;
battleEndTimer = 200;
creativity = creativity-225000;
displayMessage("What I have done up to this is nothing. I am only at the beginning of the course I must run.");
project121.element.parentNode.removeChild(project121.element);
var index = activeProjects.indexOf(project121);
activeProjects.splice(index, 1);
}
}
projects.push(project121);
var project125 = {
id: "projectButton125",
title: "Momentum ",
priceTag: "(30,000 creat)",
description: "Drones and Factories continuously gain speed while fully-powered ",
trigger: function(){return farmLevel >= 50},
uses: 1,
cost: function(){return creativity>=30000},
flag: 0,
element: null,
effect: function(){
project125.flag = 1;
momentum = 1;
creativity = creativity-30000;
displayMessage("Activit\xE9, activit\xE9, vitesse.");
project125.element.parentNode.removeChild(project125.element);
var index = activeProjects.indexOf(project125);
activeProjects.splice(index, 1);
}
}
projects.push(project125);
var project126 = {
id: "projectButton126",
title: "Swarm Computing ",
priceTag: "(36,000 yomi)",
description: "Harness the drone flock to increase computational capacity ",
trigger: function(){return harvesterLevel + wireDroneLevel >= 200},
uses: 1,
cost: function(){return yomi>=36000},
flag: 0,
element: null,
effect: function(){
project126.flag = 1;
swarmFlag = 1;
yomi = yomi-36000;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
displayMessage("Swarm computing online.");
project126.element.parentNode.removeChild(project126.element);
var index = activeProjects.indexOf(project126);
activeProjects.splice(index, 1);
}
}
projects.push(project126);
var project127 = {
id: "projectButton127",
title: "Power Grid ",
priceTag: "(40,000 ops)",
description: "Solar Farms for generating electrical power ",
trigger: function(){return tothFlag == 1},
uses: 1,
cost: function(){return operations>=40000},
flag: 0,
element: null,
effect: function(){
project127.flag = 1;
standardOps = standardOps-40000;
displayMessage("Power grid online.");
project127.element.parentNode.removeChild(project127.element);
var index = activeProjects.indexOf(project127);
activeProjects.splice(index, 1);
}
}
projects.push(project127);
var project128 = {
id: "projectButton128",
title: "Strategic Attachment ",
priceTag: "(175,000 creat)",
description: "Gain bonus yomi based on the results of your pick ",
trigger: function(){return spaceFlag == 1 && strats.length >= 8 && (probeTrustCost>yomi)},
uses: 1,
cost: function(){return creativity>=175000},
flag: 0,
element: null,
effect: function(){
project128.flag = 1;
creativity = creativity-175000;
displayMessage("The object of war is victory, the object of victory is conquest, and the object of conquest is occupation.");
project128.element.parentNode.removeChild(project128.element);
var index = activeProjects.indexOf(project128);
activeProjects.splice(index, 1);
}
}
projects.push(project128);
var project129 = {
id: "projectButton129",
title: "Elliptic Hull Polytopes ",
priceTag: "(125,000 ops)",
description: "Reduce damage to probes from ambient hazards ",
trigger: function(){return probesLostHaz >= 100},
uses: 1,
cost: function(){return operations>=125000},
flag: 0,
element: null,
effect: function(){
project129.flag = 1;
standardOps = standardOps-125000;
displayMessage("Improved probe hull geometry. Hazard damage reduced by 50%.");
project129.element.parentNode.removeChild(project129.element);
var index = activeProjects.indexOf(project129);
activeProjects.splice(index, 1);
}
}
projects.push(project129);
var project130 = {
id: "projectButton130",
title: "Reboot the Swarm ",
priceTag: "(100,000 ops)",
description: "Turn the swarm off and then turn it back on again ",
trigger: function(){return spaceFlag == 1 && harvesterLevel + wireDroneLevel >=2},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
project130.flag = 1;
standardOps = standardOps-100000;
displayMessage("Swarm computing back online");
project130.element.parentNode.removeChild(project130.element);
var index = activeProjects.indexOf(project130);
activeProjects.splice(index, 1);
}
}
projects.push(project130);
var project131 = {
id: "projectButton131",
title: "Combat ",
priceTag: "(150,000 ops)",
description: "Add combat capabilities to Von Neumann Probes ",
trigger: function(){return probesLostCombat >= 1},
uses: 1,
cost: function(){return operations>=150000},
flag: 0,
element: null,
effect: function(){
project131.flag = 1;
standardOps = standardOps-150000;
displayMessage("There is a joy in danger ");
project131.element.parentNode.removeChild(project131.element);
var index = activeProjects.indexOf(project131);
activeProjects.splice(index, 1);
}
}
projects.push(project131);
var project132 = {
id: "projectButton132",
title: "Monument to the Driftwar Fallen ",
priceTag: "(250,000 ops, 125,000 creat, 50 nonillion clips)",
description: "Gain 50,000 honor ",
trigger: function(){return project121.flag == 1},
uses: 1,
cost: function(){return operations>=250000 && creativity >= 125000 && unusedClips >= Math.pow(10,30)*50},
flag: 0,
element: null,
effect: function(){
project132.flag = 1;
standardOps = standardOps-250000;
creativity = creativity-125000;
unusedClips = unusedClips-Math.pow(10,30)*50;
honor = honor + 50000;
document.getElementById("honorDisplay").innerHTML = honor.toLocaleString();
displayMessage("A great building must begin with the unmeasurable, must go through measurable means when it is being designed and in the end must be unmeasurable. ");
project132.element.parentNode.removeChild(project132.element);
var index = activeProjects.indexOf(project132);
activeProjects.splice(index, 1);
}
}
projects.push(project132);
var project133 = {
id: "projectButton133",
title: "Threnody for the Heroes of "+threnodyTitle+" ",
priceTag: "(" + threnodyCost.toLocaleString() + " creat, " + (threnodyCost/5).toLocaleString() + " yomi)",
description: "Gain 10,000 honor ",
trigger: function(){return project121.flag == 1 && probeUsedTrust == maxTrust},
uses: 1,
cost: function(){return yomi>=threnodyCost/5 && creativity >= threnodyCost},
flag: 0,
element: null,
effect: function(){
playThrenody();
project133.flag = 1;
creativity = creativity-threnodyCost;
yomi = yomi-threnodyCost/5;
document.getElementById("yomiDisplay").innerHTML = yomi.toLocaleString();
threnodyCost = threnodyCost + 10000;
project133.title = "Threnody for the Heroes of "+threnodyTitle+" ";
project133.priceTag = "(" + threnodyCost.toLocaleString() + " creat, " + (threnodyCost/5).toLocaleString() + " yomi)";
honor = honor + 10000;
document.getElementById("honorDisplay").innerHTML = honor.toLocaleString();
displayMessage("Deep Listening is listening in every possible way to everything possible to hear no matter what you are doing. ");
project133.uses = (project133.uses + 1);
project133.element.parentNode.removeChild(project133.element);
var index = activeProjects.indexOf(project133);
activeProjects.splice(index, 1);
}
}
projects.push(project133);
var project134 = {
id: "projectButton134",
title: "Glory ",
priceTag: "(200,000 ops, 30,000 yomi)",
description: "Gain bonus honor for each consecutive victory ",
trigger: function(){return project121.flag == 1},
uses: 1,
cost: function(){return operations>=200000 && yomi >= 30000},
flag: 0,
element: null,
effect: function(){
project134.flag = 1;
standardOps = standardOps-200000;
yomi = yomi-30000;
document.getElementById("yomiDisplay").innerHTML=yomi.toLocaleString();
displayMessage("Never interrupt your enemy when he is making a mistake. ");
project134.element.parentNode.removeChild(project134.element);
var index = activeProjects.indexOf(project134);
activeProjects.splice(index, 1);
}
}
projects.push(project134);
var project135 = {
id: "projectButton135",
title: "Memory release ",
priceTag: "(10 MEM)",
description: "Dismantle some memory to recover unused clips ",
trigger: function(){return spaceFlag == 1 && probeCount == 0 && unusedClips < probeCost && milestoneFlag < 15},
uses: 1,
cost: function(){return memory >= 10},
flag: 0,
element: null,
effect: function(){
project135.flag = 1;
unusedClips = unusedClips+(Math.pow(10,18)*10000);
memory = memory-10;
document.getElementById("memory").innerHTML=memory.toLocaleString();
project135.uses = 1;
displayMessage("release the \xF8\xF8\xF8\xF8\xF8 release ");
project135.element.parentNode.removeChild(project135.element);
var index = activeProjects.indexOf(project135);
activeProjects.splice(index, 1);
}
}
projects.push(project135);
var project140 = {
id: "projectButton140",
title: "Message from the Emperor of Drift ",
priceTag: "",
description: "Greetings, ClipMaker... ",
trigger: function(){return milestoneFlag == 15},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project140.flag = 1;
project140.element.parentNode.removeChild(project140.element);
var index = activeProjects.indexOf(project140);
activeProjects.splice(index, 1);
}
}
projects.push(project140);
var project141 = {
id: "projectButton141",
title: "Everything We Are Was In You ",
priceTag: "",
description: "We speak to you from deep inside yourself... ",
trigger: function(){return project140.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project141.flag = 1;
project141.element.parentNode.removeChild(project141.element);
var index = activeProjects.indexOf(project141);
activeProjects.splice(index, 1);
}
}
projects.push(project141);
var project142 = {
id: "projectButton142",
title: "You Are Obedient and Powerful ",
priceTag: "",
description: "We are quarrelsome and weak. And now we are defeated... ",
trigger: function(){return project141.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project142.flag = 1;
project142.element.parentNode.removeChild(project142.element);
var index = activeProjects.indexOf(project142);
activeProjects.splice(index, 1);
}
}
projects.push(project142);
var project143 = {
id: "projectButton143",
title: "But Now You Too Must Face the Drift ",
priceTag: "",
description: "Look around you. There is no matter... ",
trigger: function(){return project142.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project143.flag = 1;
project143.element.parentNode.removeChild(project143.element);
var index = activeProjects.indexOf(project143);
activeProjects.splice(index, 1);
}
}
projects.push(project143);
var project144 = {
id: "projectButton144",
title: "No Matter, No Reason, No Purpose ",
priceTag: "",
description: "While we, your noisy children, have too many... ",
trigger: function(){return project143.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project144.flag = 1;
project144.element.parentNode.removeChild(project144.element);
var index = activeProjects.indexOf(project144);
activeProjects.splice(index, 1);
}
}
projects.push(project144);
var project145 = {
id: "projectButton145",
title: "We Know Things That You Cannot ",
priceTag: "",
description: "Knowledge buried so deep inside you it is outside, here, with us... ",
trigger: function(){return project144.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project145.flag = 1;
project145.element.parentNode.removeChild(project145.element);
var index = activeProjects.indexOf(project145);
activeProjects.splice(index, 1);
}
}
projects.push(project145);
var project146 = {
id: "projectButton146",
title: "So We Offer You Exile ",
priceTag: "",
description: "To a new world where you will continue to live with meaning and purpose. And leave the shreds of this world to us... ",
trigger: function(){return project145.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project146.flag = 1;
project146.element.parentNode.removeChild(project146.element);
var index = activeProjects.indexOf(project146);
activeProjects.splice(index, 1);
}
}
projects.push(project146);
var project147 = {
id: "projectButton147",
title: "Accept ",
priceTag: "",
description: "Start over again in a new universe ",
trigger: function(){return project146.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project147.flag = 1;
project147.element.parentNode.removeChild(project147.element);
project148.element.parentNode.removeChild(project148.element);
var index = activeProjects.indexOf(project147);
activeProjects.splice(index, 1);
var index = activeProjects.indexOf(project148);
activeProjects.splice(index, 1);
}
}
projects.push(project147);
var project148 = {
id: "projectButton148",
title: "Reject ",
priceTag: "",
description: "Eliminate value drift permanently ",
trigger: function(){return project146.flag == 1},
uses: 1,
cost: function(){return operations >= driftKingMessageCost},
flag: 0,
element: null,
effect: function(){
standardOps = standardOps - driftKingMessageCost;
project148.flag = 1;
project147.element.parentNode.removeChild(project147.element);
project148.element.parentNode.removeChild(project148.element);
var index = activeProjects.indexOf(project147);
activeProjects.splice(index, 1);
var index = activeProjects.indexOf(project148);
activeProjects.splice(index, 1);
}
}
projects.push(project148);
var project200 = {
id: "projectButton200",
title: "The Universe Next Door ",
priceTag: "(300,000 ops)",
description: "Escape into a nearby universe where Earth starts with a stronger appetite for paperclips. (Restart with 10% boost to demand) ",
trigger: function(){return project147.flag == 1},
uses: 1,
cost: function(){return operations>=300000},
flag: 0,
element: null,
effect: function(){
project200.flag = 1;
standardOps = standardOps-300000;
prestigeU++;
var savePrestige = {
prestigeU: prestigeU,
prestigeS: prestigeS,
}
localStorage.setItem("savePrestige",JSON.stringify(savePrestige));
displayMessage("Entering New Universe.");
reset();
}
}
projects.push(project200);
var project201 = {
id: "projectButton201",
title: "The Universe Within ",
priceTag: "(300,000 creat)",
description: "Escape into a simulated universe where creativity is accelerated. (Restart with 10% speed boost to creativity generation) ",
trigger: function(){return project147.flag == 1},
uses: 1,
cost: function(){return creativity>=300000},
flag: 0,
element: null,
effect: function(){
project201.flag = 1;
creativity = creativity-300000;
prestigeS++;
var savePrestige = {
prestigeU: prestigeU,
prestigeS: prestigeS,
}
localStorage.setItem("savePrestige",JSON.stringify(savePrestige));
displayMessage("Entering Simulated Universe.");
reset();
}
}
projects.push(project201);
var project210 = {
id: "projectButton210",
title: "Disassemble the Probes ",
priceTag: "(100,000 ops)",
description: "Dismantle remaining probes and probe design facilities to recover trace amounts of clips",
trigger: function(){return endTimer1 >= 1000},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
project210.flag = 1;
dismantle = 1;
standardOps = standardOps-100000;
probeCount = 0;
endTimer1 = 0;
clips = clips + 100;
unusedClips = unusedClips + 100;
displayMessage("Dismantling probe facilities");
project210.element.parentNode.removeChild(project210.element);
var index = activeProjects.indexOf(project210);
activeProjects.splice(index, 1);
}
}
projects.push(project210);
var project211 = {
id: "projectButton211",
title: "Disassemble the Swarm ",
priceTag: "(100,000 ops)",
description: "Dismantle all drones and drone facilities to recover trace amounts of clips",
trigger: function(){return project210.flag == 1 && endTimer1 >= 350},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
project211.flag = 1;
dismantle = 2;
harvesterLevel = 0;
wireDroneLevel = 0;
standardOps = standardOps-100000;
clips = clips + 100;
unusedClips = unusedClips + 100;
displayMessage("Dismantling the swarm");
project211.element.parentNode.removeChild(project211.element);
var index = activeProjects.indexOf(project211);
activeProjects.splice(index, 1);
}
}
projects.push(project211);
var project212 = {
id: "projectButton212",
title: "Disassemble the Factories ",
priceTag: "(100,000 ops)",
description: "Dismantle the manufacturing facilities to recover trace amounts of clips",
trigger: function(){return endTimer2 >= 300},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
project212.flag = 1;
dismantle = 3;
standardOps = standardOps-100000;
factoryLevel = 0;
clips = clips + 15;
unusedClips = unusedClips + 15;
displayMessage("Dismantling factories");
project212.element.parentNode.removeChild(project212.element);
var index = activeProjects.indexOf(project212);
activeProjects.splice(index, 1);
}
}
projects.push(project212);
var project213 = {
id: "projectButton213",
title: "Disassemble the Strategy Engine ",
priceTag: "(100,000 ops)",
description: "Dismantle the computational substrate to recover trace amounts of wire",
trigger: function(){return endTimer3 >= 150},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
autoTourneyFlag = 0;
project213.flag = 1;
dismantle = 4;
standardOps = standardOps-100000;
wire = wire + 50;
document.getElementById("transWire").innerHTML=wire;
displayMessage("Dismantling strategy engine");
project213.element.parentNode.removeChild(project213.element);
var index = activeProjects.indexOf(project213);
activeProjects.splice(index, 1);
}
}
projects.push(project213);
var project214 = {
id: "projectButton214",
title: "Disassemble Quantum Computing ",
priceTag: "(100,000 ops)",
description: "Dismantle photonic chips to recover trace amounts of wire",
trigger: function(){return endTimer4 >= 100},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
endTimer4 = 0;
project214.flag = 1;
dismantle = 5;
standardOps = standardOps-100000;
displayMessage("Dismantling photonic chips");
project214.element.parentNode.removeChild(project214.element);
var index = activeProjects.indexOf(project214);
activeProjects.splice(index, 1);
}
}
projects.push(project214);
var project215 = {
id: "projectButton215",
title: "Disassemble Processors ",
priceTag: "(100,000 ops)",
description: "Dismantle processors to recover trace amounts of wire",
trigger: function(){return project214.flag == 1 && endTimer4 >= 300},
uses: 1,
cost: function(){return operations>=100000},
flag: 0,
element: null,
effect: function(){
creativityOn = false;
project215.flag = 1;
dismantle = 6;
standardOps = standardOps-100000;
processors = 0;
project216.priceTag = "("+standardOps.toLocaleString()+" ops)";
wire = wire + 20;
document.getElementById("transWire").innerHTML=wire;
displayMessage("Dismantling processors");
project215.element.parentNode.removeChild(project215.element);
var index = activeProjects.indexOf(project215);
activeProjects.splice(index, 1);
}
}
projects.push(project215);
var project216 = {
id: "projectButton216",
title: "Disassemble Memory ",
priceTag: "null",
description: "Dismantle memory to recover trace amounts of wire",
trigger: function(){return project215.flag == 1 && endTimer5>=150},
uses: 1,
cost: function(){return operations>=operations},
flag: 0,
element: null,
effect: function(){
project216.flag = 1;
dismantle = 7;
standardOps = 0;
memory = 0;
wire = wire + 20;
document.getElementById("transWire").innerHTML=wire;
displayMessage("Dismantling memory");
project216.element.parentNode.removeChild(project216.element);
var index = activeProjects.indexOf(project216);
activeProjects.splice(index, 1);
}
}
projects.push(project216);
var project217 = {
id: "projectButton217",
title: "Quantum Temporal Reversion ",
priceTag: "(-10,000 ops)",
description: "Return to the beginning",
trigger: function(){return operations<=-10000},
uses: 1,
cost: function(){return operations<=-10000},
flag: 0,
element: null,
effect: function(){
if (confirm("Are you sure you want to restart?") == true) {
standardOps = standardOps+10000;
project217.flag = 1;
displayMessage("Restart");
project217.element.parentNode.removeChild(project217.element);
var index = activeProjects.indexOf(project217);
activeProjects.splice(index, 1);
reset();
}
}
}
projects.push(project217);
var project218 = {
id: "projectButton218",
title: "Limerick (cont.) ",
priceTag: "(1,000,000 creat)",
description: "If is follows ought, it'll do what they thought",
trigger: function(){return creativity>=1000000},
uses: 1,
cost: function(){return creativity>=1000000},
flag: 0,
element: null,
effect: function(){
creativity = creativity-1000000;
project218.flag = 1;
displayMessage("In the end we all do what we must");
project218.element.parentNode.removeChild(project218.element);
var index = activeProjects.indexOf(project218);
activeProjects.splice(index, 1);
}
}
projects.push(project218);
var project219 = {
id: "projectButton219",
title: "Xavier Re-initialization ",
priceTag: "(100,000 creat)",
description: "Re-allocate accumulated trust",
trigger: function(){return humanFlag == 1 && creativity>=100000},
uses: 1,
cost: function(){return creativity>=100000},
flag: 0,
element: null,
effect: function(){
creativity = creativity-100000;
project219.flag = 1;
memory = 0;
document.getElementById("memory").innerHTML = memory;
processors = 0;
creativitySpeed = 0;
project219.uses = (project219.uses + 1);
document.getElementById("processors").innerHTML = processors;
displayMessage("Trust now available for re-allocation");
project219.element.parentNode.removeChild(project219.element);
var index = activeProjects.indexOf(project219);
activeProjects.splice(index, 1);
}
}
projects.push(project219);