1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2025-12-13 02:01:51 +00:00

adjust hub goals

This commit is contained in:
Sense101 2022-01-22 18:40:46 +00:00
parent 0540a010a6
commit 132eff5f58
2 changed files with 46 additions and 40 deletions

View File

@ -87,17 +87,14 @@ export const globalConfig = {
puzzleMaxBoundsSize: 20,
puzzleValidationDurationSeconds: 30,
buildingSpeeds: {
cutter: 1 / 4,
cutterQuad: 1 / 4,
rotater: 1 / 1,
rotaterCCW: 1 / 1,
rotater180: 1 / 1,
painter: 1 / 6,
painterDouble: 1 / 8,
painterQuad: 1 / 2,
mixer: 1 / 5,
stacker: 1 / 8,
buildingRatios: {
cutter: 4,
cutterQuad: 4,
painter: 6,
painterDouble: 8,
painterQuad: 2,
mixer: 5,
stacker: 8,
},
// Zooming

View File

@ -507,55 +507,37 @@ export class HubGoals extends BasicSerializableObject {
}
/**
* Processor speed
* Processor time to process
* @param {enumItemProcessorTypes} processorType
* @returns {number} items / sec
* @returns {number} progress in tiles
*/
getProcessorBaseSpeed(processorType) {
getProcessingProgress(processorType) {
if (this.root.gameMode.throughputDoesNotMatter()) {
return globalConfig.beltSpeedItemsPerSecond * globalConfig.puzzleModeSpeed * 10;
return 0;
}
switch (processorType) {
case enumItemProcessorTypes.trash:
case enumItemProcessorTypes.hub:
case enumItemProcessorTypes.goal:
return 1e30;
case enumItemProcessorTypes.balancer:
return globalConfig.beltSpeedItemsPerSecond * this.upgradeImprovements.belt * 2;
case enumItemProcessorTypes.reader:
return globalConfig.beltSpeedItemsPerSecond * this.upgradeImprovements.belt;
case enumItemProcessorTypes.rotater:
case enumItemProcessorTypes.rotaterCCW:
case enumItemProcessorTypes.rotater180:
return 0;
case enumItemProcessorTypes.mixer:
case enumItemProcessorTypes.painter:
case enumItemProcessorTypes.painterDouble:
case enumItemProcessorTypes.painterQuad: {
assert(
globalConfig.buildingSpeeds[processorType],
"Processor type has no speed set in globalConfig.buildingSpeeds: " + processorType
);
return (
globalConfig.beltSpeedItemsPerSecond *
this.upgradeImprovements.painting *
globalConfig.buildingSpeeds[processorType]
);
return this.getProgressWithUpgrades(this.upgradeImprovements.painting, processorType);
}
case enumItemProcessorTypes.cutter:
case enumItemProcessorTypes.cutterQuad:
case enumItemProcessorTypes.rotater:
case enumItemProcessorTypes.rotaterCCW:
case enumItemProcessorTypes.rotater180:
case enumItemProcessorTypes.stacker: {
assert(
globalConfig.buildingSpeeds[processorType],
"Processor type has no speed set in globalConfig.buildingSpeeds: " + processorType
);
return (
globalConfig.beltSpeedItemsPerSecond *
this.upgradeImprovements.processors *
globalConfig.buildingSpeeds[processorType]
);
return this.getProgressWithUpgrades(this.upgradeImprovements.processors, processorType);
}
default:
if (MOD_ITEM_PROCESSOR_SPEEDS[processorType]) {
@ -564,6 +546,33 @@ export class HubGoals extends BasicSerializableObject {
assertAlways(false, "invalid processor type: " + processorType);
}
return 1 / globalConfig.beltSpeedItemsPerSecond;
return 0;
}
/**
* @param {number} upgrade
* @param {number} upgrade
*/
getProgressWithUpgrades(upgrade, processorType) {
assert(
globalConfig.buildingRatios[processorType],
"Processor type has no speed set in globalConfig.buildingRatios: " + processorType
);
const progress = globalConfig.buildingRatios[processorType] - 1;
return progress / upgrade;
}
/**
* Processor speed
* @param {enumItemProcessorTypes} processorType
* @returns {number} items/sec
*/
getProcessorBaseSpeed(processorType) {
const progress = this.getProcessingProgress(processorType);
if (!progress) {
return this.getBeltBaseSpeed();
}
return globalConfig.beltSpeedItemsPerSecond / (progress + 1);
}
}