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) {
if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_miner_chainable)) {
return [defaultBuildingVariant, enumMinerVariants.chainable];
return [enumMinerVariants.chainable];
}
return super.getAvailableVariants(root);
}

View File

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