From 5fb7bb0586a8f92aa1f2ac6496d27fe217b7e4ba Mon Sep 17 00:00:00 2001 From: Sense101 <67970865+Sense101@users.noreply.github.com> Date: Fri, 25 Jun 2021 15:16:09 +0100 Subject: [PATCH] Minor goal acceptor adjustments to help prevent backing up belts to complete (#1236) * added the new splitter * Update base-en.yaml * added the new splitter Update changelog and update translation regarding 20 upgrade tiers, closes #907 * Update base-en.yaml * minor goal acceptor adjustments to help prevent backing up belts to complete * removed gap between completion and fill as it doesn't look nice * removed api override * fixed mistake with fill percentage * Allowed for copying acceptors to remember the required shape * further adjusted required items, so it looks a bit nicer --- src/js/core/config.js | 2 +- src/js/game/components/goal_acceptor.js | 8 ++++++++ src/js/game/systems/goal_acceptor.js | 9 +++++---- 3 files changed, 14 insertions(+), 5 deletions(-) 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;