Skip to content
This repository has been archived by the owner on Oct 25, 2022. It is now read-only.

Commit

Permalink
feat(core): Remove add/del resource workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
oliversalzburg committed Sep 30, 2022
1 parent e8f44a5 commit 3361052
Show file tree
Hide file tree
Showing 7 changed files with 177 additions and 240 deletions.
3 changes: 0 additions & 3 deletions packages/userscript/source/WorkshopManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -470,9 +470,6 @@ export class WorkshopManager extends UpgradeManager implements Automation {
* @returns The information object for the resource.
*/
getResource(name: Resource): ResourceInfo {
if (name === "slabs") {
name = "slab";
}
const res = this._host.gamePage.resPool.get(name);
if (isNil(res)) {
throw new Error(`Unable to find resource ${name}`);
Expand Down
54 changes: 50 additions & 4 deletions packages/userscript/source/options/ResourcesSettings.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { Resource } from "../types";
import { Setting } from "./Settings";

export class ResourcesSettingsItem extends Setting {
Expand All @@ -15,6 +14,53 @@ export class ResourcesSettingsItem extends Setting {
}
}

export type ResourceSettings = {
[item in Resource]?: ResourcesSettingsItem;
};
export class ResourceSettings {
alloy = new ResourcesSettingsItem(false, 1, 0);
antimatter = new ResourcesSettingsItem(false, 1, 0);
beam = new ResourcesSettingsItem(false, 1, 0);
blackcoin = new ResourcesSettingsItem(false, 1, 0);
bloodstone = new ResourcesSettingsItem(false, 1, 0);
blueprint = new ResourcesSettingsItem(false, 1, 0);
catnip = new ResourcesSettingsItem(false, 1, 0);
coal = new ResourcesSettingsItem(false, 1, 0);
compedium = new ResourcesSettingsItem(false, 1, 0);
concrate = new ResourcesSettingsItem(false, 1, 0);
culture = new ResourcesSettingsItem(false, 1, 0);
eludium = new ResourcesSettingsItem(false, 1, 0);
faith = new ResourcesSettingsItem(false, 1, 0);
furs = new ResourcesSettingsItem(true, undefined, 1000);
gear = new ResourcesSettingsItem(false, 1, 0);
gold = new ResourcesSettingsItem(false, 1, 0);
iron = new ResourcesSettingsItem(false, 1, 0);
ivory = new ResourcesSettingsItem(false, 1, 0);
karma = new ResourcesSettingsItem(false, 1, 0);
kerosene = new ResourcesSettingsItem(false, 1, 0);
manpower = new ResourcesSettingsItem(false, 1, 0);
manuscript = new ResourcesSettingsItem(false, 1, 0);
megalith = new ResourcesSettingsItem(false, 1, 0);
minerals = new ResourcesSettingsItem(false, 1, 0);
necrocorn = new ResourcesSettingsItem(false, 1, 0);
oil = new ResourcesSettingsItem(false, 1, 0);
paragon = new ResourcesSettingsItem(false, 1, 0);
parchment = new ResourcesSettingsItem(false, 1, 0);
plate = new ResourcesSettingsItem(false, 1, 0);
relic = new ResourcesSettingsItem(false, 1, 0);
scaffold = new ResourcesSettingsItem(false, 1, 0);
science = new ResourcesSettingsItem(false, 1, 0);
ship = new ResourcesSettingsItem(false, 1, 0);
slab = new ResourcesSettingsItem(false, 1, 0);
spice = new ResourcesSettingsItem(false, 1, 0);
steel = new ResourcesSettingsItem(false, 1, 0);
tanker = new ResourcesSettingsItem(false, 1, 0);
tears = new ResourcesSettingsItem(false, 1, 0);
temporalFlux = new ResourcesSettingsItem(false, 1, 0);
thorium = new ResourcesSettingsItem(false, 1, 0);
timeCrystal = new ResourcesSettingsItem(false, 1, 0);
titanium = new ResourcesSettingsItem(false, 1, 0);
unicorns = new ResourcesSettingsItem(false, 1, 0);
unobtainium = new ResourcesSettingsItem(false, 1, 0);
uranium = new ResourcesSettingsItem(false, 1, 0);
void = new ResourcesSettingsItem(false, 1, 0);
wood = new ResourcesSettingsItem(false, 1, 0);
zebras = new ResourcesSettingsItem(false, 1, 0);
}
71 changes: 58 additions & 13 deletions packages/userscript/source/options/TimeControlSettings.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { objectEntries } from "../tools/Entries";
import { Resource, SpaceBuildings, TimeItemVariant, UnicornItemVariant } from "../types";
import { SpaceBuildings, TimeItemVariant, UnicornItemVariant } from "../types";
import { BonfireItem } from "./BonfireSettings";
import { FaithItem, UnicornItem } from "./ReligionSettings";
import { Setting, SettingTrigger } from "./Settings";
Expand All @@ -21,6 +21,57 @@ export class TimeControlResourcesSettingsItem extends Setting {
}
}

export class TimeControlResourceSettings {
alloy = new TimeControlResourcesSettingsItem(false, 0);
antimatter = new TimeControlResourcesSettingsItem(false, 0);
beam = new TimeControlResourcesSettingsItem(false, 0);
blackcoin = new TimeControlResourcesSettingsItem(false, 0);
bloodstone = new TimeControlResourcesSettingsItem(false, 0);
blueprint = new TimeControlResourcesSettingsItem(false, 0);
catnip = new TimeControlResourcesSettingsItem(false, 0);
coal = new TimeControlResourcesSettingsItem(false, 0);
compedium = new TimeControlResourcesSettingsItem(false, 0);
concrate = new TimeControlResourcesSettingsItem(false, 0);
culture = new TimeControlResourcesSettingsItem(false, 0);
eludium = new TimeControlResourcesSettingsItem(false, 0);
faith = new TimeControlResourcesSettingsItem(false, 0);
furs = new TimeControlResourcesSettingsItem(false, 0);
gear = new TimeControlResourcesSettingsItem(false, 0);
gold = new TimeControlResourcesSettingsItem(false, 0);
iron = new TimeControlResourcesSettingsItem(false, 0);
ivory = new TimeControlResourcesSettingsItem(false, 0);
karma = new TimeControlResourcesSettingsItem(false, 0);
kerosene = new TimeControlResourcesSettingsItem(false, 0);
manpower = new TimeControlResourcesSettingsItem(false, 0);
manuscript = new TimeControlResourcesSettingsItem(false, 0);
megalith = new TimeControlResourcesSettingsItem(false, 0);
minerals = new TimeControlResourcesSettingsItem(false, 0);
necrocorn = new TimeControlResourcesSettingsItem(false, 0);
oil = new TimeControlResourcesSettingsItem(false, 0);
paragon = new TimeControlResourcesSettingsItem(false, 0);
parchment = new TimeControlResourcesSettingsItem(false, 0);
plate = new TimeControlResourcesSettingsItem(false, 0);
relic = new TimeControlResourcesSettingsItem(false, 0);
scaffold = new TimeControlResourcesSettingsItem(false, 0);
science = new TimeControlResourcesSettingsItem(false, 0);
ship = new TimeControlResourcesSettingsItem(false, 0);
slab = new TimeControlResourcesSettingsItem(false, 0);
spice = new TimeControlResourcesSettingsItem(false, 0);
steel = new TimeControlResourcesSettingsItem(false, 0);
tanker = new TimeControlResourcesSettingsItem(false, 0);
tears = new TimeControlResourcesSettingsItem(false, 0);
temporalFlux = new TimeControlResourcesSettingsItem(false, 0);
thorium = new TimeControlResourcesSettingsItem(false, 0);
timeCrystal = new TimeControlResourcesSettingsItem(false, 0);
titanium = new TimeControlResourcesSettingsItem(false, 0);
unicorns = new TimeControlResourcesSettingsItem(false, 0);
unobtainium = new TimeControlResourcesSettingsItem(false, 0);
uranium = new TimeControlResourcesSettingsItem(false, 0);
void = new TimeControlResourcesSettingsItem(false, 0);
wood = new TimeControlResourcesSettingsItem(false, 0);
zebras = new TimeControlResourcesSettingsItem(false, 0);
}

export class TimeControlReligionSettingsItem extends SettingTrigger {
variant: UnicornItemVariant;

Expand Down Expand Up @@ -91,9 +142,6 @@ export type TimeControlSpaceSettingItems = {
export type TimeControlTimeSettingItems = {
[item in TimeItem]: TimeControlTimeSettingsItem;
};
export type TimeControlResourceSettingItems = {
[item in Resource]?: TimeControlResourcesSettingsItem;
};

export class TimeControlSettings extends SettingsSection {
buildItems: TimeControlBuildSettingItems = {
Expand Down Expand Up @@ -252,7 +300,7 @@ export class TimeControlSettings extends SettingsSection {
voidResonator: new TimeControlTimeSettingsItem(TimeItemVariant.VoidSpace, true, -1),
};

resources: TimeControlResourceSettingItems = {};
resources: TimeControlResourceSettings;

accelerateTime: SettingTrigger;
timeSkip: TimeControlTimeSkipSettings;
Expand Down Expand Up @@ -436,7 +484,7 @@ export class TimeControlSettings extends SettingsSection {
chronocontrol: new TimeControlTimeSettingsItem(TimeItemVariant.VoidSpace, true, -1),
voidResonator: new TimeControlTimeSettingsItem(TimeItemVariant.VoidSpace, true, -1),
},
resources: TimeControlResourceSettingItems = {},
resources = new TimeControlResourceSettings(),
accelerateTime = new SettingTrigger(true, 1),
timeSkip = new TimeControlTimeSkipSettings(),
reset = new Setting(false)
Expand Down Expand Up @@ -488,9 +536,9 @@ export class TimeControlSettings extends SettingsSection {
item.trigger = settings.timeItems[name].trigger;
}

this.resources = {};
for (const [name, item] of objectEntries(settings.resources)) {
this.resources[name] = new TimeControlResourcesSettingsItem(item.enabled, item.stock);
this.resources[name].enabled = item.enabled;
this.resources[name].stock = item.stock;
}
}

Expand Down Expand Up @@ -583,15 +631,12 @@ export class TimeControlSettings extends SettingsSection {
item.trigger = subject.items[`set-reset-time-${name}-min` as const] ?? item.trigger;
}

options.resources = {};
for (const [name, item] of objectEntries(subject.resources)) {
if (!item.checkForReset) {
continue;
}
options.resources[name] = new TimeControlResourcesSettingsItem(
item.checkForReset,
item.stockForReset
);
options.resources[name].enabled = item.enabled;
options.resources[name].stock = item.stock;
}

return options;
Expand Down
20 changes: 12 additions & 8 deletions packages/userscript/source/options/WorkshopSettings.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { objectEntries } from "../tools/Entries";
import { GamePage, ResourceCraftable } from "../types";
import { ResourceSettings, ResourcesSettingsItem } from "./ResourcesSettings";
import { WorkshopManager } from "../WorkshopManager";
import { ResourceSettings } from "./ResourcesSettings";
import { Requirement, Setting, SettingLimitedMax } from "./Settings";
import { SettingsSectionTrigger } from "./SettingsSection";
import { KittenStorageType } from "./SettingsStorage";
Expand Down Expand Up @@ -56,9 +57,7 @@ export class WorkshopSettings extends SettingsSectionTrigger {
eludium: new CraftSettingsItem("unobtainium"),
thorium: new CraftSettingsItem("uranium"),
},
resources: ResourceSettings = {
furs: new ResourcesSettingsItem(true, undefined, 1000),
},
resources = new ResourceSettings(),
unlockUpgrades = new UpgradeSettings(),
shipOverride = new Setting(true)
) {
Expand All @@ -82,9 +81,10 @@ export class WorkshopSettings extends SettingsSectionTrigger {
this.items[name].max = item.max;
}

this.resources = {};
for (const [name, item] of objectEntries(settings.resources)) {
this.resources[name] = new ResourcesSettingsItem(item.enabled, item.consume, item.stock);
this.resources[name].enabled = item.enabled;
this.resources[name].consume = item.consume;
this.resources[name].stock = item.stock;
}

this.unlockUpgrades.enabled = settings.unlockUpgrades.enabled;
Expand Down Expand Up @@ -132,13 +132,17 @@ export class WorkshopSettings extends SettingsSectionTrigger {
item.limited = subject.items[`toggle-limited-${name}` as const] ?? item.limited;
}

options.resources = {};
for (const [name, item] of objectEntries(subject.resources)) {
if (item.checkForReset) {
continue;
}

options.resources[name] = new ResourcesSettingsItem(item.enabled, item.consume, item.stock);
// We didn't explicitly store the `enabled` state in legacy.
// Instead, it is derived from the setting having non-default values.
options.resources[name].enabled =
item.consume !== WorkshopManager.DEFAULT_CONSUME_RATE || item.stock !== 0;
options.resources[name].consume = item.consume;
options.resources[name].stock = item.stock;
}

options.unlockUpgrades.enabled =
Expand Down
2 changes: 1 addition & 1 deletion packages/userscript/source/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export type Resource =
| "paragon"
| "relic"
| "science"
| "slabs" // deprecated: Use `slab` instead
| "slab"
| "spice"
| "tears"
| "temporalFlux"
Expand Down

0 comments on commit 3361052

Please sign in to comment.