From 8b2161e9df51ca24324832052090db83dc43bdcf Mon Sep 17 00:00:00 2001 From: thepaperpilot Date: Wed, 21 Dec 2022 22:01:46 -0600 Subject: [PATCH 01/14] Make energy a modifier --- src/data/layers/factory.tsx | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/data/layers/factory.tsx b/src/data/layers/factory.tsx index 3031642..b5a2aa3 100644 --- a/src/data/layers/factory.tsx +++ b/src/data/layers/factory.tsx @@ -25,6 +25,7 @@ import truck from "./factory-components/rotate_rectangle.png"; import Factory from "./Factory.vue"; import "./styles/factory.css"; import coal from "./coal"; +import { createAdditiveModifier, createSequentialModifier } from "game/modifiers"; const id = "factory"; @@ -83,14 +84,22 @@ const factory = createLayer(id, () => { const name = "The Factory"; const color = "grey"; - const energy = computed(() => Decimal.add(1, coal.coal.value).log10()); + const energy = createSequentialModifier(() => [ + createAdditiveModifier(() => ({ + addend: () => Decimal.add(1, coal.coal.value).log10(), + description: "Coal Energy Production" + })) + ]); + const computedEnergy = computed(() => energy.apply(0)); const energyConsumption = computed(() => Object.values(components.value) .map(c => FACTORY_COMPONENTS[c.type].energyCost ?? 0) .reduce((a, b) => a + b, 0) ); const tickRate = computed(() => - Decimal.div(energyConsumption.value, energy.value).recip().pow(2).min(1) + Decimal.eq(energyConsumption.value, 0) + ? 1 + : Decimal.div(energyConsumption.value, computedEnergy.value).recip().pow(2).min(1) ); // ---------------------------------------------- Components @@ -422,7 +431,7 @@ const factory = createLayer(id, () => { globalBus.on("update", diff => { if (!loaded) return; - const factoryTicks = tickRate.value.times(diff).toNumber(); + const factoryTicks = Decimal.times(tickRate.value, diff).toNumber(); //debugger // make them produce @@ -1009,10 +1018,14 @@ const factory = createLayer(id, () => {
Energy Consumption: {formatWhole(energyConsumption.value)} /{" "} - {formatWhole(energy.value)} + {formatWhole(computedEnergy.value)}
Tick Rate: {format(tickRate.value)} TPS
From 0e93cc94012437d2cd3a8bfc1f6be4ab58ebf9ea Mon Sep 17 00:00:00 2001 From: thepaperpilot Date: Wed, 21 Dec 2022 22:05:35 -0600 Subject: [PATCH 02/14] Add day progress and modifiers display --- src/data/layers/factory.tsx | 57 +++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/src/data/layers/factory.tsx b/src/data/layers/factory.tsx index b5a2aa3..11b7f0d 100644 --- a/src/data/layers/factory.tsx +++ b/src/data/layers/factory.tsx @@ -26,6 +26,11 @@ import Factory from "./Factory.vue"; import "./styles/factory.css"; import coal from "./coal"; import { createAdditiveModifier, createSequentialModifier } from "game/modifiers"; +import { main } from "data/projEntry"; +import { render } from "util/vue"; +import { createCollapsibleModifierSections } from "data/common"; +import Modal from "components/Modal.vue"; +import { createBar, GenericBar } from "features/bars/bar"; const id = "factory"; @@ -857,16 +862,64 @@ const factory = createLayer(id, () => { compSelected.value = name; } + const [generalTab, generalTabCollapsed] = createCollapsibleModifierSections(() => [ + { + title: "Energy", + modifier: energy, + base: 0 + } + ]); + const showModifiersModal = ref(false); + const modifiersModal = jsx(() => ( + (showModifiersModal.value = value)} + v-slots={{ + header: () =>

{name} Modifiers

, + body: generalTab + }} + /> + )); + + const dayProgress = createBar(() => ({ + direction: Direction.Right, + width: 600, + height: 25, + progress: () => (main.day.value === day ? 0 : 1), + display: jsx(() => (main.day.value === day ? <>Requirement progress here : "")) + })) as GenericBar; + + watchEffect(() => { + if (main.day.value === day && false) { + main.completeDay(); + } + }); + return { name, day, color, minWidth: 700, - minimizable: false, - style: { overflow: "hidden" }, + generalTabCollapsed, components, display: jsx(() => ( <> +
+ {main.day.value === day + ? `Do something to complete the day` + : `${name} Complete!`}{" "} + -{" "} + +
+ {render(dayProgress)} + {render(modifiersModal)} +
Date: Wed, 21 Dec 2022 22:32:28 -0600 Subject: [PATCH 03/14] Fixed hotkeys not being reactive --- src/components/Hotkey.vue | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/components/Hotkey.vue b/src/components/Hotkey.vue index c5790e3..7e9c876 100644 --- a/src/components/Hotkey.vue +++ b/src/components/Hotkey.vue @@ -13,22 +13,34 @@