diff --git a/src/js/core/config.js b/src/js/core/config.js index a4793384..b4a2e3dd 100644 --- a/src/js/core/config.js +++ b/src/js/core/config.js @@ -72,7 +72,7 @@ export const globalConfig = { readerAnalyzeIntervalSeconds: 10, - goalAcceptorItemsRequired: 10, + goalAcceptorItemsRequired: 12, goalAcceptorsPerProducer: 5, puzzleModeSpeed: 3, puzzleMinBoundsSize: 2, diff --git a/src/js/game/components/goal_acceptor.js b/src/js/game/components/goal_acceptor.js index bb13ee61..fa5f5908 100644 --- a/src/js/game/components/goal_acceptor.js +++ b/src/js/game/components/goal_acceptor.js @@ -56,4 +56,12 @@ export class GoalAcceptorComponent extends Component { (globalConfig.puzzleModeSpeed * globalConfig.beltSpeedItemsPerSecond) ); } + + /** + * Copy the current state to another component + * @param {GoalAcceptorComponent} otherComponent + */ + copyAdditionalStateTo(otherComponent) { + otherComponent.item = this.item; + } } diff --git a/src/js/game/systems/goal_acceptor.js b/src/js/game/systems/goal_acceptor.js index 40100324..60d4a984 100644 --- a/src/js/game/systems/goal_acceptor.js +++ b/src/js/game/systems/goal_acceptor.js @@ -67,8 +67,9 @@ export class GoalAcceptorSystem extends GameSystemWithFilter { const staticComp = contents[i].components.StaticMapEntity; const item = goalComp.item; - const requiredItemsForSuccess = globalConfig.goalAcceptorItemsRequired; - const percentage = clamp(goalComp.currentDeliveredItems / requiredItemsForSuccess, 0, 1); + const requiredItems = globalConfig.goalAcceptorItemsRequired; + + const fillPercentage = clamp(goalComp.currentDeliveredItems / requiredItems, 0, 1); const center = staticComp.getTileSpaceBounds().getCenter().toWorldSpace(); if (item) { @@ -81,7 +82,7 @@ export class GoalAcceptorSystem extends GameSystemWithFilter { ); } - const isValid = item && goalComp.currentDeliveredItems >= requiredItemsForSuccess; + const isValid = item && goalComp.currentDeliveredItems >= requiredItems; parameters.context.translate(center.x, center.y); parameters.context.rotate((staticComp.rotation / 180) * Math.PI); @@ -93,7 +94,7 @@ export class GoalAcceptorSystem extends GameSystemWithFilter { // progress arc - goalComp.displayPercentage = lerp(goalComp.displayPercentage, percentage, 0.2); + goalComp.displayPercentage = lerp(goalComp.displayPercentage, fillPercentage, 0.2); const startAngle = Math.PI * 0.595; const maxAngle = Math.PI * 1.82;