From 8ec83144adc031276f3893830c77ef18e23a4b71 Mon Sep 17 00:00:00 2001 From: Gerdon Abbink Date: Tue, 23 Jun 2020 21:59:30 +0200 Subject: [PATCH 1/2] Q-ing when on an ore- or shape-patch will show the miner silhouette --- src/js/game/hud/parts/building_placer_logic.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index 6aee65b6..91453b83 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -11,6 +11,7 @@ import { KEYMAPPINGS } from "../../key_action_mapper"; import { defaultBuildingVariant, MetaBuilding } from "../../meta_building"; import { BaseHUDPart } from "../base_hud_part"; import { SOUNDS } from "../../../platform/sound"; +import { MetaMinerBuilding } from "../../buildings/miner"; /** * Contains all logic for the building placer - this doesn't include the rendering @@ -244,10 +245,15 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { const worldPos = this.root.camera.screenToWorld(mousePosition); const tile = worldPos.toTileSpace(); - const contents = this.root.map.getTileContent(tile); + const contents = this.root.map.getTileContent(tile); if (!contents) { - this.currentMetaBuilding.set(null); + const tileBelow = this.root.map.getLowerLayerContentXY(tile.x, tile.y); + if (tileBelow) { + this.currentMetaBuilding.set(gMetaBuildingRegistry.findByClass(MetaMinerBuilding)); + } else { + this.currentMetaBuilding.set(null); + } return; } From 5093770329e9a4e05f99fe02ea1c190d830313f2 Mon Sep 17 00:00:00 2001 From: Gerdon Abbink Date: Wed, 24 Jun 2020 19:47:21 +0200 Subject: [PATCH 2/2] Force user to use the chainable extractor if unlocked. --- src/js/game/hud/parts/building_placer_logic.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index 4890defb..c4b82f64 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -11,7 +11,8 @@ import { KEYMAPPINGS } from "../../key_action_mapper"; import { defaultBuildingVariant, MetaBuilding } from "../../meta_building"; import { BaseHUDPart } from "../base_hud_part"; import { SOUNDS } from "../../../platform/sound"; -import { MetaMinerBuilding } from "../../buildings/miner"; +import { MetaMinerBuilding, enumMinerVariants } from "../../buildings/miner"; +import { enumHubGoalRewards } from "../../tutorial_goals"; /** * Contains all logic for the building placer - this doesn't include the rendering @@ -290,6 +291,9 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { const tileBelow = this.root.map.getLowerLayerContentXY(tile.x, tile.y); if (tileBelow) { this.currentMetaBuilding.set(gMetaBuildingRegistry.findByClass(MetaMinerBuilding)); + if (this.root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_miner_chainable)) { + return this.currentVariant.set(enumMinerVariants.chainable); + } } else { this.currentMetaBuilding.set(null); }