|
|
|
@ -1,12 +1,11 @@
|
|
|
|
|
import { ClickDetector } from "../../../core/click_detector";
|
|
|
|
|
import { formatBigNumber, makeDiv, arrayDeleteValue } from "../../../core/utils";
|
|
|
|
|
import { globalConfig } from "../../../core/config";
|
|
|
|
|
import { arrayDeleteValue, formatBigNumber, makeDiv } from "../../../core/utils";
|
|
|
|
|
import { T } from "../../../translations";
|
|
|
|
|
import { enumAnalyticsDataSource } from "../../production_analytics";
|
|
|
|
|
import { ShapeDefinition } from "../../shape_definition";
|
|
|
|
|
import { BaseHUDPart } from "../base_hud_part";
|
|
|
|
|
import { blueprintShape, UPGRADES } from "../../upgrades";
|
|
|
|
|
import { enumHubGoalRewards } from "../../tutorial_goals";
|
|
|
|
|
import { enumAnalyticsDataSource } from "../../production_analytics";
|
|
|
|
|
import { T } from "../../../translations";
|
|
|
|
|
import { globalConfig } from "../../../core/config";
|
|
|
|
|
import { BaseHUDPart } from "../base_hud_part";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Manages the pinned shapes on the left side of the screen
|
|
|
|
@ -82,7 +81,7 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|
|
|
|
updateShapesAfterUpgrade() {
|
|
|
|
|
for (let i = 0; i < this.pinnedShapes.length; ++i) {
|
|
|
|
|
const key = this.pinnedShapes[i];
|
|
|
|
|
if (key === blueprintShape) {
|
|
|
|
|
if (key === this.root.gameMode.getBlueprintShapeKey()) {
|
|
|
|
|
// Ignore blueprint shapes
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
@ -107,13 +106,14 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|
|
|
|
if (key === this.root.hubGoals.currentGoal.definition.getHash()) {
|
|
|
|
|
return this.root.hubGoals.currentGoal.required;
|
|
|
|
|
}
|
|
|
|
|
if (key === blueprintShape) {
|
|
|
|
|
if (key === this.root.gameMode.getBlueprintShapeKey()) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Check if this shape is required for any upgrade
|
|
|
|
|
for (const upgradeId in UPGRADES) {
|
|
|
|
|
const upgradeTiers = UPGRADES[upgradeId];
|
|
|
|
|
const upgrades = this.root.gameMode.getUpgrades();
|
|
|
|
|
for (const upgradeId in upgrades) {
|
|
|
|
|
const upgradeTiers = upgrades[upgradeId];
|
|
|
|
|
const currentTier = this.root.hubGoals.getUpgradeLevel(upgradeId);
|
|
|
|
|
const tierHandle = upgradeTiers[currentTier];
|
|
|
|
|
|
|
|
|
@ -138,7 +138,10 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|
|
|
|
* @param {string} key
|
|
|
|
|
*/
|
|
|
|
|
isShapePinned(key) {
|
|
|
|
|
if (key === this.root.hubGoals.currentGoal.definition.getHash() || key === blueprintShape) {
|
|
|
|
|
if (
|
|
|
|
|
key === this.root.hubGoals.currentGoal.definition.getHash() ||
|
|
|
|
|
key === this.root.gameMode.getBlueprintShapeKey()
|
|
|
|
|
) {
|
|
|
|
|
// This is a "special" shape which is always pinned
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
@ -178,7 +181,7 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|
|
|
|
// Pin blueprint shape as well
|
|
|
|
|
if (this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_blueprints)) {
|
|
|
|
|
this.internalPinShape({
|
|
|
|
|
key: blueprintShape,
|
|
|
|
|
key: this.root.gameMode.getBlueprintShapeKey(),
|
|
|
|
|
canUnpin: false,
|
|
|
|
|
className: "blueprint",
|
|
|
|
|
});
|
|
|
|
@ -306,7 +309,7 @@ export class HUDPinnedShapes extends BaseHUDPart {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (key === blueprintShape) {
|
|
|
|
|
if (key === this.root.gameMode.getBlueprintShapeKey()) {
|
|
|
|
|
// Can not pin the blueprint shape
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|