pages/gamedevtree/js/layers/l.js

237 lines
11 KiB
JavaScript

addLayer("l", {
name: "lectures",
symbol: "L",
color: lecturesColor,
branches: [ 's', 'f' ],
row: 3,
position: 4,
resource: "lectures",
baseResource: "fame",
infoboxes: {
lore: {
title: "lectures",
body: `Realizing you are both <span style="color: ${fameColor}">famous</span> and an extensive <span style="color: ${schoolColor}">multi-college education</span>, you have the bright idea of becoming an <span style="color: ${lecturesColor}">adjunt professor</span>. It won't benefit you directly, but with enough <span style="color: ${lecturesColor}">lectures</span> under your belt you should be able to start hiring <span style="color: ${lecturesColor}">Teacher Assistants</span> to <del>take advantage of</del> help you out.<br/><br/>` +
`Each <span style="color: ${lecturesColor}">TA</span> you unlock will gain experience over time - the more <span style="color: ${lecturesColor}">lectures</span> you teach, the more experience they can earn! As they level up they'll be able to boost different layers, in addition to their regular duty.`
}
},
resetDescription: "Teach ",
startData() { return {
unlocked: false,
points: new Decimal(0),
gabenExp: new Decimal(0),
gabenLevel: new Decimal(0),
lExp: new Decimal(0),
lLevel: new Decimal(0),
carmackExp: new Decimal(0),
carmackLevel: new Decimal(0),
thompsonExp: new Decimal(0),
thompsonLevel: new Decimal(0),
meierExp: new Decimal(0),
meierLevel: new Decimal(0)
}},
layerShown() { return player[this.layer].unlocked || challengeCompletions("d", 12) > 0 },
type: "normal",
requires: new Decimal(13),
baseAmount() { return player.f.points },
exponent: 10,
gainMult() {
mult = new Decimal(1)
return mult
},
gainExp() {
return new Decimal(1)
},
effect() {
return player[this.layer].points.sqrt()
},
effectDescription() {
return `which generate ${format(this.effect())} experience for your TAs every second`
},
update(diff) {
const effect = this.effect().mul(diff)
if (hasUpgrade(this.layer, 11)) player[this.layer].gabenExp = player[this.layer].gabenExp.add(effect)
if (player[this.layer].gabenExp.gte(this.bars.gaben.cost())) {
player[this.layer].gabenLevel = player[this.layer].gabenLevel.add(1)
player[this.layer].gabenExp = new Decimal(0)
}
if (hasUpgrade(this.layer, 12)) player[this.layer].lExp = player[this.layer].lExp.add(effect)
if (player[this.layer].lExp.gte(this.bars.l.cost())) {
player[this.layer].lLevel = player[this.layer].lLevel.add(1)
player[this.layer].lExp = new Decimal(0)
}
if (hasUpgrade(this.layer, 13)) player[this.layer].carmackExp = player[this.layer].carmackExp.add(effect)
if (player[this.layer].carmackExp.gte(this.bars.carmack.cost())) {
player[this.layer].carmackLevel = player[this.layer].carmackLevel.add(1)
player[this.layer].carmackExp = new Decimal(0)
}
if (hasUpgrade(this.layer, 14)) player[this.layer].thompsonExp = player[this.layer].thompsonExp.add(effect)
if (player[this.layer].thompsonExp.gte(this.bars.thompson.cost())) {
player[this.layer].thompsonLevel = player[this.layer].thompsonLevel.add(1)
player[this.layer].thompsonExp = new Decimal(0)
}
if (hasUpgrade(this.layer, 15)) player[this.layer].meierExp = player[this.layer].meierExp.add(effect)
if (player[this.layer].meierExp.gte(this.bars.meier.cost())) {
player[this.layer].meierLevel = player[this.layer].meierLevel.add(1)
player[this.layer].meierExp = new Decimal(0)
}
},
roundUpCost: true,
hotkeys: [
{
key: "l",
description: "Press L to teach lectures",
onPress() { if (canReset(this.layer)) doReset(this.layer) }
}
],
tabFormat: [
["infobox", "lore"],
["display-text", () => inChallenge("d", 21) ? `<h2 style="color: red;">Disabled during ${layers.d.challenges[player.d.activeChallenge].name} degree plan</h2>` : ""],
"main-display",
"prestige-button",
"blank",
["display-text", "<h2>Gabriel Newell</h2>"],
["row", [["upgrade", 11], "blank", ["bar", "gaben"]]],
"blank",
["display-text", () => hasUpgrade("l", 11) ? "<h2>L</h2>" : ""],
["row", [["upgrade", 12], "blank", ["bar", "l"]]],
"blank",
["display-text", () => hasUpgrade("l", 12) ? "<h2>Jean Carmack</h2>" : ""],
["row", [["upgrade", 13], "blank", ["bar", "carmack"]]],
"blank",
["display-text", () => hasUpgrade("l", 13) ? "<h2>Jen Thompson</h2>" : ""],
["row", [["upgrade", 14], "blank", ["bar", "thompson"]]],
"blank",
["display-text", () => challengeCompletions("d", 22) > 0 ? "<h2>Sidney Meier</h2>" : ""],
["row", [["upgrade", 15], "blank", ["bar", "meier"]]]
],
bars: {
gaben: {
fillStyle: {'background-color' : "#1b2838"},
baseStyle: {'background-color' : "#171a21"},
textStyle: {'color': '#04e050'},
borderStyle() {return {}},
direction: RIGHT,
width: 400,
height: 140,
progress() {
return (player[this.layer].gabenExp.div(this.cost())).toNumber()
},
display() {
return `Current TA Level: ${formatWhole(player[this.layer].gabenLevel)}<br/><br/>${format(player[this.layer].gabenExp)} / ${formatWhole(this.cost())} to next level`
},
cost() { return new Decimal(4).pow(player[this.layer].gabenLevel).mul(2000) },
unlocked: true
},
l: {
fillStyle: {'background-color' : "#2B5293"},
baseStyle: {'background-color' : "#2b772b"},
textStyle: {'color': '#04e050'},
borderStyle() {return {}},
direction: RIGHT,
width: 400,
height: 140,
progress() {
return (player[this.layer].lExp.div(this.cost())).toNumber()
},
display() {
return `Current TA Level: ${formatWhole(player[this.layer].lLevel)}<br/><br/>${format(player[this.layer].lExp)} / ${formatWhole(this.cost())} to next level`
},
cost() { return new Decimal(100).pow(player[this.layer].lLevel).mul(2401) },
unlocked() { return hasUpgrade("l", 11) }
},
carmack: {
fillStyle: {'background-color' : "#cb5e29"},
baseStyle: {'background-color' : "#692f17"},
textStyle: {'color': '#04e050'},
borderStyle() {return {}},
direction: RIGHT,
width: 400,
height: 140,
progress() {
return (player[this.layer].carmackExp.div(this.cost())).toNumber()
},
display() {
return `Current TA Level: ${formatWhole(player[this.layer].carmackLevel)}<br/><br/>${format(player[this.layer].carmackExp)} / ${formatWhole(this.cost())} to next level`
},
cost() { return new Decimal(6).pow(player[this.layer].carmackLevel).mul(10000) },
unlocked() { return hasUpgrade("l", 12) }
},
thompson: {
fillStyle: {'background-color' : "#ffffff"},
baseStyle: {'background-color' : "#000000"},
textStyle: {'color': '#04e050'},
borderStyle() {return {}},
direction: RIGHT,
width: 400,
height: 140,
progress() {
return (player[this.layer].thompsonExp.div(this.cost())).toNumber()
},
display() {
return `Current TA Level: ${formatWhole(player[this.layer].thompsonLevel)}<br/><br/>${format(player[this.layer].thompsonExp)} / ${formatWhole(this.cost())} to next level`
},
cost() { return new Decimal(12).pow(player[this.layer].thompsonLevel).mul(50000) },
unlocked() { return hasUpgrade("l", 13) }
},
meier: {
fillStyle: {'background-color' : "#947728"},
baseStyle: {'background-color' : "#04467a"},
textStyle: {'color': '#04e050'},
borderStyle() {return {}},
direction: RIGHT,
width: 400,
height: 140,
progress() {
return (player[this.layer].meierExp.div(this.cost())).toNumber()
},
display() {
return `Current TA Level: ${formatWhole(player[this.layer].meierLevel)}<br/><br/>${format(player[this.layer].meierExp)} / ${formatWhole(this.cost())} to next level`
},
cost() { return new Decimal(12).pow(player[this.layer].meierLevel).mul(50000) },
unlocked() { return challengeCompletions("d", 22) > 0 }
}
},
upgrades: {
rows: 1,
cols: 5,
11: {
title: "Hire Gabriel",
cost: new Decimal(1),
description() { return "<br/>Gabriel will make upgrading hardware not spend any cash, and increase cash gain based on level<br/>" },
effect() { return inChallenge("d", 21) ? new Decimal(1) : new Decimal(2).pow(player[this.layer].gabenLevel) },
effectDisplay() { return `${format(this.effect())}x cash gain` }
},
12: {
title: "Hire L",
cost: new Decimal(50),
description() { return "<br/>L will autopurchase alt accounts and not spend any fame, and increase fame gain based on level<br/>" },
effect() { return inChallenge("d", 21) ? new Decimal(1) : player[this.layer].lLevel.add(1).pow(.9) },
effectDisplay() { return `${format(this.effect())}x fame gain` },
unlocked() { return hasUpgrade("l", 11) }
},
13: {
title: "Hire Jean",
cost: new Decimal(2000),
description() { return "<br/>Jean will square updates gain, and increase updates gain based on level<br/>" },
effect() { return inChallenge("d", 21) ? new Decimal(1) : new Decimal(1.75).pow(player[this.layer].carmackLevel) },
effectDisplay() { return `${format(this.effect())}x update gain` },
unlocked() { return hasUpgrade("l", 12) }
},
14: {
title: "Hire Jen",
cost: new Decimal(60000),
description() { return "<br/>Jen will make taking classes not spend any cash, and increase enrollments gain based on level<br/>" },
effect() { return inChallenge("d", 21) ? new Decimal(1) : new Decimal(1.5).pow(player[this.layer].thompsonLevel) },
effectDisplay() { return `${format(this.effect())}x enrollments gain` },
unlocked() { return hasUpgrade("l", 13) }
},
15: {
title: "Hire Sidney",
cost: new Decimal(1200000),
description() { return "<br/>Sidney will square good will affect, and increase good will gain based on level<br/>" },
effect() { return inChallenge("d", 21) ? new Decimal(1) : new Decimal(1.05).pow(player[this.layer].meierLevel) },
effectDisplay() { return `${format(this.effect())}x good will gain` },
unlocked() { return challengeCompletions("d", 22) > 0 }
}
}
})