[UI/UX] Adding options to see mons with only one or only two cost reductions (#5045)

This commit is contained in:
Wlowscha 2025-01-20 18:01:42 +01:00 committed by GitHub
parent ce30897c0a
commit f551c51413
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 4 deletions

View File

@ -7,7 +7,9 @@ export enum DropDownState {
ON = 0, ON = 0,
OFF = 1, OFF = 1,
EXCLUDE = 2, EXCLUDE = 2,
UNLOCKABLE = 3 UNLOCKABLE = 3,
ONE = 4,
TWO = 5
} }
export enum DropDownType { export enum DropDownType {
@ -55,6 +57,8 @@ export class DropDownOption extends Phaser.GameObjects.Container {
private offColor = 0x272727; private offColor = 0x272727;
private excludeColor = 0xff5555; private excludeColor = 0xff5555;
private unlockableColor = 0xffff00; private unlockableColor = 0xffff00;
private oneColor = 0x33bbff;
private twoColor = 0x33bbff;
constructor(val: any, labels: DropDownLabel | DropDownLabel[]) { constructor(val: any, labels: DropDownLabel | DropDownLabel[]) {
super(globalScene); super(globalScene);
@ -126,6 +130,12 @@ export class DropDownOption extends Phaser.GameObjects.Container {
case DropDownState.UNLOCKABLE: case DropDownState.UNLOCKABLE:
this.toggle.setTint(this.unlockableColor); this.toggle.setTint(this.unlockableColor);
break; break;
case DropDownState.ONE:
this.toggle.setTint(this.oneColor);
break;
case DropDownState.TWO:
this.toggle.setTint(this.twoColor);
break;
} }
} }

View File

@ -450,6 +450,8 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
const costReductionLabels = [ const costReductionLabels = [
new DropDownLabel(i18next.t("filterBar:costReduction"), undefined, DropDownState.OFF), new DropDownLabel(i18next.t("filterBar:costReduction"), undefined, DropDownState.OFF),
new DropDownLabel(i18next.t("filterBar:costReductionUnlocked"), undefined, DropDownState.ON), new DropDownLabel(i18next.t("filterBar:costReductionUnlocked"), undefined, DropDownState.ON),
new DropDownLabel(i18next.t("filterBar:costReductionUnlockedOne"), undefined, DropDownState.ONE),
new DropDownLabel(i18next.t("filterBar:costReductionUnlockedTwo"), undefined, DropDownState.TWO),
new DropDownLabel(i18next.t("filterBar:costReductionUnlockable"), undefined, DropDownState.UNLOCKABLE), new DropDownLabel(i18next.t("filterBar:costReductionUnlockable"), undefined, DropDownState.UNLOCKABLE),
new DropDownLabel(i18next.t("filterBar:costReductionLocked"), undefined, DropDownState.EXCLUDE), new DropDownLabel(i18next.t("filterBar:costReductionLocked"), undefined, DropDownState.EXCLUDE),
]; ];
@ -2585,13 +2587,18 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}); });
// Cost Reduction Filter // Cost Reduction Filter
const isCostReduced = starterData.valueReduction > 0; const isCostReducedByOne = starterData.valueReduction === 1;
const isCostReducedByTwo = starterData.valueReduction === 2;
const isCostReductionUnlockable = this.isValueReductionAvailable(container.species.speciesId); const isCostReductionUnlockable = this.isValueReductionAvailable(container.species.speciesId);
const fitsCostReduction = this.filterBar.getVals(DropDownColumn.UNLOCKS).some(unlocks => { const fitsCostReduction = this.filterBar.getVals(DropDownColumn.UNLOCKS).some(unlocks => {
if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.ON) { if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.ON) {
return isCostReduced; return isCostReducedByOne || isCostReducedByTwo;
} else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.ONE) {
return isCostReducedByOne;
} else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.TWO) {
return isCostReducedByTwo;
} else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.EXCLUDE) { } else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.EXCLUDE) {
return isStarterProgressable && !isCostReduced; return isStarterProgressable && !(isCostReducedByOne || isCostReducedByTwo);
} else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.UNLOCKABLE) { } else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.UNLOCKABLE) {
return isCostReductionUnlockable; return isCostReductionUnlockable;
} else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.OFF) { } else if (unlocks.val === "COST_REDUCTION" && unlocks.state === DropDownState.OFF) {