From 9313748f210a66d385b29fa05e661fe1fbf756dc Mon Sep 17 00:00:00 2001 From: thepaperpilot Date: Thu, 26 Aug 2021 23:47:53 -0500 Subject: [PATCH] Added develop action --- src/data/layers/main.ts | 67 ++++++++++++++++++++++++++++++++++++----- src/data/mod.ts | 3 +- src/game/player.ts | 2 +- src/util/save.ts | 2 +- 4 files changed, 63 insertions(+), 11 deletions(-) diff --git a/src/data/layers/main.ts b/src/data/layers/main.ts index 79d001a..b0c7dc3 100644 --- a/src/data/layers/main.ts +++ b/src/data/layers/main.ts @@ -160,7 +160,56 @@ type Action = { enabled?: boolean | (() => boolean); }; +const developSteps = [ + "Spring break just started, and I've got no real obligations! Time to start working on a new project! Just gotta keep it scoped small enough this time so I can actually finish before school starts back up.", + "Created a new repo! I even added a README and LICENSE!", + "I created an index.html file, and a main.css and main.js", + "Thought about what the game should actually be about. Robots?", + `Actually had a better idea: Ninjas!`, + "Ok Ok that was a bit ridiculous. I'm pretty sure I'm actually going to create a game about... game development! It's a perfect and original idea!", + "Hmm, what if it involved starting in a garage then growing to become a AAA studio?", + "Or, what if it was more abstract. It could use different development-related features in a sort of tree structure, and the numbers get increasingly absurd!", + `No, that won't work. What if it got too ridiculous? Or got really boring towards the end? What would the end game even be? Probably something silly, that's what`, + `It could be self-documenting. A game about its own development process? Or maybe its narrated, and following the path of a developer over time. That could be something really special.`, + "Maybe meta games are passé these days. How about I start with some first person shooter", + "You know what? I'll figure it out as I go along. Let's start with stuff any game would need", + "Made an options screen!", + "Made a credits screen! It's just me lol", + "Added a new option to the options screen! That's adding real value to the game!", + "Made a fancy title screen, minus the title itself!", + "I changed around some of the colors in the credits screen. Am I procrastinating?", + "Thought hard about a core mechanic. Decided it'd be better to just pick a theme that sounds cool and assume the mechanics will follow", + "Trying to come up with a theme, but I keep thinking of pokémon, and I'm pretty sure Nintendo will sue me if I make a fangame", + "Screw it I'm making pong", + "Added a paddle that you can control with the mouse!", + "Added a ball that bounces off the paddle", + "Added an enemy paddle - it doesn't move yet", + "Made the enemy paddle just move up and down in a loop", + "Added a number at the top that goes up every time your paddle hits the ball", + "Made the enemy paddle and ball move faster over time", + "Made the enemy paddle move in the direction of the ball", + `Thought of what to add next. I can't just make pong!` +]; + const actions = { + develop: { + icon: "code", + tooltip: "Develop", + events: [ + { + event() { + const description = developSteps[player.devStep as number]; + (player.devStep as number)++; + return { description }; + }, + weight: 1 + } + ], + baseChanges: [ + { resource: "time", amount: -60 * 60 }, + { resource: "energy", amount: -5 } + ] + }, reddit: { icon: "reddit", tooltip: "Browse Reddit", @@ -368,9 +417,9 @@ type ActionNode = { }; const actionNodes = { - web: { - actions: ["reddit"], - display: "Web" + pc: { + actions: ["develop", "reddit"], + display: "PC" }, bed: { actions: ["sleep", "rest", "makeBed"], @@ -447,7 +496,7 @@ const resourceNodeType = { if (change != null) { let text = Decimal.gt(change.amount, 0) ? "+" : ""; if (resource.name === "time") { - text += formatTime(change.amount); + text += formatTime(Decimal.div(change.amount, focusMult.value)); } else if (Decimal.eq(resource.maxAmount, 100)) { text += formatWhole(change.amount) + "%"; } else { @@ -548,12 +597,14 @@ function performAction(id: string, action: Action, node: BoardNode) { if (change.assign) { resources[change.resource].amount = change.amount; } else if (change.resource === "time") { - // Time isn't affected by focus multiplier - resources.time.amount = Decimal.add(resources.time.amount, change.amount); + resources.time.amount = Decimal.add( + resources.time.amount, + Decimal.div(change.amount, focusMult.value) + ); } else { resources[change.resource].amount = Decimal.add( resources[change.resource].amount, - Decimal.times(change.amount, focusMult.value) + change.amount ); } } @@ -763,7 +814,7 @@ export default { position: { x: -150, y: 150 }, type: "action", data: { - actionType: "web", + actionType: "pc", log: [] } as ActionNodeData }, diff --git a/src/data/mod.ts b/src/data/mod.ts index e6d3e97..325fd57 100644 --- a/src/data/mod.ts +++ b/src/data/mod.ts @@ -13,7 +13,8 @@ export function getStartingData(): Record { return { points: new Decimal(10), day: new Decimal(1), - lastDayBedMade: new Decimal(0) + lastDayBedMade: new Decimal(0), + devStep: 0 }; } diff --git a/src/game/player.ts b/src/game/player.ts index aabeb10..bf029cd 100644 --- a/src/game/player.ts +++ b/src/game/player.ts @@ -22,7 +22,7 @@ const state = reactive({ showTPS: true, msDisplay: MilestoneDisplay.All, hideChallenges: false, - theme: Themes.Paper, + theme: Themes.Nordic, subtabs: {}, minimized: {}, modID: "", diff --git a/src/util/save.ts b/src/util/save.ts index 0b14d81..f87b334 100644 --- a/src/util/save.ts +++ b/src/util/save.ts @@ -25,7 +25,7 @@ export function getInitialStore(playerData: Partial = {}): PlayerDat showTPS: true, msDisplay: MilestoneDisplay.All, hideChallenges: false, - theme: Themes.Paper, + theme: Themes.Nordic, subtabs: {}, minimized: {}, modID: modInfo.id,