mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-15 21:02:18 +02:00
fix assign blacklisted key + locked setting greyed
This commit is contained in:
parent
2217e33d02
commit
6f1e52ff22
@ -111,9 +111,8 @@ export function getIconForLatestInput(configs, source, devices, settingName) {
|
||||
|
||||
export function assign(config, settingNameTarget, keycode): boolean {
|
||||
// first, we need to check if this keycode is already used on another settingName
|
||||
if (!canIAssignThisKey(config, getKeyWithKeycode(config, keycode)) || !canIOverrideThisSetting(config, settingNameTarget)) return false;
|
||||
const previousSettingName = getSettingNameWithKeycode(config, keycode);
|
||||
const key = getKeyWithSettingName(config, previousSettingName);
|
||||
if (!canIAssignThisKey(config, key) || ! canIOverrideThisSetting(config, settingNameTarget)) return false;
|
||||
// if it was already bound, we delete the bind
|
||||
if (previousSettingName) {
|
||||
const previousKey = getKeyWithSettingName(config, previousSettingName);
|
||||
@ -157,8 +156,9 @@ export function deleteBind(config, settingName) {
|
||||
|
||||
export function canIAssignThisKey(config, key) {
|
||||
const settingName = getSettingNameWithKey(config, key);
|
||||
if (config.blacklist?.includes(key)) return false;
|
||||
if (settingName === -1) return true;
|
||||
if (config.blacklist?.includes(key) || isTheLatestBind(config, settingName)) return false;
|
||||
if (isTheLatestBind(config, settingName)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ import SettingsGamepadUiHandler from "../ui/settings/settings-gamepad-ui-handler
|
||||
import {Mode} from "../ui/ui";
|
||||
import {truncateString} from "../utils";
|
||||
import {Button} from "../enums/buttons";
|
||||
import {SettingKeyboard} from "#app/system/settings-keyboard";
|
||||
|
||||
export enum SettingGamepad {
|
||||
Default_Controller = "DEFAULT_CONTROLLER",
|
||||
@ -71,6 +72,13 @@ export const settingGamepadDefaults: SettingDefaults = {
|
||||
[SettingGamepad.Button_Submit]: 0,
|
||||
};
|
||||
|
||||
export const settingGamepadBlackList = [
|
||||
SettingKeyboard.Button_Up,
|
||||
SettingKeyboard.Button_Down,
|
||||
SettingKeyboard.Button_Left,
|
||||
SettingKeyboard.Button_Right,
|
||||
];
|
||||
|
||||
export function setSettingGamepad(scene: BattleScene, setting: SettingGamepad, value: integer): boolean {
|
||||
switch (setting) {
|
||||
case SettingGamepad.Gamepad_Support:
|
||||
|
@ -118,6 +118,16 @@ export const settingKeyboardDefaults: SettingDefaults = {
|
||||
[SettingKeyboard.Alt_Button_Submit]: 0,
|
||||
};
|
||||
|
||||
export const settingKeyboardBlackList = [
|
||||
SettingKeyboard.Button_Submit,
|
||||
SettingKeyboard.Button_Menu,
|
||||
SettingKeyboard.Button_Action,
|
||||
SettingKeyboard.Button_Up,
|
||||
SettingKeyboard.Button_Down,
|
||||
SettingKeyboard.Button_Left,
|
||||
SettingKeyboard.Button_Right,
|
||||
];
|
||||
|
||||
|
||||
export function setSettingKeyboard(scene: BattleScene, setting: SettingKeyboard, value: integer): boolean {
|
||||
switch (setting) {
|
||||
|
@ -322,7 +322,7 @@ const cfg_keyboard_azerty = {
|
||||
"KEY_ARROW_DOWN",
|
||||
"KEY_ARROW_LEFT",
|
||||
"KEY_ARROW_RIGHT",
|
||||
"KEY_DELETE",
|
||||
"KEY_DEL",
|
||||
"KEY_HOME",
|
||||
]
|
||||
};
|
||||
|
@ -393,6 +393,7 @@ describe('Test Rebinding', () => {
|
||||
inGame.whenWePressOnKeyboard("RIGHT").weShouldTriggerTheButton("Button_Right");
|
||||
inGame.whenWePressOnKeyboard("ESC").weShouldTriggerTheButton("Button_Menu");
|
||||
inGame.whenWePressOnKeyboard("HOME").nothingShouldHappen();
|
||||
inGame.whenWePressOnKeyboard("DELETE").nothingShouldHappen();
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Button_Submit").iconDisplayedIs("KEY_ENTER").whenWeDelete().iconDisplayedIs("KEY_ENTER")
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Button_Up").iconDisplayedIs("KEY_ARROW_UP").whenWeDelete().iconDisplayedIs("KEY_ARROW_UP")
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Button_Down").iconDisplayedIs("KEY_ARROW_DOWN").whenWeDelete().iconDisplayedIs("KEY_ARROW_DOWN")
|
||||
@ -400,6 +401,11 @@ describe('Test Rebinding', () => {
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Button_Right").iconDisplayedIs("KEY_ARROW_RIGHT").whenWeDelete().iconDisplayedIs("KEY_ARROW_RIGHT")
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Button_Menu").iconDisplayedIs("KEY_ESC").whenWeDelete().iconDisplayedIs("KEY_ESC")
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Alt_Button_Up").iconDisplayedIs("KEY_Z").whenWeDelete().thereShouldBeNoIconAnymore();
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Alt_Button_Up").thereShouldBeNoIcon().weWantThisBindInstead("DELETE").weCantAssignThisKey().butLetsForceIt();
|
||||
inTheSettingMenu.whenCursorIsOnSetting("Alt_Button_Up").thereShouldBeNoIcon().weWantThisBindInstead("HOME").weCantAssignThisKey().butLetsForceIt();
|
||||
inGame.whenWePressOnKeyboard("DELETE").nothingShouldHappen();
|
||||
inGame.whenWePressOnKeyboard("HOME").nothingShouldHappen();
|
||||
inGame.whenWePressOnKeyboard("Z").nothingShouldHappen();
|
||||
});
|
||||
|
||||
it("check to delete all the binds of an action", () => {
|
||||
|
@ -49,6 +49,7 @@ export default abstract class AbstractSettingsUiUiHandler extends UiHandler {
|
||||
protected bindingSettings: Array<String>;
|
||||
|
||||
protected settingDevice;
|
||||
protected settingBlacklisted;
|
||||
protected settingDeviceDefaults;
|
||||
protected settingDeviceOptions;
|
||||
protected configs;
|
||||
@ -160,7 +161,8 @@ export default abstract class AbstractSettingsUiUiHandler extends UiHandler {
|
||||
let settingName = setting.replace(/\_/g, ' ');
|
||||
|
||||
// Create and add a text object for the setting name to the scene.
|
||||
settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, settingName, TextStyle.SETTINGS_LABEL);
|
||||
const labelStyle = this.settingBlacklisted.includes(this.settingDevice[setting]) ? TextStyle.SETTINGS_LOCKED : TextStyle.SETTINGS_LABEL
|
||||
settingLabels[s] = addTextObject(this.scene, 8, 28 + s * 16, settingName, labelStyle);
|
||||
settingLabels[s].setOrigin(0, 0);
|
||||
optionsContainer.add(settingLabels[s]);
|
||||
|
||||
|
@ -1,7 +1,12 @@
|
||||
import BattleScene from "../../battle-scene";
|
||||
import {addTextObject, TextStyle} from "../text";
|
||||
import {Mode} from "../ui";
|
||||
import {SettingGamepad, settingGamepadDefaults, settingGamepadOptions} from "../../system/settings-gamepad";
|
||||
import {
|
||||
SettingGamepad,
|
||||
settingGamepadBlackList,
|
||||
settingGamepadDefaults,
|
||||
settingGamepadOptions
|
||||
} from "../../system/settings-gamepad";
|
||||
import pad_xbox360 from "#app/configs/pad_xbox360";
|
||||
import pad_dualshock from "#app/configs/pad_dualshock";
|
||||
import pad_unlicensedSNES from "#app/configs/pad_unlicensedSNES";
|
||||
@ -33,6 +38,7 @@ export default class SettingsGamepadUiHandler extends AbstractSettingsUiUiHandle
|
||||
this.configs = [pad_xbox360, pad_dualshock, pad_unlicensedSNES]
|
||||
this.commonSettingsCount = 2;
|
||||
this.localStoragePropertyName = 'settingsGamepad';
|
||||
this.settingBlacklisted = settingGamepadBlackList;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,7 +1,12 @@
|
||||
import BattleScene from "../../battle-scene";
|
||||
import {Mode} from "../ui";
|
||||
import cfg_keyboard_azerty from "#app/configs/cfg_keyboard_azerty";
|
||||
import {SettingKeyboard, settingKeyboardDefaults, settingKeyboardOptions} from "#app/system/settings-keyboard";
|
||||
import {
|
||||
SettingKeyboard,
|
||||
settingKeyboardBlackList,
|
||||
settingKeyboardDefaults,
|
||||
settingKeyboardOptions
|
||||
} from "#app/system/settings-keyboard";
|
||||
import {reverseValueToKeySetting, truncateString} from "#app/utils";
|
||||
import AbstractSettingsUiUiHandler from "#app/ui/settings/abstract-settings-ui-handler";
|
||||
import {InterfaceConfig} from "#app/inputs-controller";
|
||||
@ -31,6 +36,7 @@ export default class SettingsKeyboardUiHandler extends AbstractSettingsUiUiHandl
|
||||
this.commonSettingsCount = 1;
|
||||
this.textureOverride = 'keyboard';
|
||||
this.localStoragePropertyName = 'settingsKeyboard';
|
||||
this.settingBlacklisted = settingKeyboardBlackList;
|
||||
|
||||
const deleteEvent = scene.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.DELETE);
|
||||
deleteEvent.on('up', this.onDeleteDown, this);
|
||||
|
@ -23,6 +23,7 @@ export enum TextStyle {
|
||||
MONEY,
|
||||
SETTINGS_LABEL,
|
||||
SETTINGS_SELECTED,
|
||||
SETTINGS_LOCKED,
|
||||
TOOLTIP_TITLE,
|
||||
TOOLTIP_CONTENT,
|
||||
MOVE_INFO_CONTENT
|
||||
@ -89,6 +90,7 @@ function getTextStyleOptions(style: TextStyle, uiTheme: UiTheme, extraStyleOptio
|
||||
case TextStyle.WINDOW_ALT:
|
||||
case TextStyle.MESSAGE:
|
||||
case TextStyle.SETTINGS_LABEL:
|
||||
case TextStyle.SETTINGS_LOCKED:
|
||||
case TextStyle.SETTINGS_SELECTED:
|
||||
styleOptions.fontSize = '96px';
|
||||
break;
|
||||
@ -166,6 +168,7 @@ export function getTextColor(textStyle: TextStyle, shadow?: boolean, uiTheme: Ui
|
||||
case TextStyle.SUMMARY_GOLD:
|
||||
case TextStyle.MONEY:
|
||||
return !shadow ? '#e8e8a8' : '#a0a060';
|
||||
case TextStyle.SETTINGS_LOCKED:
|
||||
case TextStyle.SUMMARY_GRAY:
|
||||
return !shadow ? '#a0a0a0' : '#636363';
|
||||
case TextStyle.SUMMARY_GREEN:
|
||||
|
Loading…
Reference in New Issue
Block a user