Freeplay Change Mode Keybind

The Co-Op Mode Switch has been given its own keybind, approved by Frakits.

FOR TRANSLATORS:
The translation string in Options.xml is category.ui.changeMode
This commit is contained in:
Verwex
2025-08-07 21:13:37 +02:00
parent 41474738c7
commit 1a855e5061
6 changed files with 22 additions and 3 deletions
+1
View File
@@ -42,6 +42,7 @@
<str id="back">Back</str>
<str id="reset">Reset</str>
<str id="pause">Pause</str>
<str id="changeMode">Change Mode</str>
</group>
<str id="category.engine">Engine</str>
+1
View File
@@ -38,6 +38,7 @@
<str id="back">Wstecz</str>
<str id="reset">Reset</str>
<str id="pause">Pauza</str>
<str id="changeMode">Zmień Tryb</str>
</group>
<str id="category.engine">Silnik</str>
+6
View File
@@ -22,6 +22,7 @@ enum Control
ACCEPT;
BACK;
PAUSE;
CHANGE_MODE;
//CHEAT;
SWITCHMOD;
@@ -145,6 +146,11 @@ class Controls extends FlxActionSet
@:pressed("reset") public var RESET_HOLD(get, set): Bool;
@:justReleased("reset") public var RESET_R(get, set): Bool;
@:gamepad([FlxGamepadInputID.BACK]) // select button
@:justPressed("change-mode") public var CHANGE_MODE(get, set): Bool;
@:pressed("change-mode") public var CHANGE_MODE_HOLD(get, set): Bool;
@:justReleased("change-mode") public var CHANGE_MODE_R(get, set): Bool;
//@:gamepad([])
//@:justPressed("cheat") public var CHEAT(get, set): Bool;
//@:pressed("cheat") public var CHEAT_HOLD(get, set): Bool;
+7 -3
View File
@@ -53,7 +53,7 @@ class FreeplayState extends MusicBeatState
public var diffText:FlxText;
/**
* Text containing the current coop/opponent mode ([TAB] Co-Op mode)
* Text containing the current coop/opponent mode ([KEYBINDS] Co-Op mode)
*/
public var coopText:FlxText;
@@ -237,7 +237,7 @@ class FreeplayState extends MusicBeatState
if (canSelect) {
changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0) - FlxG.mouse.wheel);
changeDiff((controls.LEFT_P ? -1 : 0) + (controls.RIGHT_P ? 1 : 0));
changeCoopMode((FlxG.keys.justPressed.TAB ? 1 : 0)); // TODO: make this configurable
changeCoopMode((controls.CHANGE_MODE ? 1 : 0)); // TODO: make this configurable
// putting it before so that its actually smooth
updateOptionsAlpha();
}
@@ -430,7 +430,11 @@ class FreeplayState extends MusicBeatState
updateScore();
var key = "[TAB] "; // TODO: make this configurable
var coopBinds = [CoolUtil.keyToString(Options.P1_CHANGE_MODE[0]), CoolUtil.keyToString(Options.P2_CHANGE_MODE[0])].filter(x -> x != "---");
if (coopBinds.length == 2 && coopBinds[1] == coopBinds[0]) coopBinds.pop();
else if (coopBinds.length == 0) coopBinds.push("---");
var key = '[${coopBinds.join(" / ")}] ';
if (bothEnabled) {
coopText.text = key + coopLabels[curCoopMode];
+3
View File
@@ -117,6 +117,7 @@ class Options
public static var P1_ACCEPT:Array<FlxKey> = [ENTER];
public static var P1_BACK:Array<FlxKey> = [BACKSPACE];
public static var P1_PAUSE:Array<FlxKey> = [ENTER];
public static var P1_CHANGE_MODE:Array<FlxKey> = [TAB];
// Misc
public static var P1_RESET:Array<FlxKey> = [R];
@@ -148,6 +149,7 @@ class Options
public static var P2_ACCEPT:Array<FlxKey> = [SPACE];
public static var P2_BACK:Array<FlxKey> = [ESCAPE];
public static var P2_PAUSE:Array<FlxKey> = [ESCAPE];
public static var P2_CHANGE_MODE:Array<FlxKey> = [];
// Misc
public static var P2_RESET:Array<FlxKey> = [];
@@ -179,6 +181,7 @@ class Options
public static var SOLO_ACCEPT(get, null):Array<FlxKey>;
public static var SOLO_BACK(get, null):Array<FlxKey>;
public static var SOLO_PAUSE(get, null):Array<FlxKey>;
public static var SOLO_CHANGE_MODE(get, null):Array<FlxKey>;
// Misc
public static var SOLO_RESET(get, null):Array<FlxKey>;
@@ -97,6 +97,10 @@ class KeybindsOptions extends MusicBeatSubstate {
name: translate("ui.pause"),
control: 'PAUSE'
},
{
name: translate("ui.changeMode"),
control: 'CHANGE_MODE'
},
]
},
{