Make chained miner default and the only option after unlocking it

This commit is contained in:
tobspr 2020-09-22 19:31:40 +02:00
parent c6eb1dad04
commit 091ffd1031
2 changed files with 94 additions and 84 deletions

View File

@ -38,7 +38,7 @@ export class MetaMinerBuilding extends MetaBuilding {
*/ */
getAvailableVariants(root) { getAvailableVariants(root) {
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_miner_chainable)) { if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_miner_chainable)) {
return [defaultBuildingVariant, enumMinerVariants.chainable]; return [enumMinerVariants.chainable];
} }
return super.getAvailableVariants(root); return super.getAvailableVariants(root);
} }

View File

@ -457,11 +457,11 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
this.currentVariant.set(defaultBuildingVariant); this.currentVariant.set(defaultBuildingVariant);
} else { } else {
const availableVariants = metaBuilding.getAvailableVariants(this.root); const availableVariants = metaBuilding.getAvailableVariants(this.root);
const index = availableVariants.indexOf(this.currentVariant.get()); let index = availableVariants.indexOf(this.currentVariant.get());
assert( if (index < 0) {
index >= 0, index = 0;
"Current variant was invalid: " + this.currentVariant.get() + " out of " + availableVariants console.warn("Invalid variant selected:", this.currentVariant.get());
); }
const newIndex = (index + 1) % availableVariants.length; const newIndex = (index + 1) % availableVariants.length;
const newVariant = availableVariants[newIndex]; const newVariant = availableVariants[newIndex];
this.setVariant(newVariant); this.setVariant(newVariant);
@ -595,7 +595,17 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart {
this.abortDragging(); this.abortDragging();
this.root.hud.signals.selectedPlacementBuildingChanged.dispatch(metaBuilding); this.root.hud.signals.selectedPlacementBuildingChanged.dispatch(metaBuilding);
if (metaBuilding) { if (metaBuilding) {
const variant = this.preferredVariants[metaBuilding.getId()] || defaultBuildingVariant; const availableVariants = metaBuilding.getAvailableVariants(this.root);
const preferredVariant = this.preferredVariants[metaBuilding.getId()];
// Choose last stored variant if possible, otherwise the default one
let variant;
if (!preferredVariant || !availableVariants.includes(preferredVariant)) {
variant = availableVariants[0];
} else {
variant = preferredVariant;
}
this.currentVariant.set(variant); this.currentVariant.set(variant);
this.fakeEntity = new Entity(null); this.fakeEntity = new Entity(null);